mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
Bump 0.20.8 version. Parameters: updated default of Vis/CorGuessWinSize=40 (was 20), GFTT/MinDistance=7 (was 3), Optimizer/GravitySigma=0.3 if built with g2o or gtsam. Those parameters help for smooth tracking on latest sensors with higher resolution and use IMU by default if available. Updated docker jfr2018 to use original parameters. CameraStereoZed: wait for imu to be available before sending frames (Zed-m and Zed2).
This commit is contained in:
@@ -21,7 +21,7 @@ SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake_modules")
|
|||||||
#######################
|
#######################
|
||||||
SET(RTABMAP_MAJOR_VERSION 0)
|
SET(RTABMAP_MAJOR_VERSION 0)
|
||||||
SET(RTABMAP_MINOR_VERSION 20)
|
SET(RTABMAP_MINOR_VERSION 20)
|
||||||
SET(RTABMAP_PATCH_VERSION 7)
|
SET(RTABMAP_PATCH_VERSION 8)
|
||||||
SET(RTABMAP_VERSION
|
SET(RTABMAP_VERSION
|
||||||
${RTABMAP_MAJOR_VERSION}.${RTABMAP_MINOR_VERSION}.${RTABMAP_PATCH_VERSION})
|
${RTABMAP_MAJOR_VERSION}.${RTABMAP_MINOR_VERSION}.${RTABMAP_PATCH_VERSION})
|
||||||
|
|
||||||
|
|||||||
@@ -296,7 +296,7 @@ class RTABMAP_EXP Parameters
|
|||||||
RTABMAP_PARAM(FAST, CV, int, 0, "Enable FastCV implementation if non-zero (and RTAB-Map is built with FastCV support). Values should be 9 and 10.");
|
RTABMAP_PARAM(FAST, CV, int, 0, "Enable FastCV implementation if non-zero (and RTAB-Map is built with FastCV support). Values should be 9 and 10.");
|
||||||
|
|
||||||
RTABMAP_PARAM(GFTT, QualityLevel, double, 0.001, "");
|
RTABMAP_PARAM(GFTT, QualityLevel, double, 0.001, "");
|
||||||
RTABMAP_PARAM(GFTT, MinDistance, double, 3, "");
|
RTABMAP_PARAM(GFTT, MinDistance, double, 7, "");
|
||||||
RTABMAP_PARAM(GFTT, BlockSize, int, 3, "");
|
RTABMAP_PARAM(GFTT, BlockSize, int, 3, "");
|
||||||
RTABMAP_PARAM(GFTT, UseHarrisDetector, bool, false, "");
|
RTABMAP_PARAM(GFTT, UseHarrisDetector, bool, false, "");
|
||||||
RTABMAP_PARAM(GFTT, K, double, 0.04, "");
|
RTABMAP_PARAM(GFTT, K, double, 0.04, "");
|
||||||
@@ -408,7 +408,11 @@ class RTABMAP_EXP Parameters
|
|||||||
RTABMAP_PARAM(Optimizer, Robust, bool, false, uFormat("Robust graph optimization using Vertigo (only work for g2o and GTSAM optimization strategies). Not compatible with \"%s\" if enabled.", kRGBDOptimizeMaxError().c_str()));
|
RTABMAP_PARAM(Optimizer, Robust, bool, false, uFormat("Robust graph optimization using Vertigo (only work for g2o and GTSAM optimization strategies). Not compatible with \"%s\" if enabled.", kRGBDOptimizeMaxError().c_str()));
|
||||||
RTABMAP_PARAM(Optimizer, PriorsIgnored, bool, true, "Ignore prior constraints (global pose or GPS) while optimizing. Currently only g2o and gtsam optimization supports this.");
|
RTABMAP_PARAM(Optimizer, PriorsIgnored, bool, true, "Ignore prior constraints (global pose or GPS) while optimizing. Currently only g2o and gtsam optimization supports this.");
|
||||||
RTABMAP_PARAM(Optimizer, LandmarksIgnored, bool, false, "Ignore landmark constraints while optimizing. Currently only g2o and gtsam optimization supports this.");
|
RTABMAP_PARAM(Optimizer, LandmarksIgnored, bool, false, "Ignore landmark constraints while optimizing. Currently only g2o and gtsam optimization supports this.");
|
||||||
|
#if defined(RTABMAP_G2O) || defined(RTABMAP_GTSAM)
|
||||||
|
RTABMAP_PARAM(Optimizer, GravitySigma, float, 0.3, uFormat("Gravity sigma value (>=0, typically between 0.1 and 0.3). Optimization is done while preserving gravity orientation of the poses. This should be used only with visual/lidar inertial odometry approaches, for which we assume that all odometry poses are aligned with gravity. Set to 0 to disable gravity constraints. Currently supported only with g2o and GTSAM optimization strategies (see %s).", kOptimizerStrategy().c_str()));
|
||||||
|
#else
|
||||||
RTABMAP_PARAM(Optimizer, GravitySigma, float, 0.0, uFormat("Gravity sigma value (>=0, typically between 0.1 and 0.3). Optimization is done while preserving gravity orientation of the poses. This should be used only with visual/lidar inertial odometry approaches, for which we assume that all odometry poses are aligned with gravity. Set to 0 to disable gravity constraints. Currently supported only with g2o and GTSAM optimization strategies (see %s).", kOptimizerStrategy().c_str()));
|
RTABMAP_PARAM(Optimizer, GravitySigma, float, 0.0, uFormat("Gravity sigma value (>=0, typically between 0.1 and 0.3). Optimization is done while preserving gravity orientation of the poses. This should be used only with visual/lidar inertial odometry approaches, for which we assume that all odometry poses are aligned with gravity. Set to 0 to disable gravity constraints. Currently supported only with g2o and GTSAM optimization strategies (see %s).", kOptimizerStrategy().c_str()));
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef RTABMAP_ORB_SLAM2
|
#ifdef RTABMAP_ORB_SLAM2
|
||||||
RTABMAP_PARAM(g2o, Solver, int, 3, "0=csparse 1=pcg 2=cholmod 3=Eigen");
|
RTABMAP_PARAM(g2o, Solver, int, 3, "0=csparse 1=pcg 2=cholmod 3=Eigen");
|
||||||
@@ -605,7 +609,7 @@ class RTABMAP_EXP Parameters
|
|||||||
RTABMAP_PARAM(Vis, CorType, int, 0, "Correspondences computation approach: 0=Features Matching, 1=Optical Flow");
|
RTABMAP_PARAM(Vis, CorType, int, 0, "Correspondences computation approach: 0=Features Matching, 1=Optical Flow");
|
||||||
RTABMAP_PARAM(Vis, CorNNType, int, 1, uFormat("[%s=0] kNNFlannNaive=0, kNNFlannKdTree=1, kNNFlannLSH=2, kNNBruteForce=3, kNNBruteForceGPU=4, BruteForceCrossCheck=5, SuperGlue=6, GMS=7. Used for features matching approach.", kVisCorType().c_str()));
|
RTABMAP_PARAM(Vis, CorNNType, int, 1, uFormat("[%s=0] kNNFlannNaive=0, kNNFlannKdTree=1, kNNFlannLSH=2, kNNBruteForce=3, kNNBruteForceGPU=4, BruteForceCrossCheck=5, SuperGlue=6, GMS=7. Used for features matching approach.", kVisCorType().c_str()));
|
||||||
RTABMAP_PARAM(Vis, CorNNDR, float, 0.8, uFormat("[%s=0] NNDR: nearest neighbor distance ratio. Used for knn features matching approach.", kVisCorType().c_str()));
|
RTABMAP_PARAM(Vis, CorNNDR, float, 0.8, uFormat("[%s=0] NNDR: nearest neighbor distance ratio. Used for knn features matching approach.", kVisCorType().c_str()));
|
||||||
RTABMAP_PARAM(Vis, CorGuessWinSize, int, 20, uFormat("[%s=0] Matching window size (pixels) around projected points when a guess transform is provided to find correspondences. 0 means disabled.", kVisCorType().c_str()));
|
RTABMAP_PARAM(Vis, CorGuessWinSize, int, 40, uFormat("[%s=0] Matching window size (pixels) around projected points when a guess transform is provided to find correspondences. 0 means disabled.", kVisCorType().c_str()));
|
||||||
RTABMAP_PARAM(Vis, CorGuessMatchToProjection, bool, false, uFormat("[%s=0] Match frame's corners to source's projected points (when guess transform is provided) instead of projected points to frame's corners.", kVisCorType().c_str()));
|
RTABMAP_PARAM(Vis, CorGuessMatchToProjection, bool, false, uFormat("[%s=0] Match frame's corners to source's projected points (when guess transform is provided) instead of projected points to frame's corners.", kVisCorType().c_str()));
|
||||||
RTABMAP_PARAM(Vis, CorFlowWinSize, int, 16, uFormat("[%s=1] See cv::calcOpticalFlowPyrLK(). Used for optical flow approach.", kVisCorType().c_str()));
|
RTABMAP_PARAM(Vis, CorFlowWinSize, int, 16, uFormat("[%s=1] See cv::calcOpticalFlowPyrLK(). Used for optical flow approach.", kVisCorType().c_str()));
|
||||||
RTABMAP_PARAM(Vis, CorFlowIterations, int, 30, uFormat("[%s=1] See cv::calcOpticalFlowPyrLK(). Used for optical flow approach.", kVisCorType().c_str()));
|
RTABMAP_PARAM(Vis, CorFlowIterations, int, 30, uFormat("[%s=1] See cv::calcOpticalFlowPyrLK(). Used for optical flow approach.", kVisCorType().c_str()));
|
||||||
|
|||||||
@@ -113,7 +113,10 @@ CameraRealSense2::~CameraRealSense2()
|
|||||||
UWARN("%s", error.what());
|
UWARN("%s", error.what());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef WIN32
|
||||||
dev_[i]->hardware_reset(); // To avoid freezing on some Windows computers in the following destructor
|
dev_[i]->hardware_reset(); // To avoid freezing on some Windows computers in the following destructor
|
||||||
|
// Don't do this on linux (tested on Ubuntu 18.04, realsense v2.41.0): T265 cannot be restarted
|
||||||
|
#endif
|
||||||
delete dev_[i];
|
delete dev_[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -565,7 +565,22 @@ SensorData CameraStereoZed::captureImage(CameraInfo * info)
|
|||||||
|
|
||||||
if(res==sl::SUCCESS)
|
if(res==sl::SUCCESS)
|
||||||
#else
|
#else
|
||||||
sl::ERROR_CODE res = zed_->grab(rparam);
|
|
||||||
|
sl::ERROR_CODE res;
|
||||||
|
bool imuReceived = true;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
res = zed_->grab(rparam);
|
||||||
|
|
||||||
|
// If the sensor supports IMU, wait IMU to be available before sending data.
|
||||||
|
if(imuPublishingThread_ == 0 && !imuLocalTransform_.isNull())
|
||||||
|
{
|
||||||
|
sl::SensorsData imudatatmp;
|
||||||
|
res = zed_->getSensorsData(imudatatmp, sl::TIME_REFERENCE::IMAGE);
|
||||||
|
imuReceived = res == sl::ERROR_CODE::SUCCESS && imudatatmp.imu.is_available && imudatatmp.imu.timestamp.data_ns != 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while(src_ == CameraVideo::kUsbDevice && (res!=sl::ERROR_CODE::SUCCESS || !imuReceived) && timer.elapsed() < 2.0);
|
||||||
|
|
||||||
if(res==sl::ERROR_CODE::SUCCESS)
|
if(res==sl::ERROR_CODE::SUCCESS)
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -133,12 +133,14 @@ do
|
|||||||
--RGBD/ProximityBySpace false\
|
--RGBD/ProximityBySpace false\
|
||||||
--Rtabmap/DetectionRate 2\
|
--Rtabmap/DetectionRate 2\
|
||||||
--Kp/FlannRebalancingFactor 1.0\
|
--Kp/FlannRebalancingFactor 1.0\
|
||||||
|
--GFTT/MinDistance 3\
|
||||||
--Odom/Strategy $STRATEGY\
|
--Odom/Strategy $STRATEGY\
|
||||||
--Mem/STMSize 30\
|
--Mem/STMSize 30\
|
||||||
--Mem/UseOdomFeatures false \
|
--Mem/UseOdomFeatures false \
|
||||||
--Mem/BinDataKept false \
|
--Mem/BinDataKept false \
|
||||||
--Rtabmap/CreateIntermediateNodes false\
|
--Rtabmap/CreateIntermediateNodes false\
|
||||||
--Vis/CorNNDR 0.6 \
|
--Vis/CorNNDR 0.6 \
|
||||||
|
--Vis/CorGuessWinSize 20 \
|
||||||
$V203_params\
|
$V203_params\
|
||||||
$F2F_params\
|
$F2F_params\
|
||||||
--OdomORBSLAM2/VocPath /root/ORBvoc.txt\
|
--OdomORBSLAM2/VocPath /root/ORBvoc.txt\
|
||||||
|
|||||||
@@ -125,6 +125,7 @@ do
|
|||||||
--Mem/UseOdomFeatures false \
|
--Mem/UseOdomFeatures false \
|
||||||
--Mem/BinDataKept false \
|
--Mem/BinDataKept false \
|
||||||
--Vis/CorNNDR 0.6 \
|
--Vis/CorNNDR 0.6 \
|
||||||
|
--Vis/CorGuessWinSize 20 \
|
||||||
$SCAN \
|
$SCAN \
|
||||||
--gt $KITTI_ROOT_PATH"/devkit/cpp/data/odometry/poses/$d.txt"\
|
--gt $KITTI_ROOT_PATH"/devkit/cpp/data/odometry/poses/$d.txt"\
|
||||||
--output "$KITTI_RESULTS_PATH/$d"\
|
--output "$KITTI_RESULTS_PATH/$d"\
|
||||||
|
|||||||
@@ -78,12 +78,14 @@ do
|
|||||||
--RGBD/AngularUpdate 0\
|
--RGBD/AngularUpdate 0\
|
||||||
--Rtabmap/DetectionRate $DETECTION_RATE\
|
--Rtabmap/DetectionRate $DETECTION_RATE\
|
||||||
--Kp/FlannRebalancingFactor 1.0\
|
--Kp/FlannRebalancingFactor 1.0\
|
||||||
|
--GFTT/MinDistance 3\
|
||||||
--Odom/Strategy $STRATEGY\
|
--Odom/Strategy $STRATEGY\
|
||||||
--Mem/STMSize 30\
|
--Mem/STMSize 30\
|
||||||
--Mem/UseOdomFeatures false \
|
--Mem/UseOdomFeatures false \
|
||||||
--Mem/BinDataKept true \
|
--Mem/BinDataKept true \
|
||||||
--Rtabmap/CreateIntermediateNodes false\
|
--Rtabmap/CreateIntermediateNodes false\
|
||||||
--Vis/CorNNDR 0.6 \
|
--Vis/CorNNDR 0.6 \
|
||||||
|
--Vis/CorGuessWinSize 20 \
|
||||||
$F2F_params\
|
$F2F_params\
|
||||||
--OdomORBSLAM2/VocPath /root/ORBvoc.txt\
|
--OdomORBSLAM2/VocPath /root/ORBvoc.txt\
|
||||||
--OdomFovis/MinFeaturesForEstimate 10\
|
--OdomFovis/MinFeaturesForEstimate 10\
|
||||||
|
|||||||
@@ -175,13 +175,11 @@ protected Q_SLOTS:
|
|||||||
void selectK4A();
|
void selectK4A();
|
||||||
void selectRealSense();
|
void selectRealSense();
|
||||||
void selectRealSense2();
|
void selectRealSense2();
|
||||||
void selectRealSense2i();
|
|
||||||
void selectRealSense2L515();
|
void selectRealSense2L515();
|
||||||
void selectRealSense2Stereo();
|
void selectRealSense2Stereo();
|
||||||
void selectStereoDC1394();
|
void selectStereoDC1394();
|
||||||
void selectStereoFlyCapture2();
|
void selectStereoFlyCapture2();
|
||||||
void selectStereoZed();
|
void selectStereoZed();
|
||||||
void selectStereoZedi();
|
|
||||||
void selectStereoTara();
|
void selectStereoTara();
|
||||||
void selectStereoUsb();
|
void selectStereoUsb();
|
||||||
void selectMyntEyeS();
|
void selectMyntEyeS();
|
||||||
|
|||||||
@@ -436,12 +436,10 @@ MainWindow::MainWindow(PreferencesDialog * prefDialog, QWidget * parent, bool sh
|
|||||||
connect(_ui->actionRealSense_ZR300, SIGNAL(triggered()), this, SLOT(selectRealSense()));
|
connect(_ui->actionRealSense_ZR300, SIGNAL(triggered()), this, SLOT(selectRealSense()));
|
||||||
connect(_ui->actionRealSense2_SR300, SIGNAL(triggered()), this, SLOT(selectRealSense2()));
|
connect(_ui->actionRealSense2_SR300, SIGNAL(triggered()), this, SLOT(selectRealSense2()));
|
||||||
connect(_ui->actionRealSense2_D400, 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->actionRealSense2_L515, SIGNAL(triggered()), this, SLOT(selectRealSense2L515()));
|
||||||
connect(_ui->actionStereoDC1394, SIGNAL(triggered()), this, SLOT(selectStereoDC1394()));
|
connect(_ui->actionStereoDC1394, SIGNAL(triggered()), this, SLOT(selectStereoDC1394()));
|
||||||
connect(_ui->actionStereoFlyCapture2, SIGNAL(triggered()), this, SLOT(selectStereoFlyCapture2()));
|
connect(_ui->actionStereoFlyCapture2, SIGNAL(triggered()), this, SLOT(selectStereoFlyCapture2()));
|
||||||
connect(_ui->actionStereoZed, SIGNAL(triggered()), this, SLOT(selectStereoZed()));
|
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->actionStereoTara, SIGNAL(triggered()), this, SLOT(selectStereoTara()));
|
||||||
connect(_ui->actionStereoUsb, SIGNAL(triggered()), this, SLOT(selectStereoUsb()));
|
connect(_ui->actionStereoUsb, SIGNAL(triggered()), this, SLOT(selectStereoUsb()));
|
||||||
connect(_ui->actionRealSense2_T265, SIGNAL(triggered()), this, SLOT(selectRealSense2Stereo()));
|
connect(_ui->actionRealSense2_T265, SIGNAL(triggered()), this, SLOT(selectRealSense2Stereo()));
|
||||||
@@ -459,13 +457,11 @@ MainWindow::MainWindow(PreferencesDialog * prefDialog, QWidget * parent, bool sh
|
|||||||
_ui->actionRealSense_ZR300->setEnabled(CameraRealSense::available());
|
_ui->actionRealSense_ZR300->setEnabled(CameraRealSense::available());
|
||||||
_ui->actionRealSense2_SR300->setEnabled(CameraRealSense2::available());
|
_ui->actionRealSense2_SR300->setEnabled(CameraRealSense2::available());
|
||||||
_ui->actionRealSense2_D400->setEnabled(CameraRealSense2::available());
|
_ui->actionRealSense2_D400->setEnabled(CameraRealSense2::available());
|
||||||
_ui->actionRealSense2_IMU->setEnabled(CameraRealSense2::available());
|
|
||||||
_ui->actionRealSense2_L515->setEnabled(CameraRealSense2::available());
|
_ui->actionRealSense2_L515->setEnabled(CameraRealSense2::available());
|
||||||
_ui->actionRealSense2_T265->setEnabled(CameraRealSense2::available());
|
_ui->actionRealSense2_T265->setEnabled(CameraRealSense2::available());
|
||||||
_ui->actionStereoDC1394->setEnabled(CameraStereoDC1394::available());
|
_ui->actionStereoDC1394->setEnabled(CameraStereoDC1394::available());
|
||||||
_ui->actionStereoFlyCapture2->setEnabled(CameraStereoFlyCapture2::available());
|
_ui->actionStereoFlyCapture2->setEnabled(CameraStereoFlyCapture2::available());
|
||||||
_ui->actionStereoZed->setEnabled(CameraStereoZed::available());
|
_ui->actionStereoZed->setEnabled(CameraStereoZed::available());
|
||||||
_ui->actionZed_sdk_IMU->setEnabled(CameraStereoZed::available());
|
|
||||||
_ui->actionStereoTara->setEnabled(CameraStereoTara::available());
|
_ui->actionStereoTara->setEnabled(CameraStereoTara::available());
|
||||||
_ui->actionMYNT_EYE_S_SDK->setEnabled(CameraMyntEye::available());
|
_ui->actionMYNT_EYE_S_SDK->setEnabled(CameraMyntEye::available());
|
||||||
this->updateSelectSourceMenu();
|
this->updateSelectSourceMenu();
|
||||||
@@ -4729,17 +4725,15 @@ void MainWindow::updateSelectSourceMenu()
|
|||||||
_ui->actionOpenNI2_sense->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcOpenNI2);
|
_ui->actionOpenNI2_sense->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcOpenNI2);
|
||||||
_ui->actionFreenect2->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcFreenect2);
|
_ui->actionFreenect2->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcFreenect2);
|
||||||
_ui->actionKinect_for_Windows_SDK_v2->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcK4W2);
|
_ui->actionKinect_for_Windows_SDK_v2->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcK4W2);
|
||||||
_ui->actionKinect_for_Azure->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcK4W2);
|
_ui->actionKinect_for_Azure->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcK4A);
|
||||||
_ui->actionRealSense_R200->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcRealSense);
|
_ui->actionRealSense_R200->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcRealSense);
|
||||||
_ui->actionRealSense_ZR300->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcRealSense);
|
_ui->actionRealSense_ZR300->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcRealSense);
|
||||||
_ui->actionRealSense2_SR300->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcRealSense2);
|
_ui->actionRealSense2_SR300->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcRealSense2);
|
||||||
_ui->actionRealSense2_D400->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->actionRealSense2_L515->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcRealSense2);
|
||||||
_ui->actionStereoDC1394->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcDC1394);
|
_ui->actionStereoDC1394->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcDC1394);
|
||||||
_ui->actionStereoFlyCapture2->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcFlyCapture2);
|
_ui->actionStereoFlyCapture2->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcFlyCapture2);
|
||||||
_ui->actionStereoZed->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoZed);
|
_ui->actionStereoZed->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoZed);
|
||||||
_ui->actionZed_sdk_IMU->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoZed);
|
|
||||||
_ui->actionStereoTara->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoTara);
|
_ui->actionStereoTara->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoTara);
|
||||||
_ui->actionStereoUsb->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoUsb);
|
_ui->actionStereoUsb->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoUsb);
|
||||||
_ui->actionRealSense2_T265->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoRealSense2);
|
_ui->actionRealSense2_T265->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoRealSense2);
|
||||||
@@ -6487,13 +6481,9 @@ void MainWindow::selectRealSense2()
|
|||||||
{
|
{
|
||||||
_preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcRealSense2);
|
_preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcRealSense2);
|
||||||
}
|
}
|
||||||
void MainWindow::selectRealSense2i()
|
|
||||||
{
|
|
||||||
_preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcRealSense2, 1);
|
|
||||||
}
|
|
||||||
void MainWindow::selectRealSense2L515()
|
void MainWindow::selectRealSense2L515()
|
||||||
{
|
{
|
||||||
_preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcRealSense2, 2);
|
_preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcRealSense2, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::selectRealSense2Stereo()
|
void MainWindow::selectRealSense2Stereo()
|
||||||
@@ -6514,10 +6504,6 @@ void MainWindow::selectStereoZed()
|
|||||||
{
|
{
|
||||||
_preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcStereoZed);
|
_preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcStereoZed);
|
||||||
}
|
}
|
||||||
void MainWindow::selectStereoZedi()
|
|
||||||
{
|
|
||||||
_preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcStereoZed, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::selectStereoTara()
|
void MainWindow::selectStereoTara()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1978,7 +1978,7 @@ void PreferencesDialog::resetSettings(QGroupBox * groupBox)
|
|||||||
_ui->lineEdit_cameraImages_imu_transform->setText("0 0 1 0 -1 0 1 0 0");
|
_ui->lineEdit_cameraImages_imu_transform->setText("0 0 1 0 -1 0 1 0 0");
|
||||||
_ui->spinBox_cameraImages_max_imu_rate->setValue(0);
|
_ui->spinBox_cameraImages_max_imu_rate->setValue(0);
|
||||||
|
|
||||||
_ui->comboBox_imuFilter_strategy->setCurrentIndex(0);
|
_ui->comboBox_imuFilter_strategy->setCurrentIndex(1);
|
||||||
_ui->doubleSpinBox_imuFilterMadgwickGain->setValue(Parameters::defaultImuFilterMadgwickGain());
|
_ui->doubleSpinBox_imuFilterMadgwickGain->setValue(Parameters::defaultImuFilterMadgwickGain());
|
||||||
_ui->doubleSpinBox_imuFilterMadgwickZeta->setValue(Parameters::defaultImuFilterMadgwickZeta());
|
_ui->doubleSpinBox_imuFilterMadgwickZeta->setValue(Parameters::defaultImuFilterMadgwickZeta());
|
||||||
_ui->doubleSpinBox_imuFilterComplementaryGainAcc->setValue(Parameters::defaultImuFilterComplementaryGainAcc());
|
_ui->doubleSpinBox_imuFilterComplementaryGainAcc->setValue(Parameters::defaultImuFilterComplementaryGainAcc());
|
||||||
@@ -3722,23 +3722,15 @@ void PreferencesDialog::updateParameters(const ParametersMap & parameters, bool
|
|||||||
|
|
||||||
void PreferencesDialog::selectSourceDriver(Src src, int variant)
|
void PreferencesDialog::selectSourceDriver(Src src, int variant)
|
||||||
{
|
{
|
||||||
_ui->comboBox_imuFilter_strategy->setCurrentIndex(0);
|
_ui->comboBox_imuFilter_strategy->setCurrentIndex(1);
|
||||||
this->setParameter(Parameters::kOptimizerGravitySigma(), "0.0");
|
_3dRenderingRoiRatios[0]->setText("0.0 0.0 0.0 0.0");
|
||||||
|
_3dRenderingRoiRatios[1]->setText("0.0 0.0 0.0 0.0");
|
||||||
|
|
||||||
if(src >= kSrcRGBD && src<kSrcStereo)
|
if(src >= kSrcRGBD && src<kSrcStereo)
|
||||||
{
|
{
|
||||||
_ui->comboBox_sourceType->setCurrentIndex(0);
|
_ui->comboBox_sourceType->setCurrentIndex(0);
|
||||||
_ui->comboBox_cameraRGBD->setCurrentIndex(src - kSrcRGBD);
|
_ui->comboBox_cameraRGBD->setCurrentIndex(src - kSrcRGBD);
|
||||||
if(src == kSrcFreenect)
|
if(src == kSrcOpenNI_PCL)
|
||||||
{
|
|
||||||
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();
|
_ui->lineEdit_openniOniPath->clear();
|
||||||
}
|
}
|
||||||
@@ -3749,16 +3741,12 @@ void PreferencesDialog::selectSourceDriver(Src src, int variant)
|
|||||||
else if (src == kSrcK4A)
|
else if (src == kSrcK4A)
|
||||||
{
|
{
|
||||||
_ui->lineEdit_k4a_mkv->clear();
|
_ui->lineEdit_k4a_mkv->clear();
|
||||||
if(Optimizer::isAvailable(Optimizer::kTypeG2O) || Optimizer::isAvailable(Optimizer::kTypeGTSAM))
|
_3dRenderingRoiRatios[0]->setText("0.05 0.05 0.05 0.05");
|
||||||
{
|
_3dRenderingRoiRatios[1]->setText("0.05 0.05 0.05 0.05");
|
||||||
// enable IMU
|
|
||||||
_ui->comboBox_imuFilter_strategy->setCurrentIndex(1);
|
|
||||||
this->setParameter(Parameters::kOptimizerGravitySigma(), "0.3");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (src == kSrcRealSense2)
|
else if (src == kSrcRealSense2)
|
||||||
{
|
{
|
||||||
if(variant > 1) // L515
|
if(variant > 0) // L515
|
||||||
{
|
{
|
||||||
_ui->spinBox_rs2_width->setValue(1280);
|
_ui->spinBox_rs2_width->setValue(1280);
|
||||||
_ui->spinBox_rs2_height->setValue(720);
|
_ui->spinBox_rs2_height->setValue(720);
|
||||||
@@ -3770,38 +3758,17 @@ void PreferencesDialog::selectSourceDriver(Src src, int variant)
|
|||||||
_ui->spinBox_rs2_height->setValue(480);
|
_ui->spinBox_rs2_height->setValue(480);
|
||||||
_ui->spinBox_rs2_rate->setValue(60);
|
_ui->spinBox_rs2_rate->setValue(60);
|
||||||
}
|
}
|
||||||
if(variant>0 && (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 >= kSrcStereo && src<kSrcRGB)
|
else if(src >= kSrcStereo && src<kSrcRGB)
|
||||||
{
|
{
|
||||||
_ui->comboBox_sourceType->setCurrentIndex(1);
|
_ui->comboBox_sourceType->setCurrentIndex(1);
|
||||||
_ui->comboBox_cameraStereo->setCurrentIndex(src - kSrcStereo);
|
_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
|
// disable IMU filtering (zed sends already quaternion)
|
||||||
{
|
_ui->comboBox_imuFilter_strategy->setCurrentIndex(0);
|
||||||
// enable IMU (zed sends already quaternion)
|
|
||||||
_ui->comboBox_imuFilter_strategy->setCurrentIndex(0);
|
|
||||||
this->setParameter(Parameters::kOptimizerGravitySigma(), "0.3");
|
|
||||||
}
|
|
||||||
else if(src == kSrcStereoRealSense2) // T265
|
|
||||||
{
|
|
||||||
// enable IMU
|
|
||||||
_ui->comboBox_imuFilter_strategy->setCurrentIndex(1);
|
|
||||||
this->setParameter(Parameters::kOptimizerGravitySigma(), "0.3");
|
|
||||||
}
|
|
||||||
else if(src == kSrcStereoMyntEye)
|
|
||||||
{
|
|
||||||
// enable IMU
|
|
||||||
_ui->comboBox_imuFilter_strategy->setCurrentIndex(1);
|
|
||||||
this->setParameter(Parameters::kOptimizerGravitySigma(), "0.3");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(src >= kSrcRGB && src<kSrcDatabase)
|
else if(src >= kSrcRGB && src<kSrcDatabase)
|
||||||
|
|||||||
@@ -207,7 +207,6 @@
|
|||||||
<normaloff>:/images/d435.png</normaloff>:/images/d435.png</iconset>
|
<normaloff>:/images/d435.png</normaloff>:/images/d435.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<addaction name="actionRealSense2_D400"/>
|
<addaction name="actionRealSense2_D400"/>
|
||||||
<addaction name="actionRealSense2_IMU"/>
|
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QMenu" name="menuRealSense_SR300">
|
<widget class="QMenu" name="menuRealSense_SR300">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
@@ -268,7 +267,6 @@
|
|||||||
<normaloff>:/images/zed.png</normaloff>:/images/zed.png</iconset>
|
<normaloff>:/images/zed.png</normaloff>:/images/zed.png</iconset>
|
||||||
</property>
|
</property>
|
||||||
<addaction name="actionStereoZed"/>
|
<addaction name="actionStereoZed"/>
|
||||||
<addaction name="actionZed_sdk_IMU"/>
|
|
||||||
<addaction name="actionStereoUsb"/>
|
<addaction name="actionStereoUsb"/>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QMenu" name="menuTara_Camera">
|
<widget class="QMenu" name="menuTara_Camera">
|
||||||
@@ -1619,22 +1617,6 @@
|
|||||||
<string>RealSense2</string>
|
<string>RealSense2</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionZed_sdk_IMU">
|
|
||||||
<property name="checkable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Zed sdk (Zedm, Zed2)</string>
|
|
||||||
</property>
|
|
||||||
</action>
|
|
||||||
<action name="actionRealSense2_IMU">
|
|
||||||
<property name="checkable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>RealSense2 (D435i)</string>
|
|
||||||
</property>
|
|
||||||
</action>
|
|
||||||
</widget>
|
</widget>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
<customwidget>
|
<customwidget>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<package>
|
<package>
|
||||||
<name>rtabmap</name>
|
<name>rtabmap</name>
|
||||||
<version>0.20.7</version>
|
<version>0.20.8</version>
|
||||||
<description>RTAB-Map's standalone library. RTAB-Map is a RGB-D SLAM approach with real-time constraints.</description>
|
<description>RTAB-Map's standalone library. RTAB-Map is a RGB-D SLAM approach with real-time constraints.</description>
|
||||||
<maintainer email="matlabbe@gmail.com">Mathieu Labbe</maintainer>
|
<maintainer email="matlabbe@gmail.com">Mathieu Labbe</maintainer>
|
||||||
<author>Mathieu Labbe</author>
|
<author>Mathieu Labbe</author>
|
||||||
|
|||||||
Reference in New Issue
Block a user