diff --git a/corelib/include/rtabmap/core/OdometryEvent.h b/corelib/include/rtabmap/core/OdometryEvent.h index fe1b0d6b..5c951174 100644 --- a/corelib/include/rtabmap/core/OdometryEvent.h +++ b/corelib/include/rtabmap/core/OdometryEvent.h @@ -17,7 +17,7 @@ class OdometryEvent : public UEvent { public: OdometryEvent( - const Image & data, int quality = 0) : + const Image & data, int quality = -1) : _data(data), _quality(quality) {} virtual ~OdometryEvent() {} diff --git a/guilib/src/MainWindow.cpp b/guilib/src/MainWindow.cpp index af61cb57..aee8aacd 100644 --- a/guilib/src/MainWindow.cpp +++ b/guilib/src/MainWindow.cpp @@ -550,7 +550,7 @@ void MainWindow::processOdometry(const rtabmap::Image & data, int quality) pose = _lastOdomPose; } - else if(quality && + else if(quality>=0 && _preferencesDialog->getOdomQualityWarnThr() && quality < _preferencesDialog->getOdomQualityWarnThr()) { @@ -562,7 +562,10 @@ void MainWindow::processOdometry(const rtabmap::Image & data, int quality) UDEBUG("odom ok"); _ui->widget_cloudViewer->setBackgroundColor(Qt::black); } - _ui->statsToolBox->updateStat("/Odom inliers/", (float)data.id(), (float)quality); + if(quality >= 0) + { + _ui->statsToolBox->updateStat("/Odom inliers/", (float)data.id(), (float)quality); + } if(!pose.isNull()) { _lastOdomPose = pose; diff --git a/guilib/src/OdometryViewer.cpp b/guilib/src/OdometryViewer.cpp index 5a12996e..49a65c46 100644 --- a/guilib/src/OdometryViewer.cpp +++ b/guilib/src/OdometryViewer.cpp @@ -23,6 +23,7 @@ namespace rtabmap { OdometryViewer::OdometryViewer(int maxClouds, int decimation, float voxelSize, int qualityWarningThr, QWidget * parent) : CloudViewer(parent), + dataQuality_(-1), lastOdomPose_(Transform::getIdentity()), maxClouds_(maxClouds), voxelSize_(voxelSize), @@ -50,14 +51,14 @@ OdometryViewer::OdometryViewer(int maxClouds, int decimation, float voxelSize, i void OdometryViewer::processData() { rtabmap::Image data; - int quality = 0; + int quality = -1; dataMutex_.lock(); if(data_.size()) { data = data_.back(); data_.clear(); quality = dataQuality_; - dataQuality_ = 0; + dataQuality_ = -1; } dataMutex_.unlock(); @@ -109,7 +110,7 @@ void OdometryViewer::processData() this->updateCameraPosition(data.pose()); - if(qualityWarningThr_ && quality && quality < qualityWarningThr_) + if(qualityWarningThr_ && quality>=0 && quality < qualityWarningThr_) { this->setBackgroundColor(Qt::darkYellow); }