0.11.1: Added "ground_truth_pose" field to database in Node table. MainWindow: alignment of the map to ground truth (if ground truth is present).

This commit is contained in:
matlabbe
2016-01-07 19:39:21 -05:00
parent b8c9f32fd8
commit e7565db5d0
22 changed files with 283 additions and 132 deletions
+13 -7
View File
@@ -743,11 +743,11 @@ void Rtabmap::exportPoses(const std::string & path, bool optimized, bool global,
{
for(std::map<int, Transform>::iterator iter=poses.begin(); iter!=poses.end(); ++iter)
{
Transform o;
Transform o,g;
int m, w;
std::string l;
double stamp = 0.0;
_memory->getNodeInfo(iter->first, o, m, w, l, stamp, true);
_memory->getNodeInfo(iter->first, o, m, w, l, stamp, g, true);
stamps.insert(std::make_pair(iter->first, stamp));
}
}
@@ -2471,15 +2471,17 @@ bool Rtabmap::process(
int mapId = -1;
std::string label;
double stamp = 0;
Transform groundTruth;
std::vector<unsigned char> userData;
_memory->getNodeInfo(iter->first, odomPose, mapId, weight, label, stamp, false);
_memory->getNodeInfo(iter->first, odomPose, mapId, weight, label, stamp, groundTruth, false);
signatures.insert(std::make_pair(iter->first,
Signature(iter->first,
mapId,
weight,
stamp,
label,
odomPose)));
odomPose,
groundTruth)));
}
statistics_.setPoses(poses);
statistics_.setConstraints(constraints);
@@ -3090,7 +3092,8 @@ void Rtabmap::get3DMap(
int mapId = -1;
std::string label;
double stamp = 0;
_memory->getNodeInfo(*iter, odomPose, mapId, weight, label, stamp, true);
Transform groundTruth;
_memory->getNodeInfo(*iter, odomPose, mapId, weight, label, stamp, groundTruth, true);
SensorData data = _memory->getNodeData(*iter);
data.setId(*iter);
std::multimap<int, cv::KeyPoint> words;
@@ -3103,6 +3106,7 @@ void Rtabmap::get3DMap(
stamp,
label,
odomPose,
groundTruth,
data)));
signatures.at(*iter).setWords(words);
signatures.at(*iter).setWords3(words3);
@@ -3156,14 +3160,16 @@ void Rtabmap::getGraph(
int mapId = -1;
std::string label;
double stamp = 0;
_memory->getNodeInfo(iter->first, odomPose, mapId, weight, label, stamp, global);
Transform groundTruth;
_memory->getNodeInfo(iter->first, odomPose, mapId, weight, label, stamp, groundTruth, global);
signatures->insert(std::make_pair(iter->first,
Signature(iter->first,
mapId,
weight,
stamp,
label,
odomPose)));
odomPose,
groundTruth)));
}
}
}