mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 09:30:25 +08:00
DbViewer: removed graph optimization from latest optimized poses (see http://official-rtab-map-forum.67519.x6.nabble.com/Database-Post-Processing-Save-refined-links-td6504.html)
This commit is contained in:
@@ -213,7 +213,6 @@ private:
|
|||||||
std::list<std::map<int, rtabmap::Transform> > graphes_;
|
std::list<std::map<int, rtabmap::Transform> > graphes_;
|
||||||
std::multimap<int, rtabmap::Link> graphLinks_;
|
std::multimap<int, rtabmap::Link> graphLinks_;
|
||||||
std::map<int, rtabmap::Transform> odomPoses_;
|
std::map<int, rtabmap::Transform> odomPoses_;
|
||||||
std::map<int, rtabmap::Transform> dbOptimizedPoses_;
|
|
||||||
std::map<int, rtabmap::Transform> groundTruthPoses_;
|
std::map<int, rtabmap::Transform> groundTruthPoses_;
|
||||||
std::map<int, rtabmap::Transform> gpsPoses_;
|
std::map<int, rtabmap::Transform> gpsPoses_;
|
||||||
std::map<int, GPS> gpsValues_;
|
std::map<int, GPS> gpsValues_;
|
||||||
@@ -242,9 +241,6 @@ private:
|
|||||||
double infoTotalOdom_;
|
double infoTotalOdom_;
|
||||||
double infoTotalTime_;
|
double infoTotalTime_;
|
||||||
int infoSessions_;
|
int infoSessions_;
|
||||||
|
|
||||||
bool useLastOptimizedGraphAsGuess_;
|
|
||||||
std::map<int, Transform> lastOptimizedGraph_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,8 +110,7 @@ DatabaseViewer::DatabaseViewer(const QString & ini, QWidget * parent) :
|
|||||||
iniFilePath_(ini),
|
iniFilePath_(ini),
|
||||||
infoReducedGraph_(false),
|
infoReducedGraph_(false),
|
||||||
infoTotalOdom_(0.0),
|
infoTotalOdom_(0.0),
|
||||||
infoSessions_(0),
|
infoSessions_(0)
|
||||||
useLastOptimizedGraphAsGuess_(false)
|
|
||||||
{
|
{
|
||||||
pathDatabase_ = QDir::homePath()+"/Documents/RTAB-Map"; //use home directory by default
|
pathDatabase_ = QDir::homePath()+"/Documents/RTAB-Map"; //use home directory by default
|
||||||
|
|
||||||
@@ -1100,9 +1099,6 @@ bool DatabaseViewer::closeDatabase()
|
|||||||
stereoViewer_->update();
|
stereoViewer_->update();
|
||||||
|
|
||||||
ui_->toolBox_statistics->clear();
|
ui_->toolBox_statistics->clear();
|
||||||
|
|
||||||
useLastOptimizedGraphAsGuess_ = false;
|
|
||||||
lastOptimizedGraph_.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ui_->actionClose_database->setEnabled(dbDriver_ != 0);
|
ui_->actionClose_database->setEnabled(dbDriver_ != 0);
|
||||||
@@ -1588,7 +1584,6 @@ void DatabaseViewer::updateIds()
|
|||||||
weights_.clear();
|
weights_.clear();
|
||||||
wmStates_.clear();
|
wmStates_.clear();
|
||||||
odomPoses_.clear();
|
odomPoses_.clear();
|
||||||
dbOptimizedPoses_.clear();
|
|
||||||
groundTruthPoses_.clear();
|
groundTruthPoses_.clear();
|
||||||
gpsPoses_.clear();
|
gpsPoses_.clear();
|
||||||
gpsValues_.clear();
|
gpsValues_.clear();
|
||||||
@@ -1779,8 +1774,6 @@ void DatabaseViewer::updateIds()
|
|||||||
uSleep(100);
|
uSleep(100);
|
||||||
QApplication::processEvents();
|
QApplication::processEvents();
|
||||||
|
|
||||||
dbOptimizedPoses_ = dbDriver_->loadOptimizedPoses();
|
|
||||||
|
|
||||||
if(!groundTruthPoses_.empty() || !gpsPoses_.empty())
|
if(!groundTruthPoses_.empty() || !gpsPoses_.empty())
|
||||||
{
|
{
|
||||||
ui_->checkBox_alignPosesWithGroundTruth->setVisible(true);
|
ui_->checkBox_alignPosesWithGroundTruth->setVisible(true);
|
||||||
@@ -6277,16 +6270,6 @@ void DatabaseViewer::updateGraphView()
|
|||||||
.arg(odomPoses_.begin()->first)
|
.arg(odomPoses_.begin()->first)
|
||||||
.arg(odomPoses_.rbegin()->first));
|
.arg(odomPoses_.rbegin()->first));
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
std::map<int, Transform> optimizedGraphGuess;
|
|
||||||
if(graphes_.size() && useLastOptimizedGraphAsGuess_)
|
|
||||||
{
|
|
||||||
optimizedGraphGuess = lastOptimizedGraph_;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
optimizedGraphGuess = dbOptimizedPoses_;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
graphes_.clear();
|
graphes_.clear();
|
||||||
@@ -6516,22 +6499,6 @@ void DatabaseViewer::updateGraphView()
|
|||||||
fromId,
|
fromId,
|
||||||
poses,
|
poses,
|
||||||
links,
|
links,
|
||||||
posesOut,
|
|
||||||
linksOut);
|
|
||||||
if(optimizedGraphGuess.size() == posesOut.size())
|
|
||||||
{
|
|
||||||
bool identical=true;
|
|
||||||
for(std::map<int, Transform>::iterator iter=posesOut.begin(); iter!=posesOut.end(); ++iter)
|
|
||||||
{
|
|
||||||
if(!uContains(optimizedGraphGuess, iter->first))
|
|
||||||
{
|
|
||||||
identical = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(identical)
|
|
||||||
{
|
|
||||||
posesOut = optimizedGraphGuess;
|
|
||||||
posesOut,
|
posesOut,
|
||||||
linksOut);
|
linksOut);
|
||||||
UINFO("Connected graph of %d poses and %d links", (int)posesOut.size(), (int)linksOut.size());
|
UINFO("Connected graph of %d poses and %d links", (int)posesOut.size(), (int)linksOut.size());
|
||||||
|
|||||||
Reference in New Issue
Block a user