轻量级激光雷达里程计和建图方法
系统框架
整体框架如下:
- 输入:三维激光点云
- 输出:六自由度位姿估计
整个系统可以分为五个模块:
- 分割:指获取单次扫描的点云,并将其投影到距离图像上进行分割。_16_1800个点用cvmat来对点进行初步管理*
- 特征提取:分割的点云被发送到特征提取模块。
- 激光雷达里程计:使用从先前模块中提取的特征点进行帧间位姿估计
- 激光建图部分:这些特征在激光建图部分被转换到全局点云地图中进一步处理。
- 变换集成模块:融合来自激光雷达里程计和激光雷达建图的姿态估计结果,并输出最终的姿态估计。以里程计高频率输出精确位姿
相对于LOAM中的原始通用框架,该系统旨在提高地面车辆的效率和精度。
点云分割
分割方法:
Pt是t时刻的一帧点云数据
pi是Pt中的一个点
首先需要把Pt映射到深度图像上去
映射的深度图像的分辨率是 1800*16 .1800就是一帧激光雷达点云里面的每一个scan上有1800个点,16就是有16个scan
VLP的水平分辨率为0.2° 垂直分辨率为2°
每个有效的点为深度图像的一个像素,像素的值就是该点到雷达中心的距离
就相当于:
地面点分类
由于在场景中可能是在斜坡上面进行运动,所以没有假设地面点是一个水平面
通过深度图像的每一列进行地面点的提取,然后再做点云的分类。
在后面的点云分类中,地面点就不参与了,因为它已经分完了
其它点分类及过滤
之后基于图像的分割方法,将点云分成很多簇
同一簇的点分配上唯一的标签
地面点是一种特殊类型的簇
对点云进行聚类分割可以提高处理效率和特征提取精度
假设机器人在一个噪声很大的环境下,有些物体的尺寸很小比如树叶,或者其它不可靠的特征点。相邻帧几乎不可能看到同一个树叶
所以做好先去掉这些点
为了实现快速和可靠的特征提取,把小于30个点的聚类进行过滤,即不会在这些点中进行特征提取
测试
其可视化的效果 如下
a图是原始的点云可视化效果
做完聚类之后,去除聚类小于30的点后保留的点,红色的点是地面点
在聚类之后剩下的点,代表比较大的目标,比如建筑物、树干、地面点,可以用这些点做里程计的位姿估计
同时这些点会被存储到深度图像中去,过滤的点则会被深度图像删去。
保留的点会存储三种属性
- 是否是地面点的标签
- 在深度图像的行列索引
- 距离,点到雷达中心的距离
然后利用这些信息再做特征提取
特征提取
这一部分和LOAM差不多
区别是 LeGO-LOAM 不是从原始点云中提取特征,而是从地面点和分割点中提取特征。
先算一个曲率
这个曲率和一个阈值比较
大于阈值就是角点,小于阈值就是面点
和LOAM一样,也把每个scan分成6段子图
那每个子图就是
300*16的点
在每个子图中选取
- 角点 2 个
- 面点4个
- 弱角点 40个
- 弱面点 80个
激光雷达里程计
激光雷达里程计模块的功能就是:估计相邻帧之间的位姿变换。
估计的方式:在相邻帧之间做点到线的约束和点到面的约束
具体的方式和LOAM一样
针对LOAM的改进
-
1 基于标签的匹配
在特征提取部分提取的特征点都会有个标签(在点云分割时分配的)
因此在找对应点时,标签必须一致
对于面点仅在上一帧中找地面点与之匹配
对于角点在上一帧对于的标签中找对应得角点
这种特征点匹配得方式会提高匹配精度 -
2 两步LM优化
首先做地面点得优化,再做角点得优化。该方法实现了相邻帧间得位姿估计
具体两步LM优化方法如下:
(1)第一步通过当前帧地面点和上一帧匹配得地面点估计出 z roll pitch
(2)第二步通过当前帧角点和上一帧匹配得角点估计出 x y yaw,并利用第一步估计得 z roll pitch
虽然在第一步就可以估计出x y yaw,但是其精度步高,不能用于第二步得估计
最后把两步估计得结果加起来,就是6自由度得位姿变换结果
优化方法意义:通过这种方式得优化,计算时间相比于原始LOAM可以减少35%。
激光雷达建图
原理和LOAM一样:当前帧和地图进行低频率得配准,得到最优得当前帧位姿变换
和原始LOAM不一样地方: 地图得存储。
LOAM是通过一个栅格地图进行局部地图得管理。
LeGO-LOAM是通过关键帧得概念进行局部地图管理,保存了激光雷达一些帧,和该帧的位姿。
局部地图建立就是通过根据当前帧的位置,提取与当前帧位置小于100m的关键帧拼接(根据每帧的位姿拼接)在一起作为局部地图
进行回环检测集成位姿图优化:
最后将SLAM里面的位姿图优化集成到了LeGO-LOAM中
- 回环检测的方法:就是通过检测历史帧的位姿和当前帧的位姿比较接近,则认为形成一个回环。(因为激光雷达里程计在短时间内的漂移比较小)
- 优化的方法就是通过ICP计算历史帧和当前帧的位姿变换,然后通过LM的优化方法就行 GT-SAM的位姿图优化。
实验对比
户外小场景下
户外的小场景,其中
i是一个树
ii 石头墙
iii UGV
LOAM把一些树叶提取成了面点,这种面点很不稳定
LeGO-LOAM通过距离滤波的方式把树叶去除了
LOAM把草地上的草提取成了角点,这种角点也不稳定
LeGO-LOAM不提取地面上的角点
所以LeGO-LOAM提取的特征点相比于LOAM更加稳定
最后形成的地图LOAM中杂点多,且一个树形成了3个数,
LeGO-LOAM效果更好些
户外大场景
在大范围场景下,LOAM的杂点要多些
评论(0)
您还未登录,请登录后发表或查看评论