Zhang J, Singh S. LOAM: Lidar odometry and mapping in real-time[C]//Robotics: Science and Systems. 2014, 2(9): 1-9.
@inproceedings{zhang2014loam,
title={LOAM: Lidar odometry and mapping in real-time.},
author={Zhang, Ji and Singh, Sanjiv},
booktitle={Robotics: Science and Systems},
volume={2},
number={9},
pages={1–9},
year={2014},
organization={Berkeley, CA}
}
摘要
我们提出了使用来自6自由度移动的两轴lidar的距离数据实现的实时里程计和建图方法。这个问题很难,因为距离测量在不同时间被接收到,并且运动估计中的错误也会导致结果点云的错误注册。到目前为止,连贯的3D地图在长时间内通常要使用回环闭合来校正漂移,才能够被离线地建立起来。我们的方法同时得到了低偏移和低计算复杂度,而不需要高准确度的距离测量或者惯性测量。得到这样效果的关键点在于将复杂的需要优化大量变量的SLAM问题划分为两个算法。一个算法高频运行里程计,并且低精度地估计lidar的速度。另一个算法,以低数量级的对点云进行精细配准和注册。两个算法的结合使得整个系统能够实时建图。这个方法已经在大量实验中进行了评估,包括KITTI数据集。结果表明,该方法可以达到目前离线批处理方法的精度水平。
1. 引言
2. 相关
3. 符号和任务描述
本文所要解决的问题是利用3D Lidar感知的点云进行自我运动估计,并对穿越的环境建立地图。我们假设lidar是预校准的。我们还假设lidar的角速度和线速度随时间是平滑连续的,没有突变。第二种假设将在第7.2节中通过使用IMU来释放。
本文约定,我们使用右大写表示坐标系统。我们定义我们定义一次扫描(sweep)为完成一次扫描覆盖。我们使用右缀 k , k ∈ Z + k,k\in Z^+ k,k∈Z+ 表示扫描次数, P k \mathcal{P}_k Pk 表示扫描第 k k k 次时感知到的点云。我们定义了如下两个坐标系:
∙ \bullet ∙ Lidar坐标系 { L } \{L\} {
L} 是一个原点在lidar几何中心的3D坐标系统。 x x x-轴指向左侧, y y y-轴指向前方。点 i , i ∈ P k i,i\in\mathcal{P}_k i,i∈Pk 在 { L k } \{L_k\} {
Lk} 中的坐标值被记为 X k , i L \pmb{X}_{k,i}^L Xk,iL。
∙ \bullet ∙ 世界坐标系 { W } \{W\} {
W} 是与 L {L} L 的初始位置重合的3D坐标系。点 i i i 的坐标值 在 { W k } \{W_k\} {
Wk} 中的坐标值被记为 W k , i L \pmb{W}_{k,i}^L Wk,iL。
通过假设和记号,我们的lidar里程计和建图问题可以定义为:
问题:给定lidar点云的序列 P k , k ∈ Z + P_k,k\in Z^+ Pk,k∈Z+ ,在每次扫描时计算自身运动,并且使用 P k \mathcal{P}_k Pk 建立地图。
4. 系统概览
4.1 Lidar硬件
这篇研究实现在(但不限制在)基于Hokuyo UTM-30LX激光扫描仪的3D lidar上。通过这篇论文,我们将使用从这个lidar收集到的数据来说明这种方法。激光扫描仪有 180 ° 180\degree 180° 的视场, 0.25 ° 0.25\degree 0.25°的分辨率, 40 lines / s 40\text{ lines}/s 40 lines/s 的扫描速率。这个激光扫描仪与一个电机相连,电机被控制在 − 90 ° -90\degree −90°~ 90 ° 90\degree 90°之间以 180 ° / s 180\degree/s 180°/s的角速度旋转,激光扫描仪的水平方向为零。在这个特殊的单元中,扫描是从 − 90 ° -90\degree −90°旋转到 90 ° 90\degree 90°或反向旋转(持续 1 s 1s 1s)。在这里,请注意,对于连续旋转的激光雷达,扫描只是半球面旋转。机载编码器测量电机旋转角度,分辨率为 0.25 ° 0.25\degree 0.25°,激光点被投影到激光雷达坐标 { L } \{L\} { L}上。
图2. 研究中使用的3D Lidar由电机驱动旋转运动的一个Hokuyo激光扫描仪和一个测量旋转角度的编码器组成。这个激光扫描仪由180°的视角和0.25°的分辨率。扫描速率是40 lines/sec。以激光扫描仪水平时为0,控制电机在-90°~90°之间旋转。
4.2 软件系统概览
图三展示了软件系统。设定 P ^ \hat{\mathcal{P}} P^ 为雷达扫描获得的点云。在每次扫描过程中, P ^ \hat{\mathcal{P}} P^ 被注册在 { L } \{L\} { L} 中。在第 k k k 次扫描中结合的点云形成了 P k \mathcal{P}_k Pk。然后, P k \mathcal{P}_k Pk 在两个算法中被处理。Lidar里程计获取点云并在两个连续扫描之间计算点云运动。估计出来的位姿被用来校正 P k \mathcal{P}_k Pk。该(里程计)算法以10Hz左右的频率运行。输出通过lidar建图进一步处理,这个过程将校正畸变的点云以1Hz的频率匹配和注册到地图中。最后,由两个算法输出的位姿变换被集成,生成大约10Hz的Lidar相对于地图的变换的输出。第五、六节详细展示了软件框图中的模块。
图3. Lidar里程计和建图软件系统框图
5. Lidar里程计
5.1 特征点提取
我们从在lidar点云 P k \mathcal{P}_k Pk中提取特征点开始。图2中展示的lidar自然地生成了 P k \mathcal{P}_k Pk中不均匀分布的点。从激光扫描仪返回分辨率为## 5.2 找到特征点对应关系°的扫描。这些点位于一个扫描平面上。但是,随着激光扫描仪以180°/s的角速度旋转,以40Hz生成扫描结果,与扫描平面垂直方向的分辨率为180°/40=4.5°。考虑实际情况,特征点从 P k \mathcal{P}_k Pk 中提取,仅使用了来自单个扫描的信息,具有共平面集合关系。
我们在锐利边缘和平面表面块上选择特征点。设置 i i i 为 P k , i ∈ P k \mathcal{P}_k,i\in\mathcal{P}_k Pk,i∈Pk 中的一个点, S S S 为激光扫描仪在同一次扫描中返回的连续点的集合。因为激光扫描仪生成的点以CW或CCW顺序返回, S S S 每边包含一半的点,以及两点之间间隔为0.25°。定义如下项以评估局部表面的平滑性:
c = 1 ∣ S ∣ ∥ X ( k , i ) L ∥ ∥ ∑ j ∈ S , j ≠ i ( X ( k , i ) L − X ( k , j ) L ) ∥ . (1) c=\frac{1}{\vert\mathcal{S}\vert\Vert\pmb{X}_{(k,i)}^L\Vert}\Vert\sum_{j\in\mathcal{S},j\neq i}(\pmb{X}_{(k,i)}^L-\pmb{X}_{(k,j)}^L)\Vert.\tag{1} c=∣S∣∥X(k,i)L∥1∥j∈S,j=i∑(X(k,i)L−X(k,j)L)∥.(1)
扫描中的点基于 c c c值进行排序, c c c值最大的为边缘点, c c c值最小的为平面点。为了环境中均匀分布特征点,我们将扫描分为四个相同的子区域。每个子区域最多可以提供2个边缘点和4个平面点。一个点 i i i 只有在它的 c c c 值大于或小于一个阈值的时候才能够被选为一个边缘点或一个平面点,并且被选的点数量不能超过最大值。
当选择特征点时,我们想要避免周围点已经被选择的点,或者局部平面上大致与激光束平行的点(如图4(a)中的点B)。这些点通常被认为是不可靠的。同样,我们希望避免在被遮挡区域边界上的点[23]。如图4(b)所示。点 A A A是激光雷达云中的一个边缘点,因为它的连接表面(虚线段)被另一个对象挡住了。然而,如果激光雷达移动到另一个视角,被遮挡的区域就会发生变化,变得可观察到。为了避免前面提到的点被选择,我们再次找到点集 S \mathcal{S}

本文提出了一种使用3DLidar数据进行实时里程计和地图构建的方法。通过特征点提取和匹配,结合两种算法分别处理高频运动估计和低频精细地图注册。这种方法在不依赖高精度距离或惯性测量的情况下,实现了低漂移和低计算复杂度。实验表明,该方法在各种环境和KITT数据集上表现出了与离线批处理方法相当的精度。
最低0.47元/天 解锁文章

1961

被折叠的 条评论
为什么被折叠?



