王偉 儲澤楠
摘? 要: 文章以六足機器人作為研究對象,分析了六足機器人的步態(tài)運動及其在有障礙的復雜環(huán)境下基于蟻群算法的最短路徑規(guī)劃。通過實驗驗證了蟻群算法可以在復雜場景下對六足機器人的步態(tài)規(guī)劃進行收斂評估,并給出最短路徑。
關鍵詞: 六足機器人; 步態(tài)規(guī)劃; 蟻群算法; 模擬仿真
中圖分類號:TP301? ? ? ? ? 文獻標志碼:A? ? ?文章編號:1006-8228(2019)12-08-04
Research on gait planning of hexapod robot
Wang Wei, Chu Zenan
(School of Computer Science and Information Engineering, Anyang Institute of Technology, Anyang, Henan 455000, China)
Abstract: Taking the hexapod robot as the research object, this paper analyzes the gait motion of the hexapod robot and the shortest path planning based on ant colony algorithm in the complex environment with obstacles. Experiments show that ant colony algorithm can evaluate the convergence of gait planning of hexapod robot in complex scenes, and give the shortest path.
Key words: hexapod robot; gait planning; ant colony algorithm; simulation
0 引言
二十一世紀以來,機器人技術快速發(fā)展,機器人被廣泛的應用于工業(yè),農(nóng)業(yè),交通運輸?shù)刃袠I(yè)。與此同時,探險救災,倉庫物流行業(yè)對于機器人的需求量也在不斷增加。為了讓機器人更好的為人類服務,機器人的避障和路徑規(guī)劃能力就顯得尤其重要[1-3]。
六足機器人憑借自身獨特的優(yōu)勢已經(jīng)成為了當代仿生機器人研究的熱點。二十世紀八十年代,國外已經(jīng)產(chǎn)生一大批成熟的六足機器人。美國宇航局噴氣實驗室研制的六足機器人目的是用來探測排雷的六足機器人,日本千葉大學設計的六足機器人COMET-IV可以通過探測周圍環(huán)境來調(diào)整自己的運動姿態(tài)。從國外的情況看六足機器人的技術越來越完善,對于六足機器人的應用場景也越來越多樣化[4-6]。
我國對于六足機器人的研究相比國外來說發(fā)展相對較晚,但是六足機器人的技術也越來越完善。北京理工大學設計的弓背蟻機器人,提出了應用于六足機器人運動規(guī)劃的五項結論。華中科技大學設計制造的“4+2”型六足機器人能更好的適應復雜環(huán)境,可以更加高效的工作。但是目前這些六足機器人還是不能真正的做到仿生,其中步態(tài)路徑的影響因素至關重要。
因此,本文提出了使用蟻群算法對機器人進行路徑的規(guī)劃研究,并結合STM32F103ZET6單片機進行六足機器人的步態(tài)規(guī)劃模擬仿真。
1 步態(tài)規(guī)劃
步態(tài)規(guī)劃對于仿生機器人來說,是至關重要的。就比如人來說,如果不事先規(guī)定好腿
與臂膀之間的配合,那么你會發(fā)現(xiàn)好多人將不會走路或者會出現(xiàn)順拐的現(xiàn)象。對于六足機器人更是如此。六足機器人有六條機械足,如果沒有給它相應的步態(tài)規(guī)劃,那么或許會出現(xiàn)一大堆腳四處擺動而寸步難行的局面。所以需對六足機器人的機械足運動模式進行規(guī)劃。比較經(jīng)典的有:三足步態(tài),四足步態(tài),五足步態(tài)等。下面逐一闡述。
1.1 三足步態(tài)規(guī)劃
六足機器人的三足步態(tài)是多種行走步態(tài)里較為穩(wěn)定的一種。三足步態(tài)是將六足機器人六條機械足分成兩組來實現(xiàn)步態(tài)規(guī)劃就如人類的左右腿一樣來行走。首先將六足機器人的六條機械足按順時針編碼,分別標記為1,2,3,4,5,6。將六足機器人相間隔的機械足分為一組。分別是1,3,5為第一組,2,4,6為第二組?,F(xiàn)在將六足機器人的第一組看成人的左腿,第二組看成人的右腿。六足機器人行走時,就如人走路一樣,先左腿再右腿,重復,這樣反復交叉運行就構成了六足機器人的三足步態(tài),如圖1所示。
1.2 四足步態(tài)規(guī)劃
六足機器人的四足步態(tài)規(guī)劃相比三足步態(tài)來說速度上就沒有三足步態(tài)快。因為三足步態(tài)相當于是一組互相間隔的腿向前放旋轉一定的角度,來實現(xiàn)前行,四足步態(tài)是指六足機器人以四只腳支撐兩只腳向前方水平擺動前行。首先要將六足機器人順時針編碼為1,2,3,4,5,6。如圖2所示,四足步態(tài)是讓六足機器人六條腿分成三組,第一組是1,5第二組2,6第三組3,4。四足步態(tài)通過第一組、第二組、第三組腳按順序執(zhí)行就可以完成六足機器人的運動。
1.3 五足步態(tài)規(guī)劃
六足機器人的五足步態(tài)如圖3所示,相對于三足步態(tài)和四足步態(tài)而言,五足步態(tài)是六足機器人步態(tài)中最穩(wěn)定的一種步態(tài),但是速度是六足機器人步態(tài)規(guī)劃中最慢的一種。五足步態(tài)是將六足機器人的六條機械足順時針編碼后,行走時六條腿依次前進。不過每次移動的腿只能是一條,另外的五條腿在這個過程中其支撐機器人的作用。
2 蟻群算法在路徑規(guī)劃中的實現(xiàn)
2.1 蟻群算法基本原理
蟻群算法是由觀察真實的蟻群覓食得出的思路靈感,設計出的一種群集智能算法[7-8]。經(jīng)過研究人員大量的實踐證明,當螞蟻在覓食的過程中,螞蟻可以在行進的路線上留下一種叫信息素的物質(zhì),這樣后來的螞蟻不僅能夠感知信息素的強度,而且還能得到指引的方向。如果說螞蟻的巢穴到食物的距離比較短,那么由于螞蟻來回搬運食物的次數(shù)就會越來越多,這樣過了一大段時間后,會出現(xiàn)這么一個正反饋現(xiàn)象,該現(xiàn)象是當某一條路徑越短,蟻群中通過該路徑的螞蟻的數(shù)量也越多,而信息素的強度也越高,蟻群選擇這條路徑的概率也會越高。通過這種正反饋現(xiàn)象就會逐漸接近最優(yōu)路徑,得到最優(yōu)路徑。
2.2 蟻群算法實現(xiàn)準備工作
2.2.1 環(huán)境建模
為了更好的研究機器人的路徑規(guī)劃,需要對機器人周圍隨機的環(huán)境進行數(shù)字建模,將環(huán)境信息轉換為矩陣存儲,矩陣中數(shù)據(jù)1表示前方有障礙,不能通過,0表示前方?jīng)]有障礙可以通過。最后以柵格地圖的形式表示出來。
2.2.2 柵格地圖
本文是將六足機器人和障礙物按比例縮小,將六足機器人比例化后的大小作為一個柵格的大小,這樣就可以將六足機器人看成是一個質(zhì)點。如果地圖某一個位置有障礙的話,那么該柵格的顏色是黑色標識,表示有障礙不能通過。如果柵格是白色就代表此處無障礙,可以通過。本文坐標系的建立是和柵格地圖密不可分的。以柵格地圖的左下角為原點,柵格地圖的水平方向為X軸,豎直方面為Y軸。
3 蟻群算法實現(xiàn)最短路徑規(guī)劃
3.1 蟻群算法基本步驟
蟻群算法的基本思想來源于自然界螞蟻覓食的最短路徑原理,根據(jù)昆蟲學家的觀察發(fā)現(xiàn),自然界的螞蟻雖然視覺不發(fā)達,但它們可以在沒有任何提示的情況下找到從食物源到巢穴的最短路徑,并在周圍環(huán)境發(fā)生變化后,自適應地搜索新的最佳路徑。
其算法的具體步驟如下。
Step1:對相關參數(shù)進行初始化,包括蟻群規(guī)模、信息素因子、啟發(fā)函數(shù)因子、信息素揮發(fā)因子、信息素常數(shù)、最大迭代次數(shù)等,以及將數(shù)據(jù)讀入程序,并進行預處理:比如將城市的坐標信息轉換為城市間的距離矩陣。
Step 2:隨機將螞蟻放于不同出發(fā)點,對每個螞蟻計算其下個訪問城市,直到有螞蟻訪問完所有城市。
Step 3:計算各螞蟻經(jīng)過的路徑長度Lk,記錄當前迭代次數(shù)最優(yōu)解,同時對路徑上的信息素濃度進行更新。
Step 4:判斷是否達到最大迭代次數(shù),若否,返回步驟2;是,結束程序。
Step 5:輸出結果,并根據(jù)需要輸出尋優(yōu)過程中的相關指標,如運行時間、收斂迭代次數(shù)等。
應用蟻群算法來實現(xiàn)機器人在有障礙的復雜環(huán)境下實現(xiàn)最短路徑規(guī)劃步驟如下:
首先用柵格法建立六足機器人的工作環(huán)境,環(huán)境信息有只有1和0構成的矩陣來表示。其中0表示此處可以通過,1表示此處為障礙物,不能通過。
下面通過一個實例來表示初始化地圖,初始化柵格地圖代碼如下:
map=[0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0; 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0;0 1 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0; 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0; 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0; 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0; 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0; 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0; 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0; 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0; 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0;];
接下來要初始化一個信息素矩陣,并且要初始化一些參數(shù)比如起始位置,最終位置等其他參數(shù)。
隨后需要在確定初始位置后,找到下一步可以到達的位置。我們是這樣做的。根據(jù)每個節(jié)點的信息素濃度情況求出前往各個節(jié)點的概率大小。這里選用輪盤算法來選擇下一步的起始點。輪盤法公式如下:
輪盤算法公式參數(shù)解釋如表1所示。
3.2 蟻群算法路徑規(guī)劃實驗
為了驗證算法的有效性,本文做了大量的仿真實驗,分別考慮了具有任意障礙物和復雜程度不同的工作空間。機器人的工作環(huán)境建模為(20×20)柵格,傳統(tǒng)蟻群算法蟻群規(guī)模設置為30,算法的最大迭代次數(shù)設置為300。圖6顯示出了迭代次數(shù)和機器人的最短路徑長度的變化圖。
4 結論
本文以六足機器人作為研究對象,基于多足機器人腿部關節(jié)靈活的特點,以及能更好的適應周圍環(huán)境的諸多特點,來分析六足機器人的步態(tài)運動及其在蟻群算法下仿真機器人在有障礙的復雜環(huán)境下實現(xiàn)最短路徑規(guī)劃,通過實驗驗證了蟻群算法可以在復雜場景下對六足機器人的步態(tài)規(guī)劃進行收斂評估,并給出最短路徑。如何進一步的提高穩(wěn)定性以及障礙同時又能快速找出最短路徑是下一步的研究目標。
參考文獻(References):
[1] 李滿宏,張明路,張建華,田穎,馬艷悅.基于增強學習的六足機器人自由步態(tài)規(guī)劃[J].機械工程學報,2019.55(5):36-44
[2] 雪鋒,郭振武,王斌銳,王凌,金英連.基于帶反饋Hopf振蕩器的六足機器人斜坡步態(tài)發(fā)生器設計[J].機械工程學報,2018.54(21):41-48
[3] 李遠笛,李歡歡,高易佳,胡浩.六足步行機器人的步態(tài)規(guī)劃及運動學分析[J].昆明理工大學學報(自然科學版),2018.43(1):39-44
[4] 詩,張磊,謝子瓊,張健.基于機器視覺的目標跟隨六足機器人[J].重慶郵電大學學報(自然科學版),2017.29(4):557-562
[5] 國杰,田文凱,呂承哲,褚林銀,王斌銳.六足仿生機器人機構與控制系統(tǒng)設計[J].測控技術,2017.36(1):55-58
[6] 郭祖華,王申江,趙士杰.基于全局軌跡的六足機器人運動規(guī)劃算法[J].系統(tǒng)仿真學報,2015.27(11):2682-2688
[7] 趙懷北,劉叔軍,呂庭.基于遠程控制的六足搜救機器人系統(tǒng)的設計[J].計算機測量與控制,2015.23(7):2392-2395
[8] 劉逸群,鄧宗全,趙亮,丁亮,佟志忠,高海波.液壓驅動六足機器人步行腿性能[J].吉林大學學報(工學版),2015.45(5):1512-1518