Skip to content

Commit 58e6d65

Browse files
cschindlbeckChris Schindlbeck
authored andcommitted
Added button to delete latest sample
1 parent ff6918e commit 58e6d65

File tree

2 files changed

+34
-8
lines changed

2 files changed

+34
-8
lines changed

moveit_calibration_gui/handeye_calibration_rviz_plugin/include/moveit/handeye_calibration_rviz_plugin/handeye_control_widget.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,8 @@ private Q_SLOTS:
169169

170170
void takeSampleBtnClicked(bool clicked);
171171

172+
void deleteLatestSampleBtnClicked(bool clicked);
173+
172174
void clearSamplesBtnClicked(bool clicked);
173175

174176
void solveBtnClicked(bool clicked);
@@ -221,6 +223,7 @@ private Q_SLOTS:
221223

222224
// Manual calibration
223225
QPushButton* take_sample_btn_;
226+
QPushButton* delete_latest_btn_;
224227
QPushButton* reset_sample_btn_;
225228
QPushButton* solve_btn_;
226229

moveit_calibration_gui/handeye_calibration_rviz_plugin/src/handeye_control_widget.cpp

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -181,23 +181,28 @@ ControlTabWidget::ControlTabWidget(HandEyeCalibrationDisplay* pdisplay, QWidget*
181181
// Manual calibration area
182182
QGroupBox* manual_cal_group = new QGroupBox("Manual Calibration");
183183
layout_right->addWidget(manual_cal_group);
184-
QHBoxLayout* control_cal_layout = new QHBoxLayout();
184+
QGridLayout* control_cal_layout = new QGridLayout();
185185
manual_cal_group->setLayout(control_cal_layout);
186186

187187
take_sample_btn_ = new QPushButton("Take sample");
188-
take_sample_btn_->setMinimumHeight(35);
188+
take_sample_btn_->setMinimumHeight(25);
189189
connect(take_sample_btn_, SIGNAL(clicked(bool)), this, SLOT(takeSampleBtnClicked(bool)));
190-
control_cal_layout->addWidget(take_sample_btn_);
190+
control_cal_layout->addWidget(take_sample_btn_, 0, 0);
191191

192-
reset_sample_btn_ = new QPushButton("Clear samples");
193-
reset_sample_btn_->setMinimumHeight(35);
192+
delete_latest_btn_ = new QPushButton("Delete latest sample");
193+
delete_latest_btn_->setMinimumHeight(25);
194+
connect(delete_latest_btn_, SIGNAL(clicked(bool)), this, SLOT(deleteLatestSampleBtnClicked(bool)));
195+
control_cal_layout->addWidget(delete_latest_btn_, 0, 1);
196+
197+
reset_sample_btn_ = new QPushButton("Clear all samples");
198+
reset_sample_btn_->setMinimumHeight(25);
194199
connect(reset_sample_btn_, SIGNAL(clicked(bool)), this, SLOT(clearSamplesBtnClicked(bool)));
195-
control_cal_layout->addWidget(reset_sample_btn_);
200+
control_cal_layout->addWidget(reset_sample_btn_, 1, 0);
196201

197202
solve_btn_ = new QPushButton("Solve");
198-
solve_btn_->setMinimumHeight(35);
203+
solve_btn_->setMinimumHeight(25);
199204
connect(solve_btn_, SIGNAL(clicked(bool)), this, SLOT(solveBtnClicked(bool)));
200-
control_cal_layout->addWidget(solve_btn_);
205+
control_cal_layout->addWidget(solve_btn_, 1, 1);
201206

202207
// Auto calibration area
203208
QGroupBox* auto_cal_group = new QGroupBox("Calibrate With Recorded Joint States");
@@ -580,6 +585,24 @@ void ControlTabWidget::takeSampleBtnClicked(bool clicked)
580585
}
581586
}
582587

588+
void ControlTabWidget::deleteLatestSampleBtnClicked(bool clicked)
589+
{
590+
if (joint_states_.empty())
591+
{
592+
QMessageBox::warning(this, tr("Empty Pose samples"), tr("Cannot delete last sample, list is already empty."));
593+
return;
594+
}
595+
596+
// Delete latest recorded transform
597+
effector_wrt_world_.pop_back();
598+
object_wrt_sensor_.pop_back();
599+
600+
// Delete latest recorded joint state, update progress bar
601+
joint_states_.pop_back();
602+
tree_view_model_->takeRow(joint_states_.size());
603+
auto_progress_->setMax(joint_states_.size());
604+
}
605+
583606
void ControlTabWidget::clearSamplesBtnClicked(bool clicked)
584607
{
585608
// Clear recorded transforms

0 commit comments

Comments
 (0)