leGo-LOAM
IROS 2018 Shan Tixiao 史蒂文斯理工学院读博士 Robust Field Autonomy 实验室
1、论文
LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain
在可变地形上的轻量级的利用地面点优化的Iidar 里程计和 建图模块
https://blog.csdn.net/weixin_45626706/article/details/122027456
1.1 整体框架
- 分割模块通过对一帧的点云重投影到图像中,进行地面分割,非地面点被分割出来;
- 特征提取模块基于分割后的点使用和LOAM一样的方法提取边缘点和平面点;
- 雷达里程计模块基于提取的特征点构建 scan-to-scan约束关系,使用两次LM优化,得到姿态变换矩阵;
- 雷达建图模块将得到的特征点进一步处理,构建scan-to-map 的约束关系,构建全局地图。
LeGOLOAM是基于地面优化的,它在分割和优化步骤中利用了地面,首先应用点云分割来滤除噪声,然后进行特征提取以获得不同的平面和边缘特征,然后,利用平面和边缘特征采用了两步Levenberg-Marquardt优化方法,来求解连续扫描中六自由度变换的不同分量。
第一步,利用前后帧匹配的地面点使用从地面提取的平面特征来获得[ tz ,θroll ,θpitch] ;第二步,通过匹配 分割点云提取的边缘特征来获得变换的其余部分[ tx ,ty , θyaw ]
传感器
Velodyne VLP-16测量范围高达100m,精度为± 3cm,垂直视野(FOV)为30∘(± 1 5 ∘ ,上下15度),水平视野为360∘
16线传感器提供2∘ 的垂直角度分辨率。根据旋转速率,水平角度分辨率从0.1∘ 到0.4∘ 不等。10 Hz 扫描速率位0.2∘
1.2 分割模块
Segmentation
P t = { p 1 , p 2 , … , p n } P_t = {\{ p_1, p_2,… ,p_n\}} Pt={p1,p2,…,pn}为在时间t 获得的点云
在将点云投影到图像上后,每个三维空间的点就变为二维空间的像素点了,我们获取点 p i p_i pi对应的像素点到传感器的欧氏距离 r i r_i ri。再进行分割之前,可以对距离图像进行列式评估。,进行地面点的提取。通过VLP-16的激光扫描束的范围为 [−15∘,15∘] ,接计算相邻两条激光线的点云的俯仰角,俯仰角变化在一定范围内的认为是地面点。地面点必然出现在 [−15∘,−1∘] 7条扫描线上,通过对于竖直角度的计算和阈值的判定,来决定到底是属不属于地面点, 角度小于10°则认为是地面点
1.3 特征提取
Feature Extraction, 每个点前后选取5个点计算曲率,曲率最大值为边缘特征,曲率小的为平面特征划分出了边缘点和平面点。
在LeGO LOAM的代码中,将 1800×16 的距离图像划分为了6个 300×16 的子图像。
在每个子图像内设定: nfe=2,nfp=4,nfme=40,nfmp=80 。
- 从每一行中选取不属于地面点,且具有最大 c值的nfme个边缘点,组成集合 Fme .
- 从每一行中选取最小c 值的nfmp个平面点,属于地面点或分割点都行,组成集合Fmp.
这一步选取了大部分的数据点,为了方便计算,我们再进行一次筛选:
- 从集合 Fme 中选取不属于地面点,且具有最大c 值的 nfe个边缘点,组成集合 Fe
- 从集合 Fmp中选取属于地面点,且具有最小 c值的nfp个平面点,组成集合 Fp
1.4 特征匹配
在LOAM上做了改进,基于标签的匹配,地面标签匹配面,非地面标签匹配线,两步L-M优化
在第二部分分割模块,我们将点云划分为地面点和分割点,使用这些标签来进行对应关联点的搜寻。
- 对于边缘点:在Ft-1中具有分割点标签的点云中寻找Ft 的对应关联点
- 对于平面点:在 Ft-1−1 中具有地面点标签的点云中寻找 Ft的对应关联点
这一步的操作有以下两个优点:
- 在相邻帧中地面信息基本保持不变
- 聚类后点云被分为若干块,缩小了对应点的候选范围
两步优化位姿
(1)通过匹配Fpt 中的平面特征和它们在 Fp t−1中的对应关系来估计[ tz , θroll , θpitch ]
(2)剩余的[ tx , ty , θyaw ] 使用Fet 中的边特征和它们在 Fet-1中的对应关系来估计,同时使用[ t z , θ roll , θ pitch ]作为约束。
由于第一步针对地面点的优化使用点到面的约束来构建约束,修改点的
x
,
y
和
y
a
w
角不会对点到面的距离产生影响,
所以认为地面点之间的约束对
[
t
x
,
t
y
,
θ
yaw
]
不可观
由于第一步针对地面点的优化使用点到面的约束来构建约束,修改点的x,y和yaw角不会对点到面的距离产生影响,\\所以认为地面点之间的约束对\left[t_{x}, t_{y}, \theta_{\text {yaw }}\right]不可观
由于第一步针对地面点的优化使用点到面的约束来构建约束,修改点的x,y和yaw角不会对点到面的距离产生影响,所以认为地面点之间的约束对[tx,ty,θyaw ]不可观
1.5 建图与回环
不保存单个点云地图,而是保存每个单独的特征集
{
F
e
t
,
F
p
t
}
M
t
−
1
=
{
{
F
e
1
,
F
p
1
}
,
…
,
{
F
e
t
−
1
,
F
p
t
−
1
}
}
\left\{\mathbb{F}_{e}^{t}, \mathbb{F}_{p}^{t}\right\}\\{ M^{t-1}=\left\{\left\{\mathbb{F}_{e}^{1}, \mathbb{F}_{p}^{1}\right\}, \ldots,\left\{\mathbb{F}_{e}^{t-1}, \mathbb{F}_{p}^{t-1}\right\}\right\} }
{Fet,Fpt}Mt−1={{Fe1,Fp1},…,{Fet−1,Fpt−1}}
为保存所有先前特征的集合
回环检测:基于距离判断,只要我们在历史的关键帧中找到一帧与当前帧比较近,使用ICP计算两帧的位姿变换,构建一个位姿图模型,来进行一个优化。
相较于LOAM的改进
前端:
1.对地面点进行分类和提取,避免一些边缘点的提取
2.用了一个简单的点云聚类算法,剔除了一些可能的outlier
后端:
1.使用SLAM关键帧的概念对后端部分进行了重构
2.引入回环检测和位姿图优化概念,使得地图的全局一致性更好