Odom sensor option (#726)

* Added Odom Sensor option

* Odom Sensor: Added pose time offset parameter

* Gui: fixed odom cloud not shown when rgb/depth doesn't have same size. Odom sensor: fixed rawImages set on non-stereo camera (because stereoRectify wrongly set to all cameras)

* Calibration: fixed rgb and depth suffixes not correctly set. OpenNI2: horizontal and vertical shifts can be also set for default calib.

* Fixed a warning

* OdomSensor: added option to use odom sensor output as ground truth (for comparison between odom sensor and rtabmap odom). Added scale factor option.

* FindG2O.cmake: updated path suffixes to find EXTERNAL csparse

* Pose3GravityFactor: fixed dllimport error on windows

* UI: Statistics panel not updated if not visible and keep stats in cache is unchecked. Added description to some timing debug logs in processStatistics().

* Removed vtkOutputWindow on Windows

* Odom Sensor: added zed sdk support

* bump version 0.20.11
This commit is contained in:
matlabbe
2021-05-23 17:21:12 -04:00
committed by GitHub
parent fe896260c5
commit 21dbeed4b7
25 changed files with 1532 additions and 728 deletions
+20 -2
View File
@@ -213,6 +213,19 @@ void CalibrationDialog::setStereoMode(bool stereo, const QString & leftSuffix, c
ui_->label_stereoBaseline->setVisible(stereo_);
}
int CalibrationDialog::boardWidth() const
{
return ui_->spinBox_boardWidth->value();
}
int CalibrationDialog::boardHeight() const
{
return ui_->spinBox_boardHeight->value();
}
double CalibrationDialog::squareSize() const
{
return ui_->doubleSpinBox_squareSize->value();
}
void CalibrationDialog::setBoardWidth(int width)
{
if(width != ui_->spinBox_boardWidth->value())
@@ -314,11 +327,14 @@ void CalibrationDialog::processImages(const cv::Mat & imageLeft, const cv::Mat &
{
UDEBUG("Processing images");
processingData_ = true;
cameraName_ = "0000";
if(!cameraName.isEmpty())
if(cameraName_.isEmpty())
{
cameraName_ = cameraName;
}
else if(cameraName.isEmpty())
{
cameraName_ = "0000";
}
if(ui_->label_serial->text().compare(cameraName_)!=0)
{
@@ -875,6 +891,8 @@ void CalibrationDialog::calibrate()
cv::Mat P = stereoModel_.right().P().clone();
P.at<double>(0,3) = -P.at<double>(0,0)*ui_->doubleSpinBox_stereoBaseline->value();
double scale = ui_->doubleSpinBox_stereoBaseline->value() / stereoModel_.baseline();
UWARN("Scale %f (setting square size from %f to %f)", scale, ui_->doubleSpinBox_squareSize->value(), ui_->doubleSpinBox_squareSize->value()*scale);
ui_->doubleSpinBox_squareSize->setValue(ui_->doubleSpinBox_squareSize->value()*scale);
stereoModel_ = StereoCameraModel(
stereoModel_.name(),
stereoModel_.left().imageSize(),stereoModel_.left().K_raw(), stereoModel_.left().D_raw(), stereoModel_.left().R(), stereoModel_.left().P(),