韓志平 靳玉峰
摘 要:由于二維激光傳感器成本比較昂貴,不是所有的導(dǎo)航實(shí)驗(yàn)條件都能夠滿足購買此設(shè)備。所以有必要考慮采用虛擬仿真二維激光傳感器的方法,代替此掃描設(shè)備。此虛擬仿真方法是基于不同應(yīng)用場景的柵格地圖信息,模擬二維激光掃描周圍現(xiàn)場場景,并可以將掃描后的激光信息傳遞給導(dǎo)航控制器。該應(yīng)用結(jié)果表明,二維激光導(dǎo)航模擬器能夠很好的模擬激光掃描周圍場景,并將應(yīng)用場景的描述信息準(zhǔn)確地提供給導(dǎo)航控制器,為導(dǎo)航控制器實(shí)現(xiàn)建圖、避障等功能提供依據(jù)
關(guān)鍵詞:二維激光;傳感器;虛擬仿真;柵格地圖;導(dǎo)航控制器
文獻(xiàn)標(biāo)志碼: TP242? ? 中圖分類號: A
1? 引言
隨著移動(dòng)機(jī)器人[1]在物流等行業(yè)的推廣和使用,二維激光設(shè)備[2]變的尤為重要。在驗(yàn)證導(dǎo)航、建圖、避障等算法時(shí),二維激光設(shè)備又是必不可缺少的核心設(shè)備。所以需要開發(fā)出一種模擬器代替二維激光傳感器的使用,以便進(jìn)行大量的實(shí)驗(yàn)。
本文建立了一整套的二維激光導(dǎo)航模擬器,使得開發(fā)人員更加直觀的觀察二維激光導(dǎo)航狀態(tài),同時(shí)模擬器向?qū)Ш娇刂破鱾鬟f激光導(dǎo)航信息,以便驗(yàn)證移動(dòng)機(jī)器人的相關(guān)算法。
2? 環(huán)境模擬
激光模擬仿真前,需要對周圍場景進(jìn)行描述,從而使得激光模擬器可以根據(jù)這些描述,掃描周圍場景,確定場景物體位置。場景環(huán)境描述(即柵格地圖[3])是由實(shí)物二維激光傳感器掃描周圍復(fù)雜環(huán)境[4]而建立。
3? 激光模擬
二維激光如何掃描周圍場景,跟激光點(diǎn)的位置、角度和環(huán)境有關(guān),同時(shí)也跟激光傳感器的參數(shù)有關(guān)。通常情況下,激光傳感器的參數(shù)和現(xiàn)場環(huán)境都是確定的,模擬算法只跟激光點(diǎn)的位置和角度有關(guān)。
3.1? 激光模擬計(jì)算
激光模擬是基于柵格地圖進(jìn)行掃描,所以首先需要對柵格地圖進(jìn)行分析[5]。柵格地圖的屬性文件包括地圖左下角點(diǎn)在世界坐標(biāo)系中的坐標(biāo)值、柵格地圖的行數(shù)和列數(shù)、柵格直徑大小。首先需要獲取每個(gè)柵格在世界坐標(biāo)系中的位置,如公式(1)。
Lx和Ly是柵格在世界坐標(biāo)系中x、y方向的數(shù)值,per是柵格直徑大小,Column是柵格所在地圖的列數(shù),Row是柵格所在地圖的行數(shù),Scale是世界坐標(biāo)系與地圖坐標(biāo)系的比例系數(shù)。
(1)
激光模擬計(jì)算時(shí),面積較大的地圖,柵格數(shù)會(huì)比較多,導(dǎo)致算法復(fù)雜度增加,導(dǎo)致程序效率降低,無法在一個(gè)循環(huán)周期內(nèi)處理完所有數(shù)據(jù)。故本文采用局部優(yōu)化方法,先排除無效數(shù)據(jù),得到有用數(shù)據(jù),再進(jìn)行算法處理,加快算法速度。
排除激光傳感器無法掃描到柵格地圖的方法,需要確定激光可達(dá)到區(qū)域??蛇_(dá)區(qū)域是以激光位置為圓心,激光掃描長度為半徑的圓形范圍內(nèi),如下方法。
Lx和Ly是柵格在世界坐標(biāo)系中x、y方向的數(shù)值,Len是柵格與激光點(diǎn)的長度,LaserX和LaserY是二維激光點(diǎn)在世界坐標(biāo)系中x、y方向的位置數(shù)值。Len如果小于激光掃描長度,此柵格就為激光線可達(dá)到的點(diǎn)。如公式(2)計(jì)算求得Len。
(2)
判斷每個(gè)柵格到激光點(diǎn)的角度與激光朝向所成夾角在90度范圍內(nèi),以排除激光的后面、側(cè)面激光掃描線不能達(dá)到位置。如圖2所示,兩條掃描線都與Y軸夾角小于90度。如公式(3)所示,x是柵格與激光點(diǎn)之間的角度值,atan是C語言中的反正切函數(shù),返回方向角度,fabs是C語言中的求絕對值的函數(shù),是激光朝向角度,就是最終求的夾角,當(dāng)小于等于90時(shí),即為有效的柵格點(diǎn)。
(3)
獲取有效的柵格點(diǎn)后,需要將有效的柵格點(diǎn)當(dāng)作阻擋激光掃描線的障礙點(diǎn),傳遞給導(dǎo)航控制器。傳遞信息包括每個(gè)柵格阻擋掃描線的序號、掃描線的長度。求掃描線的長度如公式(2)所示,求阻擋掃描線的序號,以下公式所示。
LaserID是激光掃描線的序號,fetep是兩條掃描之間的角度。
(4)
3.1.1? 阻擋激光掃描線問題
在現(xiàn)實(shí)場景中,很多情況下,障礙物放置都是多層次的[5]。所以激光掃描時(shí),部分掃描線會(huì)被障礙物阻擋,無法掃描到此障礙物后面的障礙物,需要考慮算法與實(shí)際情況保持一致。
根據(jù)公式(2)可得到某條掃描線上從障礙物到激光點(diǎn)的長度,最小的長度即為這條激光掃描線最終可達(dá)到的長度。在仿真模擬器中,需要描繪此線條,并傳遞此序號激光的長度給導(dǎo)航控制器。如果激光未掃到障礙物,無需描繪此線。
3.1.2? 激光掃描線丟失問題
在仿真過程中,發(fā)現(xiàn)激光點(diǎn)與柵格離的很近時(shí),很多掃描線會(huì)丟失。通過大量實(shí)驗(yàn)分析,激光點(diǎn)與柵格離的越近時(shí),一個(gè)柵格內(nèi)會(huì)有更多條掃描線穿過,計(jì)算這些掃描線的方法如下。
求導(dǎo)一個(gè)柵格內(nèi),由哪些序號的激光掃描線經(jīng)過。首先利用公式(3)求出每個(gè)頂點(diǎn)的與激光點(diǎn)之間的角度值,并比對出最小角度值min和最大角度值max,再通過公式(5)得出此柵格內(nèi)激光掃描線最小序號Lmin和最大序號Lmax,最小序號與最大序號的區(qū)間即為穿過柵格所有激光的序號區(qū)間。
(5)
3.2? 噪聲抑制
在實(shí)際應(yīng)用中,激光掃描線掃描的距離值并不會(huì)跟數(shù)學(xué)計(jì)算公式得出的結(jié)論一模一樣,是有噪聲[6]存在的,目前市場上常用的激光SLAM噪聲的誤差范圍為(-3cm,3cm),并且此誤差隨機(jī)產(chǎn)生的。模擬器模擬數(shù)值要與實(shí)際情況要保持一致,就必須要抑制此誤差的影響。最佳的辦法是在計(jì)算出的激光掃描距離上加上噪聲處理。
Lend是某個(gè)序號掃描線的最終長度,L是通過計(jì)算所得的某個(gè)序號掃描線的最終長度。
(6)
4? 模擬激光實(shí)現(xiàn)
二維激光導(dǎo)航模擬器實(shí)現(xiàn)激光的模擬,首先需要導(dǎo)入柵格地圖,實(shí)現(xiàn)對現(xiàn)場環(huán)境進(jìn)行描述。激光SLAM移動(dòng)到柵格地圖中任意位置,掃描周圍場景。如圖1所示,二維激光點(diǎn)在不同的位置和不同的朝向時(shí),激光的掃描信息會(huì)不同。
5? 結(jié)語
模擬器很好的模仿二維激光導(dǎo)航傳感器,在不同的場景、空間位置與激光不同的朝向,模擬器都能精準(zhǔn)的模擬出激光,給予導(dǎo)航控制器算法支持。隨著模擬器的應(yīng)用,開發(fā)人員無需購買昂貴的二維激光導(dǎo)航傳感器,節(jié)省大量物力成本。
參考文獻(xiàn):
[1]袁明. 柔性復(fù)合機(jī)器人的設(shè)計(jì)與應(yīng)用[J].物流科技, 2018,18(6):63-65.
[2]周星林, 呂文莎, 伍洋, 伊皓暉. 二維激光掃描車輛行駛跑偏量測量研究[J]. 汽車技術(shù), 2016,1(10):7-10.
[3]王啟宇, 李剛俊. 基于典型柵格地圖的輪式移動(dòng)機(jī)器人路徑規(guī)劃與跟蹤[J].西南科技大學(xué)學(xué)報(bào), 2017,32(4):54-57.
[4]秦玉鑫, 張高峰, 王裕清. 針對復(fù)雜環(huán)境的模塊化柵格地圖構(gòu)建算法[J]. 控制工程, 2016,23(10):1627-1633.
[5]于曉天, 高秀花, 張俊, 鄭冰環(huán), 費(fèi)雯凱. 基于分層?xùn)鸥竦貓D的移動(dòng)機(jī)器人路徑規(guī)劃[J].導(dǎo)航與控制,2017,16(4):30-36.
[6]唐嫻, 李鴻雁. 激光成像跟蹤系統(tǒng)的圖像噪聲抑制分析[J].激光雜志, 2016,37(6):106-108.