From 536136af7772ef6c119d3767b4b58eb5709e7a57 Mon Sep 17 00:00:00 2001 From: matlabbe Date: Sun, 17 Jul 2016 16:47:06 -0400 Subject: [PATCH] Fixed octomap height when in /map frame. Preferences: added Cloud Filtering and Occupancy Grid Map subpanels to 3D Rendering --- guilib/src/MainWindow.cpp | 2 +- guilib/src/PreferencesDialog.cpp | 71 +- guilib/src/ui/preferencesDialog.ui | 2754 ++++++++++++++-------------- 3 files changed, 1409 insertions(+), 1418 deletions(-) diff --git a/guilib/src/MainWindow.cpp b/guilib/src/MainWindow.cpp index 7baa33e8..f3c8d703 100644 --- a/guilib/src/MainWindow.cpp +++ b/guilib/src/MainWindow.cpp @@ -2639,7 +2639,7 @@ void MainWindow::createAndAddProjectionMap( { if(_preferencesDialog->projMapFrame()) { - Transform tinv = Transform(0,0,0, roll, pitch, 0).inverse(); + Transform tinv = Transform(0,0,pose.z(), roll, pitch, 0).inverse(); groundCloud = util3d::transformPointCloud(groundCloud, tinv); obstaclesCloud = util3d::transformPointCloud(obstaclesCloud, tinv); } diff --git a/guilib/src/PreferencesDialog.cpp b/guilib/src/PreferencesDialog.cpp index e0e3159d..a2ffb76d 100644 --- a/guilib/src/PreferencesDialog.cpp +++ b/guilib/src/PreferencesDialog.cpp @@ -389,7 +389,7 @@ PreferencesDialog::PreferencesDialog(QWidget * parent) : connect(_ui->doubleSpinBox_projMaxObstaclesHeight, SIGNAL(valueChanged(double)), this, SLOT(makeObsoleteCloudRenderingPanel())); connect(_ui->checkBox_projFlatObstaclesDetected, SIGNAL(stateChanged(int)), this, SLOT(makeObsoleteCloudRenderingPanel())); - connect(_ui->checkBox_octomap, SIGNAL(clicked(bool)), this, SLOT(makeObsoleteCloudRenderingPanel())); + connect(_ui->groupBox_octomap, SIGNAL(clicked(bool)), this, SLOT(makeObsoleteCloudRenderingPanel())); connect(_ui->spinBox_octomap_treeDepth, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteCloudRenderingPanel())); connect(_ui->checkBox_octomap_groundObstacle, SIGNAL(clicked(bool)), this, SLOT(makeObsoleteCloudRenderingPanel())); @@ -919,11 +919,11 @@ void PreferencesDialog::setupTreeView() QList boxes = this->getGroupBoxes(); if(_ui->radioButton_basic->isChecked()) { - boxes = boxes.mid(0,5); + boxes = boxes.mid(0,7); } else // Advanced { - boxes.removeAt(4); + boxes.removeAt(6); } QStandardItem * parentItem = _indexModel->invisibleRootItem(); @@ -936,36 +936,20 @@ void PreferencesDialog::setupTreeView() int currentIndex = _ui->stackedWidget->currentIndex(); if(_ui->radioButton_basic->isChecked()) { - if(currentIndex >= 4) + if(currentIndex >= 6) { - _ui->stackedWidget->setCurrentIndex(4); - currentIndex = 4; + _ui->stackedWidget->setCurrentIndex(6); + currentIndex = 6; } } else // Advanced { - if(currentIndex == 4) + if(currentIndex == 6) { - _ui->stackedWidget->setCurrentIndex(5); + _ui->stackedWidget->setCurrentIndex(7); } } _ui->treeView->setModel(_indexModel); - if(currentIndex == 0) // GUI - { - _ui->treeView->setCurrentIndex(_indexModel->index(0, 0)); - } - else if(currentIndex == 1) //3d rendering - { - _ui->treeView->setCurrentIndex(_indexModel->index(0, 0).child(0,0)); - } - else if(currentIndex == 2) // logging - { - _ui->treeView->setCurrentIndex(_indexModel->index(0, 0).child(1,0)); - } - else // source, rtabmap - { - _ui->treeView->setCurrentIndex(_indexModel->index(currentIndex-2, 0)); - } _ui->treeView->expandToDepth(1); // should be after setModel() @@ -1088,7 +1072,7 @@ void PreferencesDialog::clicked(const QModelIndex & current, const QModelIndex & if(item && item->isEnabled()) { int index = item->data().toInt(); - if(_ui->radioButton_advanced->isChecked() && index >= 4) + if(_ui->radioButton_advanced->isChecked() && index >= 6) { ++index; } @@ -1206,6 +1190,20 @@ void PreferencesDialog::resetSettings(QGroupBox * groupBox) _ui->checkBox_showGraphs->setChecked(true); _ui->checkBox_showLabels->setChecked(false); + _ui->spinBox_normalKSearch->setValue(10); + + _ui->doubleSpinBox_mesh_angleTolerance->setValue(15.0); +#if PCL_VERSION_COMPARE(>=, 1, 7, 2) + _ui->groupBox_organized->setChecked(false); + _ui->checkBox_mesh_quad->setChecked(true); +#else + _ui->groupBox_organized->setChecked(false); + _ui->checkBox_mesh_quad->setChecked(false); +#endif + _ui->spinBox_mesh_triangleSize->setValue(2); + } + else if(groupBox->objectName() == _ui->groupBox_filtering2->objectName()) + { _ui->radioButton_noFiltering->setChecked(true); _ui->radioButton_nodeFiltering->setChecked(false); _ui->radioButton_subtractFiltering->setChecked(false); @@ -1214,8 +1212,9 @@ void PreferencesDialog::resetSettings(QGroupBox * groupBox) _ui->spinBox_subtractFilteringMinPts->setValue(5); _ui->doubleSpinBox_subtractFilteringRadius->setValue(0.02); _ui->doubleSpinBox_subtractFilteringAngle->setValue(0); - _ui->spinBox_normalKSearch->setValue(10); - + } + else if(groupBox->objectName() == _ui->groupBox_gridMap2->objectName()) + { _ui->checkBox_map_shown->setChecked(false); _ui->doubleSpinBox_map_resolution->setValue(0.05); _ui->checkBox_map_erode->setChecked(false); @@ -1228,19 +1227,9 @@ void PreferencesDialog::resetSettings(QGroupBox * groupBox) _ui->doubleSpinBox_projMaxObstaclesHeight->setValue(0); _ui->checkBox_projFlatObstaclesDetected->setChecked(true); - _ui->checkBox_octomap->setChecked(false); + _ui->groupBox_octomap->setChecked(false); _ui->spinBox_octomap_treeDepth->setValue(16); _ui->checkBox_octomap_groundObstacle->setChecked(true); - - _ui->doubleSpinBox_mesh_angleTolerance->setValue(15.0); -#if PCL_VERSION_COMPARE(>=, 1, 7, 2) - _ui->groupBox_organized->setChecked(false); - _ui->checkBox_mesh_quad->setChecked(true); -#else - _ui->groupBox_organized->setChecked(false); - _ui->checkBox_mesh_quad->setChecked(false); -#endif - _ui->spinBox_mesh_triangleSize->setValue(2); } else if(groupBox->objectName() == _ui->groupBox_logging1->objectName()) { @@ -1590,7 +1579,7 @@ void PreferencesDialog::readGuiSettings(const QString & filePath) _ui->doubleSpinBox_projMaxObstaclesHeight->setValue(settings.value("projMaxObstaclesHeight", _ui->doubleSpinBox_projMaxObstaclesHeight->value()).toDouble()); _ui->checkBox_projFlatObstaclesDetected->setChecked(settings.value("projFlatObstaclesDetected", _ui->checkBox_projFlatObstaclesDetected->isChecked()).toBool()); - _ui->checkBox_octomap->setChecked(settings.value("octomap", _ui->checkBox_octomap->isChecked()).toBool()); + _ui->groupBox_octomap->setChecked(settings.value("octomap", _ui->groupBox_octomap->isChecked()).toBool()); _ui->spinBox_octomap_treeDepth->setValue(settings.value("octomap_depth", _ui->spinBox_octomap_treeDepth->value()).toInt()); _ui->checkBox_octomap_groundObstacle->setChecked(settings.value("octomap_ground_is_obstacle", _ui->checkBox_octomap_groundObstacle->isChecked()).toBool()); @@ -2001,7 +1990,7 @@ void PreferencesDialog::writeGuiSettings(const QString & filePath) const settings.setValue("projMaxObstaclesHeight", _ui->doubleSpinBox_projMaxObstaclesHeight->value()); settings.setValue("projFlatObstaclesDetected", _ui->checkBox_projFlatObstaclesDetected->isChecked()); - settings.setValue("octomap", _ui->checkBox_octomap->isChecked()); + settings.setValue("octomap", _ui->groupBox_octomap->isChecked()); settings.setValue("octomap_depth", _ui->spinBox_octomap_treeDepth->value()); settings.setValue("octomap_ground_is_obstacle", _ui->checkBox_octomap_groundObstacle->isChecked()); @@ -3660,7 +3649,7 @@ bool PreferencesDialog::isCloudsShown(int index) const bool PreferencesDialog::isOctomapShown() const { #ifdef RTABMAP_OCTOMAP - return _ui->checkBox_octomap->isChecked(); + return _ui->groupBox_octomap->isChecked(); #endif return false; } diff --git a/guilib/src/ui/preferencesDialog.ui b/guilib/src/ui/preferencesDialog.ui index fef643ea..132c6c7d 100644 --- a/guilib/src/ui/preferencesDialog.ui +++ b/guilib/src/ui/preferencesDialog.ui @@ -63,7 +63,7 @@ 0 - -568 + 0 686 2023 @@ -393,1367 +393,730 @@ Show a yellow background when the number of odometry inliers goes under this thr - - - Cloud filtering - - - false - - - false - - - - - - For visualization purpose, superposed clouds can be filtered by one of the approaches below. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - No filtering. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - - false - - - - - - - - - - - - - - - - m - - - 0.010000000000000 - - - 0.100000000000000 - - - - - - - Radius. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - deg - - - 0 - - - 180.000000000000000 - - - 30.000000000000000 - - - - - - - Angle. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - Cloud subtraction filtering. When a new cloud is added to the map, its points are subtracted from the previous cloud. - - - Qt::PlainText - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - Pose filtering. By comparing poses in the same area, only one cloud in a fixed radius and angle is shown. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - - false - - - - - - - - - - - - 0.010000000000000 - - - 1.000000000000000 - - - 0.010000000000000 - - - 0.020000000000000 - - - - - - - Point radius used to find close points between the current cloud and the previous one. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - deg - - - 0 - - - 180.000000000000000 - - - 30.000000000000000 - - - - - - - Point angle used to keep only points with similar normal between the current cloud and the previous one. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - 1 - - - - - - - Minimum points of the previous cloud in the fixed point radius in order to substract the point in the new cloud. Increasing this value reduces the black contours between clouds. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - - - - - - Occupancy Grid Map - - - false - - - false - - - - - - When the Graph View is visible or if the "Show in 3D map view" below is checked, the grid map is generated using the laser scans or from 3D projection of the clouds (when activated below). - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - - - - 0.750000000000000 - - - 1.000000000000000 - - - 0.750000000000000 - - - - - - - - - - false - - - - - - - Show in 3D map view. - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - m - - - 0.010000000000000 - - - 1.000000000000000 - - - 0.050000000000000 - - - - - - - Resolution (cell size). - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - Opacity. - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - Erode. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - - false - - - - - - - - - Occupancy from 3D cloud projection on the ground - - - true - - - - - - Note that 3D cloud filtering stuff under Map columns below are applied before the projection (except for floor and ceiling filterings). - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - m - - - 2 - - - 9999.000000000000000 - - - - - - - Maximum obstacles height (0=disabled). - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - - false - - - - - - - Projection in map frame. On a 3D terrain and a fixed local camera transform (the cloud is created relative to ground), you may want to disable this to do the projection in robot frame instead. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - deg - - - 0 - - - 0.000000000000000 - - - 180.000000000000000 - - - 30.000000000000000 - - - - - - - Maximum ground normal angle - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - 1 - - - 10000 - - - 20 - - - - - - - Mininum cluster size. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - - false - - - - - - - Flat obstacles detected - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - m - - - 2 - - - 99999.000000000000000 - - - - - - - Maximum ground height (0=disabled). - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - - true - - - - - - - Octomap: 3D occupancy grid map. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - Octomap maximum tree depth (max 16). The highest depth means the smallest resolution of the map (cell size). At smallest resolution the octomap shows RGB colors. Other resolutions produce z-axis gradient colored octomap. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - 1 - - - 16 - - - 16 - - - - - - - Octomap: ground is an obstacle. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - - true - - - - - - - - - - - - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - - - - - - true - - - - - - - Show scans. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - - 2 - - - 1.000000000000000 - - - 0.100000000000000 - - - 1.000000000000000 - - - - - - - Show 3D clouds. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - - true - - - - - - - - - - true - - - - - - - Map - - - Qt::AlignCenter - - - true - - - - - - - 1 - - - 32 - - - 2 - - - - - - - m - - - 1 - - - 100.000000000000000 - - - 0.100000000000000 - - - 4.000000000000000 - - - - - - - m - - - 1 - - - 100.000000000000000 - - - 0.100000000000000 - - - 0.000000000000000 - - - - - - - 1 - - - 64 - - - 2 - - - - - - - - - - 2 - - - 1.000000000000000 - - - 0.100000000000000 - - - 1.000000000000000 - - - - - - - 3D cloud decimation (1-2-4-8-...). - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - 3D cloud maximum depth (0 means no limit). - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - 3D cloud opacity. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - 1 - - - 64 - - - 2 - - - - - - - 1 - - - 64 - - - - - - - Scan point size (1..64). - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - m - - - 3 - - - 1.000000000000000 - - - 0.010000000000000 - - - 0.000000000000000 - - - - - - - Scan voxel size. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - 1 - - - 9999 - - - - - - - Scan opacity. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - - true - - - - - - - 1 - - - 32 - - - 4 - - - - - - - - - - 2 - - - 1.000000000000000 - - - 0.100000000000000 - - - 1.000000000000000 - - - - - - - - - - true - - - - - - - Show graphs. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - - true - - - - - - - - - - 2 - - - 1.000000000000000 - - - 0.100000000000000 - - - 1.000000000000000 - - - - - - - 1 - - - 64 - - - - - - - - - - true - - - - - - - Show labels. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - - - - true - - - - - - - m - - - 3 - - - 1.000000000000000 - - - 0.010000000000000 - - - 0.000000000000000 - - - - - - - Scan downsampling step size. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - 1 - - - 9999 - - - - - - - 3D cloud point size (1..64). - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - Odometry - - - Qt::AlignCenter - - - true - - - - - - - Show 3D features. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - Feature point size. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - 1 - - - 64 - - - - - - - 1 - - - 64 - - - - - - - 3D cloud minimum depth. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - m - - - 1 - - - 100.000000000000000 - - - 0.100000000000000 - - - 0.000000000000000 - - - - - - - m - - - 1 - - - 0.000000000000000 - - - 100.000000000000000 - - - 0.100000000000000 - - - 0.000000000000000 - - - - - - - m - - - 3 - - - 1.000000000000000 - - - 0.010000000000000 - - - 0.000000000000000 - - - - - - - 3D cloud voxel filtering size (0=disabled). - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - 1 - - - 1000 - - - 5 - - - - - - - 3D cloud noise filtering radius (0=disabled). Done after voxel filtering. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - m - - - 3 - - - 1.000000000000000 - - - 0.050000000000000 - - - 0.000000000000000 - - - - - - - 3D cloud noise filtering min neighbors. - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - 3D cloud normal K search. If not 0, normals will be computed and added to created cloud for visualization (keys 7, 8 and 9). - - - true - - - Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse - - - - - - - 0 - - - 1000 - - - 10 - - - - - + + + + + Odometry + + + Qt::AlignCenter + + + true + + + + + + + Map + + + Qt::AlignCenter + + + true + + + + + + + m + + + 3 + + + 1.000000000000000 + + + 0.010000000000000 + + + 0.000000000000000 + + + + + + + 3D cloud minimum depth. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + 3D cloud voxel filtering size (0=disabled). + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + m + + + 3 + + + 1.000000000000000 + + + 0.050000000000000 + + + 0.000000000000000 + + + + + + + 3D cloud noise filtering radius (0=disabled). Done after voxel filtering. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + 1 + + + 1000 + + + 5 + + + + + + + m + + + 1 + + + 100.000000000000000 + + + 0.100000000000000 + + + 0.000000000000000 + + + + + + + 3D cloud maximum depth (0 means no limit). + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + m + + + 1 + + + 100.000000000000000 + + + 0.100000000000000 + + + 0.000000000000000 + + + + + + + + + + true + + + + + + + Show 3D features. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + 1 + + + 64 + + + + + + + 3D cloud normal K search. If not 0, normals will be computed and added to created cloud for visualization (keys 7, 8 and 9). + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + + true + + + + + + + + + + true + + + + + + + Show scans. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + 1 + + + 9999 + + + + + + + 1 + + + 9999 + + + + + + + Scan downsampling step size. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + m + + + 3 + + + 1.000000000000000 + + + 0.010000000000000 + + + 0.000000000000000 + + + + + + + m + + + 3 + + + 1.000000000000000 + + + 0.010000000000000 + + + 0.000000000000000 + + + + + + + Scan voxel size. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + + 2 + + + 1.000000000000000 + + + 0.100000000000000 + + + 1.000000000000000 + + + + + + + + + + 2 + + + 1.000000000000000 + + + 0.100000000000000 + + + 1.000000000000000 + + + + + + + Scan opacity. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + 3D cloud noise filtering min neighbors. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + 0 + + + 1000 + + + 10 + + + + + + + 1 + + + 64 + + + + + + + Feature point size. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + + 2 + + + 1.000000000000000 + + + 0.100000000000000 + + + 1.000000000000000 + + + + + + + + + + 2 + + + 1.000000000000000 + + + 0.100000000000000 + + + 1.000000000000000 + + + + + + + 3D cloud opacity. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + 1 + + + 64 + + + 2 + + + + + + + 1 + + + 64 + + + 2 + + + + + + + 3D cloud point size (1..64). + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + 1 + + + 64 + + + + + + + 1 + + + 64 + + + + + + + Scan point size (1..64). + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + + true + + + + + + + 1 + + + 32 + + + 2 + + + + + + + + + + true + + + + + + + 3D cloud decimation (1-2-4-8-...). + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + m + + + 1 + + + 100.000000000000000 + + + 0.100000000000000 + + + 4.000000000000000 + + + + + + + 1 + + + 32 + + + 4 + + + + + + + + + + true + + + + + + + m + + + 1 + + + 0.000000000000000 + + + 100.000000000000000 + + + 0.100000000000000 + + + 0.000000000000000 + + + + + + + Show 3D clouds. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + Show graphs. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + Show labels. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + + true + + + + + + + + + + true + + + + @@ -1831,19 +1194,6 @@ Show a yellow background when the number of odometry inliers goes under this thr - - - - Qt::Vertical - - - - 0 - 0 - - - - @@ -1852,13 +1202,665 @@ Show a yellow background when the number of odometry inliers goes under this thr + + Qt::Vertical + + + + 0 + 0 + + + + + + + + + + + + Cloud Filtering + + + false + + + false + + + + + + For visualization purpose, superposed clouds can be filtered by one of the approaches below. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + No filtering. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + + false + + + + + + + + + + + + + + + + m + + + 0.010000000000000 + + + 0.100000000000000 + + + + + + + Radius. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + deg + + + 0 + + + 180.000000000000000 + + + 30.000000000000000 + + + + + + + Angle. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + Cloud subtraction filtering. When a new cloud is added to the map, its points are subtracted from the previous cloud. + + + Qt::PlainText + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + Pose filtering. By comparing poses in the same area, only one cloud in a fixed radius and angle is shown. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + + false + + + + + + + + + + + + 0.010000000000000 + + + 1.000000000000000 + + + 0.010000000000000 + + + 0.020000000000000 + + + + + + + Point radius used to find close points between the current cloud and the previous one. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + deg + + + 0 + + + 180.000000000000000 + + + 30.000000000000000 + + + + + + + Point angle used to keep only points with similar normal between the current cloud and the previous one. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + 1 + + + + + + + Minimum points of the previous cloud in the fixed point radius in order to substract the point in the new cloud. Increasing this value reduces the black contours between clouds. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + + + + Qt::Vertical 20 - 40 + 1625 + + + + + + + + + + + + Occupancy Grid Map + + + false + + + false + + + + + + When the Graph View is visible or if the "Show in 3D map view" below is checked, the grid map is generated using the laser scans or from 3D projection of the clouds (when activated below). + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + + + + 0.750000000000000 + + + 1.000000000000000 + + + 0.750000000000000 + + + + + + + + + + false + + + + + + + Show in 3D map view. + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + m + + + 0.010000000000000 + + + 1.000000000000000 + + + 0.050000000000000 + + + + + + + Resolution (cell size). + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + Opacity. + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + Erode. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + + false + + + + + + + + + Occupancy from 3D cloud projection on the ground + + + true + + + + + + Note that 3D cloud filtering stuff under Map columns in 3D Rendering panel are applied before the projection (except for floor and ceiling filterings). + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + Mininum cluster size. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + 1 + + + 10000 + + + 20 + + + + + + + + + + false + + + + + + + Projection in map frame. On a 3D terrain and a fixed local camera transform (the cloud is created relative to ground), you may want to disable this to do the projection in robot frame instead. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + m + + + 2 + + + 9999.000000000000000 + + + + + + + Maximum obstacles height (0=disabled). + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + Maximum ground normal angle + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + deg + + + 0 + + + 0.000000000000000 + + + 180.000000000000000 + + + 30.000000000000000 + + + + + + + Flat obstacles detected + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + + false + + + + + + + Maximum ground height (0=disabled). + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + m + + + 2 + + + 99999.000000000000000 + + + + + + + + + + + + OctoMap (3D occupancy grid map) + + + true + + + + + + 1 + + + 16 + + + 16 + + + + + + + Octomap maximum tree depth (max 16). The highest depth means the smallest resolution of the map (cell size). At smallest resolution the octomap shows RGB colors. Other resolutions produce z-axis gradient colored octomap. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + + true + + + + + + + Octomap: ground is an obstacle. If not checked, parameters above from 3D cloud projection are used to segment the ground. + + + true + + + Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 1375