OdometryEvent: set quality to -1 when not set.

git-svn-id: http://rtabmap.googlecode.com/svn/trunk/rtabmap@1611 f169173b-cf89-36c8-b27e-44dbe73f0c83
This commit is contained in:
matlabbe
2014-07-24 17:27:43 +00:00
parent 38f967e10f
commit 18f84febc1
3 changed files with 10 additions and 6 deletions

View File

@@ -17,7 +17,7 @@ class OdometryEvent : public UEvent
{ {
public: public:
OdometryEvent( OdometryEvent(
const Image & data, int quality = 0) : const Image & data, int quality = -1) :
_data(data), _data(data),
_quality(quality) {} _quality(quality) {}
virtual ~OdometryEvent() {} virtual ~OdometryEvent() {}

View File

@@ -550,7 +550,7 @@ void MainWindow::processOdometry(const rtabmap::Image & data, int quality)
pose = _lastOdomPose; pose = _lastOdomPose;
} }
else if(quality && else if(quality>=0 &&
_preferencesDialog->getOdomQualityWarnThr() && _preferencesDialog->getOdomQualityWarnThr() &&
quality < _preferencesDialog->getOdomQualityWarnThr()) quality < _preferencesDialog->getOdomQualityWarnThr())
{ {
@@ -562,7 +562,10 @@ void MainWindow::processOdometry(const rtabmap::Image & data, int quality)
UDEBUG("odom ok"); UDEBUG("odom ok");
_ui->widget_cloudViewer->setBackgroundColor(Qt::black); _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()) if(!pose.isNull())
{ {
_lastOdomPose = pose; _lastOdomPose = pose;

View File

@@ -23,6 +23,7 @@ namespace rtabmap {
OdometryViewer::OdometryViewer(int maxClouds, int decimation, float voxelSize, int qualityWarningThr, QWidget * parent) : OdometryViewer::OdometryViewer(int maxClouds, int decimation, float voxelSize, int qualityWarningThr, QWidget * parent) :
CloudViewer(parent), CloudViewer(parent),
dataQuality_(-1),
lastOdomPose_(Transform::getIdentity()), lastOdomPose_(Transform::getIdentity()),
maxClouds_(maxClouds), maxClouds_(maxClouds),
voxelSize_(voxelSize), voxelSize_(voxelSize),
@@ -50,14 +51,14 @@ OdometryViewer::OdometryViewer(int maxClouds, int decimation, float voxelSize, i
void OdometryViewer::processData() void OdometryViewer::processData()
{ {
rtabmap::Image data; rtabmap::Image data;
int quality = 0; int quality = -1;
dataMutex_.lock(); dataMutex_.lock();
if(data_.size()) if(data_.size())
{ {
data = data_.back(); data = data_.back();
data_.clear(); data_.clear();
quality = dataQuality_; quality = dataQuality_;
dataQuality_ = 0; dataQuality_ = -1;
} }
dataMutex_.unlock(); dataMutex_.unlock();
@@ -109,7 +110,7 @@ void OdometryViewer::processData()
this->updateCameraPosition(data.pose()); this->updateCameraPosition(data.pose());
if(qualityWarningThr_ && quality && quality < qualityWarningThr_) if(qualityWarningThr_ && quality>=0 && quality < qualityWarningThr_)
{ {
this->setBackgroundColor(Qt::darkYellow); this->setBackgroundColor(Qt::darkYellow);
} }