mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-01 17:10:26 +08:00
DBViewer: when adding new constraints, if visual reg is not used, we use optimized graph as guess
This commit is contained in:
@@ -6838,7 +6838,27 @@ bool DatabaseViewer::addConstraint(int from, int to, bool silent)
|
||||
Parameters::kRGBDLoopClosureReextractFeatures().c_str());
|
||||
}
|
||||
|
||||
t = reg->computeTransformationMod(*fromS, *toS, Transform(), &info);
|
||||
Transform guess;
|
||||
if(!reg->isImageRequired())
|
||||
{
|
||||
// make a fake guess using globally optimized poses
|
||||
if(graphes_.size())
|
||||
{
|
||||
std::map<int, Transform> optimizedPoses = uValueAt(graphes_, ui_->horizontalSlider_iterations->value());
|
||||
if(optimizedPoses.size() > 0)
|
||||
{
|
||||
std::map<int, Transform>::iterator fromIter = optimizedPoses.find(from);
|
||||
std::map<int, Transform>::iterator toIter = optimizedPoses.find(to);
|
||||
if(fromIter != optimizedPoses.end() &&
|
||||
toIter != optimizedPoses.end())
|
||||
{
|
||||
guess = fromIter->second.inverse() * toIter->second;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
t = reg->computeTransformationMod(*fromS, *toS, guess, &info);
|
||||
delete reg;
|
||||
UDEBUG("");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user