,
(西安工程大學 電子信息學院,西安 710048)
激光測距儀相對于其他傳感器在環(huán)境感知上具有較高的數(shù)據(jù)采樣頻率、采樣精度、采樣角度分辨率等[1]。近幾年來,對于激光測距儀環(huán)境感知的研究進展迅速。Cristiano Premebida 將環(huán)境用直線段、圓和橢圓的集合來表示,并介紹了在激光數(shù)據(jù)中提取上述特征的方法,并通過實驗比較各算法的異同[2]。
Xavier J提出了一種基于內接角的特征提取算法,提取出環(huán)境中的直線段、圓弧和人腿的輪廓等特征[3]。Zhang S利用擴展卡爾曼濾波算法對環(huán)境進行實時直線段和圓弧特征提取,提高了特征提取的效率[4]。L Iocchi利用Hough變換的方法進行特征提取,但是該方法效率比較低,尤其是在提取圓特征時,參數(shù)空間維數(shù)升到三維,特征提取的效率將會更低[5]。Weiss G和THOMAS R通過建立激光數(shù)據(jù)點集的特征直方圖提取環(huán)境中的不變特征,這種特征提取方法不同于上述幾種方法,是將特征抽象為環(huán)境中的不變因素的結果[6-7]。K LINGEMAN利用一維線性濾波器對激光數(shù)據(jù)點集進行濾波,然后選取極值點作為特征點[8]。
本論文主要是研究地圖中的局部地圖創(chuàng)建[9],在未知環(huán)境中,如何通過傳感器提取出環(huán)境和障礙物信息,是創(chuàng)建地圖的關鍵。在未知環(huán)境下地圖的表示方法有柵格[10]、幾何[11]、拓撲[12]。參考文獻[13]提出對激光測距儀用加權最小二乘擬合方法提取二維水平環(huán)境特征、對單目視覺使用非局部最大抑制算法提取垂直物體邊緣的方法進行信息融合。
環(huán)境模型的建立通常是通過建立環(huán)境地圖來實現(xiàn)。地圖是移動機器人內部對外部的認識,是機器人運動的基礎。目前,移動機器人常用的地圖表示方法有三種:柵格地圖(grid-based map)、幾何特征地圖(geometric feature map)、拓撲地圖 (topological map),環(huán)境地圖表示如圖 1 所示。

圖1 環(huán)境地圖的表示
基于柵格的地圖表示方法將整個環(huán)境分為若干相同大小的柵格,對于每個柵格指出其中是否存在障礙物,圖1(a)為一幅典型的柵格地圖,這種地圖表示方法非常適合于超聲陣列、激光測距儀等范圍傳感器的地圖創(chuàng)建過程。
基于幾何特征的地圖表示方法是指機器人從收集的環(huán)境感知信息中提取更為抽象的幾何特征,這些幾何特征也稱為路(Landmark),應用這些特征對環(huán)境進行描述,圖1(b)為一幅典型的點特征地圖。
拓撲地圖也是一種緊湊的地圖表示方法,這種方法將環(huán)境表示為一張拓撲(Graph),圖1(c)顯示了某一室內環(huán)境的拓撲地圖,地圖中的節(jié)點由室內墻壁的拐角及機器人可達的局部區(qū)域等組成,拓撲圖的連接弧表示節(jié)點間的連通關系。
對于一個具體的機器人地圖創(chuàng)建問題要根據(jù)實際環(huán)境、任務以及傳感器特性選擇合適的地圖表示方法。上述地圖表示方法并沒有嚴格的界限,實際應用中很多系統(tǒng)都是綜合應用這些表示方法。
通過坐標變換可以得到數(shù)據(jù)點的全局坐標,下一步將激光傳感器采集到的離散數(shù)據(jù)信息處理成用來表示環(huán)境信息的連續(xù)特征信息。采用“聚合-分割-聚合”的方法,最后得出線段的參數(shù)以及線段特征表示的局部環(huán)境地圖。
激光測距傳感器是在掃描平面上按一定的角度分辨率進行距離掃描,掃描數(shù)根據(jù)極坐標形式給出,則其直角坐標表示為:
Un=(xn,yn)T,n=1,2,…,N
(1)


(2)

機器人坐標系與全局坐標系的關系圖如圖2所示,為了計算方便,假設傳感器坐標系和機器人坐標系重合,在傳感器坐標下得到的激光傳感器掃描數(shù)據(jù)應該轉換到全局坐標系中。

圖2 機器人坐標系與全局坐標系的關系圖

(3)
其中:

