激光SLAM入门笔记(一):概述

内容基于深蓝学院课件,如有错误,烦请斧正,不胜感激。

激光SLAM

pipeline

1. 数据处理(非常重要
激光雷达去畸变、里程计标定
2. 帧间匹配(核心部分
ICP计算两帧激光之间的相对位姿
3. 回环检测
识别回到访问过的环境
4. 后端优化
位姿图、非线性最小二乘优化

1.数据处理(非常重要

里程计标定
  • 机械标称值不代表实际值,实际误差可能较大
  • 里程计的精度对于机器人定位和建图至关重要
激光雷达运动畸变去除
  • 一帧激光数据的采集需要时间
  • 运动畸变会让数据严重失真,影响匹配精度

2.帧间匹配(核心部分

算法

简称全称
ICPIterative Closest Point
PI-ICPPoint-to-Line Iterative
NICPNormal Iterative Closest Point
CSMCorrelation Scan Match
NDTNormal Distance Transform
Optimization-Based
Feature-Based

3.回环检测

方法特点
Scan-to-Scan计算量最小,容易产生歧义
Scan-to-Map计算量中等,中等歧义
Map-to-Map计算量最大,基本不产生歧义

4.后端优化

高斯牛顿方法
LM方法

2D激光SLAM

输入

  • IMU数据
  • 里程计数据
  • 2D激光雷达数据

输出

  • 覆盖珊格地图(建图)
  • 机器人的轨迹或位姿图(定位)

数据处理(非常重要

  • 轮式里程计的标定
  • 激光雷达运动畸变去除
  • 不同系统之间的时间同步

帧间匹配

方法特点
PL-ICP点到线的距离,更符合室内结构化的场景,依赖初始解
CSM暴力搜索,能找到最优解
Optimization-Based依赖于地图的梯度,可以轻易的引入额外约束

回环检测

  • Scan-to-Map
  • Map-to-Map
  • Branch and Bound & Lazy Decison

最新技术:CSM+梯度优化

实际环境中的问题

  1. 环境变化
  2. 几何结构相似环境
  3. 建图的操作复杂
  4. 全局定位
  5. 地面材质的变化
  6. 机器人载重的改变

趋势–与视觉融合

视觉提供的信息量较丰富

视觉提供的信息
  • 高精度的里程信息
  • 信息量丰富的视觉地图
融合解决的问题

高精度的里程信息

  • 地面材质的变化
  • 机器人载重的改变

信息量丰富的视觉地图

  • 几何结构相似环境
  • 全局定位

3D激光SLAM

输入

  • IMU数据
  • 里程计数据
  • 3D激光雷达数据

输出

  • 3D点云地图(建图)
  • 机器人的轨迹或位姿图(定位)

数据处理(非常重要

  • 轮式里程计的标定
  • 激光雷达运动畸变去除
  • 不同系统之间的时间同步

帧间匹配

方法特点
Point-to-Plane ICP点到面的距离,类似于2D的点线
Plane-to-Plane ICP(GICP)面到面的距离
NDT划分网格,拟合高斯分布,速度快
NICP在ICP的基础上,引入法向量信息,精度高
IMLS-ICP对点云进行局部曲面拟合
Feature-based Method提取特征点和描述符进行匹配

与视觉融合

  • 3D激光雷达为视觉特征提供深度信息
  • 视觉辅助激光雷达进行运动畸变去除
  • 视觉辅助回环检测
  • 视觉提供精确里程信息

问题

  • 退化环境
  • 地图的动态更新
  • 全局定位
  • 动态环境定位

相关数学知识

坐标系变换

在这里插入图片描述

如图,假设机器人坐标系 B B B在世界坐标系 W W W下的位姿为(a,b,𝜃),令 B B B系到 W W W系的转换矩阵为 T W B T_{WB} TWB,则有
T W B = [ c o s θ − s i n θ a s i n θ c o s θ b 0 0 1 ] = [ R t 0 1 ] (1) T_{WB}= \begin{bmatrix} cos\theta & -sin\theta & a \\ sin\theta & cos\theta & b \\ 0 & 0 & 1 \end{bmatrix} =\begin{bmatrix} R & t \\ 0 & 1 \end{bmatrix} \tag{1} TWB= cosθsinθ0sinθcosθ0ab1 =[R0t1](1)
已知某个向量在 B B B系中的表达为 x B x_B xB,在 W W W系中的表达为 x W x_W xW,则有
x W = T W B ∗ x B (2) x_W=T_{WB}*x_B\tag{2} xW=TWBxB(2)
所以
(1) T W B T_{WB} TWB这个形式是怎么来的?
(2) 为什么可以这样转换得到 x W x_W xW

(1)
主要看 T W B T_{WB} TWB R R R部分和 t t t部分
R = [ c o s θ − s i n θ s i n θ c o s θ ] , t = [ a b ] R=\begin{bmatrix} cos\theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix} , t=\begin{bmatrix} a \\ b \end{bmatrix} R=[cosθsinθsinθcosθ],t=[ab]
R R R这个形式是怎么来的?
旋转分为主动旋转和被动旋转。
主动旋转
在这里插入图片描述
在这里插入图片描述
被动旋转
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)
如(2)式,加 t t t部分的原因是,经 R R R旋转之后的向量在方向上已经跟 W W W系对齐了(想象 B B B系转一转跟 W W W系对齐),剩下的就是需要把 B B B系原点相对于 W W W系原点的部分补上。

在这里插入图片描述
在这里插入图片描述

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值