question:What's the difference between factorGraph and poseGraph/3D?

20 views (last 30 days)
In recent years, the navigation toolbox has become more and more supportive of pose graph optimization, with the introduction of functions such as "poseGraph/3D"(R2019b intruduced) and "factorGraph"(R2022a intruduced). Their Object functions are similar in many ways, but I am curious as to what is the fundamental difference between these two types of pose graphs? Which one should I choose to use when I have a problem? It seems that the "addPointLandmark" in "poseGraph/3D" and the "addFactor in "factorGraph"?
I also understand from other sources that the pose graph is a special case of the factor graph? Is the latter more applicable to the situation?
I look forward to a clear explanation and thanks in advance!

Accepted Answer

cui on 12 Dec 2022
Edited: cui on 12 Dec 2022
Using the official example "Landmark SLAM Using AprilTag Markers", I partly understand that factorGraph is more general than poseGraph/3D, mainly below items:
1, factorGraph can fuse different types of odometer data, e.g. the main program can fuse GPS, IMU, etc. (It would be nice to have additional factorWheel support in future versions).
2, factorGraph can also specify the initial state through the factorPoseSE3Prior object function, unlike poseGraph which can only build a trajectory graph from the origin.
3, factorGraph performs faster in terms of pose graph optimisation performance, except for a bit of overhead when building objects.
4,factorGraph has no limitations or caveats when it comes to deploying generated C code.
5,factorGraph supports the import of files with the ".g2o" suffix.
That's all I've found so far, feel free to add any better answers.

Sign in to comment.

More Answers (0)




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!