孫海
機器人同時定位與制圖—SLAM(Simultaneous Localization and Mapping)與傳感器緊密相關(guān),具有精度高、速度快、效率高的激光雷達(dá)在實現(xiàn)倉儲搬運機器人自主運動的相關(guān)算法中得到廣泛的應(yīng)用。本文詳細(xì)介紹三角測量的原理并利用該原理實現(xiàn)對激光測距傳感器的制作,結(jié)合旋轉(zhuǎn)舵機,對低成本激光測距雷達(dá)的實現(xiàn)。根據(jù)SLAM系統(tǒng)結(jié)構(gòu),研究特征直線提取,著重研究激光三角測量算法,并對激光測距雷達(dá)的同時定位與地圖構(gòu)建系統(tǒng)進(jìn)行仿真實驗。
【關(guān)鍵詞】Kiva系統(tǒng) 搬運機器人 SLAM 三角測量法 擴(kuò)展卡 爾曼濾波
倉儲搬運機器人作業(yè)顛覆傳統(tǒng)電商物流中心作業(yè)“人找貨、人找貨位”模式,通過作業(yè)計劃調(diào)動機器人,實現(xiàn)“貨找人、貨位找人”的模式,整個物流中心庫區(qū)無人化。激光雷達(dá)與其他的測距傳感器相比有著速度快、精度高的特點,因而,激光雷達(dá)在機器人的運動中得到了廣泛的應(yīng)用。SLAM問題的技術(shù)關(guān)鍵是在地圖未知的情況下,機器人利用外部環(huán)境的掃描數(shù)據(jù)確定自身的位姿以及實現(xiàn)對地圖的建立,主要的內(nèi)容包括:特征提取、地圖建立、自主定位。本文主要圍繞倉儲搬運機器人,針對激光SLAM問題展開研究,設(shè)計了一個倉儲搬運機器人激光SLAM系統(tǒng),在倉庫未知環(huán)境中機器人利用自身裝載的激光雷達(dá)和運動實現(xiàn)SLAM。
1 低成本激光測距原理
1.1 激光測距法
根據(jù)激光測距傳感器在進(jìn)行數(shù)據(jù)采集時所采用的原理不同而進(jìn)行劃分,可以分為激光脈沖法測距傳感器、激光相位法測距傳感器以及激光三角測距法傳感器。
(1)激光脈沖法測距:激光脈沖法測距傳感器通過對激光脈沖的時間差檢測實現(xiàn)距離的測量。
(2)激光相位法測距:相位法激光測距技術(shù),是對相關(guān)頻率的激光按照一定的規(guī)則進(jìn)行幅度調(diào)制,調(diào)制后的光波在被檢測的距離之間傳播,經(jīng)反射后被傳感器接受模塊所接收。這種測量方法需要輔助裝置進(jìn)行激光的反射,不適合應(yīng)用于室內(nèi)機器人。
(3)三角測距激光傳感器:機器人運動時,光電檢測器接受面上光點的位置也相對的發(fā)生變化,根據(jù)光點的變化以及相關(guān)的參數(shù),就可以計算出機器人移動的距離。由于激光發(fā)射器發(fā)射的光線與物體散射的光線組成了一個三角形,所以這種方法叫做三角測距法。
1.2 三角測距法原理
根據(jù)激光發(fā)射光束與物體表面垂線的角度不同,可以分為斜射式三角測距以及直射式三角測距兩種方式。斜射式三角測距方式就是激光發(fā)射器的發(fā)射光線與物體表面不垂直,存在一定傾斜角度。斜射式三角測距激光傳感器的激光路線圖。激光光束經(jīng)過透鏡聚集成為一條直線光束后,按照與物體表面的垂線成一定的角度方式打在物體的表面,物體表面上的激光光點散射后,經(jīng)過透鏡聚焦以及對光線的過濾,最后被光電傳感器接收轉(zhuǎn)化為電信號。
斜射式三角激光測距法以及直射式三角激光測距法都是以非接觸測量方式對距離進(jìn)行測量,并且都具有精度高、速度快和實時好等特點,斜射式三角測距法要求被測物體的表面具有較好的反射性,對散射光的效果不佳,而直射式三角測距法只能接收探測光線在物體的散射光,要求物體具有較好的散光性。由于直射式激光測距傳感器具有實現(xiàn)簡單、誤差較小、體積緊湊等特點,所以工程上經(jīng)常采用直射式激光三角法制作激光傳感器。
1.3 結(jié)構(gòu)設(shè)計
激光測距雷達(dá)的最終目的是為了實現(xiàn)對周圍環(huán)境一定角度內(nèi)障礙物距離的測量。為了實現(xiàn)高精度的數(shù)據(jù)采集,本文采取的是利用舵機加激光測距傳感器的方式對環(huán)境進(jìn)行掃描,本文采用的是具有四級放大功能的舵機,經(jīng)過一級級的力量放大,最終使舵機具有15KG的扭矩,完全可以滿足系統(tǒng)承載的需要。
2 激光測距雷達(dá)EKL-SLAM
2.1 激光SLAM設(shè)計方案
本文所設(shè)計的室內(nèi)機器人使用激光傳雷達(dá)實現(xiàn)定位系統(tǒng)的原理圖。本系統(tǒng)使用的是擴(kuò)展卡爾曼濾波的方式對定位結(jié)果進(jìn)行融合。系統(tǒng)是一個遞歸循環(huán)的過程。第一步是位姿的預(yù)測,機器人的行走具有高斯誤差運動模型,也就是通過里程計獲得的數(shù)據(jù)的誤差符合高斯分布,通過對獲取的里程計的數(shù)據(jù)進(jìn)行分析計算便可以得到機器人的預(yù)測位姿。第二步根據(jù)預(yù)測的位姿信息,在柵格地圖中找到相匹配的預(yù)測觀測值,也就是激光測距雷達(dá)即將得到的位姿信息和環(huán)境特征。第三步對機器人的觀測值和激光測距雷達(dá)所獲得的觀測數(shù)據(jù)進(jìn)行匹配,將匹配后的數(shù)據(jù)進(jìn)行融合,更新機器人的柵格地圖以及位置信息,最終實現(xiàn)精確定位。
2.2 特征直線提取
激光測距雷達(dá)采集到的點是一系列的分散的點,特征直線的提取就是從這些分散的點中有效的提取出直線。在本文的緒論章節(jié)介紹了相關(guān)的直線提取的 算法——Hough變換和分割迭代。機器人是在倉庫小范圍環(huán)境運動需要做大量的掃描數(shù)據(jù)的特點,本文采用迭代分割法進(jìn)行特征直線的提取。激光掃描的點是全都是離散的點,離機器人較遠(yuǎn)的地方所對應(yīng)的相鄰掃描點點之間的距離相對比較大。如果對所有的相鄰掃描點采用一個固定的閾值可能會引起分割區(qū)域過小的現(xiàn)象,把有效的掃描點當(dāng)作無效點丟棄,這樣會使有效的地方信息丟失。對整個離散點集進(jìn)行劃分,所劃分的為區(qū)域可以表示為,假設(shè)該劃分區(qū)域的第一個點是A(x0,y0)最后一個點是C(xn,yn),根據(jù)一條直線的確定至少需要兩個點的數(shù)學(xué)原理,求出這兩個點確定的直線L。依次計算該區(qū)域中其他的點到直線L的距離di,并找出di中的最大值dmax。假設(shè)B點到直線L的距離為最大值dmax,如果dmax大于所設(shè)定的閾值dyu,那么就把這個劃分區(qū)域以B為分界點分成(A,........,B)和(B,........,C)兩部分區(qū)域。對這兩個劃分依次進(jìn)行上述處理,直到每一個劃分的所有點到其所對應(yīng)的直線的距離都小于dyu為止。
通過上述的操作,所有的掃描點被分為了不同的子集,每一個子集都是一條直線。在實際的系統(tǒng)中,誤差是存在的,直線所表示的點不可能全部都在一條直線,線段的擬合就是要求出一條最大可能表示的直線。
2.3 擴(kuò)展卡爾曼濾波EKF
擴(kuò)展卡爾曼濾波利用泰勒公式對系統(tǒng)進(jìn)行線性化,然后使用卡爾曼濾波方法對系統(tǒng)狀態(tài)進(jìn)行遞歸估計,對評估的結(jié)果使用測量誤差進(jìn)行校正,從而使預(yù)測結(jié)果不斷接近真實值。擴(kuò)展卡爾曼濾波對系統(tǒng)中的高斯噪聲有很好的去除效果,被廣泛應(yīng)用于機器人地圖的創(chuàng)建、定位和導(dǎo)航等算法。
機器人通過激光雷達(dá)實現(xiàn)SLAM算法的過程涉及到很多的方面內(nèi)容,主要包括特征直線提取、特征點的生成、地圖的生成、地圖的匹配、坐標(biāo)的生成。
根據(jù)擴(kuò)展卡爾曼濾波的原理,利用其運動和觀測兩個模型把擴(kuò)展卡爾曼濾波方法應(yīng)用到SLAM中。運用循環(huán)迭代進(jìn)行預(yù)測、觀測和更新過程來實現(xiàn)基于擴(kuò)展卡爾曼濾波的同時定位與地圖構(gòu)建。
3 實驗與分析
3.1 激光雷達(dá)測距實驗
用stm32開發(fā)板的定時器功能以舵機轉(zhuǎn)動1°的脈沖控制舵機轉(zhuǎn)動,為了實驗的簡便性,用stm32控制舵機轉(zhuǎn)動90次,統(tǒng)計舵機轉(zhuǎn)過的角度,實驗10次;用實驗室的機器人同樣做角度的轉(zhuǎn)動試驗,轉(zhuǎn)動的次數(shù)為90次,統(tǒng)計機器人轉(zhuǎn)過的角度,實驗10次。激光測距雷達(dá)實驗采取的方式是每隔10cm移動一次要測量的障礙物,總共移動的次數(shù)為15次,測量與障礙物的長度。光電傳感器上的光斑經(jīng)過灰度質(zhì)心的提取,獲得的像素點坐標(biāo)。
在Robot Simulation模擬環(huán)境中創(chuàng)建的地圖環(huán)境進(jìn)行直線的迭代你分割實驗。試驗中機器人利用激光測距雷達(dá)對環(huán)境進(jìn)行掃描。模擬試驗中機器人轉(zhuǎn)動的角度為1°,總共得到了376個掃描點。把掃描點進(jìn)行區(qū)域以及點集的劃分形成數(shù)據(jù)圖。對掃描點按迭代分割算法計算出特征直線,輸出的數(shù)據(jù)圖可以看到,直線的迭代分割擬合算法能夠準(zhǔn)確有效的的從機器人對環(huán)境的掃描點中提取出特征直線,達(dá)到了本文設(shè)計系統(tǒng)的要求。
3.2 激光SLAM的仿真設(shè)計
本文使用的模擬系統(tǒng)是 Robot Simulation 實驗平臺,該實驗平臺是一個室內(nèi)移動機器人仿真系統(tǒng)。Robot Simulation模擬環(huán)境是基于 Python 語言設(shè)計而成的。Robot Simulation根據(jù)Python的特性把機器人進(jìn)行了封裝,對各種傳感器模塊也進(jìn)行了封裝留下了接口,根據(jù)實驗的需要可以動態(tài)的添加所需的傳感器。
實驗中機器人激光測距雷達(dá)在機器人每走0.5m進(jìn)行一次數(shù)據(jù)的掃描,障礙物的大小設(shè)置為大于等于20cm。機器人在位姿為(0,0,0)的時刻建立坐標(biāo)軸系,以當(dāng)前機器人運動指向的方向為x軸,以垂直于x軸方向為y軸,建立坐標(biāo)系,這個坐標(biāo)系就是全局坐標(biāo),機器人利用舵機以1°的夾角進(jìn)行數(shù)據(jù)掃描。當(dāng)機器人運動到環(huán)境中的其他位置進(jìn)行掃描時,以機器人當(dāng)前運動的方向指向為x軸,以垂直于x軸方向為y軸建立坐標(biāo)系,經(jīng)過機器人在室內(nèi)的掃描,特征地圖的匹配,以及擴(kuò)展卡爾曼濾波對激光測距雷達(dá)以及里程計數(shù)據(jù)的融合,最終得到有數(shù)據(jù)的地圖。在上述實驗過程中,室內(nèi)機器人從初始位置(0,0,0)出發(fā)后,激光測距雷達(dá)不斷地在運動過程中提取周圍環(huán)境信息并結(jié)合里程計信息對自身的位姿進(jìn)行預(yù)測和更新,實現(xiàn)本文所設(shè)計的算法,也直接證明實驗結(jié)果的正確性,并在一定程度上驗證本算法的可靠性。
4 結(jié)論
倉儲搬運機器人在未知環(huán)境中的同時定位與地圖構(gòu)建是機器人技術(shù)研究領(lǐng)域的一個重要方向,近年來引起了國內(nèi)外學(xué)者的廣泛關(guān)注。激光測距雷達(dá)由于具精確度高、體積小以及能夠提供準(zhǔn)確的環(huán)境信息的優(yōu)勢,被越來越多的應(yīng)用于機器人同時定位與地圖構(gòu)建的算法中。本文通過分析機器人同時定位與地圖構(gòu)建技術(shù)的研究現(xiàn)狀,結(jié)合項目的實際需求,設(shè)計一種室內(nèi)機器人激光測距同時定位與地圖構(gòu)建系統(tǒng),并對其進(jìn)行仿真測試。
參考文獻(xiàn)
[1]謝蘇俊.激光測距在室內(nèi)機器人運動中的應(yīng)用與實現(xiàn)[D].成都信息工程大學(xué),2016.
[2]李群明,熊蓉,褚健.室內(nèi)自主移動機器人定位方法研究綜述[J].機器人,2003(06).
[3]Michael Bosse,Paul Newman,John Leonard,Seth Teller.Simultaneous Localization and Map Building in Large-Scale Cyclic Environments Using the Atlas Framework. The International Journal of Robotics Research,2004.
[4]趙立軍,孫立寧,李瑞峰,葛連正.室內(nèi)環(huán)境下同步定位與地圖創(chuàng)建改進(jìn)算法[J].機器人,2009(05).
[5]Hans P. Moraec and Alberto Elfes. High Resolution Maps from wide Angle Sonar[J]. Proceedings of the 1985 IEEE International Conference on Robotics and Automation, St. Louis, March, 1985,pp 116-121.
作者單位
成都信息工程大學(xué)軟件工程學(xué)院 四川省成都市 610225