张铭坤,蔡文郁,张 帅
(杭州电子科技大学 电子信息学院, 浙江 杭州 310018)
随着计算设备性能的提升,机器视觉传感器能利用较为复杂的计算模型来提高感知精度。考虑到视觉传感器的成本优势,基于视觉传感器的高效、低成本环境感知方案将成为无人设备环境感知技术未来产业化发展的重要趋势[1-2]。现阶段激光雷达依据其高精度、高可靠性的优点,在环境感知领域里具有重要作用。激光雷达传感器是一种在无人设备上被广泛使用的传感器[3],具有较高的探测精度和高分辨率,不仅提供丰富的点云数据描述,还提供被检测障碍物表面的反射强度信息。
采用激光雷达可以实现对前方障碍目标位置定位。文献[4]将激光雷达数据转化为二值栅格地图,并采用图像开运算方法进行处理,再采用K-means聚类算法对点云数据进行聚类划分。文献[5]使用基于距离归一化的KNN(K-Nearest Neighbor)离群点统计滤波方法对点云数据中的离散点进行剔除,然后使用基于相邻点角度阈值方法进行快速点云聚类。文献[6]使用中值滤波算法来去除点云数据里的噪声,并使用基于点密度和点距离两个参考量的聚类方法进行聚类,最后利用凸包算法处理冗余聚类信息。文献[7]利用车载二维激光雷达提出自适应窗口算法,实现了小型无人车的障碍物探测和自动避障。文献[8]结合二位激光雷达和云台进行三维场景重建,并识别物体轮廓。文献[9]使用二维激光雷达和对应位置的反光板实现小车位置定位。文献[10]使用二位激光雷达获取周围障碍物点,并使用改进的基于距离和障碍物特征的自适应阈值聚类分割方法实现障碍物分割。
上述文献均默认激光雷达实测采集点云数据准确[11-16],但在实际应用过程中,移动设备自身的姿态变化将导致采集到的点云数据存在数据畸变,与实际环境中的障碍物数据存在较大误差。因此,本文提出了一种点云数据自动修正方法来矫正由于设备姿态角变化而畸变的激光雷达点云数据。
移动设备所配置的二维激光雷达扫描模型如图1所示。由于移动设备在运动时,设备姿态无法保持恒定,因此LiDAR探测因为姿态角度的存在对目标定位产生偏差。为了解决该问题,本文提出了一种基于LiDAR扫描角度修正的障碍物目标定位方法。
图1 移动设备二维激光雷达扫描模型Figure 1. 2D-LiDAR scanning model of mobile equipment
障碍目标定位方法流程如图2所示。
图2 自动点云数据角度修正流程Figure 2. Flow of automatic point cloud data angle correction
当移动设备搭载的激光雷达采集到原始点云数据后,首先使用中值滤波对原始点云数据进行去噪处理,剔除原始点云数据中的噪声点,减少无效计算消耗。之后,对滤波后的离散数据点使用K-means算法进行聚类。考虑设备自身的惯导传感返回的姿态角数据,若检测到横滚角与俯仰角的值不为零,表示设备存在倾斜,因此当前二维激光雷达的探测返回值存在误差。为减小误差需要进行扫描角度的修正处理,使矫正后的障碍物点云数据更接近真实值。最后,对矫正后的各个聚类数据采用包络处理,确定移动设备与障碍物之间存在足够的安全距离。
对激光雷达返回的原始点云数据进行中值滤波处理。中值滤波[17]是一种快速、高效的非线性平滑法,对脉冲干扰级噪声的抑制效果较好,滤波后的数据在保留原来变化趋势的同时去除了尖峰脉冲对分析造成的影响。主要操作方法是对一个滑动窗口内的数值进行排序,用排序后的中值代替原窗口中心元素的数值,如式(1)所示
Pmid=med{Pi-m,…,Pi-1,Pi,Pi+1,…,Pi+m}
(1)
式中,Pmid为经过中值滤波后的数据;med{·}表示取数据序列中间值的函数;Pi为单个激光雷达障碍物扫描点数据;m为预设滑动窗口领域的大小。
对滤波后的激光雷达点云数据进行聚类处理,使用简单快速K-means聚类算法[18]。
K-means聚类方法的实现步骤如下所示:
步骤1为了有效剔除噪声对障碍物探测的影响,使算法最终分成k个组。
步骤2在激光雷达点云数据中随机选择k个点作为每个簇的初始中心。
步骤3选定数据对象与k个簇中心的距离(欧几里得距离)作为聚类特征值,通过计算每一个数据对象的特征值,将激光雷达点云数据中各离散点分别归类入距离最近的簇中心对应的簇中。
步骤4当所有的离散点都被聚类后,针对每一个簇分别计算出其新的簇中心。
步骤5重复操作步骤2~步骤4,直到步骤4中更新的簇中心与原簇中心的距离小于预先设定的阈值,即簇中心基本不再发生变化后,聚类完成,程序停止。激光雷达点云数据最终分为k组,即激光雷达点云数据。
在传统移动设备使用二维激光雷达感知环境时,均默认激光雷达所探测到的障碍信息正确,并在此基础上进行避障路径规划。但在实际应用中,二维激光雷达因为设备航行时姿态角(俯仰角θ和横滚角φ)的变化导致测量点畸变,与真实测得的障碍物信息不一致,如图3所示。图3(a)表示二维激光雷达俯仰角与横滚角度值为0时的水平扫描情况。图3(b)表示二维激光雷达俯仰角与横滚角不为0时存在的偏差扫描情况。图3(c)表示二维激光雷达在水平扫描与偏差扫描两种情况下,分别将两者扫描到的障碍物点信息映射到二维平面后的对比效果。
多数障碍物可以归类为类长方体障碍物,对类长方体障碍物扫描点进行矫正,需要建立两个前提条件:1)在俯视障碍物视野下,存在激光雷达扫描线与障碍物正面垂直的扫描点;2)在正视障碍物视野下,最左与最右扫描点均落在类长方体障碍物两侧边缘。类长方体障碍物模型如图4所示。
图4 类长方体障碍物Figure 4. Cuboid obstacle
如图4所示,其中PE为类长方体障碍物的边缘扫描点极坐标PE(rE,aE),PD为俯视视野下与障碍物正面垂直的激光雷达扫描线探测的障碍物扫描点极坐标PD(rD,aD),PE为原始极坐标数据点,PA为中心垂直点PD修正后的极坐标,PB为障碍物边缘扫描点PE修正后的极坐标点数据。
标点的修正计算式如式(2)所示
(2)
式中,Φ、φ参数可通过△AOD、△BOE、△COD求得,计算式如下所示
(3)
(4)
式中,rD和aD分别表示障碍物点PD的距离值与角度值;rE和aE分别表示障碍物点PE的距离值与角度值;θ为当前激光雷达的俯仰角大小;φ为当前激光雷达的横滚角大小。
在完成上述障碍物点云数据处理后,数据与实际情况存在少量偏差,虽然修正后的偏差程度小于修正前,但还需要进一步对聚类点实施“膨化”处理,为后续移动设备的自动避障和安全航行提供保障。包络“膨化”的具体思路为进一步增加圆面的半径,即以原K-means聚类后聚类中心为圆心,在半径R的基础上以某一“膨化”策略继续加大圆面的半径。当移动设备距离障碍物较近时,采集到的扫描点越密集,测量数据误差越小,障碍物的轮廓越清晰。反之,距离越远扫描点越稀疏,测量数据误差大,轮廓越模糊。在障碍物距离较近的情况下,“膨化”尺寸不宜过大,在障碍物远离机器人的情况下,“膨化”尺寸可较大,所以本文按照以下策略进行“膨化”处理
(5)
其中,L为“膨化”尺寸,单位为m;Dc为簇中心到激光雷达中心的直线距离,单位为m;Dscan为激光雷达的最远扫描距离;W为障碍物的实际宽度。
本文采用机械式单线激光雷达,角度分辨率为(1/16)°,距离分辨率为1 cm,在反射率为10%时扫描距离可达12 m。本文所提算法适用于存在激光雷达扫描线垂直于长方体障碍物表面,并且每类聚类点数不少于70个数据点时才进行角度修正处理。实验过程中所涉及的参数取值如表1所示,其中unit表示常量参数值对应的单位。
表1 仿真参数
激光雷达采集的原始点云数据如图5所示,在扫描到障碍物的同时引入一些离散的噪声点,因此需要对原始点云数据进行中值滤波处理,处理后的效果如图6所示。需要对所有的障碍物点使用K-means聚类处理,将当前所有障碍物点分为3大类,分别用上三角形、圆形和叉形图标表示,如图7所示。对聚类后的各类点云数据进行角度修正处理,如图8所示,其中分别用加号、下三角形以及正方形图标点来表示上三角形、圆形和叉形三种聚类点进行角度修正后的位置信息。最后对3类聚类点进一步使用包络“膨化”处理,如图9所示。
图5 原始点云数据Figure 5. Original point cloud data
图6 滤波后点云数据Figure 6.Point cloud data after filtering
图7 点云数据聚类划分Figure 7.Cluster division of point cloud data
图8 角度修正前后对比Figure 8. Comparison before and after angle correction
图9 点云数据包络处理结果Figure 9. Point cloud data envelope processing
为验证激光雷达点云数据角度修正方法的有效性,在实际测量中以宽度为1 m的长方体障碍物为扫描对象,并最终给出激光雷达扫描数据矫正前后的数据对比。在本文实验中,设置移动设备的俯仰角与横滚角的大小分别为(5°,10°,15°,20°,25°,30°)和(5°,10°,15°,20°,25°,30°),在上述不同姿态角数据的状态下,验证激光雷达障碍物扫描点云数据在角度修正处理前后的效果,具体实测结果数据对比如图10所示。图10(a)~图10(c)分别表示移动设备与长方体障碍物直线距离为4 m、6 m、8 m时,在不同横滚角取值的情况下对应激光雷达点云数据角度修正前后的数据与障碍物实际宽度的差值。图10(d)~图10(f)分别表示移动设备与长方体障碍物直线距离为4 m、6 m、8 m时,在不同俯仰角取值的情况下对应激光雷达点云数据角度修正前后的数据与障碍物实际宽度的差值。由图10可以看出,矫正后的测量数据值与障碍物真实宽度之间的误差比不经过矫正情况下的误差小。因此,实验结果验证了本文提出的激光雷达点云数据角度修正方法能使扫描结果更接近真实环境情况。
(a)
针对二维激光雷达在移动设备实际应用中因为移动体姿态角变化导致测量点畸变的问题,本文首先利用中值滤波算法对激光雷达点云数据进行滤波处理,再对障碍物点使用K-means方法聚类,并对同一聚类点进行角度数据修正,提高障碍物定位效果,最后对每个聚类实施包络处理,进一步增加安全性。通过实际测试验证了角度修正方法的可行性,对畸变数据具有一定矫正作用,使数据结果更接近真实障碍物。