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

30 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,xingxing
cui,xingxing on 12 Dec 2022
Edited: cui,xingxing 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.
  2 Comments
Zheng Dong
Zheng Dong on 12 Dec 2022
Hi Cui,
Thank you for the answer! Factor graph is a new tool we introduced in R2022a, so we are still improving its documentations and implementing new features. In poseGraph, each node estimate is connected to the graph by edge constraints that define the relative pose between nodes and the uncertainty on that measurement, so the main measurement information utlized by poseGraph is relative pose. However, factorGraph is able to incorporate different types of information by defining different factors like factorIMU, factorGPS... Therefore, factorGraph is able to fuse multiple sensors for solving different SLAM problems. We will add more factors and examples in the future to illustrate how factorGraph works.
Thanks,
Zheng

Sign in to comment.

More Answers (0)

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!