cartographer_backend_constraint
- cartographer 后端约束类型示意图
- INTRA SUBMAP 子图内约束
- INTER SUBMAP 子图间约束
update:
首先后端优化是从一个整理来考虑的,其基于 global 系。利用到到子图与子图之间的变换关系,可是在前端(基于local系)过程中,子图位姿是单个相对于 local系 的位姿, 可以说多个子图之间他们是没有直接联系到一起的。除了子图,节点也一样,前端的节点都是根据活跃子图计算出相对于 local系 的位姿,但是却没有和前面已经完成的子图联系到一起,也显得比较孤立。
但是在后端优化中,这些都被考虑了进去,其估算出来的节点位姿,不仅希望其在活跃的子图位姿比较准确,还希望其相对于其他子图的位姿也比较准确,并且子图与子图之间的位姿也比较准确。同时呢,还要这些准确的位姿传递给到前端,因为全局优化是以一定频率持续优化,基于前面的优化再优化,而不是只优化一次。
在后端优化中,节点和子图的位姿是通过最小化误差函数来进行调整的。这个误差函数可以包含多种约束,如里程计测量、IMU数据、固定的参考帧位姿、特征点观测等等。优化的目标是找到一组位姿,使得所有的约束都得到满足,并且使得整个系统的一致性最好。
Cartographer的后端优化位姿图: