,
(西安工程大學(xué) 電子信息學(xué)院,西安 710048)
激光測(cè)距儀相對(duì)于其他傳感器在環(huán)境感知上具有較高的數(shù)據(jù)采樣頻率、采樣精度、采樣角度分辨率等[1]。近幾年來,對(duì)于激光測(cè)距儀環(huán)境感知的研究進(jìn)展迅速。Cristiano Premebida 將環(huán)境用直線段、圓和橢圓的集合來表示,并介紹了在激光數(shù)據(jù)中提取上述特征的方法,并通過實(shí)驗(yàn)比較各算法的異同[2]。
Xavier J提出了一種基于內(nèi)接角的特征提取算法,提取出環(huán)境中的直線段、圓弧和人腿的輪廓等特征[3]。Zhang S利用擴(kuò)展卡爾曼濾波算法對(duì)環(huán)境進(jìn)行實(shí)時(shí)直線段和圓弧特征提取,提高了特征提取的效率[4]。L Iocchi利用Hough變換的方法進(jìn)行特征提取,但是該方法效率比較低,尤其是在提取圓特征時(shí),參數(shù)空間維數(shù)升到三維,特征提取的效率將會(huì)更低[5]。Weiss G和THOMAS R通過建立激光數(shù)據(jù)點(diǎn)集的特征直方圖提取環(huán)境中的不變特征,這種特征提取方法不同于上述幾種方法,是將特征抽象為環(huán)境中的不變因素的結(jié)果[6-7]。K LINGEMAN利用一維線性濾波器對(duì)激光數(shù)據(jù)點(diǎn)集進(jìn)行濾波,然后選取極值點(diǎn)作為特征點(diǎn)[8]。
本論文主要是研究地圖中的局部地圖創(chuàng)建[9],在未知環(huán)境中,如何通過傳感器提取出環(huán)境和障礙物信息,是創(chuàng)建地圖的關(guān)鍵。在未知環(huán)境下地圖的表示方法有柵格[10]、幾何[11]、拓?fù)鋄12]。參考文獻(xiàn)[13]提出對(duì)激光測(cè)距儀用加權(quán)最小二乘擬合方法提取二維水平環(huán)境特征、對(duì)單目視覺使用非局部最大抑制算法提取垂直物體邊緣的方法進(jìn)行信息融合。
環(huán)境模型的建立通常是通過建立環(huán)境地圖來實(shí)現(xiàn)。地圖是移動(dòng)機(jī)器人內(nèi)部對(duì)外部的認(rèn)識(shí),是機(jī)器人運(yùn)動(dòng)的基礎(chǔ)。目前,移動(dòng)機(jī)器人常用的地圖表示方法有三種:柵格地圖(grid-based map)、幾何特征地圖(geometric feature map)、拓?fù)涞貓D (topological map),環(huán)境地圖表示如圖 1 所示。
圖1 環(huán)境地圖的表示
基于柵格的地圖表示方法將整個(gè)環(huán)境分為若干相同大小的柵格,對(duì)于每個(gè)柵格指出其中是否存在障礙物,圖1(a)為一幅典型的柵格地圖,這種地圖表示方法非常適合于超聲陣列、激光測(cè)距儀等范圍傳感器的地圖創(chuàng)建過程。
基于幾何特征的地圖表示方法是指機(jī)器人從收集的環(huán)境感知信息中提取更為抽象的幾何特征,這些幾何特征也稱為路(Landmark),應(yīng)用這些特征對(duì)環(huán)境進(jìn)行描述,圖1(b)為一幅典型的點(diǎn)特征地圖。
拓?fù)涞貓D也是一種緊湊的地圖表示方法,這種方法將環(huán)境表示為一張拓?fù)?Graph),圖1(c)顯示了某一室內(nèi)環(huán)境的拓?fù)涞貓D,地圖中的節(jié)點(diǎn)由室內(nèi)墻壁的拐角及機(jī)器人可達(dá)的局部區(qū)域等組成,拓?fù)鋱D的連接弧表示節(jié)點(diǎn)間的連通關(guān)系。
對(duì)于一個(gè)具體的機(jī)器人地圖創(chuàng)建問題要根據(jù)實(shí)際環(huán)境、任務(wù)以及傳感器特性選擇合適的地圖表示方法。上述地圖表示方法并沒有嚴(yán)格的界限,實(shí)際應(yīng)用中很多系統(tǒng)都是綜合應(yīng)用這些表示方法。
通過坐標(biāo)變換可以得到數(shù)據(jù)點(diǎn)的全局坐標(biāo),下一步將激光傳感器采集到的離散數(shù)據(jù)信息處理成用來表示環(huán)境信息的連續(xù)特征信息。采用“聚合-分割-聚合”的方法,最后得出線段的參數(shù)以及線段特征表示的局部環(huán)境地圖。
激光測(cè)距傳感器是在掃描平面上按一定的角度分辨率進(jìn)行距離掃描,掃描數(shù)根據(jù)極坐標(biāo)形式給出,則其直角坐標(biāo)表示為:
Un=(xn,yn)T,n=1,2,…,N
(1)
(2)
機(jī)器人坐標(biāo)系與全局坐標(biāo)系的關(guān)系圖如圖2所示,為了計(jì)算方便,假設(shè)傳感器坐標(biāo)系和機(jī)器人坐標(biāo)系重合,在傳感器坐標(biāo)下得到的激光傳感器掃描數(shù)據(jù)應(yīng)該轉(zhuǎn)換到全局坐標(biāo)系中。
圖2 機(jī)器人坐標(biāo)系與全局坐標(biāo)系的關(guān)系圖
(3)
其中:
(4)
通過坐標(biāo)變換,把通過激光傳感器測(cè)量得到的361個(gè)數(shù)據(jù)點(diǎn)的信息轉(zhuǎn)化為全局坐標(biāo)下的笛卡爾坐標(biāo)。將361個(gè)離散數(shù)據(jù)點(diǎn)按照連續(xù)兩點(diǎn)間的距離大小分成彼此不連續(xù)的區(qū)域,首先假設(shè)這361個(gè)數(shù)據(jù)點(diǎn)為一個(gè)區(qū)域,起點(diǎn)為第一個(gè)點(diǎn),終點(diǎn)為361個(gè)點(diǎn),可得到這樣一個(gè)區(qū)域:
A1=((X0,Y0),(X1,Y1),…,(X360,Y360))
區(qū)域分割的具體步驟如下:
① 按照式(5)計(jì)算連續(xù)兩個(gè)點(diǎn)之間的距離
(5)
其中j=1,2,…,360;i=1,2,…,360。
② 判斷Dj和閾值δ的關(guān)系(δ的選取主要依據(jù)經(jīng)驗(yàn)),如果Dj大于閾值δ,則認(rèn)為點(diǎn)(Xj,Yj)是兩個(gè)區(qū)域分割點(diǎn),以該點(diǎn)為分割點(diǎn)將區(qū)域分為兩部分,可以得到區(qū)域A1((X0,Y0),(X1,Y1),(X2,Y2),…,(Xj,Yj))、A2((Xj+1,Yj+1),(Xj+2,Yj+2),…,(X360,Y360))。按照同樣的原則對(duì)區(qū)域A2((Xj+1,Yj+1),(Xj+2,Yj+2),…,(X360,Y360))進(jìn)行分割,得到A2。以此類推,最終得到相互不連通的區(qū)域(A1,A2,…,AN)。
③ 判斷每個(gè)區(qū)域內(nèi)的數(shù)據(jù)點(diǎn)個(gè)數(shù),若包含≤3個(gè)數(shù)據(jù)點(diǎn),則視該區(qū)域?yàn)樵肼晠^(qū)域,舍棄這些噪聲點(diǎn)。
經(jīng)過區(qū)域分割,得到了可以用線段描述的區(qū)域Ai(i=1,2,…,N),這些區(qū)域可能是一條或者多條線段的組合,將每一個(gè)區(qū)域分割為若干點(diǎn)集,其中每個(gè)點(diǎn)集Li可用一條線段表示L(L1,L2,…,Lm)。
由于各區(qū)域距離激光測(cè)距儀的距離不同,包含數(shù)據(jù)點(diǎn)的個(gè)數(shù)也不同,為了提高精度,采用動(dòng)態(tài)閾值的辦法。
經(jīng)過上面的處理,可以得到存在線性關(guān)系的一組點(diǎn)Li(i=1,2,…,M),但由于這些數(shù)據(jù)在測(cè)量過程中存在噪聲,并不是嚴(yán)格線性關(guān)系,所以需要尋找一條能最大程度反映這些點(diǎn)關(guān)系的線段。本文采用最小二乘直線擬合方法,使全部測(cè)量點(diǎn)都在這條直線上:
ρcos θcos α+ρsin θsin α-r=ρcos(θ-α)-r=0
(6)
式中:r為坐標(biāo)原點(diǎn)與這條直線的垂直距離,α為距離直線與 x 軸的夾角。由于存在測(cè)量誤差,所以上式不為零。對(duì)于特定的點(diǎn)(ρi,θi),它與直線之間的正交距離di為:
ρicos(θi-α)-r=di
(7)
考慮到各測(cè)量有相同的不確定性,對(duì)于全部的測(cè)量點(diǎn)可以將所有的誤差的平方和加在一起,將直線和全部測(cè)量之間的整個(gè)擬合進(jìn)行量化,如下所示:
(8)
由于直線可以由 r 和α 確定,所以可以選擇直線參數(shù)(α, r)使 S 最小。要達(dá)到這個(gè)目的,通過求解非線性方程組即可得到:
(9)
(10)
由式(8)和式(10)解得:
(11)
經(jīng)過最小二乘線段擬合算法,得到了這條線段的最優(yōu)解。
完成局部創(chuàng)建后,將下一個(gè)局部地圖與當(dāng)前地圖進(jìn)行數(shù)據(jù)匹配,即比較更新后的局部地圖和當(dāng)前全局地圖的線段關(guān)系,把局部地圖的數(shù)據(jù)融合到當(dāng)前全局地圖中,完成地圖更新,得到全局地圖。
地圖更新的關(guān)鍵問題在于解決全局地圖與局部地圖中的線段相關(guān)性[14]。局部線段與全局線段如圖3所示,實(shí)線代表全局地圖中的線段,虛線為局部地圖中的線段。分為4種情況,L1、L2 與L分別重合、部分重合。L3與L1相交,L4不在全局地圖中。
圖3 局部線段與全局線段
具體算法如下:
① 根據(jù)線段的判定方法可以將局部地圖中的線段分為與全局地圖相關(guān)的線段和全局地圖不相關(guān)的線段。
② 如果局部地圖中的線段與全局地圖的線段是同一條線段,就直接把局部地圖中的線段刪去,保留全局地圖的線段。
③ 如果局部地圖中的線段是全局地圖的線段的一部分,就直接把局部地圖中的線段刪去,保留全局地圖的線段。
④ 局部地圖中的線段與全局地圖相關(guān)線段是部分重合的,需要重新計(jì)算線段的參數(shù),取出局部地圖和全局地圖相關(guān)線段的原始數(shù)據(jù)信息,得到一條新的線段加入到全局地圖中,同時(shí)刪除全局地圖和局部地圖中原來的線段。
⑤ 如果局部地圖中的線段和全局地圖中的線段不相關(guān),則可以直接把局部地圖的線段插入到全局地圖中,同時(shí)從局部地圖中將該線段刪除。重復(fù)以上步驟,直至局部地圖中的線段為空,這樣就完成了局部地圖到全局地圖的融合,更新了全局地圖。
激光傳感器采集0~180°范圍數(shù)據(jù),角分辨率為0.5°,實(shí)驗(yàn)環(huán)境為學(xué)校實(shí)驗(yàn)室。實(shí)驗(yàn)過程中先區(qū)域分割,然后特征提取,最后擬合成直線,生成局部地圖,再通過局部地圖的融合,得到全局地圖。生成的局部地圖與全局地圖如圖4和圖5所示。
圖4 局部地圖構(gòu)建
圖5 全局地圖構(gòu)建
柯莉紅、要鵬超(碩士),主要研究方向?yàn)闄C(jī)器人技術(shù)。