SLAM简介
什么是SLAM?
SLAM从本质上来说它要实现的就是通过传感器去实时地估计自身位置及经过的轨迹。对于我们人来说这是很简单的一件事情,但是想要通过计算机算法来实现的话,难度还是相当大的。
从图中可以看出上面是相机直接观测到的图像,利用特征提取拼接成白底的稀疏地图及路径。
从VSLAM角度出发,VSLAM建出的地图可以分为稀疏、半稠密、稠密地图
总结:定位、轨迹、建图、实时
传感器
使用不同的传感器,所对应的SLAM算法也不同,这里简单介绍一个能够进行SLAM的传感器。
传感器分为内质与外质,内质传感器主要是同传感器本身的去估计出自己的位置,外质则是外界来告诉你自己准确的定位。
内质: imu、Lidar、Camera等
外质: GPS、二维码等外界定位方法
并不是所有场景都能使用所有的传感器,要根据周围环境而定,比如光线条件较差的场景无法使用camera,室内无法使用GPS,周围场景形状单一不能使用Lidar等等,需要根据自己的需求选用特定的传感器,再选择特定的SLAM算法。
VSLAM架构
视觉里程计
使用特征法或直接法估计临近时刻(或两帧之间)相机的运动。
后端优化
从带有噪声的视觉里程计拼接的局部地图中,估计出最优轨迹与地图(最大后验概率、图优化、其他滤波器)。
SLAM应用
- 室内建图
- 相机定位
- 机器人定位
- 无人驾驶定位
- 稠密建图AR互动
自学参考书
- 《Multiple View Geometry in computer vision》
- 《State Estimation For Robotics》
- 《视觉SLAM十四讲》
预备知识
- 高等数学
- 线性代数
- 概率论
- C++
- LINUX