郅晓昌,李晓雷
(长安大学工程机械学院,陕西 西安 710064)
由于路灯大都处在露天场所,长期使用后灯罩上会堆积大量灰尘从而影响路面的照明效果,对道路安全构成危害。本文设计了基于激光雷达的路灯灯罩定位系统,为路灯清洗设备的举升移动提供精确的位置信息。
激光雷达由于可以获得极高的角度、距离分辨率和良好的抗干扰能力,被大量应用于目标的识别和定位中。文献[1]采用单线激光雷达检测障碍物的位置和移动速度,在低速驾驶的条件下,该方法能够有效识别车辆前方30 m的移动障碍物并检测其位置和速度;文献[2]提出了一种基于雷达测距的车辆识别与跟踪方法,通过提取车辆目标的直线和直角特征来识别车辆,并利用卡尔曼滤波器根据关联结果更新目标的状态,实现对行驶车辆的跟踪;文献[3]通过车载激光扫描实现电线杆的自动识别与定位,该识别系统通过将电线杆的点云杆状数据拟合成为一条空间直线,以电线杆的几何特性作为期望值和方差,自动识别电线杆;文献[4]通过雷达自动采集参考目标来计算船舶的距离和方位,并结合航迹数学模型实现船舶的自动定位。
本文利用路灯杆的几何特点,建立了灯罩的识别定位系统。首先在灯杆的识别过程中,划定识别的ROI区域,并对雷达点云进行聚类、拟合处理,识别出灯杆,再通过路灯的几何尺寸得到灯罩的空间坐标。本文设计的路灯识别定位系统为路灯的清洁提供了精确的位置信息,对道路照明、行人行车的安全和城市美化都具有重要的工程价值。
为实现灯杆、灯罩的识别及定位,建立了路灯的定位系统如图1所示。该系统采用两个激光雷达来实现灯罩定位,系统以清洗平台上表面中心为坐标原点O,清洗车行驶的方向为y轴,与车辆行驶方向垂直的方向为 x 轴,竖直方向为z轴。传感器安装方式如下:将一个雷达放置在清洗平台下表面,即原点O的正下方,用于测量清洗平台上升的高度;另一个激光雷达放置在车的最右侧,尽可能减少公路上机动车等杂物干扰灯杆的识别,同时为减少计算量,将它放置在测高传感器的正右方,即x轴上。
激光雷达使用的测距技术是飞行时间(TOF,Time of Flight),即根据发射的激光束遇到障碍物后的折返时间,计算目标距雷达的距离,从而完成目标的定位[4],其工作原理如图2所示。
激光器Laser以一定的角度beta射出一束激光,沿激光方向距离为d的物体反射激光。焦距是f,物体离平面的垂直距离是q,激光器和焦点间的距离是s,过焦点平行于激光方向的虚线,物体激光反射后成像在Imager上的点位置离该处的距离为x。f/x=q/s,则q=f*s/x,又由于sin(beta)=q/d,可得d=q/sin(beta),最终得:d=f*s/(x*sin(beta))。
三维激光雷达能够获得目标物丰富的点云信息,但价格昂贵,给清洗车辆普及带来较大的挑战,本文采用思岚二维激光雷达RPLIDAR A1,它结构简单,并且价格低廉,可进行每秒高达8000次以上的测距动作。雷达的参数如表1。
表1 RPLIDAR A1雷达性能参数
2.2.1 灯杆识别ROI区域的划定
由于思岚二维激光雷达获取360°的点云数据,处理的数据量较大,而在实际路灯定位工作中,灯杆总位于清洗车的右前方,根据这一工况,划定了灯杆识别的感兴趣区域(图3),设定车辆前进的方向为0°,顺时针为正方向,划定阈值30°~120°,以雷达中心为半径的d1~d2区域为ROI区域(图3),这样可以缩小点云数据处理量,加快处理速度。
2.2.2 灯杆点云聚类分析
为方便灯杆的拟合,首先对ROI区域中的点云进行聚类分析。聚类即按照某个特定标准(如距离准则,即数据点之间的距离)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能大。目前,常用的聚类方法有划分方法、层次方法、基于密度的方法,本文采用 DBSCAN聚类算法进行分析。
DBSCAN是一种典型的基于密度的聚类算法,该算法的基本思想是:每个簇的内部点的密度比簇外点的密度高得多,定义为密度相连的最大对象集。为提高聚类的效果,降低算法的复杂度,数据点间的相似度直接采用欧式距离[6]。若两个连续数据点间的距离大于阈值Dmax,则认为两点不连续,其表达式如下:
(1)
式中:pn、pn-1为连续两个点云的距离值。
由于激光雷达的激光束成扇形的扫描特性,且角度分辨率是确定的,所以相邻两激光反射点间的距离是随光束的延长而线性增加的,故距离阈值Dmax应取决于数据点的深度值,即该点到雷达间的距离值。Borges等人提出了一种根据深度值来确定距离阈值的方法,计算式如下:
(2)
式中:rn-1为点pn-1的深度值,σr为激光雷达的测量误差,Δø为激光雷达的角度分辨率,λ为阈值因数,一般通过经验获得。
2.2.3 灯杆点云拟合
对点云聚类分析后,需对每个聚类结果进行拟合,得到扫描物的轮廓特征用于灯杆的识别。考虑到识别的对象是呈圆柱形,经雷达扫描出的是一段圆弧(小于180°),如图4所示。
本文采用Matlab对点云数据进行最小二乘法拟合[7]。该方法可以实现对每个聚类内点集进行曲线拟合,而不用在整幅图像内实施IEPF算法和直线拟合,提高了实时性,并且避免了不同的聚类连接在一起的可能性。
在聚类内部拟合出圆弧特征后,在灯杆识别过程中,根据拟合的圆弧直径是否等于灯杆直径排除广告灯牌、树木等圆柱形立柱,从而确定灯杆目标。
在识别出灯杆轮廓后,根据雷达的点云数据确定灯杆的二维坐标,再由路灯的几何尺寸,雷达在清洗平台上的安装位置,获得灯罩的三维坐标,定位原理如图5所示,其中,L1表示两雷达在x轴方向的距离,L2表示灯杆长度,L3为灯罩悬臂长,θ为悬臂倾角,L4表示清洗车地盘高度,L5表示清洗平台厚度,h为清洗平台下表面到汽车底盘的距离,用于检测平台上升的高度。
激光雷达每次扫描采集到n个数据点,这些数据点的集合以极坐标形式表示为:
R={(ri,øi)|i=1,2,3,…n}
(3)
其中:ri为第n个点云的距离值,øi为第n个点云的角度值。根据公式(4)、(5)将点云的极坐标值转化为直角坐标(xi,yi):
xi=ricosøi
(4)
yi=risinøi
(5)
因激光雷达位于原点X轴上,坐标为(L1,0,z),则确定灯杆轴心距雷达中心的距离为:
(6)
其中,min{r}是指代表灯杆的拟合曲线r的最小值,其对应角度记为øm。
灯杆轴心的坐标为(xg,yg):
xg=Lcosøm+L1
(7)
yg=Lsinøm
(8)
测高传感器输出高度为h,设灯罩形心的坐标为(xz,yz,zz):
xz=xg-L3cosθ=Lcosøm+L1-L3cosθ
(9)
yz=Lsinøm
(10)
zz=L2+L3sinθ-L5-L4-h
(11)
为测试本文设计的路灯定位系统的精度,采用思岚激光雷达进行实验。由于本定位系统中灯罩的定位是根据清洗平台、路灯的几何尺寸、雷达安装位置来计算得到,因此本实验重点检测灯杆的识别及定位,在路灯杆附近设置纸箱作为干扰来验证该识别方法。
本实验采集的点云如图6(a)所示,灯杆目标位于雷达60°附近,图6(b)为划定的ROI区域中点云,它很大程度上减少了点云处理量,图6(c)为点云聚类结果,图6(d)为点云拟合结果。完成灯杆识别后,再通过式(9)-式(11),实现灯杆定位。实验表明,本文设计的识别定位系统能准确地识别出灯杆,并且经多次实验,灯杆的定位误差小于1 cm,满足清洗过程对灯罩的定位要求。
设计了一种基于激光雷达准确定位路灯灯罩的系统,通过划定识别的ROI区域,并对点云进行聚类、拟合处理,结合路灯灯杆的几何特征,准确识别出灯杆,并通过路灯及清洗设备的几何关系确定灯罩相对于清洗平台的空间位置,为清洗装置的举升移动提供了可靠的技术支撑。实验证明,该定位系统能够满足路灯清洗对于灯罩的定位要求。