mirror of
https://github.com/introlab/rtabmap.git
synced 2026-10-13 05:19:51 +08:00
UI: Exposed more depthai options, setting default rectification alpha to -1 to avoid OAK-D Pro crash
This commit is contained in:
@@ -57,6 +57,9 @@ public:
|
|||||||
|
|
||||||
void setOutputMode(int outputMode = 0);
|
void setOutputMode(int outputMode = 0);
|
||||||
void setDepthProfile(int confThreshold = 200, int lrcThreshold = 5);
|
void setDepthProfile(int confThreshold = 200, int lrcThreshold = 5);
|
||||||
|
void setExtendedDisparity(bool extendedDisparity);
|
||||||
|
void setSubpixelMode(bool enabled, int fractionalBits = 3);
|
||||||
|
void setCompanding(bool enabled, int width=96);
|
||||||
void setRectification(bool useSpecTranslation, float alphaScaling = 0.0f);
|
void setRectification(bool useSpecTranslation, float alphaScaling = 0.0f);
|
||||||
void setIMU(bool imuPublished, bool publishInterIMU);
|
void setIMU(bool imuPublished, bool publishInterIMU);
|
||||||
void setIrIntensity(float dotIntensity = 0.0f, float floodIntensity = 0.0f);
|
void setIrIntensity(float dotIntensity = 0.0f, float floodIntensity = 0.0f);
|
||||||
@@ -82,6 +85,9 @@ private:
|
|||||||
int confThreshold_;
|
int confThreshold_;
|
||||||
int lrcThreshold_;
|
int lrcThreshold_;
|
||||||
int resolution_;
|
int resolution_;
|
||||||
|
bool extendedDisparity_;
|
||||||
|
int subpixelFractionalBits_;
|
||||||
|
int compandingWidth_;
|
||||||
bool useSpecTranslation_;
|
bool useSpecTranslation_;
|
||||||
float alphaScaling_;
|
float alphaScaling_;
|
||||||
bool imuPublished_;
|
bool imuPublished_;
|
||||||
|
|||||||
@@ -58,6 +58,9 @@ CameraDepthAI::CameraDepthAI(
|
|||||||
confThreshold_(200),
|
confThreshold_(200),
|
||||||
lrcThreshold_(5),
|
lrcThreshold_(5),
|
||||||
resolution_(resolution),
|
resolution_(resolution),
|
||||||
|
extendedDisparity_(false),
|
||||||
|
subpixelFractionalBits_(0),
|
||||||
|
compandingWidth_(0),
|
||||||
useSpecTranslation_(false),
|
useSpecTranslation_(false),
|
||||||
alphaScaling_(0.0),
|
alphaScaling_(0.0),
|
||||||
imuPublished_(true),
|
imuPublished_(true),
|
||||||
@@ -107,6 +110,58 @@ void CameraDepthAI::setDepthProfile(int confThreshold, int lrcThreshold)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CameraDepthAI::setExtendedDisparity(bool extendedDisparity)
|
||||||
|
{
|
||||||
|
#ifdef RTABMAP_DEPTHAI
|
||||||
|
extendedDisparity_ = extendedDisparity;
|
||||||
|
if(extendedDisparity_)
|
||||||
|
{
|
||||||
|
if(subpixelFractionalBits_>0)
|
||||||
|
{
|
||||||
|
UWARN("Extended disparity has been enabled while subpixel being also enabled, disabling subpixel...");
|
||||||
|
subpixelFractionalBits_ = 0;
|
||||||
|
}
|
||||||
|
if(compandingWidth_>0)
|
||||||
|
{
|
||||||
|
UWARN("Extended disparity has been enabled while companding being also enabled, disabling companding...");
|
||||||
|
compandingWidth_ = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
UERROR("CameraDepthAI: RTAB-Map is not built with depthai-core support!");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void CameraDepthAI::setSubpixelMode(bool enabled, int fractionalBits)
|
||||||
|
{
|
||||||
|
#ifdef RTABMAP_DEPTHAI
|
||||||
|
UASSERT(fractionalBits>=3 && fractionalBits<=5);
|
||||||
|
subpixelFractionalBits_ = enabled?fractionalBits:0;
|
||||||
|
if(subpixelFractionalBits_ != 0 && extendedDisparity_)
|
||||||
|
{
|
||||||
|
UWARN("Subpixel has been enabled while extended disparity being also enabled, disabling extended disparity...");
|
||||||
|
extendedDisparity_ = false;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
UERROR("CameraDepthAI: RTAB-Map is not built with depthai-core support!");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void CameraDepthAI::setCompanding(bool enabled, int width)
|
||||||
|
{
|
||||||
|
#ifdef RTABMAP_DEPTHAI
|
||||||
|
UASSERT(width == 64 || width == 96);
|
||||||
|
compandingWidth_ = enabled?width:0;
|
||||||
|
if(compandingWidth_ != 0 && extendedDisparity_)
|
||||||
|
{
|
||||||
|
UWARN("Companding has been enabled while extended disparity being also enabled, disabling extended disparity...");
|
||||||
|
extendedDisparity_ = false;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
UERROR("CameraDepthAI: RTAB-Map is not built with depthai-core support!");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void CameraDepthAI::setRectification(bool useSpecTranslation, float alphaScaling)
|
void CameraDepthAI::setRectification(bool useSpecTranslation, float alphaScaling)
|
||||||
{
|
{
|
||||||
#ifdef RTABMAP_DEPTHAI
|
#ifdef RTABMAP_DEPTHAI
|
||||||
@@ -289,7 +344,7 @@ bool CameraDepthAI::init(const std::string & calibrationFolder, const std::strin
|
|||||||
stereo->setDepthAlign(dai::CameraBoardSocket::CAM_A);
|
stereo->setDepthAlign(dai::CameraBoardSocket::CAM_A);
|
||||||
else
|
else
|
||||||
stereo->setDepthAlign(dai::StereoDepthProperties::DepthAlign::RECTIFIED_LEFT);
|
stereo->setDepthAlign(dai::StereoDepthProperties::DepthAlign::RECTIFIED_LEFT);
|
||||||
stereo->setExtendedDisparity(false);
|
stereo->setExtendedDisparity(extendedDisparity_);
|
||||||
stereo->setRectifyEdgeFillColor(0); // black, to better see the cutout
|
stereo->setRectifyEdgeFillColor(0); // black, to better see the cutout
|
||||||
stereo->enableDistortionCorrection(true);
|
stereo->enableDistortionCorrection(true);
|
||||||
stereo->setDisparityToDepthUseSpecTranslation(useSpecTranslation_);
|
stereo->setDisparityToDepthUseSpecTranslation(useSpecTranslation_);
|
||||||
@@ -297,8 +352,9 @@ bool CameraDepthAI::init(const std::string & calibrationFolder, const std::strin
|
|||||||
if(alphaScaling_ > -1.0f)
|
if(alphaScaling_ > -1.0f)
|
||||||
stereo->setAlphaScaling(alphaScaling_);
|
stereo->setAlphaScaling(alphaScaling_);
|
||||||
stereo->initialConfig.setConfidenceThreshold(confThreshold_);
|
stereo->initialConfig.setConfidenceThreshold(confThreshold_);
|
||||||
stereo->initialConfig.setLeftRightCheck(true);
|
stereo->initialConfig.setLeftRightCheck(lrcThreshold_>=0);
|
||||||
stereo->initialConfig.setLeftRightCheckThreshold(lrcThreshold_);
|
if(lrcThreshold_>=0)
|
||||||
|
stereo->initialConfig.setLeftRightCheckThreshold(lrcThreshold_);
|
||||||
stereo->initialConfig.setMedianFilter(dai::MedianFilter::KERNEL_7x7);
|
stereo->initialConfig.setMedianFilter(dai::MedianFilter::KERNEL_7x7);
|
||||||
auto config = stereo->initialConfig.get();
|
auto config = stereo->initialConfig.get();
|
||||||
config.censusTransform.kernelSize = dai::StereoDepthConfig::CensusTransform::KernelSize::KERNEL_7x9;
|
config.censusTransform.kernelSize = dai::StereoDepthConfig::CensusTransform::KernelSize::KERNEL_7x9;
|
||||||
@@ -352,11 +408,13 @@ bool CameraDepthAI::init(const std::string & calibrationFolder, const std::strin
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
stereo->setSubpixel(true);
|
stereo->setSubpixel(subpixelFractionalBits_>=3 && subpixelFractionalBits_<=5);
|
||||||
stereo->setSubpixelFractionalBits(4);
|
if(subpixelFractionalBits_>=3 && subpixelFractionalBits_<=5)
|
||||||
|
stereo->setSubpixelFractionalBits(subpixelFractionalBits_);
|
||||||
config = stereo->initialConfig.get();
|
config = stereo->initialConfig.get();
|
||||||
config.costMatching.disparityWidth = dai::StereoDepthConfig::CostMatching::DisparityWidth::DISPARITY_64;
|
config.costMatching.enableCompanding = compandingWidth_>0;
|
||||||
config.costMatching.enableCompanding = true;
|
if(compandingWidth_>0)
|
||||||
|
config.costMatching.disparityWidth = compandingWidth_==64?dai::StereoDepthConfig::CostMatching::DisparityWidth::DISPARITY_64:dai::StereoDepthConfig::CostMatching::DisparityWidth::DISPARITY_96;
|
||||||
stereo->initialConfig.set(config);
|
stereo->initialConfig.set(config);
|
||||||
if(outputMode_ < 2)
|
if(outputMode_ < 2)
|
||||||
{
|
{
|
||||||
@@ -421,9 +479,17 @@ bool CameraDepthAI::init(const std::string & calibrationFolder, const std::strin
|
|||||||
|
|
||||||
device_.reset(new dai::Device(p, deviceToUse));
|
device_.reset(new dai::Device(p, deviceToUse));
|
||||||
|
|
||||||
|
UINFO("Available camera sensors: ");
|
||||||
|
for(auto& sensor : device_->getCameraSensorNames()) {
|
||||||
|
UINFO("Socket: CAM_%c - %s", 'A'+(unsigned char)sensor.first, sensor.second.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
UINFO("Loading eeprom calibration data");
|
UINFO("Loading eeprom calibration data");
|
||||||
dai::CalibrationHandler calibHandler = device_->readCalibration();
|
dai::CalibrationHandler calibHandler = device_->readCalibration();
|
||||||
|
|
||||||
|
auto eeprom = calibHandler.getEepromData();
|
||||||
|
UINFO("Product name: %s, board name: %s", eeprom.productName.c_str(), eeprom.boardName.c_str());
|
||||||
|
|
||||||
auto cameraId = outputMode_<2?dai::CameraBoardSocket::CAM_B:dai::CameraBoardSocket::CAM_A;
|
auto cameraId = outputMode_<2?dai::CameraBoardSocket::CAM_B:dai::CameraBoardSocket::CAM_A;
|
||||||
cv::Mat cameraMatrix, distCoeffs, newCameraMatrix;
|
cv::Mat cameraMatrix, distCoeffs, newCameraMatrix;
|
||||||
|
|
||||||
@@ -462,7 +528,6 @@ bool CameraDepthAI::init(const std::string & calibrationFolder, const std::strin
|
|||||||
// matrix[0][0], matrix[0][1], matrix[0][2], matrix[0][3],
|
// matrix[0][0], matrix[0][1], matrix[0][2], matrix[0][3],
|
||||||
// matrix[1][0], matrix[1][1], matrix[1][2], matrix[1][3],
|
// matrix[1][0], matrix[1][1], matrix[1][2], matrix[1][3],
|
||||||
// matrix[2][0], matrix[2][1], matrix[2][2], matrix[2][3]);
|
// matrix[2][0], matrix[2][1], matrix[2][2], matrix[2][3]);
|
||||||
auto eeprom = calibHandler.getEepromData();
|
|
||||||
if(eeprom.boardName == "OAK-D" ||
|
if(eeprom.boardName == "OAK-D" ||
|
||||||
eeprom.boardName == "BW1098OBC")
|
eeprom.boardName == "BW1098OBC")
|
||||||
{
|
{
|
||||||
@@ -538,9 +603,14 @@ bool CameraDepthAI::init(const std::string & calibrationFolder, const std::strin
|
|||||||
|
|
||||||
if(!device_->getIrDrivers().empty())
|
if(!device_->getIrDrivers().empty())
|
||||||
{
|
{
|
||||||
|
UINFO("Setting IR intensity");
|
||||||
device_->setIrLaserDotProjectorIntensity(dotIntensity_);
|
device_->setIrLaserDotProjectorIntensity(dotIntensity_);
|
||||||
device_->setIrFloodLightIntensity(floodIntensity_);
|
device_->setIrFloodLightIntensity(floodIntensity_);
|
||||||
}
|
}
|
||||||
|
else if(dotIntensity_ > 0 || floodIntensity_ > 0)
|
||||||
|
{
|
||||||
|
UWARN("No IR drivers were detected! IR intensity cannot be set.");
|
||||||
|
}
|
||||||
|
|
||||||
uSleep(2000); // avoid bad frames on start
|
uSleep(2000); // avoid bad frames on start
|
||||||
|
|
||||||
|
|||||||
@@ -191,6 +191,7 @@ protected Q_SLOTS:
|
|||||||
void selectMyntEyeS();
|
void selectMyntEyeS();
|
||||||
void selectDepthAIOAKD();
|
void selectDepthAIOAKD();
|
||||||
void selectDepthAIOAKDLite();
|
void selectDepthAIOAKDLite();
|
||||||
|
void selectDepthAIOAKDPro();
|
||||||
void dumpTheMemory();
|
void dumpTheMemory();
|
||||||
void dumpThePrediction();
|
void dumpThePrediction();
|
||||||
void sendGoal();
|
void sendGoal();
|
||||||
|
|||||||
@@ -44,5 +44,6 @@
|
|||||||
<file>images/oakd.png</file>
|
<file>images/oakd.png</file>
|
||||||
<file>images/oakd_lite.png</file>
|
<file>images/oakd_lite.png</file>
|
||||||
<file>images/astra.png</file>
|
<file>images/astra.png</file>
|
||||||
|
<file>images/oakdpro.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|||||||
@@ -462,6 +462,7 @@ MainWindow::MainWindow(PreferencesDialog * prefDialog, QWidget * parent, bool sh
|
|||||||
connect(_ui->actionMYNT_EYE_S_SDK, SIGNAL(triggered()), this, SLOT(selectMyntEyeS()));
|
connect(_ui->actionMYNT_EYE_S_SDK, SIGNAL(triggered()), this, SLOT(selectMyntEyeS()));
|
||||||
connect(_ui->actionDepthAI_oakd, SIGNAL(triggered()), this, SLOT(selectDepthAIOAKD()));
|
connect(_ui->actionDepthAI_oakd, SIGNAL(triggered()), this, SLOT(selectDepthAIOAKD()));
|
||||||
connect(_ui->actionDepthAI_oakdlite, SIGNAL(triggered()), this, SLOT(selectDepthAIOAKDLite()));
|
connect(_ui->actionDepthAI_oakdlite, SIGNAL(triggered()), this, SLOT(selectDepthAIOAKDLite()));
|
||||||
|
connect(_ui->actionDepthAI_oakdpro, SIGNAL(triggered()), this, SLOT(selectDepthAIOAKDPro()));
|
||||||
_ui->actionFreenect->setEnabled(CameraFreenect::available());
|
_ui->actionFreenect->setEnabled(CameraFreenect::available());
|
||||||
_ui->actionOpenNI_CV->setEnabled(CameraOpenNICV::available());
|
_ui->actionOpenNI_CV->setEnabled(CameraOpenNICV::available());
|
||||||
_ui->actionOpenNI_CV_ASUS->setEnabled(CameraOpenNICV::available());
|
_ui->actionOpenNI_CV_ASUS->setEnabled(CameraOpenNICV::available());
|
||||||
@@ -486,6 +487,7 @@ MainWindow::MainWindow(PreferencesDialog * prefDialog, QWidget * parent, bool sh
|
|||||||
_ui->actionMYNT_EYE_S_SDK->setEnabled(CameraMyntEye::available());
|
_ui->actionMYNT_EYE_S_SDK->setEnabled(CameraMyntEye::available());
|
||||||
_ui->actionDepthAI_oakd->setEnabled(CameraDepthAI::available());
|
_ui->actionDepthAI_oakd->setEnabled(CameraDepthAI::available());
|
||||||
_ui->actionDepthAI_oakdlite->setEnabled(CameraDepthAI::available());
|
_ui->actionDepthAI_oakdlite->setEnabled(CameraDepthAI::available());
|
||||||
|
_ui->actionDepthAI_oakdpro->setEnabled(CameraDepthAI::available());
|
||||||
this->updateSelectSourceMenu();
|
this->updateSelectSourceMenu();
|
||||||
|
|
||||||
connect(_ui->actionPreferences, SIGNAL(triggered()), this, SLOT(openPreferences()));
|
connect(_ui->actionPreferences, SIGNAL(triggered()), this, SLOT(openPreferences()));
|
||||||
@@ -5264,6 +5266,7 @@ void MainWindow::updateSelectSourceMenu()
|
|||||||
_ui->actionMYNT_EYE_S_SDK->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoMyntEye);
|
_ui->actionMYNT_EYE_S_SDK->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoMyntEye);
|
||||||
_ui->actionDepthAI_oakd->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoDepthAI);
|
_ui->actionDepthAI_oakd->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoDepthAI);
|
||||||
_ui->actionDepthAI_oakdlite->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoDepthAI);
|
_ui->actionDepthAI_oakdlite->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoDepthAI);
|
||||||
|
_ui->actionDepthAI_oakdpro->setChecked(_preferencesDialog->getSourceDriver() == PreferencesDialog::kSrcStereoDepthAI);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::changeImgRateSetting()
|
void MainWindow::changeImgRateSetting()
|
||||||
@@ -7161,6 +7164,11 @@ void MainWindow::selectDepthAIOAKDLite()
|
|||||||
_preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcStereoDepthAI, 0); // variant 0=no IMU
|
_preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcStereoDepthAI, 0); // variant 0=no IMU
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::selectDepthAIOAKDPro()
|
||||||
|
{
|
||||||
|
_preferencesDialog->selectSourceDriver(PreferencesDialog::kSrcStereoDepthAI, 2); // variant 2=IMU+color
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::dumpTheMemory()
|
void MainWindow::dumpTheMemory()
|
||||||
{
|
{
|
||||||
this->post(new RtabmapEventCmd(RtabmapEventCmd::kCmdDumpMemory));
|
this->post(new RtabmapEventCmd(RtabmapEventCmd::kCmdDumpMemory));
|
||||||
|
|||||||
@@ -814,6 +814,9 @@ PreferencesDialog::PreferencesDialog(QWidget * parent) :
|
|||||||
connect(_ui->comboBox_depthai_output_mode, SIGNAL(currentIndexChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
connect(_ui->comboBox_depthai_output_mode, SIGNAL(currentIndexChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
connect(_ui->spinBox_depthai_conf_threshold, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
connect(_ui->spinBox_depthai_conf_threshold, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
connect(_ui->spinBox_depthai_lrc_threshold, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
connect(_ui->spinBox_depthai_lrc_threshold, SIGNAL(valueChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
|
connect(_ui->checkBox_depthai_extended_disparity, SIGNAL(stateChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
|
connect(_ui->comboBox_depthai_subpixel_fractional_bits, SIGNAL(currentIndexChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
|
connect(_ui->comboBox_depthai_disparity_companding, SIGNAL(currentIndexChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
connect(_ui->checkBox_depthai_use_spec_translation, SIGNAL(stateChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
connect(_ui->checkBox_depthai_use_spec_translation, SIGNAL(stateChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
connect(_ui->doubleSpinBox_depthai_alpha_scaling, SIGNAL(valueChanged(double)), this, SLOT(makeObsoleteSourcePanel()));
|
connect(_ui->doubleSpinBox_depthai_alpha_scaling, SIGNAL(valueChanged(double)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
connect(_ui->checkBox_depthai_imu_published, SIGNAL(stateChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
connect(_ui->checkBox_depthai_imu_published, SIGNAL(stateChanged(int)), this, SLOT(makeObsoleteSourcePanel()));
|
||||||
@@ -2157,9 +2160,12 @@ void PreferencesDialog::resetSettings(QGroupBox * groupBox)
|
|||||||
_ui->comboBox_depthai_resolution->setCurrentIndex(1);
|
_ui->comboBox_depthai_resolution->setCurrentIndex(1);
|
||||||
_ui->comboBox_depthai_output_mode->setCurrentIndex(0);
|
_ui->comboBox_depthai_output_mode->setCurrentIndex(0);
|
||||||
_ui->spinBox_depthai_conf_threshold->setValue(200);
|
_ui->spinBox_depthai_conf_threshold->setValue(200);
|
||||||
|
_ui->checkBox_depthai_extended_disparity->setChecked(false);
|
||||||
|
_ui->comboBox_depthai_subpixel_fractional_bits->setCurrentIndex(2);
|
||||||
|
_ui->comboBox_depthai_disparity_companding->setCurrentIndex(1);
|
||||||
_ui->spinBox_depthai_lrc_threshold->setValue(5);
|
_ui->spinBox_depthai_lrc_threshold->setValue(5);
|
||||||
_ui->checkBox_depthai_use_spec_translation->setChecked(false);
|
_ui->checkBox_depthai_use_spec_translation->setChecked(false);
|
||||||
_ui->doubleSpinBox_depthai_alpha_scaling->setValue(0.0);
|
_ui->doubleSpinBox_depthai_alpha_scaling->setValue(-1);
|
||||||
_ui->checkBox_depthai_imu_published->setChecked(true);
|
_ui->checkBox_depthai_imu_published->setChecked(true);
|
||||||
_ui->doubleSpinBox_depthai_dot_intensity->setValue(0.0);
|
_ui->doubleSpinBox_depthai_dot_intensity->setValue(0.0);
|
||||||
_ui->doubleSpinBox_depthai_flood_intensity->setValue(0.0);
|
_ui->doubleSpinBox_depthai_flood_intensity->setValue(0.0);
|
||||||
@@ -2651,6 +2657,9 @@ void PreferencesDialog::readCameraSettings(const QString & filePath)
|
|||||||
_ui->comboBox_depthai_output_mode->setCurrentIndex(settings.value("output_mode", _ui->comboBox_depthai_output_mode->currentIndex()).toInt());
|
_ui->comboBox_depthai_output_mode->setCurrentIndex(settings.value("output_mode", _ui->comboBox_depthai_output_mode->currentIndex()).toInt());
|
||||||
_ui->spinBox_depthai_conf_threshold->setValue(settings.value("conf_threshold", _ui->spinBox_depthai_conf_threshold->value()).toInt());
|
_ui->spinBox_depthai_conf_threshold->setValue(settings.value("conf_threshold", _ui->spinBox_depthai_conf_threshold->value()).toInt());
|
||||||
_ui->spinBox_depthai_lrc_threshold->setValue(settings.value("lrc_threshold", _ui->spinBox_depthai_lrc_threshold->value()).toInt());
|
_ui->spinBox_depthai_lrc_threshold->setValue(settings.value("lrc_threshold", _ui->spinBox_depthai_lrc_threshold->value()).toInt());
|
||||||
|
_ui->checkBox_depthai_extended_disparity->setChecked(settings.value("extended_disparity", _ui->checkBox_depthai_extended_disparity->isChecked()).toBool());
|
||||||
|
_ui->comboBox_depthai_subpixel_fractional_bits->setCurrentIndex(settings.value("subpixel_fractional_bits", _ui->comboBox_depthai_subpixel_fractional_bits->currentIndex()).toInt());
|
||||||
|
_ui->comboBox_depthai_disparity_companding->setCurrentIndex(settings.value("companding", _ui->comboBox_depthai_disparity_companding->currentIndex()).toInt());
|
||||||
_ui->checkBox_depthai_use_spec_translation->setChecked(settings.value("use_spec_translation", _ui->checkBox_depthai_use_spec_translation->isChecked()).toBool());
|
_ui->checkBox_depthai_use_spec_translation->setChecked(settings.value("use_spec_translation", _ui->checkBox_depthai_use_spec_translation->isChecked()).toBool());
|
||||||
_ui->doubleSpinBox_depthai_alpha_scaling->setValue(settings.value("alpha_scaling", _ui->doubleSpinBox_depthai_alpha_scaling->value()).toDouble());
|
_ui->doubleSpinBox_depthai_alpha_scaling->setValue(settings.value("alpha_scaling", _ui->doubleSpinBox_depthai_alpha_scaling->value()).toDouble());
|
||||||
_ui->checkBox_depthai_imu_published->setChecked(settings.value("imu_published", _ui->checkBox_depthai_imu_published->isChecked()).toBool());
|
_ui->checkBox_depthai_imu_published->setChecked(settings.value("imu_published", _ui->checkBox_depthai_imu_published->isChecked()).toBool());
|
||||||
@@ -3188,6 +3197,9 @@ void PreferencesDialog::writeCameraSettings(const QString & filePath) const
|
|||||||
settings.setValue("output_mode", _ui->comboBox_depthai_output_mode->currentIndex());
|
settings.setValue("output_mode", _ui->comboBox_depthai_output_mode->currentIndex());
|
||||||
settings.setValue("conf_threshold", _ui->spinBox_depthai_conf_threshold->value());
|
settings.setValue("conf_threshold", _ui->spinBox_depthai_conf_threshold->value());
|
||||||
settings.setValue("lrc_threshold", _ui->spinBox_depthai_lrc_threshold->value());
|
settings.setValue("lrc_threshold", _ui->spinBox_depthai_lrc_threshold->value());
|
||||||
|
settings.setValue("extended_disparity", _ui->checkBox_depthai_extended_disparity->isChecked());
|
||||||
|
settings.setValue("subpixel_fractional_bits", _ui->comboBox_depthai_subpixel_fractional_bits->currentIndex());
|
||||||
|
settings.setValue("companding", _ui->comboBox_depthai_disparity_companding->currentIndex());
|
||||||
settings.setValue("use_spec_translation", _ui->checkBox_depthai_use_spec_translation->isChecked());
|
settings.setValue("use_spec_translation", _ui->checkBox_depthai_use_spec_translation->isChecked());
|
||||||
settings.setValue("alpha_scaling", _ui->doubleSpinBox_depthai_alpha_scaling->value());
|
settings.setValue("alpha_scaling", _ui->doubleSpinBox_depthai_alpha_scaling->value());
|
||||||
settings.setValue("imu_published", _ui->checkBox_depthai_imu_published->isChecked());
|
settings.setValue("imu_published", _ui->checkBox_depthai_imu_published->isChecked());
|
||||||
@@ -4076,10 +4088,12 @@ void PreferencesDialog::selectSourceDriver(Src src, int variant)
|
|||||||
// disable IMU filtering (zed sends already quaternion)
|
// disable IMU filtering (zed sends already quaternion)
|
||||||
_ui->comboBox_imuFilter_strategy->setCurrentIndex(0);
|
_ui->comboBox_imuFilter_strategy->setCurrentIndex(0);
|
||||||
}
|
}
|
||||||
else if(src == kSrcStereoDepthAI) // OAK-D (variant==1), OAK-D Lite (variant==0)
|
else if(src == kSrcStereoDepthAI) // OAK-D-Pro (variant==2), OAK-D (variant==1), OAK-D Lite (variant==0)
|
||||||
{
|
{
|
||||||
_ui->checkBox_depthai_imu_published->setChecked(variant == 1);
|
_ui->checkBox_depthai_imu_published->setChecked(variant >= 1);
|
||||||
_ui->comboBox_depthai_resolution->setCurrentIndex(variant == 1?1:3);
|
_ui->comboBox_depthai_resolution->setCurrentIndex(variant >= 1?1:3);
|
||||||
|
_ui->comboBox_depthai_output_mode->setCurrentIndex(variant==2?2:0);
|
||||||
|
_ui->doubleSpinBox_depthai_dot_intensity->setValue(variant==2?1:0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(src >= kSrcRGB && src<kSrcDatabase)
|
else if(src >= kSrcRGB && src<kSrcDatabase)
|
||||||
@@ -6511,6 +6525,9 @@ Camera * PreferencesDialog::createCamera(
|
|||||||
this->getSourceLocalTransform());
|
this->getSourceLocalTransform());
|
||||||
((CameraDepthAI*)camera)->setOutputMode(_ui->comboBox_depthai_output_mode->currentIndex());
|
((CameraDepthAI*)camera)->setOutputMode(_ui->comboBox_depthai_output_mode->currentIndex());
|
||||||
((CameraDepthAI*)camera)->setDepthProfile(_ui->spinBox_depthai_conf_threshold->value(), _ui->spinBox_depthai_lrc_threshold->value());
|
((CameraDepthAI*)camera)->setDepthProfile(_ui->spinBox_depthai_conf_threshold->value(), _ui->spinBox_depthai_lrc_threshold->value());
|
||||||
|
((CameraDepthAI*)camera)->setExtendedDisparity(_ui->checkBox_depthai_extended_disparity->isChecked());
|
||||||
|
((CameraDepthAI*)camera)->setSubpixelMode(_ui->comboBox_depthai_subpixel_fractional_bits->currentIndex()!=0, _ui->comboBox_depthai_subpixel_fractional_bits->currentIndex()==2?4:_ui->comboBox_depthai_subpixel_fractional_bits->currentIndex()==3?5:3);
|
||||||
|
((CameraDepthAI*)camera)->setCompanding(_ui->comboBox_depthai_disparity_companding->currentIndex()!=0, _ui->comboBox_depthai_disparity_companding->currentIndex()==1?64:96);
|
||||||
((CameraDepthAI*)camera)->setRectification(_ui->checkBox_depthai_use_spec_translation->isChecked(), _ui->doubleSpinBox_depthai_alpha_scaling->value());
|
((CameraDepthAI*)camera)->setRectification(_ui->checkBox_depthai_use_spec_translation->isChecked(), _ui->doubleSpinBox_depthai_alpha_scaling->value());
|
||||||
((CameraDepthAI*)camera)->setIMU(_ui->checkBox_depthai_imu_published->isChecked(), _ui->checkbox_publishInterIMU->isChecked());
|
((CameraDepthAI*)camera)->setIMU(_ui->checkBox_depthai_imu_published->isChecked(), _ui->checkbox_publishInterIMU->isChecked());
|
||||||
((CameraDepthAI*)camera)->setIrIntensity(_ui->doubleSpinBox_depthai_dot_intensity->value(), _ui->doubleSpinBox_depthai_flood_intensity->value());
|
((CameraDepthAI*)camera)->setIrIntensity(_ui->doubleSpinBox_depthai_dot_intensity->value(), _ui->doubleSpinBox_depthai_flood_intensity->value());
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 8.5 KiB |
@@ -322,6 +322,16 @@
|
|||||||
</property>
|
</property>
|
||||||
<addaction name="actionDepthAI_oakdlite"/>
|
<addaction name="actionDepthAI_oakdlite"/>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="QMenu" name="menuOAK_D_Pro">
|
||||||
|
<property name="title">
|
||||||
|
<string>OAK-D Pro</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../GuiLib.qrc">
|
||||||
|
<normaloff>:/images/oakdpro.png</normaloff>:/images/oakdpro.png</iconset>
|
||||||
|
</property>
|
||||||
|
<addaction name="actionDepthAI_oakdpro"/>
|
||||||
|
</widget>
|
||||||
<addaction name="menuBumblebee2_2"/>
|
<addaction name="menuBumblebee2_2"/>
|
||||||
<addaction name="menuZed_camera"/>
|
<addaction name="menuZed_camera"/>
|
||||||
<addaction name="menuTara_Camera"/>
|
<addaction name="menuTara_Camera"/>
|
||||||
@@ -329,6 +339,7 @@
|
|||||||
<addaction name="menuMynt_Eye_S"/>
|
<addaction name="menuMynt_Eye_S"/>
|
||||||
<addaction name="menuOAK_D"/>
|
<addaction name="menuOAK_D"/>
|
||||||
<addaction name="menuOAK_D_Lite"/>
|
<addaction name="menuOAK_D_Lite"/>
|
||||||
|
<addaction name="menuOAK_D_Pro"/>
|
||||||
</widget>
|
</widget>
|
||||||
<addaction name="menuRGB_D_camera"/>
|
<addaction name="menuRGB_D_camera"/>
|
||||||
<addaction name="menuStereo_camera"/>
|
<addaction name="menuStereo_camera"/>
|
||||||
@@ -1699,6 +1710,14 @@
|
|||||||
<string>Depth AI</string>
|
<string>Depth AI</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="actionDepthAI_oakdpro">
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Depth AI</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
<customwidget>
|
<customwidget>
|
||||||
|
|||||||
+345
-223
@@ -63,9 +63,9 @@
|
|||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>-836</y>
|
||||||
<width>713</width>
|
<width>713</width>
|
||||||
<height>3933</height>
|
<height>4002</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_16">
|
<layout class="QVBoxLayout" name="verticalLayout_16">
|
||||||
@@ -95,7 +95,7 @@
|
|||||||
<enum>QFrame::Raised</enum>
|
<enum>QFrame::Raised</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>23</number>
|
<number>5</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="page_22">
|
<widget class="QWidget" name="page_22">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_29" stretch="0,0">
|
<layout class="QVBoxLayout" name="verticalLayout_29" stretch="0,0">
|
||||||
@@ -5896,6 +5896,31 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
<string>DepthAI</string>
|
<string>DepthAI</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_120" columnstretch="0,1">
|
<layout class="QGridLayout" name="gridLayout_120" columnstretch="0,1">
|
||||||
|
<item row="7" column="0">
|
||||||
|
<widget class="QComboBox" name="comboBox_depthai_disparity_companding">
|
||||||
|
<property name="currentIndex">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="sizeAdjustPolicy">
|
||||||
|
<enum>QComboBox::AdjustToContents</enum>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Disabled</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>64 pixels</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>96 pixels</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QComboBox" name="comboBox_depthai_resolution">
|
<widget class="QComboBox" name="comboBox_depthai_resolution">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
@@ -5931,7 +5956,7 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="0">
|
<item row="9" column="0">
|
||||||
<widget class="QDoubleSpinBox" name="doubleSpinBox_depthai_alpha_scaling">
|
<widget class="QDoubleSpinBox" name="doubleSpinBox_depthai_alpha_scaling">
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<double>-1.000000000000000</double>
|
<double>-1.000000000000000</double>
|
||||||
@@ -5947,10 +5972,13 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="11" column="1">
|
||||||
<widget class="QLabel" name="label_627">
|
<widget class="QLabel" name="label_676">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Intensity on range 0 to 1, that will determine brightness.</p></body></html></string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Confidence threshold.</string>
|
<string>IR laser dot projector intensity. 0 to turn off.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@@ -5960,66 +5988,37 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="13" column="0">
|
||||||
<widget class="QLabel" name="label_741">
|
<widget class="QComboBox" name="comboBox_depthai_detect_features">
|
||||||
<property name="text">
|
<property name="currentIndex">
|
||||||
<string>Left-right check threshold.</string>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="sizeAdjustPolicy">
|
||||||
<bool>true</bool>
|
<enum>QComboBox::AdjustToContents</enum>
|
||||||
</property>
|
|
||||||
<property name="textInteractionFlags">
|
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="7" column="0">
|
|
||||||
<widget class="QDoubleSpinBox" name="doubleSpinBox_depthai_dot_intensity">
|
|
||||||
<property name="maximum">
|
|
||||||
<double>1.000000000000000</double>
|
|
||||||
</property>
|
|
||||||
<property name="singleStep">
|
|
||||||
<double>0.050000000000000</double>
|
|
||||||
</property>
|
|
||||||
<property name="value">
|
|
||||||
<double>0.000000000000000</double>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="0">
|
|
||||||
<widget class="QCheckBox" name="checkBox_depthai_imu_published">
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>None</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>GFTT</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>SuperPoint</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>HF-Net</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="8" column="1">
|
<item row="8" column="1">
|
||||||
<widget class="QLabel" name="label_677">
|
|
||||||
<property name="text">
|
|
||||||
<string>IR flood light intensity.</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="textInteractionFlags">
|
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="7" column="1">
|
|
||||||
<widget class="QLabel" name="label_676">
|
|
||||||
<property name="text">
|
|
||||||
<string>IR laser dot projector intensity.</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="textInteractionFlags">
|
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="1">
|
|
||||||
<widget class="QLabel" name="label_646">
|
<widget class="QLabel" name="label_646">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Use the translation information from the board design data (not the calibration data).</string>
|
<string>Use the translation information from the board design data (not the calibration data).</string>
|
||||||
@@ -6032,10 +6031,23 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QLabel" name="label_626">
|
<widget class="QLabel" name="label_625">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Resolution.</string>
|
<string>Output mode.</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="13" column="1">
|
||||||
|
<widget class="QLabel" name="label_679">
|
||||||
|
<property name="text">
|
||||||
|
<string>On-device feature detector.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@@ -6070,10 +6082,13 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="QLabel" name="label_678">
|
<widget class="QLabel" name="label_745">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Disparity range increased from 0-95 to 0-190, combined from full resolution and downscaled images.</p></body></html></string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Free scaling parameter between 0 (when all the pixels in the undistorted image are valid) and 1 (when all the source image pixels are retained in the undistorted image). On some high distortion lenses, and/or due to rectification (image rotated) invalid areas may appear even with alpha=0, in these cases alpha < 0.0 helps removing invalid areas. If alpha is set to -1, old rectification policy is used.</string>
|
<string>Extended disparity. Suitable for short range objects. Currently incompatible with sub-pixel disparity.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@@ -6099,7 +6114,7 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
<item row="3" column="0">
|
<item row="3" column="0">
|
||||||
<widget class="QSpinBox" name="spinBox_depthai_lrc_threshold">
|
<widget class="QSpinBox" name="spinBox_depthai_lrc_threshold">
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>0</number>
|
<number>-1</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>255</number>
|
<number>255</number>
|
||||||
@@ -6109,30 +6124,17 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="1">
|
<item row="8" column="0">
|
||||||
<widget class="QLabel" name="label_650">
|
|
||||||
<property name="text">
|
|
||||||
<string>IMU published</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="textInteractionFlags">
|
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="0">
|
|
||||||
<widget class="QCheckBox" name="checkBox_depthai_use_spec_translation">
|
<widget class="QCheckBox" name="checkBox_depthai_use_spec_translation">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="2" column="1">
|
||||||
<widget class="QLabel" name="label_625">
|
<widget class="QLabel" name="label_627">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Output mode.</string>
|
<string>Disparity confidence threshold (0-255).</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@@ -6142,7 +6144,138 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="8" column="0">
|
<item row="12" column="1">
|
||||||
|
<widget class="QLabel" name="label_677">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Intensity on range 0 to 1, that will determine brightness.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>IR flood light intensity. 0 to turn off.</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="14" column="1">
|
||||||
|
<widget class="QLabel" name="label_680">
|
||||||
|
<property name="text">
|
||||||
|
<string>Path to MyriadX blob file.</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="11" column="0">
|
||||||
|
<widget class="QDoubleSpinBox" name="doubleSpinBox_depthai_dot_intensity">
|
||||||
|
<property name="maximum">
|
||||||
|
<double>1.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.050000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<double>0.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="1">
|
||||||
|
<widget class="QLabel" name="label_746">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Computes disparity with sub-pixel interpolation (3 fractional bits by default). </p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Subpixel mode: number of fractional bits. Suitable for long range. Currently incompatible with extended disparity.</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QLabel" name="label_626">
|
||||||
|
<property name="text">
|
||||||
|
<string>Resolution.</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="6" column="0">
|
||||||
|
<widget class="QComboBox" name="comboBox_depthai_subpixel_fractional_bits">
|
||||||
|
<property name="currentIndex">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="sizeAdjustPolicy">
|
||||||
|
<enum>QComboBox::AdjustToContents</enum>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Disabled</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Subpixel 3</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Subpixel 4</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Subpixel 5</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QCheckBox" name="checkBox_depthai_extended_disparity">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QLabel" name="label_748">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Computes and combines disparities in both L-R and R-L directions, and combine them. </string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Disparity left-right check threshold. Set -1 to turn off.</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="10" column="0">
|
||||||
|
<widget class="QCheckBox" name="checkBox_depthai_imu_published">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="12" column="0">
|
||||||
<widget class="QDoubleSpinBox" name="doubleSpinBox_depthai_flood_intensity">
|
<widget class="QDoubleSpinBox" name="doubleSpinBox_depthai_flood_intensity">
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<double>1.000000000000000</double>
|
<double>1.000000000000000</double>
|
||||||
@@ -6155,40 +6288,13 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="9" column="0">
|
|
||||||
<widget class="QComboBox" name="comboBox_depthai_detect_features">
|
|
||||||
<property name="currentIndex">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="sizeAdjustPolicy">
|
|
||||||
<enum>QComboBox::AdjustToContents</enum>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>None</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>GFTT</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>SuperPoint</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text">
|
|
||||||
<string>HF-Net</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="9" column="1">
|
<item row="9" column="1">
|
||||||
<widget class="QLabel" name="label_679">
|
<widget class="QLabel" name="label_678">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>On some high distortion lenses, and/or due to rectification (image rotated) invalid areas may appear even with alpha=0, in these cases alpha < 0.0 helps removing invalid areas.</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>On-device feature detector.</string>
|
<string>Free scaling parameter between 0 (when all the pixels in the undistorted image are valid) and 1 (when all the source image pixels are retained in the undistorted image). If alpha is set to -1, old rectification policy is used.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@@ -6198,7 +6304,23 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="10" column="0">
|
<item row="7" column="1">
|
||||||
|
<widget class="QLabel" name="label_747">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p> * Matching pixel by pixel for N disparities.</p><p> * Matching every 2nd pixel for M disparitites.</p><p> * Matching every 4th pixel for T disparities.</p><p> * In case of 96 disparities: N=48, M=32, T=16.</p><p> * This way the search range is extended to 176 disparities, by sparse matching.</p><p> * Note: when enabling this flag only depth map will be affected, disparity map is not.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Disparity companding using sparse matching. Currently incompatible with extended disparity.</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="14" column="0">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_15" stretch="0,1">
|
<layout class="QHBoxLayout" name="horizontalLayout_15" stretch="0,1">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QToolButton" name="toolButton_depthai_blob_path">
|
<widget class="QToolButton" name="toolButton_depthai_blob_path">
|
||||||
@@ -6223,9 +6345,9 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="10" column="1">
|
<item row="10" column="1">
|
||||||
<widget class="QLabel" name="label_680">
|
<widget class="QLabel" name="label_650">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Path to MyriadX blob file.</string>
|
<string>IMU published</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@@ -7439,46 +7561,10 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
<string>Odometry Sensor</string>
|
<string>Odometry Sensor</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_122" columnstretch="0,1">
|
<layout class="QGridLayout" name="gridLayout_122" columnstretch="0,1">
|
||||||
<item row="2" column="0">
|
<item row="2" column="1">
|
||||||
<widget class="QDoubleSpinBox" name="doubleSpinBox_odom_sensor_time_offset">
|
<widget class="QLabel" name="label_637">
|
||||||
<property name="suffix">
|
|
||||||
<string> ms</string>
|
|
||||||
</property>
|
|
||||||
<property name="decimals">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="minimum">
|
|
||||||
<double>-999.000000000000000</double>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<double>999.000000000000000</double>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLineEdit" name="lineEdit_odomSourceDevice">
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string>Time offset between camera and odometry sensors.</string>
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="7" column="1">
|
|
||||||
<widget class="QLabel" name="label_638">
|
|
||||||
<property name="text">
|
|
||||||
<string>Use as ground truth. The odometry poses will be saved in ground truth field of sensor data instead of being used as odometry. The actual odometry will be computed by rtabmap using the camera sensor. This can be useful to compare rtabmap odometry versus odometry sensor, and to estimate a scale factor between the sensors (using "rtabmap-report -- scale") that can be used above.</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="textInteractionFlags">
|
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="1">
|
|
||||||
<widget class="QLabel" name="label_634">
|
|
||||||
<property name="text">
|
|
||||||
<string>Extrinsics between pose frame and camera's left lens (without optical rotation). Default extrinsics match the 3D printed bracket <a href=" https://www.intelrealsense.com/depth-and-tracking-combined-get-started/"><span style=" text-decoration: underline; color:#0000ff;">here</span></a> for T265+D400 setup. (<a href="https://github.com/IntelRealSense/realsense-ros/blob/occupancy-mapping/realsense2_camera/meshes/mount_t265_d435.stl"><span style=" text-decoration: underline; color:#0000ff;">stl</span></a>). Not used if camera and odometry sensors are the same sensor.</string>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@@ -7510,42 +7596,25 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="0">
|
<item row="6" column="0">
|
||||||
<widget class="QPushButton" name="pushButton_odom_sensor_calibrate">
|
<widget class="QDoubleSpinBox" name="doubleSpinBox_odom_sensor_scale_factor">
|
||||||
<property name="sizePolicy">
|
<property name="suffix">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
<string/>
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="decimals">
|
||||||
<string>Calibrate Extrinsics</string>
|
<number>4</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
<property name="minimum">
|
||||||
</item>
|
<double>0.000100000000000</double>
|
||||||
<item row="4" column="1">
|
|
||||||
<widget class="QLabel" name="label_635">
|
|
||||||
<property name="text">
|
|
||||||
<string>Calibrate extrinsics between odometry sensor and camera. Both sensors should be already calibrated. See Calibrate button above to calibrate them individually.</string>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="maximum">
|
||||||
<bool>true</bool>
|
<double>999.000000000000000</double>
|
||||||
</property>
|
</property>
|
||||||
<property name="textInteractionFlags">
|
<property name="singleStep">
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
<double>0.100000000000000</double>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
<property name="value">
|
||||||
</item>
|
<double>1.000000000000000</double>
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QLabel" name="label_637">
|
|
||||||
<property name="text">
|
|
||||||
<string>Time offset between camera and odometry sensors.</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="textInteractionFlags">
|
|
||||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -7562,17 +7631,23 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="7" column="0">
|
<item row="3" column="1">
|
||||||
<widget class="QCheckBox" name="checkBox_odom_sensor_use_as_gt">
|
<widget class="QLabel" name="label_634">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string/>
|
<string>Extrinsics between pose frame and camera's left lens (without optical rotation). Default extrinsics match the 3D printed bracket <a href=" https://www.intelrealsense.com/depth-and-tracking-combined-get-started/"><span style=" text-decoration: underline; color:#0000ff;">here</span></a> for T265+D400 setup. (<a href="https://github.com/IntelRealSense/realsense-ros/blob/occupancy-mapping/realsense2_camera/meshes/mount_t265_d435.stl"><span style=" text-decoration: underline; color:#0000ff;">stl</span></a>). Not used if camera and odometry sensors are the same sensor.</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="QLabel" name="label_636">
|
<widget class="QLabel" name="label_635">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Calibration file path (*.yaml) for the odometry sensor. If empty, the GUID of the camera is used (for those having one). Only required to calibrate extrinsics.</string>
|
<string>Calibrate extrinsics between odometry sensor and camera. Both sensors should be already calibrated. See Calibrate button above to calibrate them individually.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
@@ -7595,16 +7670,6 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
|
||||||
<widget class="QLineEdit" name="lineEdit_odom_sensor_extrinsics">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><html><head/><body><p>Format (3 values): x y z<br/>Format (6 values): x y z roll pitch yaw<br/>Format (7 values): x y z qx qy qz qw<br/>Format (9 values, 3x3 rotation): r11 r12 r13 r21 r22 r23 r31 r32 r33<br/>Format (12 values, 3x4 transform): r11 r12 r13 tx r21 r22 r23 ty r31 r32 r33 tz</p><p><br/></p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>0.009 0.021 0.027 0.000 -0.018 0.005</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="0">
|
<item row="5" column="0">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_14" stretch="0,1">
|
<layout class="QHBoxLayout" name="horizontalLayout_14" stretch="0,1">
|
||||||
<item>
|
<item>
|
||||||
@@ -7629,6 +7694,65 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="7" column="0">
|
||||||
|
<widget class="QCheckBox" name="checkBox_odom_sensor_use_as_gt">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLineEdit" name="lineEdit_odom_sensor_extrinsics">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>Format (3 values): x y z<br/>Format (6 values): x y z roll pitch yaw<br/>Format (7 values): x y z qx qy qz qw<br/>Format (9 values, 3x3 rotation): r11 r12 r13 r21 r22 r23 r31 r32 r33<br/>Format (12 values, 3x4 transform): r11 r12 r13 tx r21 r22 r23 ty r31 r32 r33 tz</p><p><br/></p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>0.009 0.021 0.027 0.000 -0.018 0.005</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QDoubleSpinBox" name="doubleSpinBox_odom_sensor_time_offset">
|
||||||
|
<property name="suffix">
|
||||||
|
<string> ms</string>
|
||||||
|
</property>
|
||||||
|
<property name="decimals">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<double>-999.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<double>999.000000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="7" column="1">
|
||||||
|
<widget class="QLabel" name="label_638">
|
||||||
|
<property name="text">
|
||||||
|
<string>Use as ground truth. The odometry poses will be saved in ground truth field of sensor data instead of being used as odometry. The actual odometry will be computed by rtabmap using the camera sensor. This can be useful to compare rtabmap odometry versus odometry sensor, and to estimate a scale factor between the sensors (using "rtabmap-report -- scale") that can be used above.</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="textInteractionFlags">
|
||||||
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QPushButton" name="pushButton_odom_sensor_calibrate">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Calibrate Extrinsics</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="6" column="1">
|
<item row="6" column="1">
|
||||||
<widget class="QLabel" name="label_639">
|
<widget class="QLabel" name="label_639">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -7642,25 +7766,23 @@ when using the file type, logs are saved in LogRtabmap.txt (located in the worki
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QDoubleSpinBox" name="doubleSpinBox_odom_sensor_scale_factor">
|
<widget class="QLineEdit" name="lineEdit_odomSourceDevice">
|
||||||
<property name="suffix">
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
<property name="decimals">
|
</widget>
|
||||||
<number>4</number>
|
</item>
|
||||||
|
<item row="5" column="1">
|
||||||
|
<widget class="QLabel" name="label_636">
|
||||||
|
<property name="text">
|
||||||
|
<string>Calibration file path (*.yaml) for the odometry sensor. If empty, the GUID of the camera is used (for those having one). Only required to calibrate extrinsics.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimum">
|
<property name="wordWrap">
|
||||||
<double>0.000100000000000</double>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="textInteractionFlags">
|
||||||
<double>999.000000000000000</double>
|
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||||
</property>
|
|
||||||
<property name="singleStep">
|
|
||||||
<double>0.100000000000000</double>
|
|
||||||
</property>
|
|
||||||
<property name="value">
|
|
||||||
<double>1.000000000000000</double>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
Reference in New Issue
Block a user