(4)
通過坐標變換,把通過激光傳感器測量得到的361個數(shù)據(jù)點的信息轉化為全局坐標下的笛卡爾坐標。將361個離散數(shù)據(jù)點按照連續(xù)兩點間的距離大小分成彼此不連續(xù)的區(qū)域,首先假設這361個數(shù)據(jù)點為一個區(qū)域,起點為第一個點,終點為361個點,可得到這樣一個區(qū)域:
A1=((X0,Y0),(X1,Y1),…,(X360,Y360))
區(qū)域分割的具體步驟如下:
① 按照式(5)計算連續(xù)兩個點之間的距離
(5)
其中j=1,2,…,360;i=1,2,…,360。
② 判斷Dj和閾值δ的關系(δ的選取主要依據(jù)經(jīng)驗),如果Dj大于閾值δ,則認為點(Xj,Yj)是兩個區(qū)域分割點,以該點為分割點將區(qū)域分為兩部分,可以得到區(qū)域A1((X0,Y0),(X1,Y1),(X2,Y2),…,(Xj,Yj))、A2((Xj+1,Yj+1),(Xj+2,Yj+2),…,(X360,Y360))。按照同樣的原則對區(qū)域A2((Xj+1,Yj+1),(Xj+2,Yj+2),…,(X360,Y360))進行分割,得到A2。以此類推,最終得到相互不連通的區(qū)域(A1,A2,…,AN)。
③ 判斷每個區(qū)域內的數(shù)據(jù)點個數(shù),若包含≤3個數(shù)據(jù)點,則視該區(qū)域為噪聲區(qū)域,舍棄這些噪聲點。
經(jīng)過區(qū)域分割,得到了可以用線段描述的區(qū)域Ai(i=1,2,…,N),這些區(qū)域可能是一條或者多條線段的組合,將每一個區(qū)域分割為若干點集,其中每個點集Li可用一條線段表示L(L1,L2,…,Lm)。

由于各區(qū)域距離激光測距儀的距離不同,包含數(shù)據(jù)點的個數(shù)也不同,為了提高精度,采用動態(tài)閾值的辦法。
經(jīng)過上面的處理,可以得到存在線性關系的一組點Li(i=1,2,…,M),但由于這些數(shù)據(jù)在測量過程中存在噪聲,并不是嚴格線性關系,所以需要尋找一條能最大程度反映這些點關系的線段。本文采用最小二乘直線擬合方法,使全部測量點都在這條直線上:
ρcos θcos α+ρsin θsin α-r=ρcos(θ-α)-r=0
(6)
式中:r為坐標原點與這條直線的垂直距離,α為距離直線與 x 軸的夾角。由于存在測量誤差,所以上式不為零。對于特定的點(ρi,θi),它與直線之間的正交距離di為:
ρicos(θi-α)-r=di
(7)
考慮到各測量有相同的不確定性,對于全部的測量點可以將所有的誤差的平方和加在一起,將直線和全部測量之間的整個擬合進行量化,如下所示:
(8)
由于直線可以由 r 和α 確定,所以可以選擇直線參數(shù)(α, r)使 S 最小。要達到這個目的,通過求解非線性方程組即可得到:
(9)

(10)
由式(8)和式(10)解得:
(11)

經(jīng)過最小二乘線段擬合算法,得到了這條線段的最優(yōu)解。
完成局部創(chuàng)建后,將下一個局部地圖與當前地圖進行數(shù)據(jù)匹配,即比較更新后的局部地圖和當前全局地圖的線段關系,把局部地圖的數(shù)據(jù)融合到當前全局地圖中,完成地圖更新,得到全局地圖。
地圖更新的關鍵問題在于解決全局地圖與局部地圖中的線段相關性[14]。局部線段與全局線段如圖3所示,實線代表全局地圖中的線段,虛線為局部地圖中的線段。分為4種情況,L1、L2 與L分別重合、部分重合。L3與L1相交,L4不在全局地圖中。

圖3 局部線段與全局線段
具體算法如下:
① 根據(jù)線段的判定方法可以將局部地圖中的線段分為與全局地圖相關的線段和全局地圖不相關的線段。
② 如果局部地圖中的線段與全局地圖的線段是同一條線段,就直接把局部地圖中的線段刪去,保留全局地圖的線段。
③ 如果局部地圖中的線段是全局地圖的線段的一部分,就直接把局部地圖中的線段刪去,保留全局地圖的線段。
④ 局部地圖中的線段與全局地圖相關線段是部分重合的,需要重新計算線段的參數(shù),取出局部地圖和全局地圖相關線段的原始數(shù)據(jù)信息,得到一條新的線段加入到全局地圖中,同時刪除全局地圖和局部地圖中原來的線段。
⑤ 如果局部地圖中的線段和全局地圖中的線段不相關,則可以直接把局部地圖的線段插入到全局地圖中,同時從局部地圖中將該線段刪除。重復以上步驟,直至局部地圖中的線段為空,這樣就完成了局部地圖到全局地圖的融合,更新了全局地圖。
激光傳感器采集0~180°范圍數(shù)據(jù),角分辨率為0.5°,實驗環(huán)境為學校實驗室。實驗過程中先區(qū)域分割,然后特征提取,最后擬合成直線,生成局部地圖,再通過局部地圖的融合,得到全局地圖。生成的局部地圖與全局地圖如圖4和圖5所示。

圖4 局部地圖構建

圖5 全局地圖構建

柯莉紅、要鵬超(碩士),主要研究方向為機器人技術。