55 pointCloudProviderNames.clear();
56 QList<QVariant> names = settings->value(
"pointCloudProviderNames", QList<QVariant>()).toList();
57 for (
int i = 0; i < names.count(); i++)
59 pointCloudProviderNames.push_back(names[i].toString().toStdString());
62 filteredPointCloudProviderNames.clear();
63 names = settings->value(
"filteredPointCloudProviderNames", QList<QVariant>()).toList();
64 for (
int i = 0; i < names.count(); i++)
66 filteredPointCloudProviderNames.push_back(names[i].toString().toStdString());
69 pointCloudProviderDisplayNames.clear();
70 names = settings->value(
"pointCloudProviderDisplayNames", QList<QVariant>()).toList();
71 for (
int i = 0; i < names.count(); i++)
73 pointCloudProviderDisplayNames.push_back(names[i].toString().toStdString());
76 pipelineConfigFiles.clear();
77 names = settings->value(
"pipelineConfigFiles", QList<QVariant>()).toList();
78 for (
int i = 0; i < names.count(); i++)
80 pipelineConfigFiles.push_back(names[i].toString().toStdString());
83 pointCloudSegmenterName =
84 settings->value(
"pointCloudSegmenterName",
"").toString().toStdString();
85 primitiveExtractorName = settings->value(
"primitiveExtractorName",
"").toString().toStdString();
86 affordanceExtractionName =
87 settings->value(
"affordanceExtractionName",
"").toString().toStdString();
88 pipelineVisualizationName =
89 settings->value(
"pipelineVisualizationName",
"").toString().toStdString();
90 robotStateComponentName =
91 settings->value(
"robotStateComponentName",
"").toString().toStdString();
92 platform = settings->value(
"platform",
"").toString().toStdString();
98 QList<QVariant> names;
99 for (
auto& name : pointCloudProviderNames)
101 names.append(QString::fromStdString(name));
103 settings->setValue(
"pointCloudProviderNames", names);
106 for (
auto& name : filteredPointCloudProviderNames)
108 names.append(QString::fromStdString(name));
110 settings->setValue(
"filteredPointCloudProviderNames", names);
113 for (
auto& name : pointCloudProviderDisplayNames)
115 names.append(QString::fromStdString(name));
117 settings->setValue(
"pointCloudProviderDisplayNames", names);
120 for (
auto& filename : pipelineConfigFiles)
122 names.append(QString::fromStdString(filename));
124 settings->setValue(
"pipelineConfigFiles", names);
126 settings->setValue(
"pointCloudSegmenterName", QString::fromStdString(pointCloudSegmenterName));
127 settings->setValue(
"primitiveExtractorName", QString::fromStdString(primitiveExtractorName));
128 settings->setValue(
"affordanceExtractionName",
129 QString::fromStdString(affordanceExtractionName));
130 settings->setValue(
"pipelineVisualizationName",
131 QString::fromStdString(pipelineVisualizationName));
132 settings->setValue(
"robotStateComponentName", QString::fromStdString(robotStateComponentName));
133 settings->setValue(
"platform", QString::fromStdString(platform));
159 pointCloudProviders.clear();
160 for (
auto& provider : pointCloudProviderNames)
162 pointCloudProviders.push_back(
166 filteredPointCloudProviders.clear();
167 for (
auto& provider : filteredPointCloudProviderNames)
169 filteredPointCloudProviders.push_back(
173 pointCloudSegmenter =
177 pipelineVisualization =
182 widget.comboBoxSegmentation->clear();
183 for (
unsigned int i = 0; i < pipelineConfigFiles.size(); i++)
185 widget.comboBoxSegmentation->addItem(QString::fromStdString(
"C" + std::to_string(i)));
189 widget.comboBoxPointCloudSource->clear();
190 for (
auto& provider : pointCloudProviderDisplayNames)
192 widget.comboBoxPointCloudSource->addItem(QString::fromStdString(provider));
194 widget.comboBoxPointCloudSource->setCurrentIndex(0);
198 pipelineVisualization->clearVisualization();
202 connect(widget.pushButtonStart, SIGNAL(clicked()),
this, SLOT(
startPipeline()));
203 connect(widget.pushButtonPause, SIGNAL(clicked()),
this, SLOT(
pausePipeline()));
204 connect(widget.pushButtonStep, SIGNAL(clicked()),
this, SLOT(
stepPipeline()));
206 connect(widget.comboBoxCropping,
207 SIGNAL(currentIndexChanged(
int)),
210 connect(widget.comboBoxPointCloudSource,
211 SIGNAL(currentIndexChanged(
int)),
214 connect(widget.comboBoxSegmentation,
215 SIGNAL(currentIndexChanged(
int)),
218 connect(widget.checkBoxShowPrimitives,
219 SIGNAL(toggled(
bool)),
222 connect(widget.checkBoxShowAffordances,
223 SIGNAL(toggled(
bool)),
228 updateTimer->start(500);
231 widget.comboBoxCropping->setCurrentIndex(3);
234 widget.comboBoxSegmentation->setCurrentIndex(0);
239 QMetaObject::invokeMethod(
240 this,
"visualizationOptionsChanged", Qt::QueuedConnection, Q_ARG(
bool,
true));
268 bool providerStatus = pointCloudProviders[currentPointCloudProvider]->isCaptureEnabled();
269 bool segmenterStatus = pointCloudSegmenter->isPipelineStepEnabled();
270 bool primitivesStatus = primitiveExtractor->isPipelineStepEnabled();
271 bool affordancesStatus = affordanceExtraction->isPipelineStepEnabled();
273 widget.labelProviderStatus->setText(providerStatus ?
"Running" :
"Paused");
274 widget.labelSegmenterStatus->setText(segmenterStatus ?
"Running" :
"Paused");
275 widget.labelPrimitivesStatus->setText(primitivesStatus ?
"Running" :
"Paused");
276 widget.labelAffordancesStatus->setText(affordancesStatus ?
"Running" :
"Paused");
278 widget.labelProviderTimestamp->setText(formatTimestamp(
279 pointCloudProviders[currentPointCloudProvider]->getPointCloudFormat()->timeProvided));
280 widget.labelSegmenterTimestamp->setText(
281 formatTimestamp(pointCloudSegmenter->getLastProcessedTimestamp()->timestamp));
282 widget.labelPrimitivesTimestamp->setText(
283 formatTimestamp(primitiveExtractor->getLastProcessedTimestamp()->timestamp));
284 widget.labelAffordancesTimestamp->setText(
285 formatTimestamp(affordanceExtraction->getLastProcessedTimestamp()->timestamp));
287 bool status = providerStatus && segmenterStatus && primitivesStatus && affordancesStatus;
288 widget.pushButtonStart->setEnabled(!
status);
289 widget.pushButtonPause->setEnabled(
status);
290 widget.pushButtonStep->setEnabled(!
status);
292 catch (
const Ice::ConnectionRefusedException& e)
375 PosePtr::dynamicCast(robotStateComponent->getSynchronizedRobot()->getGlobalPose())
382 min << -10000, -10000, -10000;
383 max << 10000, 10000, 10000;
387 min << -3000, 300, 0 - root_z;
388 max << 3000, 3000, 3000 - root_z;
392 min << -2000, 300, 300 - root_z;
393 max << 2000, 3000, 2500 - root_z;
397 min << -1000, 300, 600 - root_z;
398 max << 1000, 2000, 1500 - root_z;
402 min << -500, 300, 1000 - root_z;
403 max << 500, 2000, 1500 - root_z;
411 for (
auto& provider : filteredPointCloudProviders)
460 pointCloudProviderNames = configDialog->getProviderNames();
461 pointCloudProviderDisplayNames = configDialog->getProviderDisplayNames();
462 filteredPointCloudProviderNames = configDialog->getFilteredProviderNames();
463 pipelineConfigFiles = configDialog->getPipelineConfigurationFiles();
465 pointCloudSegmenterName =
466 configDialog->pointCloudSegmenterProxyFinder->getSelectedProxyName().toStdString();
467 primitiveExtractorName =
468 configDialog->primitiveExtractorProxyFinder->getSelectedProxyName().toStdString();
469 affordanceExtractionName =
470 configDialog->affordanceExtractionProxyFinder->getSelectedProxyName().toStdString();
471 pipelineVisualizationName =
472 configDialog->pipelineVisualizationProxyFinder->getSelectedProxyName().toStdString();
473 robotStateComponentName =
474 configDialog->robotStateComponentProxyFinder->getSelectedProxyName().toStdString();
475 platform = configDialog->getPlatform();