void mcl_partsort(struct mcl_model *mcl);
void mcl_resample(struct mcl_model *mcl);
void mcl_init (struct mcl_model *mcl);
+inline struct mcl_particle mcl_get_pos(struct mcl_model *mcl);
#ifdef __cplusplus
}
#endif
-inline struct mcl_particle mcl_get_pos(struct mcl_model *mcl);
#endif /* __mcl__ */
QVBoxLayout *vlayout = new QVBoxLayout();
QGridLayout *layout = new QGridLayout();
- resetMclPushButton = new QPushButton(tr("Reset MCL"));
+ resetMclPushButton = new QPushButton(tr("&Reset MCL"));
+ resetMclPushButton->setShortcut(tr("r"));
layout->addWidget(resetMclPushButton, 0, 0);
vlayout->addLayout(layout);
void SimMcl::updateMcl()
{
- if (paintObjectsRadioButton->isChecked()) {
+ if (paintElementsRadioButton->isChecked()) {
+ glWidget->animate();
+ } else {
for (int i=0; i<mcl.count; i++) {
robots[i].updateRobot();
}
- } else {
- glWidget->animate();
}
+
+ /* update estimated position fields */
+ struct mcl_particle part = mcl_get_pos(&mcl);
+
+ estPosX->setText(QString("%1").arg(part.x, 0, 'f', 3));
+ estPosY->setText(QString("%1").arg(part.y, 0, 'f', 3));
+ estPosPhi->setText(QString("%1 (%2 rad)")
+ .arg(part.angle, 0, 'f', 0)
+ .arg(DEG2RAD(part.angle), 0, 'f', 1));
}
/**********************************************************************