自身位置——定位
周围环境——建图
传感器分类
- 机器人携带 编码器 相机 激光传感器 IMU(惯性测量单元)——可适用于未知环境
- 环境中安装 导轨 标志 GPS ——使用场景受限
视觉SLAM 强调未知环境
视觉——相机,不同于单反相机,它更简单,连续拍摄,形成视频流。普通摄像头30帧/秒
相机分类
单目相机(Monocular)
单目相机的数据:照片;
照片(图像)以二维的形式反映了三维的世界。
无法通过单张图片得到深度信息。——存在尺度不确定性
双目相机(Stereo)
两个相机间的距离——基线已知。
基线越大,能测量的距离越远。因此,无人车上的双目相机体积较大。
优点:
- 不依赖其他传感器,适用于室内室外。
缺点:
- 配置与标定配置与标定较为复杂。
- 深度量程和精度受基线和分辨率限制。
- 视差的计算非常消耗计算资源。(需要使用GPU和FPGA加速)
深度相机(RGB-D)
- 结构光
- Time-of-Flight(ToF)
通过发射光并接收物体对光的反射来计算距离。——物理手段。
优点:
- 需要的计算资源少
缺点:
- 测量范围窄、噪声大、视野小、易受日光干扰、无法测量透射材质。
经典视觉SLAM框架
- 传感器数据读取
- 视觉里程计(Visual Odometry, VO)
- 后端优化(Optimization)
- 回环检测(Loop Closing)
- 建图(Mapping)
视觉里程计
-
通过相邻图像,估计相机的运动。
-
根据每个时刻相机的位置,计算出像素点对应的空间位置。
会有累积为误差。——累积漂移(Accumulating Drift)
回环检测,检测出漂移,后端优化根据检测的信息,校正轨迹。
计算机视觉领域,图像的特征提取和匹配。
后端优化
- 目的:处理SLAM过程中的噪声问题,传感器的噪声,受环境的干扰。
视觉里程计的估计误差,状态(轨迹和地图)估计不确定性——最大后验概率估计(Maximum-a-Posteriori,MAP)。
滤波与非线性优化算法。
回环检测
- 识别到过的场景,使后端可以据此消除累积误差。
实现方式
- 环境传感器:在环境中设置标志,二维码等。——受环境限制。
- 携带的传感器:判断图像间的相似性。
建图
地图形式丰富:
分类:
-
度量地图
- 稀疏:路标组成的地图,——可用于定位
- 稠密:建模所有看到的东西,——可用于导航
-
拓扑地图
数学描述
机器人 携带传感器 在未知环境中 运动
- 运动方程——定位
- 观测方程——建图
方程是否为线性——线性/非线性
噪声是否服从高斯分布——高斯/非高斯
线性高斯系统(Linear Gaussian, LG):无偏的最优估计可由卡尔曼滤波器给出。
非线性非高斯系统(Non-Linear Non-Gaussian, NLNG):扩展卡尔曼滤波器(EKF) 和非线性优化。
主流SLAM使用图优化,优化技术优于滤波器技术。