張銘坤,蔡文郁,張 帥
(杭州電子科技大學(xué) 電子信息學(xué)院, 浙江 杭州 310018)
隨著計(jì)算設(shè)備性能的提升,機(jī)器視覺(jué)傳感器能利用較為復(fù)雜的計(jì)算模型來(lái)提高感知精度??紤]到視覺(jué)傳感器的成本優(yōu)勢(shì),基于視覺(jué)傳感器的高效、低成本環(huán)境感知方案將成為無(wú)人設(shè)備環(huán)境感知技術(shù)未來(lái)產(chǎn)業(yè)化發(fā)展的重要趨勢(shì)[1-2]。現(xiàn)階段激光雷達(dá)依據(jù)其高精度、高可靠性的優(yōu)點(diǎn),在環(huán)境感知領(lǐng)域里具有重要作用。激光雷達(dá)傳感器是一種在無(wú)人設(shè)備上被廣泛使用的傳感器[3],具有較高的探測(cè)精度和高分辨率,不僅提供豐富的點(diǎn)云數(shù)據(jù)描述,還提供被檢測(cè)障礙物表面的反射強(qiáng)度信息。
采用激光雷達(dá)可以實(shí)現(xiàn)對(duì)前方障礙目標(biāo)位置定位。文獻(xiàn)[4]將激光雷達(dá)數(shù)據(jù)轉(zhuǎn)化為二值柵格地圖,并采用圖像開(kāi)運(yùn)算方法進(jìn)行處理,再采用K-means聚類(lèi)算法對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行聚類(lèi)劃分。文獻(xiàn)[5]使用基于距離歸一化的KNN(K-Nearest Neighbor)離群點(diǎn)統(tǒng)計(jì)濾波方法對(duì)點(diǎn)云數(shù)據(jù)中的離散點(diǎn)進(jìn)行剔除,然后使用基于相鄰點(diǎn)角度閾值方法進(jìn)行快速點(diǎn)云聚類(lèi)。文獻(xiàn)[6]使用中值濾波算法來(lái)去除點(diǎn)云數(shù)據(jù)里的噪聲,并使用基于點(diǎn)密度和點(diǎn)距離兩個(gè)參考量的聚類(lèi)方法進(jìn)行聚類(lèi),最后利用凸包算法處理冗余聚類(lèi)信息。文獻(xiàn)[7]利用車(chē)載二維激光雷達(dá)提出自適應(yīng)窗口算法,實(shí)現(xiàn)了小型無(wú)人車(chē)的障礙物探測(cè)和自動(dòng)避障。文獻(xiàn)[8]結(jié)合二位激光雷達(dá)和云臺(tái)進(jìn)行三維場(chǎng)景重建,并識(shí)別物體輪廓。文獻(xiàn)[9]使用二維激光雷達(dá)和對(duì)應(yīng)位置的反光板實(shí)現(xiàn)小車(chē)位置定位。文獻(xiàn)[10]使用二位激光雷達(dá)獲取周?chē)系K物點(diǎn),并使用改進(jìn)的基于距離和障礙物特征的自適應(yīng)閾值聚類(lèi)分割方法實(shí)現(xiàn)障礙物分割。
上述文獻(xiàn)均默認(rèn)激光雷達(dá)實(shí)測(cè)采集點(diǎn)云數(shù)據(jù)準(zhǔn)確[11-16],但在實(shí)際應(yīng)用過(guò)程中,移動(dòng)設(shè)備自身的姿態(tài)變化將導(dǎo)致采集到的點(diǎn)云數(shù)據(jù)存在數(shù)據(jù)畸變,與實(shí)際環(huán)境中的障礙物數(shù)據(jù)存在較大誤差。因此,本文提出了一種點(diǎn)云數(shù)據(jù)自動(dòng)修正方法來(lái)矯正由于設(shè)備姿態(tài)角變化而畸變的激光雷達(dá)點(diǎn)云數(shù)據(jù)。
移動(dòng)設(shè)備所配置的二維激光雷達(dá)掃描模型如圖1所示。由于移動(dòng)設(shè)備在運(yùn)動(dòng)時(shí),設(shè)備姿態(tài)無(wú)法保持恒定,因此LiDAR探測(cè)因?yàn)樽藨B(tài)角度的存在對(duì)目標(biāo)定位產(chǎn)生偏差。為了解決該問(wèn)題,本文提出了一種基于LiDAR掃描角度修正的障礙物目標(biāo)定位方法。
圖1 移動(dòng)設(shè)備二維激光雷達(dá)掃描模型Figure 1. 2D-LiDAR scanning model of mobile equipment
障礙目標(biāo)定位方法流程如圖2所示。
圖2 自動(dòng)點(diǎn)云數(shù)據(jù)角度修正流程Figure 2. Flow of automatic point cloud data angle correction
當(dāng)移動(dòng)設(shè)備搭載的激光雷達(dá)采集到原始點(diǎn)云數(shù)據(jù)后,首先使用中值濾波對(duì)原始點(diǎn)云數(shù)據(jù)進(jìn)行去噪處理,剔除原始點(diǎn)云數(shù)據(jù)中的噪聲點(diǎn),減少無(wú)效計(jì)算消耗。之后,對(duì)濾波后的離散數(shù)據(jù)點(diǎn)使用K-means算法進(jìn)行聚類(lèi)??紤]設(shè)備自身的慣導(dǎo)傳感返回的姿態(tài)角數(shù)據(jù),若檢測(cè)到橫滾角與俯仰角的值不為零,表示設(shè)備存在傾斜,因此當(dāng)前二維激光雷達(dá)的探測(cè)返回值存在誤差。為減小誤差需要進(jìn)行掃描角度的修正處理,使矯正后的障礙物點(diǎn)云數(shù)據(jù)更接近真實(shí)值。最后,對(duì)矯正后的各個(gè)聚類(lèi)數(shù)據(jù)采用包絡(luò)處理,確定移動(dòng)設(shè)備與障礙物之間存在足夠的安全距離。
對(duì)激光雷達(dá)返回的原始點(diǎn)云數(shù)據(jù)進(jìn)行中值濾波處理。中值濾波[17]是一種快速、高效的非線(xiàn)性平滑法,對(duì)脈沖干擾級(jí)噪聲的抑制效果較好,濾波后的數(shù)據(jù)在保留原來(lái)變化趨勢(shì)的同時(shí)去除了尖峰脈沖對(duì)分析造成的影響。主要操作方法是對(duì)一個(gè)滑動(dòng)窗口內(nèi)的數(shù)值進(jìn)行排序,用排序后的中值代替原窗口中心元素的數(shù)值,如式(1)所示
Pmid=med{Pi-m,…,Pi-1,Pi,Pi+1,…,Pi+m}
(1)
式中,Pmid為經(jīng)過(guò)中值濾波后的數(shù)據(jù);med{·}表示取數(shù)據(jù)序列中間值的函數(shù);Pi為單個(gè)激光雷達(dá)障礙物掃描點(diǎn)數(shù)據(jù);m為預(yù)設(shè)滑動(dòng)窗口領(lǐng)域的大小。
對(duì)濾波后的激光雷達(dá)點(diǎn)云數(shù)據(jù)進(jìn)行聚類(lèi)處理,使用簡(jiǎn)單快速K-means聚類(lèi)算法[18]。
K-means聚類(lèi)方法的實(shí)現(xiàn)步驟如下所示:
步驟1為了有效剔除噪聲對(duì)障礙物探測(cè)的影響,使算法最終分成k個(gè)組。
步驟2在激光雷達(dá)點(diǎn)云數(shù)據(jù)中隨機(jī)選擇k個(gè)點(diǎn)作為每個(gè)簇的初始中心。
步驟3選定數(shù)據(jù)對(duì)象與k個(gè)簇中心的距離(歐幾里得距離)作為聚類(lèi)特征值,通過(guò)計(jì)算每一個(gè)數(shù)據(jù)對(duì)象的特征值,將激光雷達(dá)點(diǎn)云數(shù)據(jù)中各離散點(diǎn)分別歸類(lèi)入距離最近的簇中心對(duì)應(yīng)的簇中。
步驟4當(dāng)所有的離散點(diǎn)都被聚類(lèi)后,針對(duì)每一個(gè)簇分別計(jì)算出其新的簇中心。
步驟5重復(fù)操作步驟2~步驟4,直到步驟4中更新的簇中心與原簇中心的距離小于預(yù)先設(shè)定的閾值,即簇中心基本不再發(fā)生變化后,聚類(lèi)完成,程序停止。激光雷達(dá)點(diǎn)云數(shù)據(jù)最終分為k組,即激光雷達(dá)點(diǎn)云數(shù)據(jù)。
在傳統(tǒng)移動(dòng)設(shè)備使用二維激光雷達(dá)感知環(huán)境時(shí),均默認(rèn)激光雷達(dá)所探測(cè)到的障礙信息正確,并在此基礎(chǔ)上進(jìn)行避障路徑規(guī)劃。但在實(shí)際應(yīng)用中,二維激光雷達(dá)因?yàn)樵O(shè)備航行時(shí)姿態(tài)角(俯仰角θ和橫滾角φ)的變化導(dǎo)致測(cè)量點(diǎn)畸變,與真實(shí)測(cè)得的障礙物信息不一致,如圖3所示。圖3(a)表示二維激光雷達(dá)俯仰角與橫滾角度值為0時(shí)的水平掃描情況。圖3(b)表示二維激光雷達(dá)俯仰角與橫滾角不為0時(shí)存在的偏差掃描情況。圖3(c)表示二維激光雷達(dá)在水平掃描與偏差掃描兩種情況下,分別將兩者掃描到的障礙物點(diǎn)信息映射到二維平面后的對(duì)比效果。
多數(shù)障礙物可以歸類(lèi)為類(lèi)長(zhǎng)方體障礙物,對(duì)類(lèi)長(zhǎng)方體障礙物掃描點(diǎn)進(jìn)行矯正,需要建立兩個(gè)前提條件:1)在俯視障礙物視野下,存在激光雷達(dá)掃描線(xiàn)與障礙物正面垂直的掃描點(diǎn);2)在正視障礙物視野下,最左與最右掃描點(diǎn)均落在類(lèi)長(zhǎng)方體障礙物兩側(cè)邊緣。類(lèi)長(zhǎng)方體障礙物模型如圖4所示。
圖4 類(lèi)長(zhǎng)方體障礙物Figure 4. Cuboid obstacle
如圖4所示,其中PE為類(lèi)長(zhǎng)方體障礙物的邊緣掃描點(diǎn)極坐標(biāo)PE(rE,aE),PD為俯視視野下與障礙物正面垂直的激光雷達(dá)掃描線(xiàn)探測(cè)的障礙物掃描點(diǎn)極坐標(biāo)PD(rD,aD),PE為原始極坐標(biāo)數(shù)據(jù)點(diǎn),PA為中心垂直點(diǎn)PD修正后的極坐標(biāo),PB為障礙物邊緣掃描點(diǎn)PE修正后的極坐標(biāo)點(diǎn)數(shù)據(jù)。
標(biāo)點(diǎn)的修正計(jì)算式如式(2)所示
(2)
式中,Φ、φ參數(shù)可通過(guò)△AOD、△BOE、△COD求得,計(jì)算式如下所示
(3)
(4)
式中,rD和aD分別表示障礙物點(diǎn)PD的距離值與角度值;rE和aE分別表示障礙物點(diǎn)PE的距離值與角度值;θ為當(dāng)前激光雷達(dá)的俯仰角大小;φ為當(dāng)前激光雷達(dá)的橫滾角大小。
在完成上述障礙物點(diǎn)云數(shù)據(jù)處理后,數(shù)據(jù)與實(shí)際情況存在少量偏差,雖然修正后的偏差程度小于修正前,但還需要進(jìn)一步對(duì)聚類(lèi)點(diǎn)實(shí)施“膨化”處理,為后續(xù)移動(dòng)設(shè)備的自動(dòng)避障和安全航行提供保障。包絡(luò)“膨化”的具體思路為進(jìn)一步增加圓面的半徑,即以原K-means聚類(lèi)后聚類(lèi)中心為圓心,在半徑R的基礎(chǔ)上以某一“膨化”策略繼續(xù)加大圓面的半徑。當(dāng)移動(dòng)設(shè)備距離障礙物較近時(shí),采集到的掃描點(diǎn)越密集,測(cè)量數(shù)據(jù)誤差越小,障礙物的輪廓越清晰。反之,距離越遠(yuǎn)掃描點(diǎn)越稀疏,測(cè)量數(shù)據(jù)誤差大,輪廓越模糊。在障礙物距離較近的情況下,“膨化”尺寸不宜過(guò)大,在障礙物遠(yuǎn)離機(jī)器人的情況下,“膨化”尺寸可較大,所以本文按照以下策略進(jìn)行“膨化”處理
(5)
其中,L為“膨化”尺寸,單位為m;Dc為簇中心到激光雷達(dá)中心的直線(xiàn)距離,單位為m;Dscan為激光雷達(dá)的最遠(yuǎn)掃描距離;W為障礙物的實(shí)際寬度。
本文采用機(jī)械式單線(xiàn)激光雷達(dá),角度分辨率為(1/16)°,距離分辨率為1 cm,在反射率為10%時(shí)掃描距離可達(dá)12 m。本文所提算法適用于存在激光雷達(dá)掃描線(xiàn)垂直于長(zhǎng)方體障礙物表面,并且每類(lèi)聚類(lèi)點(diǎn)數(shù)不少于70個(gè)數(shù)據(jù)點(diǎn)時(shí)才進(jìn)行角度修正處理。實(shí)驗(yàn)過(guò)程中所涉及的參數(shù)取值如表1所示,其中unit表示常量參數(shù)值對(duì)應(yīng)的單位。
表1 仿真參數(shù)
激光雷達(dá)采集的原始點(diǎn)云數(shù)據(jù)如圖5所示,在掃描到障礙物的同時(shí)引入一些離散的噪聲點(diǎn),因此需要對(duì)原始點(diǎn)云數(shù)據(jù)進(jìn)行中值濾波處理,處理后的效果如圖6所示。需要對(duì)所有的障礙物點(diǎn)使用K-means聚類(lèi)處理,將當(dāng)前所有障礙物點(diǎn)分為3大類(lèi),分別用上三角形、圓形和叉形圖標(biāo)表示,如圖7所示。對(duì)聚類(lèi)后的各類(lèi)點(diǎn)云數(shù)據(jù)進(jìn)行角度修正處理,如圖8所示,其中分別用加號(hào)、下三角形以及正方形圖標(biāo)點(diǎn)來(lái)表示上三角形、圓形和叉形三種聚類(lèi)點(diǎn)進(jìn)行角度修正后的位置信息。最后對(duì)3類(lèi)聚類(lèi)點(diǎn)進(jìn)一步使用包絡(luò)“膨化”處理,如圖9所示。
圖5 原始點(diǎn)云數(shù)據(jù)Figure 5. Original point cloud data
圖6 濾波后點(diǎn)云數(shù)據(jù)Figure 6.Point cloud data after filtering
圖7 點(diǎn)云數(shù)據(jù)聚類(lèi)劃分Figure 7.Cluster division of point cloud data
圖8 角度修正前后對(duì)比Figure 8. Comparison before and after angle correction
圖9 點(diǎn)云數(shù)據(jù)包絡(luò)處理結(jié)果Figure 9. Point cloud data envelope processing
為驗(yàn)證激光雷達(dá)點(diǎn)云數(shù)據(jù)角度修正方法的有效性,在實(shí)際測(cè)量中以寬度為1 m的長(zhǎng)方體障礙物為掃描對(duì)象,并最終給出激光雷達(dá)掃描數(shù)據(jù)矯正前后的數(shù)據(jù)對(duì)比。在本文實(shí)驗(yàn)中,設(shè)置移動(dòng)設(shè)備的俯仰角與橫滾角的大小分別為(5°,10°,15°,20°,25°,30°)和(5°,10°,15°,20°,25°,30°),在上述不同姿態(tài)角數(shù)據(jù)的狀態(tài)下,驗(yàn)證激光雷達(dá)障礙物掃描點(diǎn)云數(shù)據(jù)在角度修正處理前后的效果,具體實(shí)測(cè)結(jié)果數(shù)據(jù)對(duì)比如圖10所示。圖10(a)~圖10(c)分別表示移動(dòng)設(shè)備與長(zhǎng)方體障礙物直線(xiàn)距離為4 m、6 m、8 m時(shí),在不同橫滾角取值的情況下對(duì)應(yīng)激光雷達(dá)點(diǎn)云數(shù)據(jù)角度修正前后的數(shù)據(jù)與障礙物實(shí)際寬度的差值。圖10(d)~圖10(f)分別表示移動(dòng)設(shè)備與長(zhǎng)方體障礙物直線(xiàn)距離為4 m、6 m、8 m時(shí),在不同俯仰角取值的情況下對(duì)應(yīng)激光雷達(dá)點(diǎn)云數(shù)據(jù)角度修正前后的數(shù)據(jù)與障礙物實(shí)際寬度的差值。由圖10可以看出,矯正后的測(cè)量數(shù)據(jù)值與障礙物真實(shí)寬度之間的誤差比不經(jīng)過(guò)矯正情況下的誤差小。因此,實(shí)驗(yàn)結(jié)果驗(yàn)證了本文提出的激光雷達(dá)點(diǎn)云數(shù)據(jù)角度修正方法能使掃描結(jié)果更接近真實(shí)環(huán)境情況。
(a)
針對(duì)二維激光雷達(dá)在移動(dòng)設(shè)備實(shí)際應(yīng)用中因?yàn)橐苿?dòng)體姿態(tài)角變化導(dǎo)致測(cè)量點(diǎn)畸變的問(wèn)題,本文首先利用中值濾波算法對(duì)激光雷達(dá)點(diǎn)云數(shù)據(jù)進(jìn)行濾波處理,再對(duì)障礙物點(diǎn)使用K-means方法聚類(lèi),并對(duì)同一聚類(lèi)點(diǎn)進(jìn)行角度數(shù)據(jù)修正,提高障礙物定位效果,最后對(duì)每個(gè)聚類(lèi)實(shí)施包絡(luò)處理,進(jìn)一步增加安全性。通過(guò)實(shí)際測(cè)試驗(yàn)證了角度修正方法的可行性,對(duì)畸變數(shù)據(jù)具有一定矯正作用,使數(shù)據(jù)結(jié)果更接近真實(shí)障礙物。