mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-12 14:30:19 +08:00
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:
@@ -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(),
|
||||
|
||||
Reference in New Issue
Block a user