激光雷达SLAM 关键技术
Posted 一颗小树x
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了激光雷达SLAM 关键技术相关的知识,希望对你有一定的参考价值。
前言
最近看了北京理工大学的课程《智能车辆概述与应用》,感觉对激光雷达SLAM 入门角度讲的还不错的,于是通过本文记录关键内容。
目录
一、激光雷达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 关键技术的主要内容,如果未能解决你的问题,请参考以下文章