?

基于ROS的室內自主移動與導航機器人研究

2021-11-02 11:48張明岳
微處理機 2021年5期
關鍵詞:障礙物路線定位

張明岳

(西安工程大學電子信息學院,西安710600)

1 引言

隨著科學技術的迅猛發展,越來越多的機器人被應用到人們的生活中,機器人的智能化也逐漸成為科技發展主流之一[1]。目前,機器人應用種類繁多,諸如特種機器人、服務型機器人、工業機器人等。其中室內服務型機器人因其深入人們的日常生活而受到廣泛關注。室內機器人由于周圍環境相對復雜而且在移動時涉及到位姿實時變化,使其進行定位與導航的準確度大受限制[2]。對此,設計基于開源機器人操作系統(Robot Operating System,ROS)對室內機器人的自主移動與導航系統的關鍵技術進行研究,通過即時定位與地圖建構(Simultaneous Localization and Mapping,SLAM)技術創建機器人所在未知環境下的地圖;在創建好的地圖下結合自適應蒙特卡洛定位(Adaptive Monte-Carlo Localization,AMCL)方法對機器人自身位置進行準確定位;最終利用全局路徑規劃算法進行機器人從起始點到目標點的最優路徑決策。

2 系統總體設計方案

ROS作為開源的機器人軟件操作系統平臺,具有良好的可擴展性。與其他操作系統類似,ROS程序是基于圖狀架構,不同組件根據功能的不同被放作者簡介:張明岳(1996—),男,陜西省西安市人,碩士研究生,主研方向:人工智能與機器視覺技術。收稿日期:2021-02-07在對應的文件下[3]。ROS文件統級如圖1所示。

圖1 ROS文件統級

系統的正常運轉主要包括以下方面:

傳感器數據采集:通過激光測距儀測量機器人在未知環境下的空間分布、障礙物大小以及與障礙物之間的距離等等特征;再通過里程計中的加速度傳感器、電子羅盤傳感器、陀螺儀傳感器獲取機器人的移速、方位變化和平衡狀態的數據。結合兩種傳感器數據提供機器人運動控制完成路徑導航。

SLAM模塊:用于構建未知條件下的環境地圖。

路徑規劃:通過路徑規劃算法,為機器人標記一條從起始點到目標點的最優路徑。最優路徑的定義可有多種標準,比如距離最近或障礙物最少等。

3 地圖建模與定位

3.1 地圖建模

要實現機器人的定位與路徑規劃,建立機器人在未知條件下的地圖是不可或缺的前提,這也是機器人實現自主移動的核心技術之一[4]。

地圖生成技術可描述為:機器人在一個未知的地區開始移動,在移動的過程中,傳感器開始采集機器人四周的環境信息,機器人通過獲取到的環境信息創建該地區的環境地圖[5]。

SLAM算法通過結合脈沖式激光傳感器來測量未知地區的地形、障礙物與機器人的距離等信息,測距原理如圖2所示。首先傳感器向未知區域四周發射脈沖信號,然后接收回波信號,通過計時電路來計算激光從發射到接收的往返時間,以此標準來計算機器人與障礙物之間的距離[6]。此處,SLAM算法是在gmapping功能包中實現的。

圖2 激光測距傳感器原理圖

3.2 機器人定位

通過前一步地圖建模將機器人所處環境m從未知變成了已知,接下來在已知環境的條件下機器人結合傳感器采集到的環境信息和運動控制信息進行自身位置的定位。機器人定位可描述為圖3所示的過程。圖中灰色圓圈是已知的,Z和U分別代表上述的環境信息和控制信息。ROS中的AMCL算法功能包會對地圖m使用粒子濾波器來推算位姿X。

圖3 機器人定位模型

4 導航與路徑規劃

導航作為另一個實現機器人自主移動的核心技術之一,其過程可描述為:機器人在已知環境下,需要規劃出一條從起始點到目標點的最優路徑解,然后在機器人移動的過程中,通過傳感器實時地采集周圍環境深度信息,當從移動路徑中發現障礙物需要機器人避讓時,可以立即調節機器人的移動速度和航向[7](加速度傳感器和電子羅盤傳感器的作用就在于此),以確保機器人可以安全抵達目標點。

路徑規劃是導航的重要組成部分,可分為全局最優路徑規劃和本地實時最優路徑規劃兩種模式[8]。

