一、SLAM介绍:
SLAM是“Simultaneous Localization And Mapping”的缩写,可译为同步定位与建图。SLAM问题的处理方法主要分为滤波和图优化两类。滤波的方法中常见的是扩展卡尔曼滤波、粒子滤波、信息滤波等。
二、图优化:
图是由节点和边构成。在graph-based SLAM中,机器人的位姿是一个节点(node)或顶点(vertex),位姿之间的关系构成边(edge)。具体而言比如t+1时刻和t时刻之间的odometry关系构成边,或者由视觉计算出来的位姿转换矩阵也可以构成边。一旦图构建完成了,就要调整机器人的位姿去尽量满足这些边构成的约束。
图优化SLAM问题能够分解成两个任务:
1. 构建图,机器人位姿当做顶点,位姿间关系当做边,这一步常常被成为前端(front-end),往往是传感器信息的堆积。
2. 优化图,调整机器人位姿顶点尽量满足边的约束,这一步称为后端(back-end)。
图优化过程如下:先堆积数据,机器人位姿为构建的顶点。边是位姿之间的关系,可以是编码器数据计算的位姿,也可以是通过ICP匹配计算出来的位姿,还可以是闭环检测的位姿关系。构建的图和原始未经优化的地图如下:
够建好图以后,就能调整顶点满足边的约束,最后得到的优化后的地图如下图右所示。
两种构建约束条件的方案:
(1)步长约束+闭环约束
(2)步长约束+地标约束
reference:
白巧克力亦唯心 graph slam tutorial : 从推导到应用1 ( https://blog.csdn.net/heyijia0327/article/details/47686523)