1.SLAM的定义与分类
1.SLAM的定义
- Localization:在给定地图的情况下,估计机器人的位姿(定位:最重要,最难)
- Mapping:在给定机器人位姿的情况下,估计环境地图(建图)
- SLAM:同时估计机器人的位姿和环境地图(同时建图定位)
2.SLAM解决的问题
- 机器人在环境中的位姿
- 导航过程中需要的环境地图
3.基于传感器分类
- 二维激光SLAM(大部分环境可以解决,室内)
- 三维激光SLAM(成本高,室外)
- 视觉SLAM(信息丰富,室内室外通用)
- 声呐SLAM(绘制海图)
4.基于后端的分类
- 图优化方法(graph-based)(最流行,最好的)
- 滑动窗口方法(sliding-window)(VIO,VO)
- 滤波器方法(filter-based)(particle filer , Gmapping)
2.SLAM的框架
1.Graph-based SLAM
- 前段匹配(局部匹配,帧间匹配)
- 回环检测
- 后端优化
2.图的结构
- Graph:表示SLAM的过程
- Node:机器人的位姿
- Edge:节点之间的空间约束关系
3.激光SLAM的pipeline(流程)
传感器—>传感器数据处理—>前段匹配 —>回环检测 —>后端优化 —>地图构建
- 激光雷达区畸变,里程计矫正
- 激光帧间(算法核心)
- 激光回环检测
- 非线性最小二乘优化
数据处理
- 激光雷达运动畸变去除(实用)
- 里程计数矫正
帧间匹配算法
- ICP(Iterative Closest Point)
- PI-ICP (Point-to-Line Iterative Closest Point)
- NDT (Normal Distribution Transformation)
- CSM (Correlation Scan Match)
回环检测
- Scan-to-Scan
- Scan-to-Map
- Map-to-Map
后端优化
- 高斯牛顿方法
- LM方法
3.激光SLAM
1.2D激光SLAM
1.2D激光SLAM的输入
- IMU数据
- 里程计数据
- 2D激光雷达数据
2.2D激光SLAM的输出
- 覆盖栅格地图
- 机器人的轨迹 or PoseGraph
3.数据的预处理--(非常重要)
- 轮式里程计的标定
- 激光雷达运动畸变去除
- 不同系统之间的时间同步
4.实际环境中的问题
- 动态物体
- 环境变化
- 集合结构相似环境
- 建图的操作复杂
- 全局定位
- 地面材料的变化
- 地面凹凸不平
- 机器人载重的的改变
5.视觉提供的信息
- 高精度的里程信息
- 信息量丰富的视觉地图
6.融合解决的问题
- 动态物体
- 环境变化
- 集合结构相似环境
- 建图的操作复杂
- 全局定位
- 地面材料的变化
- 地面凹凸不平
- 机器人载重的变化
2.3D激光SLAM
1.3D激光SLAM的输入
- IMU数据
- 里程计数据
- 3D激光雷达数据
2.3D激光SLAM的输出
- 3D点云地图
- 机器人的轨迹or PoseGraph
3.3D激光SLAM的帧间匹配方法
- Point-to-Plane ICP
- NDT
- Feature-based Method
- GICP
- NICP
- IMLS-ICP
4.3D激光SLAM的回环检测方法
- Scan-to-Scan
- Scan-to-Map
- Branth and Bound & Lazy Decision
5.数据的预处理--(非常重要)
- 轮式里程计的标定
- 激光雷达运动畸变去除
- 不同系统之间的时间同步
6.与视觉融合
- 3D激光雷达为视觉特征提供深度信息
- 视觉辅助激光雷达进行运动畸变去除
- 视觉辅助回环检测
- 视觉提供精确里程信息
3.激光SLAM的问题
1.退化环境
2.地图的动态更新
3.去那句定位
4.动态环境定位
4.传感器数据处理 1:里程计运动模型及标定
1.里程计模型
1.两轮差分底盘的运动学模型
优点
- 结构简单
- 便宜(2个点击)
- 模型简单
航迹推算
2.里程计标定
1.线性最小二乘的基本原理
1.线性方程组Ax=b
- A为m x n的矩阵
- x为n x 1的向量
当m=n时,适定方程组,方程组有唯一解
当m<n时,欠定方程组,方程组有无穷多解
当m>n时,超定方程组,方程组有通常无解
2.最小二乘解
- 绝大多数情况为m>n,超定方程组
- 无解,可以寻找最靠近真实解的解
- 无解但是有最小二乘解
(AX=B AX-B=E)为最小二乘 此时X为最小二乘解
通解 :x * =(AT A)-1 AT B
2.最小二乘的直线拟合
1.最小二乘的求解--线性空间的角度
Ax表示A的列向量空间S
无解意味着向量b不再S中
最近的解即为:向量b在S中的投影
3.最小二乘在里程计标定中的应用
1.直接线性方法
通用性强
实现简单
精度不高
2.基于模型的方法
精度高
实现复杂
特异性高
5.传感器数据处理 2:激光雷达运动畸变去除
1.概念介绍
1.激光雷达传感器介绍
三角测距
- 中近距离精度较高
- 价格便宜
- 远距离精度较差
- 易受干扰
- 一盘在室内使用
飞行时间(TOF)
- 测距范围广
- 测距精度高
- 抗干扰能力强
- 价格昂贵
- 室内室外皆可
2.激光雷达数学模型介绍
1.光束模型
缺点:在非结构化环境中 ,为子微小的改变会造成期望值的巨大改变,从而导致的分进行突变
2.似然场模型
- 对图像进行高斯平滑,在任何环境中期望值对于位姿都是平滑的
- 得分的计算不需要经过raytracking直接通过查表即可得到,计算量低
- 同时是和结构花环境和非结构环境中
3.运动畸变介绍
产生的原因
- 激光点数据不是瞬时获得
- 激光测量时伴随着机器人的运动
- 激光帧率较低时,机器人的运动不能忽略
2.畸变去除
1.纯估计方法
1.ICP
类ICP方法-->ICP vaviant(求两个点云之间相对位置关系)
已知对应点的求解方法
={
-
} ={
}
=
则ICP的解为
未知对应点的求解方法
- 实质中,不知道对应点匹配
- 不能一布到为计算出R和t
- 进行迭代计算
- EM算法的一个级别
算法流程
- 寻找对应点
- 根据对应点,计算R和t
- 对点云进行转换,计算误差
- 不断迭代,直至误差小于某一个值
ICP方法在激光匹配中的缺点
- 没有考虑激光的运动畸变
- 当前的激光数据是错误的
2.VICP
- ICP算法
- 考虑了机器人的运动
- 匀速运动
- 进行匹配匹配的同时估计机器人的速度