Open Natalie-ZG opened 4 years ago
actually you are better off using the theia pose computation for now. For that to work you need theia.
Here is why the standard ceres based method fails: The theia's pose computation is a 2 step process a) closed form computation of the pose b) non-linear refinement stage.
In my ceres based method, it is only refining the input pose. If the initial estimate of the pose is bad it won't work as expected. This is especially the case under kidnap, when the poses from odometry is really a bad guess for relative pose computation at loop candidates.
I am working to eliminate the dependence on theia. Look at my branch: robust-pose-computation However it is not ready yet.
Let me know if this answers your question.
Hi. Thanks for your excellent work firstly.
I have tried to modify "#if 1" to "#if 0" at this part below to change to ceres instead of Theia sfm. But I got different results comparing to using Theia sfm with the same ros bag. It can pass the makeLoopEdgeMsgWithConsistencyCheck with Theia, but not with ceres. I'm confused whether I was wrong to switch the dependence.
cerebro/src/Cerebro.cpp
Would you please help me with this issue? Thanks again.