MainWindow: added public isProcessingOdometry() and isProcessingStatistics()

This commit is contained in:
Mathieu Labbe
2015-03-20 15:54:33 -04:00
parent 10eee94e98
commit 2be511813e
2 changed files with 13 additions and 7 deletions

View File

@@ -104,6 +104,9 @@ public:
void setMonitoringState(bool pauseChecked = false); // in monitoring state, only some actions are enabled void setMonitoringState(bool pauseChecked = false); // in monitoring state, only some actions are enabled
bool isSavedMaximized() const {return _savedMaximized;} bool isSavedMaximized() const {return _savedMaximized;}
bool isProcessingStatistics() const {return _processingStatistics;}
bool isProcessingOdometry() const {return _processingOdometry;}
public slots: public slots:
void processStats(const rtabmap::Statistics & stat); void processStats(const rtabmap::Statistics & stat);
@@ -280,7 +283,7 @@ private:
std::map<int, std::pair<cv::Mat, cv::Mat> > _gridLocalMaps; // <ground, obstacles> std::map<int, std::pair<cv::Mat, cv::Mat> > _gridLocalMaps; // <ground, obstacles>
Transform _odometryCorrection; Transform _odometryCorrection;
Transform _lastOdomPose; Transform _lastOdomPose;
bool _lastOdometryProcessed; bool _processingOdometry;
QTimer * _oneSecondTimer; QTimer * _oneSecondTimer;
QTime * _elapsedTime; QTime * _elapsedTime;

View File

@@ -125,7 +125,7 @@ MainWindow::MainWindow(PreferencesDialog * prefDialog, QWidget * parent) :
_odomImageShow(true), _odomImageShow(true),
_odomImageDepthShow(false), _odomImageDepthShow(false),
_odometryCorrection(Transform::getIdentity()), _odometryCorrection(Transform::getIdentity()),
_lastOdometryProcessed(true), _processingOdometry(false),
_oneSecondTimer(0), _oneSecondTimer(0),
_elapsedTime(0), _elapsedTime(0),
_posteriorCurve(0), _posteriorCurve(0),
@@ -604,6 +604,7 @@ void MainWindow::handleEvent(UEvent* anEvent)
this->pauseDetection(); this->pauseDetection();
} }
} }
_processingStatistics = true;
emit statsReceived(stats); emit statsReceived(stats);
} }
else if(anEvent->getClassName().compare("RtabmapEventInit") == 0) else if(anEvent->getClassName().compare("RtabmapEventInit") == 0)
@@ -631,9 +632,9 @@ void MainWindow::handleEvent(UEvent* anEvent)
else if(anEvent->getClassName().compare("OdometryEvent") == 0) else if(anEvent->getClassName().compare("OdometryEvent") == 0)
{ {
OdometryEvent * odomEvent = (OdometryEvent*)anEvent; OdometryEvent * odomEvent = (OdometryEvent*)anEvent;
if(_lastOdometryProcessed && !_processingStatistics) if(!_processingOdometry && !_processingStatistics)
{ {
_lastOdometryProcessed = false; // if we receive too many odometry events! _processingOdometry = true; // if we receive too many odometry events!
emit odometryReceived(odomEvent->data(), odomEvent->info()); emit odometryReceived(odomEvent->data(), odomEvent->info());
} }
} }
@@ -659,6 +660,7 @@ void MainWindow::handleEvent(UEvent* anEvent)
void MainWindow::processOdometry(const rtabmap::SensorData & data, const rtabmap::OdometryInfo & info) void MainWindow::processOdometry(const rtabmap::SensorData & data, const rtabmap::OdometryInfo & info)
{ {
_processingOdometry = true;
UTimer time; UTimer time;
Transform pose = data.pose(); Transform pose = data.pose();
bool lost = false; bool lost = false;
@@ -894,14 +896,14 @@ void MainWindow::processOdometry(const rtabmap::SensorData & data, const rtabmap
_ui->imageView_odometry->fitInView(_ui->imageView_odometry->sceneRect(), Qt::KeepAspectRatio); _ui->imageView_odometry->fitInView(_ui->imageView_odometry->sceneRect(), Qt::KeepAspectRatio);
} }
_lastOdometryProcessed = true;
if(_ui->actionAuto_screen_capture->isChecked() && _autoScreenCaptureOdomSync) if(_ui->actionAuto_screen_capture->isChecked() && _autoScreenCaptureOdomSync)
{ {
this->captureScreen(); this->captureScreen();
} }
_ui->statsToolBox->updateStat("/Gui refresh odom/ms", (float)data.id(), time.elapsed()*1000.0); _ui->statsToolBox->updateStat("/Gui refresh odom/ms", (float)data.id(), time.elapsed()*1000.0);
_processingOdometry = false;
} }
void MainWindow::processStats(const rtabmap::Statistics & stat) void MainWindow::processStats(const rtabmap::Statistics & stat)
@@ -1184,12 +1186,13 @@ void MainWindow::processStats(const rtabmap::Statistics & stat)
{ {
this->captureScreen(); this->captureScreen();
} }
_processingStatistics = false;
if(!_preferencesDialog->isImagesKept()) if(!_preferencesDialog->isImagesKept())
{ {
_cachedSignatures.clear(); _cachedSignatures.clear();
} }
_processingStatistics = false;
} }
void MainWindow::updateMapCloud( void MainWindow::updateMapCloud(