一、SLAM是什么
SLAM(simultaneous localization and mapping):同时定位与建图。
使用的传感器:
- 内在(感受机器人本体信息):加速度计、陀螺仪、轮式编码器
- 外在(感受外界信息):相机、激光
对于视觉SLAM而言,主流方法使用三种相机:
- 单目相机:无深度,深度需要其他手段估计,估计出来的深度具有尺度不确定性。成本低、结构简单。
- 双目相机:通过视差计算深度。耗费计算资源、标定复杂。
- 深度相机:常用有结构光法、TOF两种。可以直接获取场景深度,但存在测量范围窄、噪声大、视野小、受日光干扰、无法测量透射材料等问题,目前主要应用于室内。
二、经典SLAM框架
视觉里程计:估计相邻图像之间的运动,并恢复场景的空间结构。方法:特征点法、直接法。
后端优化:从带噪声的数据中估计出最优的轨迹和地图。方法:滤波、图优化。
回环检测:计算图像间的相似性,判断相机是否达到之前去过的位置。方法:DBOW模型。
建图:稀疏/稠密点云地图、网格地图、栅格地图。
三、SLAM问题的数学表述
运动方程:
观测方程:
其中x表示传感器的pose,u为传感器的输入,w为噪声。y为地图路标点,z为观测数据,v为观测噪声。
四、实践
cmake学习。