激光雷达SLAM 关键技术

Posted 一颗小树x

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了激光雷达SLAM 关键技术相关的知识,希望对你有一定的参考价值。

前言

最近看了北京理工大学的课程《智能车辆概述与应用》,感觉对激光雷达SLAM 入门角度讲的还不错的,于是通过本文记录关键内容。

目录

一、激光雷达SLAM概述

二、前端 激光雷达里程计

三、后端优化

四、经典方案LOAM

4.1 点云注册模块——点云特征提取

4.2 激光里程计模块——特征匹配

4.2 激光里程计模块——位姿推算


一、激光雷达SLAM概述

激光雷达SLAM框架如下图所示:

前端 激光雷达里程计:计算当前帧数据之前帧数据 之间的位姿关系

后端优化:减少位姿误差。

回环检测:检测当前场景是否已经到达。

建图:获取优化后的结果建立地图。

二、前端 激光雷达里程计

介绍一下前端激光雷达里程计经典方案;LOAM(Lidar Odometry and Mapping),是一个适用于三维激光雷达开源激光里程计算法。LOAM使用了点到线点到面ICP(Iterative Closest Point,ICP)算法计算两帧点云间的相对位姿。LOAM的工作频率:Lidar Odometry(频率 l0HZ),Lidar Mapping(频率 1HZ)。

 前端激光雷达里程计 发展进程:(LOAM是2014年提出的)

三、后端优化

后端优化方法可以分为三个方向:

  • 基于滤波的方法(早期使用)——扩展卡尔曼滤波、粒子滤波、RBPF等
  • 基于图优化的方法(比较流行)——首个基于图优化框架的开源方案Karto SLAM、Hector SLAM 等
  • 机器学习的后端优化方法(近年来越来越多研究)

四、经典方案LOAM

LOAM算法框架:

4.1 点云注册模块——点云特征提取

 点云特征:

  • 角点一edge point形状尖锐特征
  • 平面点一planar point形状平滑

如何计算是角点,还是平面点呢?通过计算点的平滑值(Smoothness)来区分,计算公式如下:

 S表示被计算点附近的点集,X表示当前点的坐标,表示附近点集中点的坐标。

 

4.2 激光里程计模块——特征匹配

 LOAM使用了点到线点到面ICP(Iterative Closest Point,ICP)算法计算两帧点云间的相对位姿。通常两个点组成一点直线,三个点组成一个平面。即:计算当前帧的一个点云特征点,到上一帧点云中的线、面的距离。

计算公式如下:

4.2 激光里程计模块——位姿推算

计算位姿推算时,即先计算

当前帧角点距上一帧最近两角点构成直线

当前帧角点距上一帧最近三面点构成平面

然后算出距离,找到距离最小的,认为是是最相似的(当前帧的点,和上一帧的点对应) 。迭代过程中,转换为一个“非线性最小二乘问题”(非线性优化问题)

求解非线性优化问题,经典的方法一高斯牛顿法非线性优化

下面的残差是:上面计算的点到线点到面距离;然后对残差进行求导,一阶求导得到雅可比矩阵;二阶求导得到海森矩阵。 

高斯牛顿法通常只使用一阶的雅可比矩阵,比对海森矩阵做近似。

LM非线性优化方法是考虑到:高斯牛顿法如果再初始值目标值 相差较远时,比较难找到;如果使用“梯度下降法”,结合每一步的方向、步长,这个问题将较好地解决。

于是,LM非线性优化,在高斯牛顿法的基础上进行改进,它在海森矩阵中,加入了阻尼系数,即:在每一步中,加入方向步长控制

后面再补充更新.........

本文只供大家参考和学习,谢谢。

以上是关于激光雷达SLAM 关键技术的主要内容,如果未能解决你的问题,请参考以下文章

激光雷达SLAM算法

激光雷达导航技术的优势都有哪些?请说具体一点!

激光slam导航轨迹怎么看

激光SLAM技术总结3D激光SLAM算法原理

激光SLAM技术总结3D激光SLAM算法原理

学习笔记之——激光雷达SLAM(LOAM系列的复现与学习)