朱成杰,張東升
(安徽理工大學(xué) 電氣與信息工程學(xué)院,安徽 淮南 232000)
當前,機器人運動控制理論技術(shù)發(fā)展日新月異,但算法理論與實際應(yīng)用結(jié)合的案例仍遠遠落后于理論技術(shù)的發(fā)展,隨著自動駕駛技術(shù)的不斷提高,機器人自主運動能力越發(fā)被一線科研人員重視。 機器人自主運動能力的提高,離不開成本逐漸降低的激光雷達的應(yīng)用,而激光雷達的使用又為SLAM 算法的現(xiàn)實應(yīng)用奠定了基礎(chǔ)[1]。
針對現(xiàn)實應(yīng)用場景的高復(fù)雜度,本文引入了SLAM算法對移動機器人的建圖定位進行分析,并通過ROS(Robot Operating System)的仿真平臺Gazebo 搭建仿真環(huán)境,實現(xiàn)了SLAM 算法建圖定位仿真。 針對仿真存在的一些問題,本文同時引入了實物移動機器人平臺,進行了Gmapping 方法和Hector SLAM 方法的建圖定位測試。 根據(jù)仿真以及實物測試結(jié)果,分析比較提出了更加適用于實際場景的SLAM 算法,為SLAM 算法的應(yīng)用提供了一種可靠方法。
SLAM (Simultaneous Localization and Mapping),也稱CML (Concurrent Mapping and Localization),即并發(fā)建圖定位。 根據(jù)SLAM 技術(shù)依賴的傳感器,業(yè)內(nèi)人士將SLAM 技術(shù)分為激光SLAM 技術(shù)和視覺SLAM 技術(shù)兩大類。 激光SLAM 技術(shù)發(fā)展早于視覺SLAM 技術(shù),相對較為成熟可靠,隨著近年來機器視覺的熱度不斷增加,視覺SLAM 技術(shù)也得到了飛速的發(fā)展。 國外學(xué)者將SLAM 技術(shù)的發(fā)展劃分為3 個階段:經(jīng)典階段(Classic Age: 1986—2004 年)、 算 法 分 析 階 段(Algorithmic-Analysis Age: 2004—2015 年)、魯棒感知階段(Robust-Perception Age: 2015—至今)。 當前的SLAM 技術(shù)研究,主要集中在提高SLAM 算法對于不同環(huán)境的適應(yīng)能力以及魯棒性,同時考慮計算效率和輕量化的程序?qū)崿F(xiàn)。 目前,主流應(yīng)用的2D-SLAM 算法有Gmapping,Hector Slam,cartographer(谷歌)等[2-3]。
下面主要介紹Gmapping 方法和Hector SLAM 方法的基本原理[4]。 Gmapping 方法實質(zhì)是對于RBpf 方法的一種改進,具體體現(xiàn)在對粒子的提議分布的改進和選擇性重復(fù)采樣過程的改進。 RBpf 方法直接根據(jù)觀測數(shù)據(jù)z1:t和控制數(shù)據(jù)u1:t求解地圖和位姿的聯(lián)合分布,其策略是先對位姿進行預(yù)估,再進行聯(lián)合分布的求解,即先定位再建圖。 對于位姿的預(yù)估,RBpf 使用了重要性重采樣方法,實現(xiàn)過程可分為:(1)粒子采樣;(2)粒子權(quán)值計算;(3)粒子重采樣;(4)位姿預(yù)估[5]。 其原理如下。
先明確最終實現(xiàn)的是預(yù)估位姿和地圖的聯(lián)合分布。
在公式(3)中,將求解權(quán)值的遞推公式表達了出來,只需求解出提議分布即可[6]。
提高包含正確信息的有效粒子所占比例,或者提高有效粒子所占權(quán)重,無疑會使提議分布的結(jié)果更加接近正確的目標分布結(jié)果。 重復(fù)采樣可以解決有效粒子比重提升的問題,但也帶來了新的問題。 在頻繁的重復(fù)采樣過程中,有效粒子的比重不斷增加,隨之而來的是粒子信息多樣性的破壞,在經(jīng)歷了無數(shù)次的重復(fù)采樣,粒子經(jīng)過迭代復(fù)制,最終將只剩下若干個包含相同地圖信息的粒子,造成粒子信息退化。 為解決這一問題,可以先從目標分布中找到概率大的區(qū)域,然后直接在概率大的區(qū)域進行采樣,利用采樣得到的數(shù)據(jù)建立高斯模型,用此模型模擬提議分布的結(jié)果,這樣勢必可以解決粒子退化問題,同時也相應(yīng)減少了重復(fù)采樣次數(shù)過多帶來的計算問題。 以下公式(4)為模擬提議分布的高斯函數(shù)模型。
據(jù)此模型可求解出下一時刻機器人的位姿信息,進而達到建圖定位的目標。
Hector SLAM 方法是一種基于掃描匹配的SLAM方法,支持數(shù)據(jù)上可以不使用里程計的信息進行定位和建圖。 其使用IMU 以及具有良好容錯性的掃描匹配策略進行建圖定位,在硬件方面主要依靠精度高、干擾噪聲小的激光雷達進行數(shù)據(jù)采集。
Gazebo 是一款3D 動態(tài)模擬器,能在復(fù)雜的室內(nèi)和室外環(huán)境中,準確有效地模擬機器人群。 Gazebo 平臺包括多個物理引擎、豐富的機器人模型庫和環(huán)境庫、各種傳感器模型,可視化圖形界面為移動機器人的設(shè)計提供了方便,同時,可依賴現(xiàn)有機器人模型進行一些算法的運行測試。 本文使用了TurtleBot 機器人模型作為算法的測試載體,避免了算法實現(xiàn)的過程中再搭建機器人的模型,節(jié)約了開發(fā)的時間成本[7-8]。
在仿真世界中,項目引入機器人模型TurtleBot,將算法程序植入到TurtleBot 機器人的運行程序中,進而實現(xiàn)機器人的運行控制與建圖定位。 通過鍵盤控制機器人在仿真世界中的移動,并對環(huán)境進行建圖。 如圖1所示為Gazebo 環(huán)境下搭建的3D 仿真場景,用于機器人在仿真環(huán)境中進行模擬建圖;如圖2 所示為所建仿真場景,用于機器人在仿真環(huán)境下用SLAM 算法建圖的對比。
圖1 仿真場景
圖2 2D 場景
由Gmapping 方法與Hector 方法基本原理可知,Gmapping 方法依賴里程計提供的信息,而Hector 方法只依賴高精度的雷達信息。 為此,仿真設(shè)計實現(xiàn)了里程計正常工作時,Gmapping 方法的建圖以及里程計發(fā)布錯誤信息時的建圖情況[9-10]。
如圖3 所示為里程計信息發(fā)布無誤時,使用Gmapping 方法在仿真場景中所建立的地圖;如圖4 所示為里程計發(fā)布錯誤里程信息時,Gmapping 方法建立的地圖。 基于圖3 及圖4 可以分析出,里程計發(fā)布信息出錯時,地圖場景發(fā)生了明顯的偏移,與仿真搭建的2D 平面結(jié)構(gòu)存在較大的誤差。 在仿真中使用了機器人碰撞墻壁而不停止電機運行的方式,模擬發(fā)布里程計的錯誤信息,進而實現(xiàn)了實際場景機器人運動中車輪懸空的場景模擬。
圖3 Gmapping 正確里程計仿真
圖4 Gmapping 錯誤里程計仿真
實物測試平臺選取的機器人車體框架尺寸為595 mm×631 mm×242 mm,為滿足機器人的運動需求,采用兩主動輪驅(qū)動,兩萬向輪配合轉(zhuǎn)動,同時輔以行星減速電機作為動力源。 基于算法運算量較大的考量,使用小型工控機作為上位機運行載體,下位機系統(tǒng)運行在以STM32F407 系列芯片為MCU 的核心板上。 現(xiàn)實場景算法建圖模擬中,用高特征值的實驗室環(huán)境來模擬實際生活中高復(fù)雜度的場景。
在實物機器人的建圖定位過程中, 先使用Gmapping 方法進行測試。 區(qū)別于仿真環(huán)境中使用機器人碰撞墻壁產(chǎn)生錯誤里程計信息,實際場景測試中,采用了人為干預(yù)的方法產(chǎn)生錯誤里程計信息,具體措施是將機器人車體抬起懸空以及外力干預(yù)轉(zhuǎn)向等。 因?qū)嶋H生活環(huán)境的復(fù)雜性,使用多角度的外力干擾,能更加真實地模擬機器人在復(fù)雜場景的運行。
如圖5、圖6 所示為使用Gmapping 方法在真實環(huán)境中的建圖效果,其中,圖6 為使用外力干預(yù)導(dǎo)致里程計失效或里程計信息發(fā)布錯誤時的建圖效果。 如圖7、圖8 所示為使用Hector SLAM 方法在相同的真實環(huán)境中所建地圖,其中,圖8 為外力干預(yù)使得里程計信息失效或發(fā)布錯誤信息時所建地圖。 分析上述地圖信息,里程計信息對于兩種SLAM 方法建圖定位的影響存在較大的差別,Gmapping 方法對于里程計的嚴重依賴,使其并不適用于實際場景的建圖定位策略;Hector SLAM方法不依賴里程計信息建圖定位以及其良好的容錯性,顯然更加適合高復(fù)雜度環(huán)境的機器人建圖定位的應(yīng)用。
圖5 Gmapping 正確里程計
圖6 Gmapping 錯誤里程計
圖7 Hector SLAM 正確里程計
圖8 Hector SLAM 錯誤里程計
通過仿真以及實物模擬測試結(jié)果可以得出,HectorSLAM 方法相比主流的Gmapping 方法,更加適合實際場景的機器人建圖定位使用。 但在模擬測試中,仍然存在一些值得注意的問題,如:在使用Hector SLAM 方法進行建圖定位分析時,若外力干預(yù)使得機器人發(fā)生較高速度的轉(zhuǎn)向,所建立的地圖將會發(fā)生較嚴重的漂移和畸變,從而影響實際建圖定位效果。 同時,Hector SLAM 方法依賴較高幀率的激光雷達,當雷達的掃描幀率低于40 Hz 時,建圖的效果也將與理論結(jié)果存在一定偏差。 因此,在使用Hector SLAM 方法作為機器人建圖定位算法時,需要提供較高品質(zhì)的雷達才能達到理想效果。