激光点云的畸变补偿

文章导读

激光雷达安装在自动驾驶车辆上,在车辆行驶过程中采集到的激光点云数据建立的三维环境模型存在一定的变形,不能真实反映某一时刻自动驾驶汽车的行驶环境。所以本文对获取一帧点云数据后如何做点云的运动补偿修复畸变问题进行讲解。

目录

  • 点云畸变原理
  • 畸变补偿方法
  • 运动目标补偿

点云畸变原理

点云畸变是由于激光雷达采集数据的过程中,随着载体运动导致一帧点云中的点不是在同一时刻采集的,即不同激光点的坐标系不一致。

小编使用的是VLP-16,纵向排列着16个激光发射器和接收器。VLP-16的垂直测量角度从-15°到+15°,每条激光线之间的角分辨率为2°,在10Hz扫描频率下,水平角分辨率是0.2°,理论上一帧有28800个点。

下面我们先了解下VLP-16的扫描模式:

VLP-16中单个线束为一个Scan,全部16线组成的一帧点云称为一个Sweep,一帧内所有的点,都是按顺序串行扫描的,同一个时间点,只会有一次发送,紧接着一次接收。先从水平第一个角度,一般在0°左右扫描这个水平角度上竖直方向所有16个点(对应16个SCAN)的深度,当然这16个点也是串行按顺序的,然后转到下一个水平角度,比如0.3°开始,水平分辨率0.4°,那么下个角度就是0.7°,然后1.1°。一直顺时针扫完一圈,完成一个Sweep数据的采集。

由于垂直角分辨率是2°,VLP-16激光雷达水平安装,我们可以看到地面上的点云有6~7圈。如下图所示:

在静止的场景中,即激光雷达载体本身静止且环境中没有运动物体,那么采集到的一帧点云没有畸变,如下图所示,每一条线束打到地面上形成一个闭合的圆形:

在运动的场景中,即激光雷达载体运动或者环境中存在运动物体,采集到的点云数据有畸变现象,如下图所示:激光雷达向前运动,物体相对运动,同一种颜色的线表示一条激光打到地面的线束。采集一帧数据起始点时的雷达原点位置和采集一帧数据终止点时的雷达原点位置出现了位移,三维环境信息出现了拉伸的畸变。(运动物体同理)

由此得出机械式激光点云的畸变产生原因:

  • 激光点的数据不是瞬时获得的
  • 激光测量时伴随载体或目标的运动
  • 激光帧率较低时,载体或目标运动畸变不能忽略

由于雷达计算激光点坐标时,都是以接收到激光束时刻的雷达自身坐标系为基础的,所以载体运动过程中,每一列激光点的基准坐标系都是不一样的,但是他们在同一帧点云里,我们希望能统一在同一个坐标系下,所以我们需要知道每次采集时的坐标系相对于初始时刻坐标系的转换关系。

畸变补偿方法

点云的畸变是由于一帧数据的采集过程中,雷达载体进行运动导致,因此我们需要先计算采集过程中雷达的运动,然后在每帧中根据每个点的相对时间进行补偿这个运动量,包括旋转和平移的补偿。

点云去畸变的方法包括:

  • 纯估计方法(ICP/VICP)
  • 传感器辅助方法(IMU/ODOM)
  • 融合的方法

本文以传感器辅助方法举例,在loam和百度开源代码中均通过IMU提供载体的速度,加速度等信息,低速运动的场景中可以把载体假设成均速运动模型,即坐标 = 运动 × 时间。高速运动的场景中也可以用IMU信息去修正匀速模型假设中非均速部分的误差。

雷达扫描一帧的时间是固定的,通过计算得到每个点的采集时刻,将所有点都统一到同一时刻,假设选择每完成一帧扫描的结束时刻,如下图所示:

t_{k}就是一帧扫描开始的时刻,t_{k + 1}就是完成一次扫描的结束时刻,t_{k + 1} − t_{k}即为固定的扫描时间,水平的箭头表示将所有点都投影到t_{k + 1}时刻。P_{k} 就是这一帧扫描生成的点云,显然不同的点具有不同的时间戳。将t_{k + 1}时刻相对于t_{k}时刻的雷达相对位姿记为T^L_{k+1},对每个点计算它的补偿变换矩阵T^L_{(k+1,i)},如下式所示,做简单的线性插值后即可完成补偿。

具体分为以下几个步骤:

1. 激光雷达和IMU的同步

根据激光雷达和IMU自带的时间戳,获取距离某一帧点云时间戳最近的IMU数据,时间戳相减求出差值,如果时间差小于同步阈值则作为同步数据输出;如果时间差大于同步阈值则丢弃此数据,拿下一帧激光雷达采样数据循环上述过程。

2. 无序点云的有序转换

VLP-16的一帧数据是以点云的形式输出(也就是一堆点,每个点有XYZI的信息,点和点之间无其他关系信息), 因此我们并不知道每个点属于哪个Scan, 对应哪个水平角度,所以需要对单帧点云进行分线束(分为16束),并记录每个点所属线束和每个点在此帧点云内的相对扫描时间(相对于本帧第一个点)。

3. 计算载体运动信息

获取IMU坐标系下三个轴相对于世界坐标系的欧拉角和三个轴上的加速度,然后去除重力影响获得IMU在世界坐标系下的加速度,得到每一帧IMU数据在世界坐标系下对应的位移和速度。最后使用得到的运动信息进行插值,计算每一个激光点相对于起始点扫描时刻激光点的补偿变换矩阵。

4. 转换每一个激光点

针对每一个激光点,用补偿变换矩阵乘以原始的激光点坐标,即可得到矫正后的激光点坐标。

运动目标补偿

通过IMU获得自身车辆的运动信息,然后在激光雷达采样的点云做运动补偿。此方法适用于自身运动,目标静止的场景;但是在目标物体也运动的场景中,无法对目标物体运动造成的畸变进行校正。

针对目标物体运动带来的点云畸变,可以在点云障碍物检测跟踪的基础上,利用前一帧与当前帧运动物体的匹配计算其速度信息,加入当前帧中做运动目标的点云畸变补偿。


写作不易,觉得有用可以点个赞+关注,谢谢!

关注小编公众号,每天分享关于计算机视觉或无人驾驶感知方面的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值