25 #include <QMessageBox>
31 #include <MemoryX/gui-plugins/PriorMemoryEditor/ui_ManipulationAttributesEditTab.h>
44 robotStateComponent(robotStateComponent)
49 connect(ui->rbManipulationFile, SIGNAL(toggled(
bool)),
this, SLOT(
update()));
50 connect(ui->rbIVFiles, SIGNAL(toggled(
bool)),
this, SLOT(
update()));
54 manipulationFileDialog =
new QFileDialog(parent);
55 manipulationFileDialog->setModal(
true);
56 manipulationFileDialog->setFileMode(QFileDialog::ExistingFiles);
57 manipulationFileDialog->setNameFilter(tr(
"Manipulation Object XML (*.xml *.moxml)"));
58 connect(ui->btnSelectManipulationFile, SIGNAL(clicked()), manipulationFileDialog, SLOT(show()));
60 connect(ui->btnEditGrasps, SIGNAL(clicked()),
this, SLOT(
editGrasps()));
63 visuFileDialog =
new QFileDialog(parent);
64 visuFileDialog->setModal(
true);
65 visuFileDialog->setFileMode(QFileDialog::ExistingFiles);
66 visuFileDialog->setNameFilter(tr(
"Inventor & VRML models (*.iv *.wrl)"));
67 connect(ui->btnSelectVisuFile, SIGNAL(clicked()), visuFileDialog, SLOT(show()));
71 collisionFileDialog =
new QFileDialog(parent);
72 collisionFileDialog->setModal(
true);
73 collisionFileDialog->setFileMode(QFileDialog::ExistingFiles);
74 collisionFileDialog->setNameFilter(tr(
"Inventor & VRML models (*.iv *.wrl)"));
75 connect(ui->btnSelectCollisionFile, SIGNAL(clicked()), collisionFileDialog, SLOT(show()));
92 ui->rbManipulationFile->setChecked(
true);
93 ui->editManipulationFile->setText(
94 QString::fromStdString(simoxWrapper->getManipulationObjectFileName()));
96 Eigen::Vector3f putdownOrientation = simoxWrapper->getPutdownOrientationRPY();
97 ui->editPutdownOrientationR->setText(QString::number(putdownOrientation(0)));
98 ui->editPutdownOrientationP->setText(QString::number(putdownOrientation(1)));
99 ui->editPutdownOrientationY->setText(QString::number(putdownOrientation(2)));
110 if (ui->rbManipulationFile->isChecked())
112 simoxWrapper->setAndStoreManipulationFile(ui->editManipulationFile->text().toStdString(),
117 simoxWrapper->setAndStoreModelIVFiles(ui->editVisuFile->text().toStdString(),
118 ui->editCollisionFile->text().toStdString(),
122 Eigen::Vector3f putdownOrientation;
123 putdownOrientation(0) = std::stof(ui->editPutdownOrientationR->text().toStdString());
124 putdownOrientation(1) = std::stof(ui->editPutdownOrientationP->text().toStdString());
125 putdownOrientation(2) = std::stof(ui->editPutdownOrientationY->text().toStdString());
126 simoxWrapper->setPutdownOrientationRPY(putdownOrientation);
132 ui->editManipulationFile->setText(manipulationFileDialog->selectedFiles()[0]);
138 ui->editVisuFile->setText(visuFileDialog->selectedFiles()[0]);
144 ui->editCollisionFile->setText(collisionFileDialog->selectedFiles()[0]);
150 if (ui->editManipulationFile->text().isEmpty())
153 msgBox.setText(
"Please select a manipulation file first.");
154 msgBox.setIcon(QMessageBox::Information);
155 msgBox.setStandardButtons(QMessageBox::Ok);
156 msgBox.setDefaultButton(QMessageBox::Ok);
161 std::string robotFile(
"/usr/local/data/robots/ArmarIII/ArmarIII.xml");
162 std::string localRobot =
"RobotAPI/robots/Armar3/ArmarIII.xml";
166 robotFile = localRobot;
169 if (robotStateComponent)
171 for (
auto package : robotStateComponent->getArmarXPackages())
173 auto path = robotStateComponent->getRobotFilename();
187 std::string objectFile(ui->editManipulationFile->text().toStdString());
197 const bool moFile = ui->rbManipulationFile->isChecked();
198 ui->editManipulationFile->setEnabled(moFile);
199 ui->lblManipulationFile->setEnabled(moFile);
200 ui->btnSelectManipulationFile->setEnabled(moFile);
201 ui->btnEditGrasps->setEnabled(moFile);
203 ui->editVisuFile->setEnabled(!moFile);
204 ui->lblVisuFile->setEnabled(!moFile);
205 ui->btnSelectVisuFile->setEnabled(!moFile);
207 ui->editCollisionFile->setEnabled(!moFile);
208 ui->lblCollisionFile->setEnabled(!moFile);
209 ui->btnSelectCollisionFile->setEnabled(!moFile);