From f75839294a3f2c783742d2838daf5234d7379edf Mon Sep 17 00:00:00 2001 From: matlabbe Date: Fri, 16 Jun 2023 16:30:07 -0700 Subject: [PATCH] Fixes for rtabmap_viz info sub only (with local cache) --- guilib/src/MainWindow.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/guilib/src/MainWindow.cpp b/guilib/src/MainWindow.cpp index bab14e25..950babff 100644 --- a/guilib/src/MainWindow.cpp +++ b/guilib/src/MainWindow.cpp @@ -2212,7 +2212,9 @@ void MainWindow::processStats(const rtabmap::Statistics & stat) UDEBUG("time= %d ms (update detection ui)", time.restart()); //update image views - if(!signature.sensorData().imageRaw().empty() || signature.getWords().size()) + if(!signature.sensorData().imageRaw().empty() || + !loopSignature.sensorData().imageRaw().empty() || + signature.getWords().size()) { cv::Mat refImage = signature.sensorData().imageRaw(); cv::Mat loopImage = loopSignature.sensorData().imageRaw(); @@ -2393,7 +2395,10 @@ void MainWindow::processStats(const rtabmap::Statistics & stat) //====================== // RGB-D Mapping stuff //====================== - _odometryCorrection = stat.mapCorrection(); + if(!stat.mapCorrection().isNull()) + { + _odometryCorrection = stat.mapCorrection(); + } // update clouds if(stat.poses().size()) { @@ -7205,6 +7210,11 @@ void MainWindow::updateCacheFromDatabase(const QString & path) signatures.insert(std::make_pair((*iter)->id(), *(*iter))); delete *iter; } + if(_currentPosesMap.empty() && _currentLinksMap.empty()) + { + _currentPosesMap = driver->loadOptimizedPoses(); + driver->getAllLinks(_currentLinksMap, true, true); + } RtabmapEvent3DMap event(signatures, _currentPosesMap, _currentLinksMap); processRtabmapEvent3DMap(event); }