对Slam框架的流程做一个基本的了解。
SLAM框架
-
传感器数据:激光扫描,图像,点云
- 激光传感器
- 相机传感器:单目,多目,RGB-D
- IMU
-
视觉里程计(VO):特征匹配,直接配准
提取关键点$\Rightarrow$特征匹配$\Rightarrow$运动估计
-
后端:滤波器,图优化
- 局部优化
- 全局优化
-
建图:2D,3D地图,轨迹
- SLAM的主要的输出,不只是指地图(绘图)
- metric map:含有每个特征点,准确,难扩展
- topological map:局部信息少,灵活,消耗少
- 重建,重构
- 回环检测
- VO存在误差累积(drift)
- 认知曾经访问的位置
- 基于里程计:根据轨迹估计是否原位置,问题是逻辑递归
- 基于图像外观:图像识别是否相似,
- 比较模型:Bag-of-Words,一个目标根据特征聚类建立字典,把二维矩阵转换为一维向量,A face=2eyes + 1nose+…..;深度学习分类
-
总结
传感器数据$\Rightarrow$VO做关键帧之间的运动估计$\Rightarrow$ 在后端做全局的优化$\Rightarrow$回环检测来使优化更准确稳定$\Rightarrow$通过建图来描述环境
- 常见的开源解决方案
- RGBD-SLAM:RGBD
- ORB-SLAM:单目
- LSD-SLAM:单目
- cartographer:激光
- Libraries:
- ROS
- OpenCV
- PCL
- g2o
- ceres