第八章:SLAM系统设计
1. SLAM介绍
Simultaneous Localization and Mapping(SLAM):同时定位和建图
- Localization:传感器的位置和姿态;
- Mapping:地图构建
- 应用场景:定位、导航、避障、重建、交互
SLAM传感器分类:
- 携带于机器人本体的,例如轮式编码器、相机、激光等;
安装于环境中的,如导轨、二维码标识等;
开源SLAM方案
2. ORB-SLAM系统
同时运行三个线程:
- 跟踪:确定当前帧位姿;
- 建图:完成局部地图构建;
- 回环修正:回环检测以及基于回环信息修正系统漂移;
2.1 关键词介绍
(1)地图点
- 世界坐标系下的3D点坐标;
- 观测方向,即所有可以观测到该特征点的视图所产生的观测方向均值;
- ORB特征描述子;
- 该点能被观测到的最大距离与最小距离;
(2)关键帧
- 摄像机位姿;
- 内参数;
- 该帧中提取到的全部ORB特征描述子,以及它们和地图点之间的对应关系;
(3)共视图
一种有向无权图,节点为关键帧,如两个节点共享的地图点数量大于阈值(至少15个),则存在一条边,边的权重设置为共享地图点的个数。
(4)本质图
是共视图的子图,保留所有节点,边数量相较于共视图更少,尽量减少边,其作用是加速回环校正的计算。
本质图=生成树+共视图边权重超过100的边+回环边
2.2 跟踪线程
跟踪(Tracking):给定当前帧,从图像提取ORB特征,根据上一帧估计当前帧姿态,估计失败时,尝试全局重定位初始化位姿,构建局部地图进一步优化位姿,并确定是否设置成关键帧。
2.3 建图线程
建图(LocalMapping):完成局部地图构建。包括对关键帧的插入,验证最近生成的地图点并进行筛选,然后生成新的地图点,实用局部光束法平差(Local BA),最后再对插入的关键帧进行筛选,去除多余的关键帧。
2.4 回环修正线程
回环修正(LoopClosing):包含闭环检测和闭环校正两步。闭环探测先使用词袋模型找到闭环图片,然后通过Sim3算法计算相似变换。闭环校正主要是闭环融合和Essential Graph的图优化。