我们提出了利用2轴激光雷达在6自由度范围内的距离测量进行里程测量和地图绘制的实时方法。这个问题很难解决,因为距离测量是在不同的时间接收的,运动估计中的错误可能会导致结果点云的错误匹配。到目前为止,通过离线批处理可以构建连贯的3D随着时间的推移,通常使用回环来校正漂移。在没有高精度测距或惯性测量的情况下,我们的方法实现了低漂移和低计算复杂性。。这两种算法的结合允许该方法实时构图。该方法通过了大量的实验和实验KITTI评估了里程计基准。结果表明,该实时方法可达到离线批处理方法的精度。
2轴激光雷达的理解是水平旋转和垂直运动
引言
3D建图仍然是一种流行的技术[1]–[3]。使用激光雷达进行地图建设很常见,因为激光雷达可以提供高频测量,无论测量距离如何,误差都相对恒定。当激光雷达的唯一运动是旋转激光束时,点云的准确性非常简单。
在这里,我们考虑使用2轴激光雷达在6自由度下移动地图和低漂移测距。。激光雷达的最新发展缩小了它们的尺寸和重量。激光雷达可以由穿越环境的人持有[6],甚至连接到微型飞机[7]。由于我们的方法旨在促进里程估计中与最小漂移有关的问题,因此不涉及回环。
无需高精度测距或惯性测量,该方法实现了低漂移和低计算复杂性。获得这一性能水平的关键思想是通过两种算法同时定位和构图典型的复杂问题(SLAM)[8]分类,寻求同时优化大量变量。为了估计激光雷达的速度,量里程,以估计激光雷达的速度。另一种算法以较低的数量级频率运行,用于点云的精细匹配和配准。。具体来说,这,并将特征点与边线段和平面面片分别匹配。
通过分解原始问题,首先解决了一个简单的问题,即在线运动估计。之后,构图被用作批量优化(类似于迭代的最近点)(ICP)进行方法[9],生成高精度运动估计和构图。。此外,
相关工作
相关工作不重要,只做简单的翻译
激光雷达已成为机器人导航中有用的距离传感器[10]。对于定位和构图,大多数应用程序使用2D激光雷达[11]。当激光雷达扫描速率高于其外部运动时,通常可以忽略扫描中的运动失真。在这种情况下,标准ICP方法[12]可用于匹配不同扫描之间的激光回波。此外,还提出了消除畸变[13]的两个步骤ICP的速度估计步骤之后是畸变补偿步骤,使用计算出的速度。类似的技术也用于补偿单轴3D引入激光雷达的失真[14]。但如果扫描运动相对较慢,则运动失真可能严重。这在使用两轴激光雷达时尤其如此,因为一个轴通常比另一个轴慢得多。通常,其器通常用于提供速度测量,通过这些测量可以消除失真。例如,可以通过和IMU激光雷达云[15]的集成视觉里程计状态估计。多个传感器(如GPS/INS与车轮编码器同时使用时,通常通过扩展卡尔曼滤波器[16]或粒子滤波器[1]来解决问题。通过辅助机器人导航中的路径规划和碰撞,可以实时生成地图。
如果使用双轴激光雷达而不使用其他传感器,运动估计和失真校正将成为一个问题。Barfoot其他人使用的一种方法是从激光强度返回创建视觉图像,并匹配图像之间的视觉特征[17],以恢复地面车辆的运动[18]–[21]。在[18]和[19]中,车辆运动被建模为恒速,在[20]和[21]中,车辆运动被建模为高斯过程。我们的方法使用类似于里程计算法中的[18]和[19]的线性运动模型,但具有不同类型的特征。方法[18]–[21]强度图像的视觉特征需要密集的点云。该方法在笛卡尔空间中提取和匹配几何特性,对云密度要求较低。
最接近我们的方法是Bosse和Zlot[3],[6],[22]。它们使用两轴激光雷达获取点云,点云通过匹配局部点簇的几何结构来匹配[22]。此外,他们还使用多个2轴激光雷达绘制地下矿井地图[3]。此方法包含IMU,并用回话吧创建大型地图。Zebedee是由同一作者提出的一种建图设备,由2D激光雷达和IMU组成,IMU将弹簧连接到手杆上[6]。手动点头设备进行建图。该方法处理分段数据集,并在分段之间增加边界约束。在这种方法中IMU测量值匹配激光点,优化校正IMU偏差。本质上,Bosse和Zlot开发精确的地图需要批处理,因此不适用于需要实时地图的应用。相比之下,提出的实时地图在质量和Bosse和Zlot地图相似。不同之处在于,我们的方法可以为自主车辆的制导提供运动估计。此外,该方法采用激光雷达扫描模式和点云分布。在里程计和构图算法中,保证了计算速度和精度的特征匹配。
符号和任务描述
本文解决的问题是利用三维激光雷达感知点云进行运动估计,并绘制穿越环境的地图。我们假设激光雷达是预校准的。我们还假设激光雷达的角度和线速随时间平稳连续,没有突变。第二个假设将被使用VII-B节中的IMU发布。
作为本文的惯例,我们使用右大写字母来表示坐标系。。我们使用 k , k ∈ Z k,k∈ Z^ k,k∈Z 表示sweeps,。让我们定义两个坐标系,如下所示。
- 激光雷达坐标系 { L } \{L\} { L}是一个三维坐标系,其原点位于激光雷达的几何中心。 x x x轴指向左侧, y y y轴指向上方, z z z轴指向前方。点 i i i, i ∈ P k i \in \mathcal{P}_{k} i∈Pk,在坐标 { L k } \{L_k\} { Lk}坐标表示为 X ( k , i ) L X_{(k, i)}^{L} X(k,i)L。
当时的lidar坐标系是上述指向,目前lidar坐标系,例如velodyne是 x x x指向前, y y y指向左, z z z指向上的坐标系
- 世界坐标系 { W } \{W\} { W}是一个三维坐标系,在初始位置与 { L } \{L\} { L}重合。点 i i i,, i ∈ P k i \in \mathcal{P}_{k} i∈Pk在 { W } \{W\} { W}坐标是 X ( k , i ) W X_{(k, i)}^{W} X(k,i)W。
通过假设和标记,我们的激光雷达里程计和建图问题可以定义为
问题:给定一系列激光雷达云 P k , k ∈ Z + \mathcal{P}_{k},k∈ Z^+ Pk,k∈Z+,计算激光雷达在每次sweep k k k期间的自我运动,并为穿越的环境构建一张带有的 P k \mathcal{P}_{k} Pk地图。
系统概述
硬件对于框架理解并不重要,做简单的翻译
本文的研究在基于激光扫描仪的定制3D激光雷达,但不限于此雷达。通过本文,我们将使用从激光雷达收集的数据来说明该方法。激光扫描仪的视场角为 18 0 ∘ 180^{\circ} 180∘, 以 0.2 5 ∘ 0.25^{\circ} 0.25∘ 分辨率和40行/秒scan速率。激光扫描仪连接到一个电机,该电机被控制以 18 0 ∘ 180^{\circ} 180∘每秒的角速度旋转介于 − 9 0 ∘ −90^{\circ} −90∘和 9 0 ∘ 90^{\circ} 90∘ 激光扫描仪的水平方向为零。对于此特定单元,sweep是从 − 9 0 ∘ −90^{\circ} −90∘ 到 9 0 ∘ 90^{\circ} 90∘ 或相反方向(持续1s)。这里,请注意,对于连续旋转的激光雷达,sweep只是一个半球形旋转。车载编码器以 0.2 5 ∘ 0.25^{\circ} 0.25∘的分辨率测量电机旋转角度,利用它,激光点被投影到激光雷达坐标 { L } \{L\} {
L}。
图3示出了软件系统的示意图。设 P ^ \hat{\mathcal{P}} P^为激光scan中接收到的点。在每次sweep期间, P ^ \hat{\mathcal{P}} P^在 { L } \{L\} { L}坐标系中。sweep k k k期间的点云组合形成 P k \mathcal{P}_{k} Pk。然后,采用两种算法对 P k \mathcal{P}_{k} Pk进行处理。激光雷达里程计获取点云并计算两次连续sweep之间的激光雷达运动,估计的运动用于校正 P k \mathcal{P}_{k} Pk中的失真(运动畸变),该算法以10Hz左右的频率运行。激光雷达建图对输出进行进一步处理,以1Hz的频率将未失真的点云匹配并配准添加到地图上。最后,将这两种算法发布的姿态变换进行集成,以生成关于相对于地图的激光雷达姿态的约10Hz的变换输出。第五节和第六节详细介绍了软件图中的模块。
LIDAR 里程计
我们首先从激光雷达云 P k \mathcal{P}_{k} Pk中提取特征点。图2所示的激光雷达自然会在 P k \mathcal{P}_{k} Pk中生成分布不均匀的点。在scan中,激光扫描仪返回的分辨率为 0.2 5 ∘ 0.25^{\circ} 0.25∘(水平分辨率) 。这些点位于scan平面上。但是,由于激光扫描仪以 18 0 ∘ / s 180^{\circ} / s 180∘/s的角速度旋转并以40Hz的频率生成scans,垂直于scan平面的分辨率为 18 0 ∘ / 40 = 4. 5 ∘ 180^{\circ}/40 = 4.5^{\circ} 180∘/40=4.5∘(垂直分辨率).
图1:
该方法旨在使用移动的2轴激光雷达进行运动估计和建图。由于在不同的时间接收激光点,由于激光雷达的运动(如左激光雷达云中所示),点云中会出现失真。我们提出的方法将问题分解为两个并行运行的算法。里程计算法估计激光雷达的速度并校正点云中的失真,然后,建图算法匹配并配准点云以创建地图。这两种算法的结合保证了实时求解问题的可行性。
我们选择位于锐边和平面曲面片上的特征点。让 i i i成为中 P k \mathcal{P}_{k} Pk的一点, i ∈ P k i \in \mathcal{P}_{k} i∈Pk,设 S \mathcal{S} S为同一scan中返回的 i i i的连续点集。激光扫描仪以CW或CCW顺序生成点(CW为顺时针,CCW逆时针,目前的lidar大部分是顺时针旋转),, c = 1 ∣ S ∣ ⋅ ∥ X ( k , i ) L ∥ ∥ ∑ j ∈ S , j ≠ i ( X ( k , i ) L − X ( k , j ) L ) ∥ (1) c=\frac{1}{|\mathcal{S}| \cdot\left\|X_{(k, i)}^{L}\right\|}\left\|\sum_{j \in \mathcal{S}, j \neq i}\left(X_{(k, i)}^{L}-X_{(k, j)}^{L}\right)\right\|\tag{1} c=∣S∣⋅∥∥∥X(k,i)L∥∥∥1∥∥∥∥∥∥j∈S,j=i∑(X(k,i)L−X(k,j)L)∥∥∥∥∥∥(1)
理解式(1)的意思,为什么式(1)的大小可以分辨出边缘点和平面点?因为如果是边缘点,那么 i i i点与周围点的差值一定会变大,因为激光测的是距离呀,比如凹凸的地方和平滑的面显然不一样呀,理解一下;个人感觉也可以取一个窗口,或者半径的圆,计算 i i i点的光滑度 c c c。
scan中的点根据 c c c值进行排序,然后
为了在环境中
在选择特征点时,我们希望避免已经选择过的点周围的点(同一个scan),或局部平面上与激光束大致平行的点(图4(a)中的点B)。这些点通常被认为是不可靠的。此外,我们还希望避免位于遮挡区域边界上的点[23]。图4(b)中示出了一个示例。点A是激光雷达云中的边缘点,因为其连接的曲面(虚线段)被另一个对象阻挡。但是,如果激光雷达移动到另一个