diff --git a/guilib/include/rtabmap/gui/MainWindow.h b/guilib/include/rtabmap/gui/MainWindow.h index 5b74efae..718b4671 100644 --- a/guilib/include/rtabmap/gui/MainWindow.h +++ b/guilib/include/rtabmap/gui/MainWindow.h @@ -175,11 +175,13 @@ protected Q_SLOTS: void selectK4A(); void selectRealSense(); void selectRealSense2(); + void selectRealSense2i(); void selectRealSense2L515(); void selectRealSense2Stereo(); void selectStereoDC1394(); void selectStereoFlyCapture2(); void selectStereoZed(); + void selectStereoZedi(); void selectStereoTara(); void selectStereoUsb(); void selectMyntEyeS(); diff --git a/guilib/src/MainWindow.cpp b/guilib/src/MainWindow.cpp index c1911f94..167cfec7 100644 --- a/guilib/src/MainWindow.cpp +++ b/guilib/src/MainWindow.cpp @@ -436,10 +436,12 @@ MainWindow::MainWindow(PreferencesDialog * prefDialog, QWidget * parent, bool sh connect(_ui->actionRealSense_ZR300, SIGNAL(triggered()), this, SLOT(selectRealSense())); connect(_ui->actionRealSense2_SR300, SIGNAL(triggered()), this, SLOT(selectRealSense2())); connect(_ui->actionRealSense2_D400, SIGNAL(triggered()), this, SLOT(selectRealSense2())); + connect(_ui->actionRealSense2_IMU, SIGNAL(triggered()), this, SLOT(selectRealSense2i())); connect(_ui->actionRealSense2_L515, SIGNAL(triggered()), this, SLOT(selectRealSense2L515())); connect(_ui->actionStereoDC1394, SIGNAL(triggered()), this, SLOT(selectStereoDC1394())); connect(_ui->actionStereoFlyCapture2, SIGNAL(triggered()), this, SLOT(selectStereoFlyCapture2())); connect(_ui->actionStereoZed, SIGNAL(triggered()), this, SLOT(selectStereoZed())); + connect(_ui->actionZed_sdk_IMU, SIGNAL(triggered()), this, SLOT(selectStereoZedi())); connect(_ui->actionStereoTara, SIGNAL(triggered()), this, SLOT(selectStereoTara())); connect(_ui->actionStereoUsb, SIGNAL(triggered()), this, SLOT(selectStereoUsb())); connect(_ui->actionRealSense2_T265, SIGNAL(triggered()), this, SLOT(selectRealSense2Stereo())); @@ -457,11 +459,13 @@ MainWindow::MainWindow(PreferencesDialog * prefDialog, QWidget * parent, bool sh _ui->actionRealSense_ZR300->setEnabled(CameraRealSense::available()); _ui->actionRealSense2_SR300->setEnabled(CameraRealSense2::available()); _ui->actionRealSense2_D400->setEnabled(CameraRealSense2::available()); + _ui->actionRealSense2_IMU->setEnabled(CameraRealSense2::available()); _ui->actionRealSense2_L515->setEnabled(CameraRealSense2::available()); _ui->actionRealSense2_T265->setEnabled(CameraRealSense2::available()); _ui->actionStereoDC1394->setEnabled(CameraStereoDC1394::available()); _ui->actionStereoFlyCapture2->setEnabled(CameraStereoFlyCapture2::available()); _ui->actionStereoZed->setEnabled(CameraStereoZed::available()); + _ui->actionZed_sdk_IMU->setEnabled(CameraStereoZed::available()); _ui->actionStereoTara->setEnabled(CameraStereoTara::available()); _ui->actionMYNT_EYE_S_SDK->setEnabled(CameraMyntEye::available()); this->updateSelectSourceMenu(); @@ -4730,10 +4734,12 @@ void MainWindow::updateSelectSourceMenu() _ui->actionRealSense_ZR300->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcRealSense); _ui->actionRealSense2_SR300->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcRealSense2); _ui->actionRealSense2_D400->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcRealSense2); + _ui->actionRealSense2_IMU->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcRealSense2); _ui->actionRealSense2_L515->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcRealSense2); _ui->actionStereoDC1394->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcDC1394); _ui->actionStereoFlyCapture2->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcFlyCapture2); _ui->actionStereoZed->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoZed); + _ui->actionZed_sdk_IMU->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoZed); _ui->actionStereoTara->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoTara); _ui->actionStereoUsb->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoUsb); _ui->actionRealSense2_T265->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoRealSense2); @@ -6481,10 +6487,14 @@ void MainWindow::selectRealSense2() { _preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcRealSense2); } -void MainWindow::selectRealSense2L515() +void MainWindow::selectRealSense2i() { _preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcRealSense2, 1); } +void MainWindow::selectRealSense2L515() +{ + _preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcRealSense2, 2); +} void MainWindow::selectRealSense2Stereo() { @@ -6504,6 +6514,10 @@ void MainWindow::selectStereoZed() { _preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcStereoZed); } +void MainWindow::selectStereoZedi() +{ + _preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcStereoZed, 1); +} void MainWindow::selectStereoTara() { diff --git a/guilib/src/PreferencesDialog.cpp b/guilib/src/PreferencesDialog.cpp index b42ae4f4..edece106 100644 --- a/guilib/src/PreferencesDialog.cpp +++ b/guilib/src/PreferencesDialog.cpp @@ -3723,13 +3723,22 @@ void PreferencesDialog::updateParameters(const ParametersMap & parameters, bool void PreferencesDialog::selectSourceDriver(Src src, int variant) { _ui->comboBox_imuFilter_strategy->setCurrentIndex(0); - this->setParameter(Parameters::kOptimizerGravitySigma(), uNumber2Str(Parameters::defaultOptimizerGravitySigma())); + this->setParameter(Parameters::kOptimizerGravitySigma(), "0.0"); if(src >= kSrcRGBD && srccomboBox_sourceType->setCurrentIndex(0); _ui->comboBox_cameraRGBD->setCurrentIndex(src - kSrcRGBD); - if(src == kSrcOpenNI_PCL) + if(src == kSrcFreenect) + { + if(Optimizer::isAvailable(Optimizer::kTypeG2O) || Optimizer::isAvailable(Optimizer::kTypeGTSAM)) + { + // enable IMU + _ui->comboBox_imuFilter_strategy->setCurrentIndex(1); + this->setParameter(Parameters::kOptimizerGravitySigma(), "0.3"); + } + } + else if(src == kSrcOpenNI_PCL) { _ui->lineEdit_openniOniPath->clear(); } @@ -3749,7 +3758,7 @@ void PreferencesDialog::selectSourceDriver(Src src, int variant) } else if (src == kSrcRealSense2) { - if(variant > 0) // L515 + if(variant > 1) // L515 { _ui->spinBox_rs2_width->setValue(1280); _ui->spinBox_rs2_height->setValue(720); @@ -3761,7 +3770,7 @@ void PreferencesDialog::selectSourceDriver(Src src, int variant) _ui->spinBox_rs2_height->setValue(480); _ui->spinBox_rs2_rate->setValue(60); } - if(Optimizer::isAvailable(Optimizer::kTypeG2O) || Optimizer::isAvailable(Optimizer::kTypeGTSAM)) + if(variant>0 && (Optimizer::isAvailable(Optimizer::kTypeG2O) || Optimizer::isAvailable(Optimizer::kTypeGTSAM))) { // enable IMU _ui->comboBox_imuFilter_strategy->setCurrentIndex(1); @@ -3775,7 +3784,7 @@ void PreferencesDialog::selectSourceDriver(Src src, int variant) _ui->comboBox_cameraStereo->setCurrentIndex(src - kSrcStereo); if(Optimizer::isAvailable(Optimizer::kTypeG2O) || Optimizer::isAvailable(Optimizer::kTypeGTSAM)) { - if(src == kSrcStereoZed) // Zedm, Zed2 + if(src == kSrcStereoZed && variant>0) // Zedm, Zed2 { // enable IMU (zed sends already quaternion) _ui->comboBox_imuFilter_strategy->setCurrentIndex(0); diff --git a/guilib/src/ui/mainWindow.ui b/guilib/src/ui/mainWindow.ui index 7d775c96..7e8714a1 100644 --- a/guilib/src/ui/mainWindow.ui +++ b/guilib/src/ui/mainWindow.ui @@ -207,6 +207,7 @@ :/images/d435.png:/images/d435.png + @@ -267,6 +268,7 @@ :/images/zed.png:/images/zed.png + @@ -1617,6 +1619,22 @@ RealSense2 + + + true + + + Zed sdk (Zedm, Zed2) + + + + + true + + + RealSense2 (D435i) + +