


摘? 要:隨著智能技術的發展,自主移動機器人逐步進入生產生活當中,其中路徑規劃是實現機器人導航功能的重要環節。基于機器人操作系統平臺,對導航機器人的整體架構和路徑規劃進行研究,在Dijkstra算法基礎上,加入啟發式搜索思想,提出A*算法規劃全局路徑,并進行兩種算法的對比分析,同時提出一種基于動態窗口的局部路徑規劃算法。經實驗驗證,該方法可實現機器人導航過程中的路徑規劃和實時動態避障功能,且具有一定的路徑尋優能力和較高的執行效率。
關鍵詞:ROS;移動機器人;自主導航;路徑規劃;動態避障
Abstract:With the development of intelligent technology,autonomous mobile robot has gradually entered the production and life,among which path planning technology is an important link to realize the navigation function of the robot. Based on the ROS platform,the overall architecture and path planning technology of navigation robots are studied. On the basis of Dijkstra algorithm,the idea of heuristic search was added to propose A* algorithm for global path planning,and a comparative analysis was conducted between the two algorithms. At the same time,a local path planning algorithm based on dynamic window is proposed. The experimental results show that this method can satisfy the functions of path planning and real-time dynamic obstacle avoidance in the process of robot navigation,and has certain path optimization ability and high execution efficiency.
Keywords:ROS;mobile robot;autonomous navigation;path planning;obstacle avoidance
0? 引? 言
隨著當今機器人技術的發展,自主移動機器人憑借其智能化和實用性,被廣泛地應用于服務行業、工業制造、醫療看護等多種場景。該類機器人擁有強大的移動能力,通過目標點的設定,可實現自主導航功能,以替代人類完成部分復雜、危險的工作[1]。其中路徑規劃作為實現機器人自主導航功能的關鍵性技術之一,成為當下研究的熱點。國外對于路徑規劃研究起步較早,較為經典的有Dijkstra提出的用于解決最短路徑問題的Dijkstra算法、Khatib提出的人工勢場法、Lavalle提出的快速隨機樹算法。國內的Zhang提出了一種基于混沌人工勢場法的路徑規劃新方法[2],即在傳統的人工勢場方法中,結合了混沌優化算法。但是現階段部分的路徑規劃算法仍處于理論研究,可實際應用于導航機器人的路徑規劃算法,仍然存在尋優能力差、效率低、算法魯棒性差等問題。
本文基于作者所就讀的吉林大學儀器科學與電氣工程學院的大學生創新訓練項目,為完成該項目中導航機器人的系統設計與實現,滿足移動機器人在導航過程中,對于全局路徑的搜尋以及實時動態避障的實現要求[3],介紹了一種基于ROS(Robot Operating System)平臺的機器人導航路徑規劃方法,通過建立仿真的二維柵格地圖對比不同算法的優勢與不足,利用搭建的ROS機器人實物平臺,完成導航功能中路徑規劃的驗證。機器人可以通過本文提出的路徑規劃方法,完成導航功能,具有較高的路徑搜索效率和避障成功率。
1? 系統總體架構
系統選用上下位機的架構進行設計,其中上位機選用Intel酷睿i3處理器,連接激光雷達和姿態傳感器,分別完成機器人距離信息和位姿信息的采集,下位機為STM32F103C8T6單片機,通過單片機輸出的PWM(Pulse Width Modulation,脈沖寬度調制)控制舵機和電機,完成機器人轉角和速度的底層驅動控制。上位機搭載ROS,ROS是一個專門用于機器人開發的框架,提供適當的操作系統服務,不僅包含一系列的工具、庫和約定等,而且其分布式管理的特點極大程度地提高了開發效率。系統利用上位機主控電腦強大的計算處理能力,完成算法的運行與計算。機器人搭載的傳感器不斷采集數據,上位機進行數據處理,將采集到的環境信息最終計算轉換為機器人移動的角速度與線速度,通過串口傳輸與下位機進行通訊,最終下位機接收到速度信息后,完成機器人的移動控制。系統總體架構圖如圖1所示。
2? 全局路徑規劃方法
全局路徑規劃是一種基于地圖的靜態路徑規劃方法,利用已建立的環境地圖信息和位置信息,機器人在開始移動前完成路徑的搜尋[4]。基于該路徑在環境無動態障礙增加的條件下,應滿足所搜尋路徑無限接近理想的最短路徑,且具有較高的搜索效率。
A*算法作為一種全局路徑規劃算法,其繼承了Dijkstra算法遍歷點集的思想,并在此基礎上加入了啟發式搜索的思想。由于Dijkstra算法需要遍歷全部點集,在實際應用過程中雖然可以得到較優的路徑,但是搜索效率有所欠缺,于是A*算法引入評估函數,不僅評估搜索點到目標點的評分估值,而且增加起始點到搜索點的評分估值,通過為兩者評分估值賦予不同權重,將最終評分作為啟發式搜索的代價,可極大地提高算法運行效率。評價函數如式(1)所示:
H(s)函數的選取決定著A*算法的成敗,在評估當前節點到目標節點的代價值即H(s)時,應綜合考慮搜索效率、是否有最優解等因素。可選用式(2)中的歐幾里得距離作為評估,使用此方法可得到的路徑較短,但是會增加計算量,使得搜索效率有所下降,在應用于對搜索效率要求較高的場景時,可選用式(3)中的曼哈頓距離作為評估。定義(xi,yi)和(xj,yj)分別表示當前和目標點坐標,評價公式如式(2)、式(3)所示:
使用A*算法進行路徑規劃時,以當前搜索點為父節點,通過評價函數確定下一個與父節點連通的子節點并記錄下來,通過不斷更新子節點,直至子節點更新為目標點時算法完成遍歷,通過記錄的子節點回溯父節點,構成完整的點集,即為獲得的規劃路徑。
3? 局部路徑規劃方法
局部實時路徑規劃采用DWA算法,即動態窗口算法,在機器人完成全局路徑規劃后[5],每次做出移動動作前調用此算法,以判斷在該固定窗口范圍內全局規劃的路徑是否安全,計算出最優的實時路徑完成機器人的控制[6,7]。該算法原理為通過對機器人移動的速度不斷采樣[8],同時用當前采樣速度來模擬機器人在固定時間內的移動軌跡,并進行綜合評價,選用最優路徑完成對機器人的實時控制。DWA算法具體流程如下。
3.1? 運動建模
系統的機械結構通過舵機進行轉向,通過電機提供前進動力[9]。根據機器人運動原理,可以得到機器人的運動速度(vt,ωt),其中,vt為機器人的線速度,ωt為機器人的角速度,設定機器人航向角為θ,則在t+1時刻機器人的運動位姿方程如下:
3.2? 速度采樣
通過對機器人速度的不斷采樣,完成機器人在該運動速度下的運動軌跡模擬,在進行速度采樣的過程中,可根據機器人傳感器的性能、電機的性能、驅動的性能等因素,對運動速度進行限制,以保證機器人具有最佳的運動性能。
3.3? 綜合評價
選用式(7)的指定評價函數對移動機器人的軌跡進行綜合評價,通過對不同路徑的結果分析,得到最為合適的局部路徑,可以有效地躲避障礙并且極大程度地貼近原始全局路徑。
其中,vn表示機器人實時速度,Gn表示移動到目標點的代價,ΔGn表示當前路徑的距離和全局規劃路徑距離的代價值差值,Hn表示移動到達目標點的代價。通過調整式(7)中四個常數α、β、γ、δ,進而調整不同代價所占權值,從而求解局部路徑中的最優規劃,最終將最優規劃信息轉換為移動機器人的速度指令進行發布。
4? 實驗
4.1? 仿真與分析
使用MATLAB建立帶障礙物的柵格地圖,假設0代表無障礙可通過處即白色部分,1代表有障礙物即黑色部分,設置起始點與目標點,分別使用Dijkstra算法和A*算法進行路徑規劃,所得規劃路徑如圖2、圖3所示。
在保證起始點坐標與目標點坐標不發生改變的情況下,進行10次重復實驗,記錄實驗數據如表1所示。
通過仿真所得規劃路徑可以看出,兩種路徑規劃算法均可避開障礙物,順利到達終點,得到較優的路徑。根據實驗數據可知,A*算法所得路徑與Dijkstra算法所得路徑長度幾乎一致,但是搜索時間明顯縮短,搜索效率較Dijkstra算法更高。
4.2? 實物環境實驗
利用搭建的基于ROS的導航機器人平臺,在實物環境下進行路徑規劃技術的實驗。分別選擇矩形環境、環形環境、不同角度的U形環境進行實驗,利用機器人構建環境地圖后,設置目標點導航,進行路徑規劃實驗。全局路徑規劃算法選擇A*算法,局部路徑規劃使用DWA算法。如圖4所示是機器人導航過程中起始點與目標點間完成的路徑規劃。
保證每次機器人的出發點與目標點相同的條件下,在不同環境中分別在靜態條件和設置動態障礙物條件下進行實驗,重復20次實驗,分別將實驗結果記錄在表2中。
通過實驗結果統計可知,使用本文提出的方法,可滿足移動機器人導航過程中對于路徑規劃的要求。不僅可以規劃出較優的全局路徑,使得機器人獲得較短的行進路線,而且對于設置的動態障礙物,有著較高的避障成功率。
5? 結? 論
對于全局路徑規劃,經典的Dijkstra算法與本文介紹的A*算法相比,雖然可規劃出更優的路線,但是耗時較長,A*算法擁有更高的效率,更適用于對實時性要求較高的導航機器人。經過實驗驗證,本文提出的基于ROS的導航機器人路徑規劃方法,在實際應用中有著良好的效果,不僅可在較短時間內完成全局路徑規劃,且可以得到較短的路線,而且對于動態的障礙躲避,局部路徑規劃也有著較高的成功率。
參考文獻:
[1] 彭曉燕,謝浩,黃晶.無人駕駛汽車局部路徑規劃算法研究 [J].汽車工程,2020,42(1):1-10.
[2] ZHANG C. Path Planning for Robot Based on Chaotic Artificial Potential Field Method [J]. IOP Conference Series:Materials Science and Engineering,2018,317(1):12-56.
[3] ZHANG Y,CHEN H Y,WASLANDER S L,et al. Hybrid Trajectory Planning for Autonomous Driving in Highly Constrained Environments [J].IEEE Access,2018,6:32800-32819.
[4] VOISAN E I,PAULIS B,PRECUP R E,et al. ROS-based robot navigation and human interaction in indoor environment [C]//IEEE Jubilee International Symposium on Applied Computational Intelligence and Informatics. IEEE,2015:31-36.
[5] 鮑慶勇,李舜酩,沈峘,等.自主移動機器人局部路徑規劃綜述 [J].傳感器與微系統,2009,28(9):1-4+11.
[6] 張琳,章新杰,郭孔輝,等.未知環境下智能汽車軌跡規劃滾動窗口優化 [J].吉林大學學報(工學版),2018,48(3):652-660.
[7] AFANASYEV I,SAGITOV A,MAGID E. ROS-Based SLAM for a Gazebo-Simulated Mobile Robot in Image-Based 3D Model of Indoor Environment [C]//International Conference on Advanced Concepts for Intelligent Vision Systems,ACIVS 2015. Switzerland:Springer,Cham,2015:273-283.
[8] 胡思旺,李春杰.基于ROS的自主導航系統仿真設計 [J].自動化與儀表,2019,34(07):80-83+108.
[9] 孫小霞,石長華.基于PIC16F873單片機的汽車自適應巡航控制系統的研究 [J].現代信息科技,2019,3(17):42-44.
作者簡介:李崢(1997—),男,漢族,吉林汪清人,本科,研究方向:測控技術與儀器。