全局最優路徑規劃:在實際導航中,可通過使用Dijkstra算法或者A*算法在已知地圖條件下計算機器人從起始點到目標點最優路線解。最優路線解的評判標準可以是距離最近或是耗費時間最短等等。此處將距離最短作為最優路線評判標準,將距離最短且避開障礙物的路線作為機器人移動的全局最優路線[9]。

本地實時最優路徑規劃:在實際導航中,機器人周圍隨時可能會出現新的障礙物,阻擋機器人向目標點移動。導致機器人會出現偏離最優路徑規劃算法標記的路線移動,因此需要機器人針對采集到的實時環境信息進行及時的調整,局部路徑規劃在此也有所體現。ROS系統中local_planner模塊的DWA算法會輔助機器人盡量符合最優路徑規劃算法標記的路線[10],綜合機器人移動的最優路線評判標準結合傳感器實時采集到的周圍環境深度信息對機器人移動路線進行及時的調整,以達到避免機器人與動態障礙物發生碰撞的情況出現,其原理簡圖如圖4所示。

圖4 機器人避障原理

路徑規劃部分的功能是通過ROS系統平臺中的move_base功能包來實現的。

5 全局路徑規劃算法選取

以下用Dijkstra算法和A*算法兩種方式計算全局最優路徑解,并對兩者特點進行對比。

Dijkstra算法基于貪心的思想,在計算機器人全局最優路徑解時會從機器人所在位置的起始點向四周擴散尋找目標點,直到找到為止。如圖5所示為Dijkstra算法規劃全局路徑的效果圖。

圖5 Dijkstra算法搜索區域

圖中描述了使用Dijkstra算法從中間一個起始點開始計算,直到得到邊緣位置上的一個目標點的最優路徑解的過程。從圖中可以清楚觀察到Dijkstra算法向四周擴散尋找目標點的搜索范圍。

A*算法在計算最優路徑解時會根據已知的信息,估計從起始點到目標點的所需代價距離,將代價距離作為下一步移動的評判依據。A*算法規劃全局路徑的效果如圖6所示。

圖6 A*算法搜索區域

在此選用A*算法尋找從起點到終點的最優路徑解。該算法在路徑規劃過程中會充分利用所有已知信息估算從當前位置到目標位置的所需代價來選擇下一步路徑。通過對比可發現兩種全局最優路徑規劃算法標記的從起始點到目標點的最優路線是一致的,且A*算法還可有效地避免Dijkstra算法因搜索范圍大而導致的收斂速度慢的缺點[11]。

6 自主導航實驗

通過ROS中的可視化界面Rviz可以實時查看所生成的地圖信息與各種傳感器的采集信息。打開gmapping功能包里的SLAM地圖生成文件,通過控制機器人移動,即可實時查看傳感器采集到的四周環境信息,并結合激光雷達SLAM地圖建模技術生成該地區的代價地圖。

如圖7所示為機器人進行自主導航實驗的實際移動路徑。圖中右上方圓形標記為機器人起始位置,右下方三角形標記為機器人移動的目標點。淺色路線為A*算法標記路線,深色路線為機器人實際移動路線??梢钥吹綑C器人能夠進行自主移動達到目標點,實際移動路線也與A*算法標記的最優路徑有較高的吻合度,達到設計與實驗任務總體要求。

圖7 機器人在自主導航實驗中的路徑規劃

7 結束語

自主移動機器人功能強大,應用前景廣闊,在未來“互聯網+”的發展趨勢下,有望在生物醫療(康復、輔助等)、交通(監控、指揮等)、農業(任務調度等)等領域發揮重要作用。為驗證開源機器人操作系統ROS實現室內機器人自主導航的現實可行性,設計利用激光雷達SLAM算法實現機器人在未知環境下的實時地圖精確建模;利用AMCL算法實現機器人的自身定位;利用A*算法實現機器人最優路徑規劃,完成自主定位與導航的功能。通過編程各個模塊并將各模塊整合成一個完整的系統,在室內環境下對機器人自主移動與導航進行實驗,機器人在實驗中的表現良好,符合理論預期。

猜你喜歡
障礙物路線定位
最優路線
《導航定位與授時》征稿簡則
『原路返回』找路線
高低翻越
Smartrail4.0定位和控制
SelTrac?CBTC系統中非通信障礙物的設計和處理
趕飛機
找準定位 砥礪前行
畫路線
找路線
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合