摘? 要:文章基于ROS平臺(tái),采用激光雷達(dá)和里程計(jì)對(duì)室內(nèi)環(huán)境信息進(jìn)行采集,在服務(wù)機(jī)器人上實(shí)現(xiàn)了Gmapping和Hector SLAM兩種算法的地圖創(chuàng)建。通過(guò)實(shí)驗(yàn)對(duì)比,Gmapping算法構(gòu)建的地圖跟真實(shí)環(huán)境更為接近,在一般低特征環(huán)境下建圖效果優(yōu)于Hector SLAM算法。
關(guān)鍵詞:機(jī)器人操作系統(tǒng);地圖創(chuàng)建;建圖算法
中圖分類號(hào):TP242? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2020)01-0160-03
Abstract:Based on the robot operating system,this paper uses lidar and odometer to collect indoor environmental information,and implements map creation of Gmapping and Hector SLAM algorithms on the service robot. Through experimental comparison,the map constructed by Gmapping algorithm is closer to the real environment,and the map is better than Hector SLAM algorithms in general low feature environment.
Keywords:robot operating system;map creation;map building algorithm
0? 引? 言
機(jī)器人學(xué)的進(jìn)步與應(yīng)用是20世紀(jì)自動(dòng)控制最有說(shuō)服力的成就。進(jìn)入21世紀(jì),機(jī)器人越來(lái)越深入生產(chǎn)、生活和社會(huì)的方方面面。服務(wù)機(jī)器人是機(jī)器人家族中的一個(gè)年輕成員,應(yīng)用范圍十分廣泛。服務(wù)機(jī)器人要能為人類服務(wù),就必須能在未知區(qū)域自由移動(dòng)、自主導(dǎo)航,而對(duì)未知環(huán)境的精確建圖是一個(gè)非常關(guān)鍵的環(huán)節(jié)。因此,移動(dòng)機(jī)器人建圖方法也成為人們研究的熱點(diǎn)之一。
機(jī)器人操作系統(tǒng)Robot Operating System,簡(jiǎn)稱ROS,從本質(zhì)上來(lái)說(shuō)是一個(gè)十分適用于機(jī)器人編程的框架,這個(gè)框架把原本松散的零部件耦合在一起,為它們提供通信架構(gòu)。ROS提供了能應(yīng)用于不同的機(jī)器人的各種功能包,操作方便、功能強(qiáng)大,特別適用于機(jī)器人這種多節(jié)點(diǎn)多任務(wù)的復(fù)雜場(chǎng)景[1]。本文基于ROS平臺(tái),采用激光雷達(dá)和里程計(jì)對(duì)室內(nèi)環(huán)境信息進(jìn)行采集,實(shí)現(xiàn)了Gmapping和Hector SLAM兩種算法的地圖創(chuàng)建。
1? 機(jī)器人地圖的分類
目前,機(jī)器人學(xué)中的地圖有四種表示方法:柵格地圖、特征地圖、直接表征地圖和拓?fù)涞貓D。
柵格地圖又被稱為占據(jù)柵格地圖,它實(shí)際上就是把環(huán)境劃分成一系列柵格,每個(gè)柵格用一個(gè)相應(yīng)的占據(jù)變量來(lái)描述,該變量的值表示該柵格被占據(jù)的概率。特征地圖是用有關(guān)的點(diǎn)、直線、面等幾何特征來(lái)表示外部環(huán)境,建圖的數(shù)據(jù)存儲(chǔ)量和計(jì)算量都較小,但往往不能反映一些必須信息,常用于視覺(jué)vSLAM算法中。而直接表征地圖類似衛(wèi)星地圖,它直接用傳感器讀取的數(shù)據(jù)經(jīng)過(guò)簡(jiǎn)單處理來(lái)構(gòu)建機(jī)器人的位姿空間,省去了特征或柵格表示等中間環(huán)節(jié),相對(duì)更加直觀。拓?fù)涞貓D最為抽象,它把室內(nèi)環(huán)境表示為拓?fù)浣Y(jié)構(gòu)圖,圖中帶結(jié)點(diǎn)和連接線。其中的結(jié)點(diǎn)表示門、拐角、電梯等重要位置點(diǎn),邊線表示結(jié)點(diǎn)間的連接關(guān)系。
相比之下,特征地圖容易漏掉一些障礙物信息,直接表征地圖的數(shù)據(jù)存儲(chǔ)量太大,拓?fù)涞貓D又不能用于SLAM。而柵格地圖既能表示環(huán)境中的很多特征信息,又不直接記錄來(lái)自于傳感器的原始數(shù)據(jù),是空間和時(shí)間消耗的最優(yōu)組合。因此,柵格地圖是目前機(jī)器人中最為廣泛使用的地圖,機(jī)器人可以用柵格地圖來(lái)進(jìn)行路徑規(guī)劃和導(dǎo)航。
2? Gmapping建圖算法
Gmapping算法是目前應(yīng)用最廣的2D SLAM方法,它基于RBPF粒子濾波算法,通過(guò)獲取激光雷達(dá)和里程計(jì)的信息來(lái)進(jìn)行建圖[2]。為了獲取好的計(jì)算結(jié)果,RBPF算法需要大量的粒子來(lái)進(jìn)行計(jì)算,這樣就會(huì)大大增加計(jì)算的復(fù)雜程度。因此,Gmapping算法并不適合構(gòu)建大場(chǎng)景地圖。RBPF算法的重采樣過(guò)程存在粒子耗散問(wèn)題。而Gmapping算法引入了自適應(yīng)重采樣技術(shù),改進(jìn)了建議分布函數(shù),并選擇性地重采樣粒子,減小了粒子耗散問(wèn)題。Gmapping算法有效地利用里程計(jì)來(lái)提供機(jī)器人的位姿先驗(yàn),對(duì)激光雷達(dá)的頻率要求不高。Gmapping算法的整體流程圖如圖1所示。
在具體的實(shí)現(xiàn)過(guò)程中,Gmapping_SLAM軟件包位于ros-perception組織中的Slam_Gmapping倉(cāng)庫(kù)中。其中的Slam_Gmapping是一個(gè)軟件包集Metapackage,它依賴了Gmapping,而算法的具體實(shí)現(xiàn)都在Gmapping軟件包中,該軟件包中的Slam_Gmapping程序就是在ROS框架下運(yùn)行的一個(gè)SLAM節(jié)點(diǎn)。Gmapping的作用是根據(jù)激光雷達(dá)和里程計(jì)(Odometry)的信息,對(duì)環(huán)境地圖進(jìn)行構(gòu)建,并且對(duì)自身狀態(tài)進(jìn)行估計(jì)[3]。Gmapping算法的輸入包括激光雷達(dá)和里程計(jì)的數(shù)據(jù),而輸出為自身位置和地圖。
Gmapping_SLAM算法無(wú)回環(huán),并且非常依賴?yán)锍逃?jì)(Odometry),無(wú)法適用于空中飛行器及地面不平坦區(qū)域,但在長(zhǎng)廊及低特征場(chǎng)景中建圖效果好。
3? Hector SLAM算法
Hector SLAM算法利用高斯牛頓的方法來(lái)解決scan-matching問(wèn)題,獲得激光點(diǎn)集映射到已有地圖的剛體變換,為避免局部最小而非全局最優(yōu),使用多分辨率地圖[4]。Hector SLAM建圖法的魯棒性較好,對(duì)傳感器的要求較高。因?yàn)樵撍惴o(wú)法利用里程計(jì)的信息,所以它需要激光雷達(dá)具有較高的更新頻率和較小的測(cè)量噪聲。Hector SLAM算法建圖的整體流程圖如圖2所示。
在實(shí)際的建圖過(guò)程中,需要機(jī)器人的運(yùn)動(dòng)速度控制在比較低的情況下,建圖的效果才會(huì)比較理想,這也是該算法沒(méi)有回環(huán)(loop close)的一個(gè)后遺癥。但是正是不需要里程計(jì),使得空中飛行器和地面不平坦區(qū)域的建圖能夠得以實(shí)現(xiàn)[5]。
為對(duì)比分析兩種典型的移動(dòng)機(jī)器人建圖方法的效果,我們用同一臺(tái)ROS移動(dòng)機(jī)器人利用不同算法對(duì)實(shí)訓(xùn)室進(jìn)行了多次建圖,其建圖結(jié)果如圖3、圖4和圖5所示。
對(duì)比圖3~圖5三個(gè)地圖可以看出,在相同的激光雷達(dá)參數(shù)條件下,在平坦的復(fù)雜特征環(huán)境中,利用Gmapping算法構(gòu)建的地圖跟真實(shí)環(huán)境最為接近,地圖比較完整,但是邊界不夠清晰,邊界線較粗;利用Hector SLAM算法快速移動(dòng)機(jī)器人構(gòu)建的地圖相對(duì)比較混亂,地圖不完整;利用Hector SLAM算法低速移動(dòng)機(jī)器人構(gòu)建的地圖也比較完整,邊界比較清晰,但是地圖所示的兩個(gè)房間之間偏移了一定角度,出現(xiàn)了錯(cuò)位,跟真實(shí)環(huán)境存在一定偏差。
造成上述結(jié)果的原因是,Gmapping算法基于RBPF粒子濾波,因?yàn)镽BPF粒子濾波比較成熟穩(wěn)定,因而Gmapping算法也比較穩(wěn)定,建圖效果一般比較好。但在比較復(fù)雜的特征環(huán)境中,例如本實(shí)驗(yàn)的實(shí)訓(xùn)室環(huán)境,粒子計(jì)算的復(fù)雜度大大增加,因此會(huì)出現(xiàn)邊界不夠清晰,邊界線較粗的情況。Hector SLAM算法利用高斯牛頓的方法來(lái)解決scan-matching問(wèn)題,在機(jī)器人快速移動(dòng)的時(shí)候,激光雷達(dá)的數(shù)據(jù)點(diǎn)不夠豐富,不能很好地進(jìn)行迭代計(jì)算,因而會(huì)出現(xiàn)地圖不完整的情況。
5? 結(jié)? 論
通過(guò)機(jī)器人實(shí)地建圖,實(shí)驗(yàn)結(jié)果表明,Gmapping算法比較成熟穩(wěn)定,構(gòu)建的地圖跟真實(shí)環(huán)境更為接近,在一般低特征環(huán)境下建圖效果明顯優(yōu)于Hector SLAM算法。由于沒(méi)有使用里程計(jì),Hector SLAM算法對(duì)激光雷達(dá)要求更高,或者必須低速移動(dòng)機(jī)器人,才能獲得較好的建圖效果。
參考文獻(xiàn):
[1] 楊亮,李文生,傅瑜,等.基于ROS的機(jī)器人即時(shí)定位及地圖構(gòu)建創(chuàng)新實(shí)驗(yàn)平臺(tái)研制 [J].實(shí)驗(yàn)技術(shù)與管理,2017,34(8):99-103.
[2] 王權(quán),胡越黎,張賀.基于ROS與Kinect的移動(dòng)機(jī)器人同時(shí)定位與地圖構(gòu)建 [J].計(jì)算機(jī)應(yīng)用研究,2017,34(10):3184- 3187.
[3] 柳俊城,李迪,翁瀟文.基于激光信息的移動(dòng)機(jī)器人SLAM研究 [J].自動(dòng)化與儀表,2018,33(6):43-47.
[4] 陳卓,蘇衛(wèi)華,安慰寧,等.移動(dòng)機(jī)器人SLAM與路徑規(guī)劃在ROS框架下的實(shí)現(xiàn) [J].醫(yī)療衛(wèi)生裝備,2017,38(2):109-113.
[5] 高文研,平雪良,貝旭穎,等.兩種基于激光雷達(dá)的SLAM算法最優(yōu)參數(shù)分析 [J].傳感器與微系統(tǒng),2018,37(4):28-30+33.
作者簡(jiǎn)介:廖春藍(lán)(1979-),女,漢族,四川宜賓人,專任教師,副教授,碩士,研究方向:服務(wù)機(jī)器人技術(shù)。