mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-03 01:50:24 +08:00
OptimizerG2O: removed fixed frame if a posePrior link is detected
This commit is contained in:
@@ -215,6 +215,16 @@ std::map<int, Transform> OptimizerG2O::optimize(
|
|||||||
optimizer.setAlgorithm(new g2o::OptimizationAlgorithmLevenberg(blockSolver));
|
optimizer.setAlgorithm(new g2o::OptimizationAlgorithmLevenberg(blockSolver));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// detect if there is a global pose prior set, if so remove rootId
|
||||||
|
for(std::multimap<int, Link>::const_iterator iter=edgeConstraints.begin(); iter!=edgeConstraints.end(); ++iter)
|
||||||
|
{
|
||||||
|
if(iter->second.from() == iter->second.to())
|
||||||
|
{
|
||||||
|
rootId = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
UDEBUG("fill poses to g2o...");
|
UDEBUG("fill poses to g2o...");
|
||||||
std::map<int, std::pair<Transform, cv::Mat> > geoPoses; // pose / information matrix
|
std::map<int, std::pair<Transform, cv::Mat> > geoPoses; // pose / information matrix
|
||||||
for(std::map<int, Transform>::const_iterator iter = poses.begin(); iter!=poses.end(); ++iter)
|
for(std::map<int, Transform>::const_iterator iter = poses.begin(); iter!=poses.end(); ++iter)
|
||||||
|
|||||||
Reference in New Issue
Block a user