mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-01 17:10:26 +08:00
MainWindow: added public isProcessingOdometry() and isProcessingStatistics()
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user