瞿洋 陳歡歡



摘 要:針對移動機器人在未知環境下進行自主探索,并構建地圖的需要,設計并實現了基于迷宮探索規則的未知環境探索算法。分析了主要的路口類型,給出了基于摸墻算法的迷宮探索流程,討論了基于激光雷達的路口判別依據,提出了基于迷宮探索規則的機器人未知環境探索算法流程,并采用TurtleBot 3 Burger機器人,在ROS框架下進行了實驗。結果表明,所給出的算法能夠有效地實現機器人在未知環境下的自主探索,并實現了地圖構建。
關鍵詞:移動機器人;未知環境;ROS;摸墻算法
中圖分類號:TP301. 6 文獻標識碼:A 文章編號:1671-2064(2019)19-0034-02
0 引言
機器人對未知環境自主感知、導航的能力,是其自主執行各項任務的基礎[1,2]。隨著機器人應用領域的不斷擴展,人們對機器人自動化程度的需求日益增高,隨之而來的是對機器人自主環境感知與導航能力要求的提高。
當前,對未知環境的探索,在機器人學研究領域,主要的方法為同步定位與地圖構建(Simultaneous Localization and Mapping,SLAM)[3],該方法基于機器人搭載的各類傳感器,通過構建狀態方程與量測方程,實現對機器人當前時刻相對位姿的估計以及對周圍環境特征的位姿估計,進而實現對環境的感知以及對機器人的定位,被認為是實現無人系統真正的自主的關鍵。
1 基于摸墻算法的迷宮探索方法
1.1 迷宮道路及路口類型
對于結構化環境而言,通常環境中的道路及路口類型,主要包括以下幾種:(1)直線道路;(2)T形路口;(3)L形路口;(4)十字形路口;(5)死胡同;(6)回轉形等。
對于不同的道路及路口類型,基于不同的探索規則,具有不同的轉向選擇。基于摸墻算法的迷宮探索方法,根據左手摸墻或者右手摸墻的不同選擇,在遇到符合規則的可轉向路口時,選擇向左轉向或者向右轉向。
1.2 基于左(右)手摸墻規則的迷宮探索方法
1.2.1 基于左手摸墻規則的迷宮探索方法
基于左手摸墻規則的迷宮探索方法,是指當到達某一類型的路口時,若可向左側轉向通行,則優先向左轉向,當且僅當只能向右轉向才能通行時,才向右轉向,算法流程如圖1所示。
1.2.2 基于右手摸墻規則的迷宮探索方法
基于右手摸墻規則的迷宮探索方法,是指當到達某一類型的路口時,若可向右側轉向通行,則優先向右轉向,當且僅當只能向左轉向才能通行時,才向左轉向,算法流程如圖2所示。
2 基于迷宮探索規則的機器人未知環境探索算法
2.1 基于激光雷達的路口類型識別
激光雷達能夠獲取機器人周邊360°范圍內的障礙物距離數據,能夠有效辨識當前機器人所處的路口類型。設初始時刻機器人位于道路中央,迷宮道路寬度為D,機器人運動方向為激光雷達掃描起點,逆時針對激光雷達數據進行計數,則根據激光雷達前方、左方、右方以及后方一定角度范圍內的雷達數值均值與相應閾值大小關系,可判定當前機器人所處的路口類型。
對于直線形道路,左側、右側距離均小于某一閾值,前方、后方距離均大于某一閾值,同理可以進行其他類型路口的識別。
2.2 ROS下的SLAM與路徑規劃算法
機器人操作系統(Robot Operate System)是近年來諸多優秀的機器人軟件框架中最為突出、應用最為廣泛的一個。作為一個可以靈活編寫機器人應用程序的框架,ROS集成了大量的工具、庫、協議,為用戶、計算機操作系統以及外部設備提供了完備的通信功能,這些外部設備包括傳感器、攝像機,同時也包括機器人。
在諸多的工具和庫中,目前應用最為廣泛的是ROS的導航功能包。導航功能包中提供了對當前主流SLAM方法以及路徑規劃算法的支持,主要有gmapping、hector-slam、cartographer、rgbdslam以及ORB_SLAM、amcl功能包等,為同步定位與構圖以及基于地圖的路徑規劃提供了支持。我們可以方便地在ROS下編寫自己的launch文件,接入自己的機器人平臺及相應的環境感知設備,調用ROS中的slam算法功能包,并結合已知地圖進行路徑規劃。
2.3 基于迷宮探索規則的機器人未知環境探索算法
結合迷宮探索規則、SLAM算法以及路徑規劃算法,我們可以實現對于未知環境的規則化探索,探索的同時實現對環境的地圖構建,并能夠為后續其他機器人的自主導航提供依據,基于迷宮探索規則與SLAM算法進行探索與地圖構建的具體算法流程如圖3所示。
在基于圖3所示的未知環境探索與地圖構建算法的基礎上,可以實現對未知環境的探索,同時實現對環境地圖的構建,基于構建的地圖,借助ROS所提供的路徑規劃算法,即可以實現為后續其他機器人平臺的路徑規劃,從而為自主導航提供支持。
3 實驗與分析
3.1 實驗環境與設備
基于Ubuntu 16.04操作系統、ROS Kinetic發行版作為軟件系統進行實驗,實驗用機器人平臺為TurtleBot 3 Burger,其性能參數及傳感器配置如表1所示。
3.2 實驗結果與分析
以最為復雜的回轉路口為例,識別及轉向結果如圖4所示。
選擇性能較為優異的cartographer作為SLAM處理算法,在地圖上選擇起點與終點,則地圖構建與路徑規劃結果如圖5所示。
從圖4、5所示的實驗結果可以看出,基于本文所提出的方法,機器人能夠從未知環境中由起點運動至指定的終點,并且構建由起點至終點的地圖,基于該地圖,結合ROS框架下的路徑規劃功能包,可實現機器人的自主導航。
4 結語
針對移動機器人在未知環境下進行自主探索,并構建地圖的需要,設計并實現了基于迷宮探索規則的未知環境探索算法。給出了基于摸墻算法的迷宮探索流程,討論了基于激光雷達的路口判別依據,結合ROS下的SLAM功能包與路徑規劃功能包,提出了基于迷宮探索規則的機器人未知環境探索算法流程,并采用TurtleBot 3 Burger機器人,在ROS框架下進行了實驗。結果表明,所給出的算法能夠有效地實現機器人在未知環境下的自主探索與地圖構建,能夠為機器人自主導航提供支持。
參考文獻
[1] 梁明杰,閔華清,羅榮華.基于圖優化的同時定位與地圖創建綜述[J].機器人,2013,35(4):500-512.
[2] 梁明杰.機器人認知地圖創建關鍵技術研究[D].華南理工大學,2014.
[3] 胡春旭,編著.ROS機器人開發實踐[M].北京:機械工業出版社,2018.