洪 洋,袁 夏,高 飛,成 誠,楊 歡,陳耀忠,陸建峰
1.南京理工大學(xué),南京210094
2.海裝上海局駐南京地區(qū)第四軍事代表室,南京210008
3.北方信息控制研究院集團(tuán)有限公司,南京211100
隨著人工智能的發(fā)展,機(jī)器人市場迎來了爆發(fā)式增長,服務(wù)機(jī)器人由室內(nèi)走向社區(qū),由高速公路走向城市道路,由結(jié)構(gòu)化環(huán)境走向半結(jié)構(gòu)化環(huán)境。在半結(jié)構(gòu)化環(huán)境中,基于機(jī)器人本地計(jì)算資源的實(shí)時(shí)可通行區(qū)域檢測(cè)是一個(gè)熱門研究領(lǐng)域。半結(jié)構(gòu)化環(huán)境中,可通行區(qū)域檢測(cè)算法一般可分為以下四類。
(1)基于網(wǎng)格的方法。早期有學(xué)者直接利用網(wǎng)格高度信息檢測(cè)可通行區(qū)域的算法[1]。隨后有學(xué)者把網(wǎng)格方法與其他算法結(jié)合來檢測(cè)地面,例如基于條件隨機(jī)場的算法[2]和基于時(shí)空條件隨機(jī)場的算法[3]。為了提高算法實(shí)時(shí)性,李廣敬[4]以及李炯[5]等提出基于柵格的快速檢測(cè)方法。這類方法使用網(wǎng)格,將非結(jié)構(gòu)化點(diǎn)云轉(zhuǎn)為結(jié)構(gòu)化數(shù)據(jù),但是點(diǎn)云數(shù)據(jù)的局部信息被嚴(yán)重壓縮,且當(dāng)障礙物較低或較小時(shí),網(wǎng)格內(nèi)數(shù)據(jù)都將被標(biāo)記為地面,因此該類算法很難檢測(cè)到高度較低的障礙物,且要求半結(jié)構(gòu)化環(huán)境中點(diǎn)云數(shù)據(jù)密度較大。
(2)基于模型的方法。這類算法主要是基于RANSAC提取環(huán)境中平面特征,例如Awwad[6]和魏英姿[7]擬合地平面算法。Chen等提出了基于高斯的實(shí)時(shí)地面分割算法[8]。為了解決環(huán)境中上下坡問題,Patiphon[9]、Zermas[10]以及Bo等[11]提出了基于RANSAC多區(qū)域擬合算法。這類算法被廣泛應(yīng)用于半結(jié)構(gòu)化和結(jié)構(gòu)化環(huán)境中,但是RANSAC中用來區(qū)分局內(nèi)、局外點(diǎn)的閾值不容易設(shè)定,較低障礙物和地面很難區(qū)分;同時(shí)RANSAC 算法從一個(gè)數(shù)據(jù)集中只能估計(jì)一個(gè)模型,現(xiàn)實(shí)中的地面并不是一個(gè)完美平面或幾個(gè)平面簡單拼接的結(jié)果,因此這類算法依舊難以適應(yīng)非平坦地面。
(3)基于點(diǎn)位置分布特征的方法。Himmelsbach 提出了基于射線的地面分割方法[12]。Vo 提出區(qū)域增長分割算法[13]。段建民[14]以及蘇志遠(yuǎn)[15]利用環(huán)境特征檢測(cè)城市半結(jié)構(gòu)化道路。這類算法雖然可以很精準(zhǔn)地檢測(cè)到高度較低的障礙物,但是不適應(yīng)顛簸環(huán)境,顛簸或斜坡環(huán)境改變了點(diǎn)云數(shù)據(jù)的空間分布特征,例如密度、距離、高度等,因此該類算法會(huì)帶來較多的誤檢測(cè)問題。
(4)近年來基于深度學(xué)習(xí)的可通行區(qū)域檢測(cè)方法越來越受到關(guān)注。例如Velas 使用卷積神經(jīng)網(wǎng)絡(luò)分割地面[16]。但深度學(xué)習(xí)模型對(duì)計(jì)算資源要求較高,且需要標(biāo)注大量數(shù)據(jù)集,在實(shí)驗(yàn)中基于公開數(shù)據(jù)集訓(xùn)練的模型對(duì)真實(shí)環(huán)境的泛化能力仍有待提升。基于深度學(xué)習(xí)技術(shù)的算法模型目前側(cè)重于模型研究,以及在云計(jì)算環(huán)境下進(jìn)行部署,多數(shù)模型難以完全依靠移動(dòng)機(jī)器人自身的計(jì)算資源在本地實(shí)時(shí)運(yùn)行。
針對(duì)半結(jié)構(gòu)化環(huán)境,本文提出一種基于稀疏三維點(diǎn)云的快速可通行區(qū)域檢測(cè)算法,從兩個(gè)方面處理當(dāng)前算法所面臨的問題。(1)本文算法避免直接使用點(diǎn)云高度特征,轉(zhuǎn)而使用點(diǎn)云直線特征檢測(cè)結(jié)構(gòu)化障礙物,因此上下坡、顛簸等環(huán)境不影響本文算法。(2)通過寬廣的角度約束,提取環(huán)境中非結(jié)構(gòu)化障礙物,降低了較低障礙物和地面之間相互誤檢測(cè)。
本文工作主要貢獻(xiàn):(1)針對(duì)半結(jié)構(gòu)化環(huán)境,算法從兩個(gè)方向出發(fā),區(qū)別處理結(jié)構(gòu)化障礙物和非結(jié)構(gòu)化障礙物,使得算法可以適應(yīng)較為復(fù)雜的半結(jié)構(gòu)化環(huán)境。(2)一般性算法難以檢測(cè)路緣石、臺(tái)階等較低障礙物,本文算法充分利用環(huán)境中的結(jié)構(gòu)化信息,能穩(wěn)定檢測(cè)路緣石、臺(tái)階等較低障礙物。(3)算法避免了直接使用點(diǎn)云的高度特征,可以適應(yīng)上下坡、顛簸等情況,同時(shí)算法且具備檢測(cè)負(fù)障礙的能力。(4)算法不僅標(biāo)記出環(huán)境中障礙物,而且給出了可通行區(qū)域,同時(shí)可以在小型移動(dòng)機(jī)器人平臺(tái)上依靠本地計(jì)算資源實(shí)時(shí)運(yùn)行。
本文算法步驟框圖如圖1所示:首先將無序點(diǎn)云轉(zhuǎn)有序點(diǎn)云,從中快速提取近似直線特征;然后分類直線特征以及提取有效直線特征;結(jié)合直線特征檢測(cè)結(jié)構(gòu)化障礙物和非結(jié)構(gòu)化障礙物;最后標(biāo)記出環(huán)境中的可通行區(qū)域,并構(gòu)建成環(huán)境柵格地圖。
圖1 算法框圖Fig.1 Algorithm block diagram
本文實(shí)驗(yàn)數(shù)據(jù)來自于Velodyne-16 激光雷達(dá),該雷達(dá)位置相對(duì)地面高度38 cm,每幀點(diǎn)云數(shù)據(jù)由16條環(huán)形掃描線組成,具有360°水平視場,水平角度分辨率約0.18°,±15°的垂直視場,垂直角度分辨率2°,機(jī)器人實(shí)驗(yàn)平臺(tái)如圖2(a)所示。本文參考坐標(biāo)系為雷達(dá)坐標(biāo)系,即X軸向前、Y軸向左、Z軸向上。本文處理的對(duì)象為點(diǎn)云中的1~8 條掃描線,且投影到XY平面,如圖2(b)所示。
圖2 實(shí)驗(yàn)數(shù)據(jù)說明Fig.2 Experimental platform description
點(diǎn)云預(yù)處理方法可以借鑒LeGO-LOAM[17]和LOAM算法[18],包括點(diǎn)云運(yùn)動(dòng)畸變校正、無序點(diǎn)云轉(zhuǎn)有序點(diǎn)云。校正點(diǎn)云的運(yùn)動(dòng)畸變,將會(huì)使本文算法得到更好的實(shí)驗(yàn)效果。
由于環(huán)境中障礙物的尺寸不同,因此點(diǎn)云中結(jié)構(gòu)化障礙物對(duì)應(yīng)的直線段長度也大小不一。在初始階段將待提取直線特征最小長度設(shè)置在較小范圍,盡可能多地提取直線段,有利于降低漏檢情況。本文將直線段最小長度設(shè)置為25 cm。點(diǎn)云中存在的直線特征并不是絕對(duì)的直線,主要表現(xiàn)在以下三種情況:(1)激光雷達(dá)處在水平面上,點(diǎn)云由環(huán)形掃描線組成,當(dāng)掃面線半徑很大時(shí),可以將連續(xù)的數(shù)個(gè)點(diǎn)近似看作直線段;(2)當(dāng)雷達(dá)相對(duì)地面高度較低時(shí),環(huán)形掃描線在平緩起伏的地面也近似直線段;(3)激光雷達(dá)測(cè)距有一定的誤差,同一直線段上的點(diǎn)不會(huì)絕對(duì)對(duì)齊。
通過以上分析發(fā)現(xiàn),在點(diǎn)云數(shù)據(jù)中精準(zhǔn)地提取所有直線段是比較困難的,因此,本文算法使用模糊線段來提取直線特征。模糊線段(blurred segment)定義[19]:離散直線L(a,b,u,w)是一個(gè)整數(shù)離散點(diǎn)集(x,y)的集合,該點(diǎn)集滿足u≤ax-by
圖3 直線特征提取算法框圖Fig.3 Block diagram of line feature extraction
存儲(chǔ)滿足以上約束條件的近似直線段,包括直線段的索引、端點(diǎn)、斜率、截距。雷達(dá)是順時(shí)針方向掃描的,直線段起始點(diǎn)位置都是在終止點(diǎn)位置的逆時(shí)針方向,因此直線段的斜率用直線與Y軸正方向的夾角來表示,范圍是0°~360°。這里的直線截距是直線與Y軸交點(diǎn)坐標(biāo),當(dāng)直線和Y軸近似平行時(shí),直線截距會(huì)出現(xiàn)極大或者極小值的情況,因此需要設(shè)置直線的最大截距和最小截距,分別為Bmax、Bmin。當(dāng)直線和Y軸平行時(shí),規(guī)定直線的截距等于Bmax。提取直線特征的方法原理簡單,提取直線特征結(jié)果如圖4中白色直線段所示。
圖4 直線特征提取結(jié)果Fig.4 Extract lines from point clouds
結(jié)構(gòu)化障礙物都有一定的長度以及高度,因此,同一個(gè)結(jié)構(gòu)化障礙物表面上的直線段特征會(huì)有多條,這一類直線段都有相似的屬性,即斜率和截距。因此可以借助聚類方法,將上一章中提取的近似直線段分類,使同一障礙物對(duì)應(yīng)的直線段屬于同一個(gè)類別,本文使用的是k均值聚類算法(K-means clustering algorithm)。算法框圖如圖5所示。
圖5 聚類算法框圖Fig.5 Block diagram of clustering algorithm
(1)對(duì)直線斜率進(jìn)行聚類,聚類數(shù)目和聚類中心分別為式(2)和(3),聚類后可得到I個(gè)簇,但是角度是循環(huán)數(shù)據(jù),例如0°和360°屬于同一個(gè)聚類,因此,需要將聚類中心在0°和360°附近的簇合并成一個(gè)簇,聚類結(jié)果表示為CA。
斜率的聚類數(shù)目:
斜率的初始聚類中心ci:
其中,N為直線段總數(shù)目,I為整數(shù),直線段總數(shù)目是類別5倍。即將360°分成I份,ci是第i份的初始聚類中心。
(2)對(duì)直線的截距進(jìn)行聚類,需要在CA中每個(gè)簇內(nèi)都進(jìn)行一次對(duì)截距的聚類。設(shè)Ci中所有直線的最大截距(單位:m)為Bt_max,最小截距為Bt_min,Ck∈CAB,聚類數(shù)目和聚類中心分別為式(4)和(5),將Ci聚類后,可以得到K個(gè)簇,將聚類中心在Bmax和Bmin附近的簇合并成一個(gè)簇。最終聚類結(jié)果表示為CAB。
Ci中截距的聚類數(shù)目:
Ci中截距的初始聚類中心:
其中,K是整數(shù)。即在簇Ci中,將直線間的最大截距差分成K份,ck是第k份的初始聚類中心。
在第2章中提取的近似直線段,除了包含障礙物表面上真實(shí)的直線段以外,也包含非障礙物表面上無效的直線段,例如半徑較大掃描線上的圓弧。這些無效直線段也是聚類的對(duì)象,因此需要剔除這些無效直線段。分為以下兩種情況。
(1)非障礙物表面上的近似直線段的斜率和截距是沒有規(guī)律的,因此這些無效直線段所屬類別中的樣本數(shù)目也是極少的。如圖6(a)所示,無效直線段所構(gòu)成的類別分布如圖中C1、C2所示,有效直線段所構(gòu)成的類別分布如圖中C3、C4所示,C1,C2,C3,C4∈CAB。因此,當(dāng)聚類Ck中直線樣本數(shù)只有1時(shí),那么Ck包含的直線段都是無效的,Ck∈CAB。
(2)如圖6(b)所示,有些無效直線段所構(gòu)成的類別分布也會(huì)如圖中C1、C2所示,C1,C2∈CAB。這些無效直線段由于環(huán)境原因,恰好被聚集在同一個(gè)聚類中。本文2.2 節(jié)提取的直線特征保留了方向信息,因此本文的直線段特征是有向線段,線段的起始端點(diǎn)都在終止端點(diǎn)的逆時(shí)針方向。如圖6(b)中所示,類別C1包含兩條有向直線段AB、CD,連接AB起始點(diǎn)A 和CD終止點(diǎn)D點(diǎn),得到新向量AD,同理可以得到新向量CB,從而可以計(jì)算出AD和CB之間的夾角α。
如圖6(b)所示,C1中夾角α是一個(gè)比較大的角度,同理,計(jì)算得到C2中夾角α也是一個(gè)比較大的角度。而C3中的夾角α值卻接近于0。即同一類別中包含兩條以上有向直線段,用兩條有向直線段重新組織成兩個(gè)向量,當(dāng)兩向量間夾角α>α0時(shí),表明該這兩條直線特征無效。直線特征篩選結(jié)果如圖6(c)、(d)所示。
圖6 直線特征篩選Fig.6 Lines selection
在第3章中,使斜率和截距近似的直線特征屬于同一個(gè)類別,并且認(rèn)為該類別中的直線特征都屬于同一個(gè)障礙物。但是當(dāng)兩個(gè)結(jié)構(gòu)化障礙物表面近似平行時(shí),這兩個(gè)障礙物對(duì)應(yīng)的直線特征斜率和截距也是近似的,那么兩個(gè)障礙物對(duì)應(yīng)的直線特征將會(huì)被聚到一個(gè)類別中,例如圖7(a)所示,在類別Ck中,Ck∈CAB,如果存在空間位置相鄰的兩條直線段CD、EF,CD位于掃描線u上,EF位于掃描線m上,且有| |u-m >1,此時(shí)直線特征CD、EF顯然不屬于同一個(gè)障礙物。
圖7 聚類再分析Fig.7 Cluster reanalysis
當(dāng)算法檢測(cè)出道路的兩個(gè)邊緣時(shí),也可以根據(jù)兩個(gè)邊緣計(jì)算出當(dāng)前環(huán)境下的道路寬度。當(dāng)?shù)缆穼挾瓤捎?,且點(diǎn)D、E 間的長度大于道路寬度時(shí),Ck也會(huì)被重新分成兩個(gè)新聚類。本節(jié)最終的目的是使每一個(gè)類別Ck中都只對(duì)應(yīng)一個(gè)或者零個(gè)障礙物,以方便在第4章中使用它們。
實(shí)際中,一個(gè)障礙物表面結(jié)構(gòu)一般是連續(xù)的,但由于點(diǎn)云數(shù)據(jù)的稀疏性,障礙物并沒有被點(diǎn)云完整地覆蓋,因此算法檢測(cè)到的障礙物是斷斷續(xù)續(xù)、不完整的。一般算法檢測(cè)可通行區(qū)域時(shí),往往忽略了障礙物之間的相關(guān)性,算法中并沒有體現(xiàn)出結(jié)構(gòu)化特征。如圖8(a)所示,Ck中包含三條直線特征,Ck∈CAB,三條直線特征對(duì)應(yīng)著同一障礙物,這就意味著從A 點(diǎn)到F 點(diǎn),都是障礙物實(shí)體,但是由于點(diǎn)云數(shù)據(jù)比較稀疏,使得B 點(diǎn)到C點(diǎn)、D點(diǎn)到E點(diǎn)間都是可以通行的。
為了體現(xiàn)障礙物更完整的結(jié)構(gòu)化信息,可以依次連接Ck中各條直線特征,Ck∈CAB,得到的結(jié)果如圖8(b)所示。即使在交叉路口等環(huán)境下,也可以直接連接每個(gè)聚類中的直線特征,因?yàn)?.1 節(jié)中,使每一個(gè)類別Ck中都只對(duì)應(yīng)一個(gè)或者零個(gè)障礙物。實(shí)驗(yàn)結(jié)果如圖8(c)、(d)所示。
圖8 結(jié)構(gòu)化障礙物檢測(cè)Fig.8 Structured obstacle detection
如圖9(a)所示,當(dāng)算法檢測(cè)到結(jié)構(gòu)化障礙物AB、CD時(shí),顯然,直線AB、CD是不可通行的,由于視角遮擋,區(qū)域S1、S2的可通行性是未知的。從應(yīng)用層次的角度的來分析,區(qū)域S1和S2不屬于可通行區(qū)域。
為了快速檢測(cè)區(qū)域S1、S2,本文使用快速排斥實(shí)驗(yàn)和跨立實(shí)驗(yàn)。如圖9(b)所示,直線特征AB是一障礙物的邊界信息,點(diǎn)云數(shù)據(jù)中任意一點(diǎn)pi,連接原點(diǎn)和pi得到向量Opi。當(dāng)AB和Opi相交時(shí),即可判定點(diǎn)pi屬于不可通行區(qū)域。實(shí)驗(yàn)結(jié)果如圖9(c)、(d)所示。
圖9 不可通行區(qū)域檢測(cè)Fig.9 Detection of inaccessible areas
當(dāng)圖9(a)中白色區(qū)域存在非結(jié)構(gòu)化障礙物時(shí),這種情況并沒有得到有效的處理。本節(jié)通過地面最大傾斜約束條件,來檢測(cè)非結(jié)構(gòu)化障礙物。根據(jù)《城市道路設(shè)計(jì)規(guī)范》《汽車庫建筑設(shè)計(jì)規(guī)范》,以及《城市居住區(qū)規(guī)劃設(shè)計(jì)規(guī)范》等規(guī)定,在半結(jié)構(gòu)化環(huán)境中,地面的傾斜度一般不大于15°,考慮顛簸等情況,本文把地面最大傾斜度設(shè)置為σ=20°。
首先將點(diǎn)云數(shù)據(jù)由掃描線形式,重新組織成射線形式,如圖10(a)所示,相鄰射線之間的夾角為0.18°,共有2 000條射線,理論上每條射線包含16個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)代表點(diǎn)云數(shù)據(jù)中的一個(gè)點(diǎn)。但是當(dāng)一束激光反射點(diǎn)非常遠(yuǎn)或者沒有反射時(shí),該節(jié)點(diǎn)缺失。
本文把點(diǎn)云射線和障礙物相交的點(diǎn),稱之為截至點(diǎn)。當(dāng)射線遇到截至點(diǎn)時(shí),射線會(huì)被截?cái)啵瓷渚€不包含區(qū)域S1、S2的點(diǎn)。既減少了算法的計(jì)算量,又降低了障礙物檢測(cè)對(duì)本節(jié)算法的依賴程度。
然后計(jì)算每一條射線上相鄰點(diǎn)之間的夾角,如圖10(b)所示,點(diǎn)pi和點(diǎn)pi+1是同一射線上相鄰點(diǎn),坐標(biāo)分別為(xi,yi,zi)、(xi+1,yi+1,zi+1),兩點(diǎn)之間夾角θ:
圖10 非結(jié)構(gòu)化障礙物檢測(cè)原理Fig.10 Principle of unstructured obstacle detection
當(dāng)夾角θ>σ時(shí),將pi+1標(biāo)記為障礙點(diǎn),當(dāng)點(diǎn)pi+1缺失時(shí),依次用點(diǎn)pi+j來替代pi+1,j=2,3,4,j<5。實(shí)驗(yàn)結(jié)果如圖11所示。
圖11 非結(jié)構(gòu)化障礙物檢測(cè)Fig.11 Unstructured obstacle detection
將4.2節(jié)、4.3節(jié)實(shí)驗(yàn)結(jié)合,疊加兩部分檢測(cè)結(jié)果,剔除重復(fù)的障礙點(diǎn),便可得到最終的實(shí)驗(yàn)結(jié)果。如圖12(a)所示,其中彩色代表原始點(diǎn)云,白色點(diǎn)代表障礙物。按照4.3節(jié)實(shí)驗(yàn)方法,將圖12(a)中不可通行區(qū)域填充后并表示為柵格地圖,效果如圖12(b)所示。
圖12 可通行區(qū)域Fig.12 Results of traversable area
在實(shí)驗(yàn)結(jié)果分析中,本文算法將與文獻(xiàn)[9]算法、LeGO-LOAM 算法[17]地面分割部分進(jìn)行對(duì)比。文獻(xiàn)[9]算法通過分析點(diǎn)云幾何結(jié)構(gòu)和RANSAC多平面擬合的方法來檢測(cè)地面,該算法適用于斜坡環(huán)境中的三維點(diǎn)云地面分割方法。文獻(xiàn)[17]算法將點(diǎn)云數(shù)據(jù)投影成二維圖像,基于圖像的方法完成地面分割。本文算法中的實(shí)驗(yàn)參數(shù)具體設(shè)置如下:n=5,α0=8°,σ=20°,Bmax=36 m,Bmin=-36 m。
算法的實(shí)時(shí)性,是評(píng)估算法實(shí)用價(jià)值的重要標(biāo)準(zhǔn)之一。本文算法在ROS環(huán)境中,使用C++實(shí)現(xiàn),可以在Intel NUC 迷你電腦上運(yùn)行并實(shí)時(shí)檢測(cè)可通行區(qū)域,系統(tǒng)的具體參數(shù)如表1 所示。系統(tǒng)實(shí)時(shí)性要求算法完全依靠移動(dòng)機(jī)器人自身的計(jì)算資源在本地實(shí)時(shí)運(yùn)行,因?yàn)榧す饫走_(dá)數(shù)據(jù)輸出頻率為10 Hz,因此算法運(yùn)行時(shí)間必須小于0.1 s。
表1 系統(tǒng)信息Table 1 System information
本文結(jié)合了7 100 幀點(diǎn)云數(shù)據(jù),在平坦道路、彎道、斜坡等多種環(huán)境下,測(cè)試了上述三個(gè)算法運(yùn)行時(shí)長,如圖13 所示。本文算法平均運(yùn)行時(shí)間是0.014 s,最大時(shí)長為0.041 s,最小運(yùn)行時(shí)長為0.006 s,本文算法完全可以達(dá)到實(shí)時(shí)性要求。
圖13 算法運(yùn)行時(shí)間Fig.13 Run time of algorithms
如圖14(a)所示,該場景下包含負(fù)障礙物,藍(lán)色框中是沒有井蓋的地下管道入口,井口的尺寸約為0.6 m×0.4 m。如圖14(b)、(d)所示,當(dāng)激光雷達(dá)到負(fù)障礙的距離約2 m時(shí)(本文實(shí)驗(yàn)平臺(tái)尺寸為0.5 m×0.5 m),文獻(xiàn)[9]算法和本文算法可以穩(wěn)定地標(biāo)記出負(fù)障礙物,同時(shí),本文算法可以準(zhǔn)確地標(biāo)記出路緣石等障礙物。文獻(xiàn)[17]算法并不具有檢測(cè)負(fù)障礙物的能力,且和激光雷達(dá)到負(fù)障礙的距離無關(guān)。實(shí)驗(yàn)結(jié)果說明,本文算法具有檢測(cè)負(fù)障礙物的能力。
圖14 負(fù)障礙場景實(shí)驗(yàn)結(jié)果Fig.14 Results of negative obstacle scene
平坦實(shí)驗(yàn)場景如圖15,在(a)、(i)、(m)中,檢測(cè)較矮的障礙物方面,本文算法實(shí)驗(yàn)結(jié)果都要遠(yuǎn)好于文獻(xiàn)[9]算法和文獻(xiàn)[17]算法。在直道試驗(yàn)場景圖15(a)中,本文算法可以準(zhǔn)確提供道路的邊緣信息,在轉(zhuǎn)彎實(shí)驗(yàn)場景圖15(i)中,本文算法更準(zhǔn)確標(biāo)記出了道路的輪廓,標(biāo)記效果要遠(yuǎn)好于文獻(xiàn)[9]算法、文獻(xiàn)[17]算法。場景圖15(m)表明環(huán)境中的車輛、行人等因素對(duì)本文算法影響較小。同時(shí),在圖15(d)、(l)、(p)中,說明了本文算法可以準(zhǔn)確地補(bǔ)充障礙表面信息,更好地體現(xiàn)了障礙物結(jié)構(gòu)化信息,更能體現(xiàn)可通行區(qū)域的概念。在車庫實(shí)驗(yàn)場景圖15(e)中,環(huán)境中的障礙物高度都比較高,三個(gè)算法的實(shí)驗(yàn)結(jié)果近似,沒有太大的差異。
圖15 平坦場景實(shí)驗(yàn)結(jié)果Fig.15 Results of flat scenes
斜坡在環(huán)境中主要表現(xiàn)為上下坡道,移動(dòng)機(jī)器人在上坡過程中,主要有上坡前、上坡后兩個(gè)環(huán)節(jié)。移動(dòng)機(jī)器人在下坡過程中也有下坡前、下坡后兩個(gè)環(huán)節(jié)。這4個(gè)環(huán)節(jié)分別對(duì)應(yīng)場景圖16(a)、(e)、(i)、(m)。雖然文獻(xiàn)[9]算法針對(duì)斜坡環(huán)境使用了基于RANSAC多平面擬合方法,但是該算法在上坡過程中,依舊將較遠(yuǎn)距離的斜坡地面標(biāo)記成障礙物,如圖16(b)、(f)所示,當(dāng)然文獻(xiàn)[9]算法對(duì)所有幀的測(cè)試結(jié)果并不都是如此,但是算法誤檢測(cè)的概率也將近30%,因?yàn)槲墨I(xiàn)[9]算法中并不能保證它劃分的多個(gè)區(qū)域正確。文獻(xiàn)[9]算法和文獻(xiàn)[17]算法實(shí)驗(yàn)結(jié)果近似,但是文獻(xiàn)[9]算法在障礙物和非障礙物交界處的實(shí)驗(yàn)結(jié)果一般,如圖16(n)所示,文獻(xiàn)[9]算法將部分地面檢測(cè)成障礙物。而本文算法是結(jié)合直線特征來完成的,在半結(jié)構(gòu)化環(huán)境中,本文算法的適應(yīng)性要比文獻(xiàn)[9]算法和文獻(xiàn)[17]算法更好。
圖16 斜坡場景實(shí)驗(yàn)結(jié)果Fig.16 Results of slope scenes
本文結(jié)合半結(jié)構(gòu)化環(huán)境特征,提出了一種實(shí)時(shí)可通行區(qū)域檢測(cè)算法。該算法將可通行區(qū)域檢測(cè)問題分解成了兩個(gè)任務(wù),即結(jié)構(gòu)化障礙物和非結(jié)構(gòu)化障礙物檢測(cè),避免了直接利用點(diǎn)云的高度信息,從而能更好地適應(yīng)斜坡、顛簸、負(fù)障礙等環(huán)境。該算法可以在中小型AGV上實(shí)時(shí)運(yùn)行,適用于低密度點(diǎn)云,在后續(xù)的局部路徑規(guī)劃和目標(biāo)分類中,具有一定實(shí)用價(jià)值。在接下來的研究中,將利用多幀數(shù)據(jù)間的時(shí)間關(guān)聯(lián)性進(jìn)一步提高算法的魯棒性。