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