从零开始搭建一套SLAM系统
第一天:整体算法框架简介以及学习建议
SLAM是什么
-
SLAM 和 SFM 是什么关系
- 不同点:
- SFM (Structure From Motion),称之为传统三维重建,这是一门计算机视觉学科的分支,特点是把图片数据集集回来,离线慢慢精细化处理。常见应用就是重建某建筑物的3d地图,比较炫的成果可以见 rome_paper.pdf (washington.edu) (一天重建罗马城)。
- 提起SLAM就要提到ROS。ROS是机器人操作系统,用一堆杂七杂八的传感器组装好一套硬件,采集各个传感器的数据,传送给ROS的处理节点。SLAM会处理这些数据进行实时建图与定位,要做到的是低运算量!2107.00822 (arxiv.org)
- 二者所属学科不同,应用侧重点不同。
- 相同点:
- SFM为SLAM提供了强有力的理论支持,二者的数学理论相似。
- 不同点:
-
SLAM 和 Deep Learning 是什么关系
- SLAM是和Deep Learning互补的算法。SLAM专注于几个问题,通过构建周围世界的3d或2d地图,并确定robot所在的位置和方向,Deep Learning主要解决感知与识别。
- 如果想让机器人走到冰箱而不撞墙,你需要SLAM;如果要识别冰箱内的物体,你需要神经网络。
SLAM的前端后端
-
首先明确三个问题:
- SLAM可以使用大量不同的硬件
- SLAM是一个概念不是算法
- SLAM包含多个模块,每个模块都有多种算法
-
SLAM框架可以分为前端和后端。
-
前端:涉及传感器的选择以及传感器数据处理,比如里程计时间戳和Lidar点云时间戳的对齐等。位姿粗估计。
- 移动系统:里程计、GPS、IMU惯导等
- 移动系统中的传感器可以选择一种或多种,甚至“没有”(参考纯视觉里程计VO或者纯激光里程计LO)。
- 前端状态估计
- IMU积分或轮速DR
- 对极几何
- 点云配准
- 前端状态估计
-