激光SLAM笔记(1)——激光SLAM框架和基本数学理论

激光SLAM笔记(1)——激光SLAM框架和基本数学理论

  • 1、SLAM分类
    • 1.1、基于传感器的分类
    • 1.2、基于后端的分类
  • 2、激光SLAM算法(基于优化的算法)
    • 2.1、激光SLAM算法的流程
    • 2.2、激光SLAM常用算法
    • 2.3、激光SLAM在实际环境中的问题
  • 3、激光SLAM算法介绍
    • 3.1、2D激光SLAM
    • 3.2、3D激光SLAM
  • 4、激光SLAM的数学基础
    • 4.1、位姿表示
    • 4.2、2D位姿变换

1、SLAM分类

1.1、基于传感器的分类

激光SLAM笔记(1)——激光SLAM框架和基本数学理论_第1张图片

1.2、基于后端的分类

激光SLAM笔记(1)——激光SLAM框架和基本数学理论_第2张图片
  基于图优化方法的激光SLAM有cartographer,基于滤波器的方法有GMapping。
基于图的SLAM
激光SLAM笔记(1)——激光SLAM框架和基本数学理论_第3张图片

2、激光SLAM算法(基于优化的算法)

2.1、激光SLAM算法的流程

  基于图优化方法的激光SLAM和视觉SLAM的流程相同,只是其中用到的算法不同
激光SLAM笔记(1)——激光SLAM框架和基本数学理论_第4张图片

2.2、激光SLAM常用算法

一、数据预处理

  1. 里程计标定
      轮式里程计的机械标称值并不代表真实值,实际误差可能较大。所以需要标定后才能使用。 里程计的精度对于机器人定位和建图至关重要
  2. 激光雷达运动畸变去除
      每一帧激光数据的采集需要时间,在采集期间如果机器人运动会使测量值产生畸变。运动产生的畸变会让数据严重失真,影响匹配精度。
  3. 不同系统之间的时间同步

二、帧间匹配算法(激光SLAM核心部分)
  帧间匹配算法直接影响激光SLAM的效果,后端优化只是消除该过程所积累的误差,帧间匹配估计的位姿越准确,后期建图效果越好。常用算法如下图所示:
激光SLAM笔记(1)——激光SLAM框架和基本数学理论_第5张图片
三、回环检测方法
激光SLAM笔记(1)——激光SLAM框架和基本数学理论_第6张图片
  实际应用中实际多使用Map-to-Map来进行回环检测。
四、后端优化方法
  使用G2O库,构建残差模型,使用高斯牛顿法LM方法进行优化。

2.3、激光SLAM在实际环境中的问题

  四大类问题:
1、退化环境(Degeneration Environment):走廊问题、空旷环境
2、地图的动态更新(Map Update):地图的变更到时定位出错
3、全局定位(Global Localization):绑架问题
4、动态环境定位(Dynamic Localization):人、车和其他物体影响
  具体问题如下:
激光SLAM笔记(1)——激光SLAM框架和基本数学理论_第7张图片

3、激光SLAM算法介绍

3.1、2D激光SLAM

一、2D激光SLAM的输入和输出:
输入:IMU数据、里程计数据、2D激光雷达数据
输出:覆盖栅格地图、机器人的运动轨迹或PoseGraph
二、2D激光SLAM常用帧间匹配方法
激光SLAM笔记(1)——激光SLAM框架和基本数学理论_第8张图片
三、2D激光SLAM的回环检测方法
激光SLAM笔记(1)——激光SLAM框架和基本数学理论_第9张图片
四、2D激光SLAM经典算法

  1. 基于滤波器的方法:
    Gmapping :基于粒子滤波,每一个粒子都带有一个地图
    Optimal RBPF:Gmapping的进一步优化
  2. 基于图优化的方法:
    Cartographer:算法与Karto-SLAM原理类似,更完整,使用CSM+SBA
    五、2D激光SLAM的发展趋势——与视觉融合
    激光SLAM笔记(1)——激光SLAM框架和基本数学理论_第10张图片

3.2、3D激光SLAM

一、3D激光SLAM的输入和输出
输入:IMU数据、里程计数据、3D激光雷达数据
输出:3D点云地图、机器人轨迹或PoseGraph
二、3D激光SLAM常用帧间匹配方法
激光SLAM笔记(1)——激光SLAM框架和基本数学理论_第11张图片
三、3D激光SLAM与激光进行融合
激光SLAM笔记(1)——激光SLAM框架和基本数学理论_第12张图片

4、激光SLAM的数学基础

4.1、位姿表示

  此处可以参考两个内容,在此不做展开(关键是自己重写太麻烦):
1. 视觉SLAM中的数学基础 第一篇 3D空间的位置表示
https://www.cnblogs.com/gaoxiang12/p/5113334.html
2. 视频演示讲解:
https://www.youtube.com/watch?v=8XRvpDhTJpw

4.2、2D位姿变换

激光SLAM笔记(1)——激光SLAM框架和基本数学理论_第13张图片
  从4.1的资料1中,我们知道了2D机器人的位姿表示和坐标变换的概念,不同坐标系之间2D位姿变换关系如上图所示。
  设机器人坐标系B中一坐标点 P B P_B PB,其在世界坐标系O中的坐标为 P O = T O B ⋅ P B P_O = T_{OB} · P_B PO=TOBPB,反过来就有 P B = T O B − 1 ⋅ P O = T B O ⋅ P O P_B = {T_{OB}}^{-1} · P_O=T_{BO}·P_O PB=TOB1PO=TBOPO
  如上图右边,由机器人A在O中的位姿 ( x A , y A , θ A ) (x_A,y_A,\theta_A) (xA,yA,θA),得到坐标系A到坐标系O的变换 T O A T_{OA} TOA,同理有 T O B T_{OB} TOB。设坐标系A到坐标系B之间的变换矩阵为 T B A T_{BA} TBA,则有 T B A = T B O ⋅ T O A = T O B − 1 ⋅ T O A T_{BA} = T_{BO} · T_{OA} = {T_{OB}}^{-1} · T_{OA} TBA=TBOTOA=TOB1TOA(先将坐标系A转换到坐标系O,再由坐标系O转换到坐标系B)。
  2D坐标系中,变换矩阵无法传递角度,则最后的坐标由下式表示:
$(x_B,y_B,\theta_B) = $

你可能感兴趣的:(激光SLAM)