一種基于STM32的四足機(jī)器人設(shè)計(jì)與仿真分析
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
目前國(guó)內(nèi)外都非常重視煤礦救援機(jī)器人的研究與開發(fā),國(guó)外進(jìn)行相關(guān)研究的起步較早,技術(shù)也較為成熟。國(guó)外救援機(jī)器人已經(jīng)具有建立巷道三維模型的功能(比如美國(guó)卡內(nèi)基梅隆大學(xué)研制的機(jī)器人Groundhog),國(guó)內(nèi)外機(jī)器人的移動(dòng)方式都以輪式和履帶式為主,而控制方面都是采用遠(yuǎn)程遙控方式,目前也都還沒有在巷道中實(shí)現(xiàn)完全自主導(dǎo)航完成救援的報(bào)道。
伴隨著傳感器、智能控制等技術(shù)領(lǐng)域的發(fā)展,相比于礦井機(jī)器人(發(fā)生災(zāi)害后環(huán)境復(fù)雜且充滿危險(xiǎn)),移動(dòng)機(jī)器人在自主導(dǎo)航方面已經(jīng)有了長(zhǎng)足的進(jìn)步,尤其是室內(nèi)機(jī)器人自主導(dǎo)航技術(shù)已經(jīng)相對(duì)成熟,而室外如汽車自動(dòng)駕駛模式的發(fā)展也十分迅速。
本文主要探究一種可以在礦井內(nèi)部自動(dòng)行走的四足機(jī)器人,目的是可以傳輸影像、探查音源等,用于礦井發(fā)生事故時(shí)進(jìn)行井下救援,防止二次事故對(duì)救援人員造成傷害。本文主要介紹了第一階段的研究?jī)?nèi)容,即控制四足機(jī)器人自動(dòng)行走。
目前,機(jī)器人的移動(dòng)方式主要包括履帶式、輪式和足式。
履帶式機(jī)器人能更好地適應(yīng)松軟的地形,例如沙地、泥地,履帶與地面接觸面積大,較平穩(wěn),缺點(diǎn)是對(duì)高低落差較大的地形無能為力。
輪式機(jī)器人更適合平坦的路面,特別是馬路,且能高速移動(dòng),但容易打滑,不平穩(wěn),且對(duì)復(fù)雜地形無能為力。
四足機(jī)器人步行腿具有多個(gè)自由度,落足點(diǎn)是離散的,故能在足尖點(diǎn)可達(dá)域范圍內(nèi)靈活調(diào)整行走姿態(tài),并合理選擇支撐點(diǎn),具有更高的避障和越障能力。為此,四足機(jī)器人的研究已成為機(jī)器人學(xué)中一個(gè)引人注目的領(lǐng)域,而運(yùn)動(dòng)學(xué)的研究是步行機(jī)器人各項(xiàng)研究的基礎(chǔ)。
本文首先根據(jù)四足動(dòng)物的身體結(jié)構(gòu),提出一種四足機(jī)器人結(jié)構(gòu)設(shè)計(jì)方案,然后對(duì)該機(jī)器人進(jìn)行結(jié)構(gòu)分析,并采用Solidworks軟件建立四足機(jī)器人的虛擬樣機(jī),最后對(duì)分析結(jié)果進(jìn)行仿真驗(yàn)證。
1四足機(jī)器人本體結(jié)構(gòu)設(shè)計(jì)
1.1自由度確定
四足機(jī)器人在行走過程中,腿部主要有兩種狀態(tài):擺動(dòng)態(tài)、支撐態(tài)。擺動(dòng)態(tài)時(shí)步行腿相當(dāng)于連桿串聯(lián)起來的空間開鏈?zhǔn)浇Y(jié)構(gòu),步行腿的自由度數(shù)等于關(guān)節(jié)數(shù)。支撐態(tài)時(shí)基體是并聯(lián)機(jī)構(gòu)的中央構(gòu)件,地面可作為并聯(lián)機(jī)構(gòu)的機(jī)架,步行足與地面接觸存在摩擦,不打滑,可看作是與地面組成的球關(guān)節(jié)。
如圖1所示,該腿部機(jī)構(gòu)構(gòu)件數(shù)為4,包含5個(gè)低副(其中包含1個(gè)復(fù)合較鏈),不含高副。
設(shè)任意時(shí)刻處于支撐相的腿數(shù)為n(n≤4),則此時(shí)模型為具有n個(gè)分支的空間多環(huán)并聯(lián)機(jī)構(gòu),其自由度數(shù)M可由式(1)計(jì)算:
式中:F為自由度:n為構(gòu)件個(gè)數(shù):P1為低副個(gè)數(shù):Ph為高副個(gè)數(shù)。
將n=4,P1=5,Ph=0代入式(1),得單腿的自由度F=2,故機(jī)械的總自由度等于8。由此可知,無論該機(jī)器人采用何種步態(tài),軀體在一定范圍內(nèi)均可實(shí)現(xiàn)任意位置和姿態(tài),同時(shí)也驗(yàn)證了本文所建立的簡(jiǎn)化結(jié)構(gòu)能夠滿足機(jī)器人在空間的基本運(yùn)動(dòng)要求。
1.2機(jī)構(gòu)模型的建立和簡(jiǎn)化
該四足機(jī)器人的機(jī)械結(jié)構(gòu)參考了哺乳類動(dòng)物的生理結(jié)構(gòu),由五部分組成。腿部與軀干由5個(gè)關(guān)節(jié)連接,每個(gè)關(guān)節(jié)的自由度有1~3個(gè)??紤]到機(jī)械的靈活性與復(fù)雜性的關(guān)系,對(duì)機(jī)械結(jié)構(gòu)進(jìn)行一定的簡(jiǎn)化。簡(jiǎn)化后結(jié)構(gòu)如圖2所示,由五部分組成。4條腿的參數(shù)、結(jié)構(gòu)相同,并且呈中心對(duì)稱分布。
由圖3可以看出,該機(jī)器人結(jié)構(gòu)相對(duì)簡(jiǎn)單,每條腿配有2臺(tái)電機(jī),分別控制腿部的前半部和后半部,共配有8臺(tái)電機(jī),其與4條機(jī)械腿以及上下2塊金屬蓋板共同組成了該四足機(jī)器人。
2運(yùn)動(dòng)設(shè)計(jì)及仿真
2.1四足機(jī)器人足端軌跡規(guī)劃
令起點(diǎn)位置Ps=(xs,ys,zs),期望落腳點(diǎn)的位置為Pd=(xd,yd,zd),則每次跨腿的長(zhǎng)度為Tx=xd-xs,每次抬腿高度為Tz=zd-zs。
足端軌跡規(guī)劃采用Raibert提出的算法,具體地,令T為步態(tài)周期,h為支撐相占空比,則擺線軌跡為:
2.2仿真驗(yàn)證結(jié)果
下面采用MATLAB軟件對(duì)四足機(jī)器人的足端軌跡進(jìn)行模擬仿真。
以四足機(jī)器人為坐標(biāo)原點(diǎn),建立坐標(biāo)系,先進(jìn)行x方向(即平行于地面方向)上的仿真,如圖4所示。
然后進(jìn)行:方向(即垂直于地面方向)上的仿真,如圖5所示。
最后進(jìn)行四足機(jī)器人在二維空間上的仿真,如圖6所示。
由圖4、圖5、圖6可得到四足機(jī)器人的足端軌跡,同時(shí)也驗(yàn)證了四足機(jī)器人結(jié)構(gòu)和運(yùn)動(dòng)設(shè)計(jì)的合理性。
3控制系統(tǒng)分析
3.1控制元件分析(PlD調(diào)節(jié)器)
PID控制即為對(duì)偏差進(jìn)行比例、積分和微分的控制。P與響應(yīng)快慢有關(guān),I與靜態(tài)誤差有關(guān),D與振蕩有關(guān)。在微處理器里,使用離散的差分方程替代連續(xù)的微分方程,這樣它只需要根據(jù)采樣時(shí)刻的偏差值計(jì)算控制量即可。
下列各式中,kp、ki、kd為設(shè)定的PID初始參數(shù):ek為本次誤差:ek-1為上一次誤差:Ⅹei為累加和:pwm為輸出:α為電機(jī)加速度:θ為偏離平衡位置的角度:α為角度變化率。
(1)位置閉環(huán)控制算法(根據(jù)編碼器的脈沖累加測(cè)量電機(jī)的位置信息):
(2)速度閉環(huán)控制算法(根據(jù)單位時(shí)間獲取的脈沖數(shù)測(cè)量電機(jī)的速度信息):
(3)直立控制算法(平衡控制):
直立控制算法流程如圖7所示。
(4)串級(jí)PID控制算法(對(duì)電機(jī)直接操作,控制直立和速度):
式(6)速度閉環(huán)控制算法可以改為式(8):
合并式(7)和式(8)得到式(9)):
串級(jí)控制系統(tǒng)如圖8所示,注意此時(shí)系統(tǒng)中,速度控制是負(fù)反饋。
(5)轉(zhuǎn)向控制)使用Z軸陀螺儀的數(shù)據(jù)作為轉(zhuǎn)向速度偏差進(jìn)行P控制,保持轉(zhuǎn)向速度為設(shè)定值,這樣做,算法簡(jiǎn)單,容易實(shí)現(xiàn),避免了打滑漂移無法檢測(cè)的問題。
3.2控制程序分析
3.2.1機(jī)器人電機(jī)的控制流程圖
其控制原理是通過改變機(jī)器人的目標(biāo)速度實(shí)現(xiàn)控制。目標(biāo)速度經(jīng)過運(yùn)動(dòng)學(xué)函數(shù)得出電機(jī)的實(shí)際輸出,最后通過PID速度控制函數(shù)來實(shí)現(xiàn)電機(jī)的速度控制。具體實(shí)現(xiàn)過程如圖9所示。
3.2.2 STM32程序控制結(jié)構(gòu)流程圖
RTOS任務(wù)為每個(gè)任務(wù)賦予一個(gè)優(yōu)先級(jí),以此來決定各個(gè)任務(wù)執(zhí)行順序。RTOS任務(wù)調(diào)度器根據(jù)任務(wù)的優(yōu)先級(jí)決定任務(wù)的執(zhí)行順序,每個(gè)任務(wù)執(zhí)行的時(shí)間很短,因此幾乎等效于所有任務(wù)同時(shí)執(zhí)行,在此期間如果發(fā)生中斷則去響應(yīng)中斷。串口2中斷用于App藍(lán)牙控制,串口3中斷用于接收ROS傳過來的信息。Car_Mode決定PWM輸出控制電機(jī)的極性,一般在出廠前已經(jīng)設(shè)置好,用戶無須更改。
具體實(shí)現(xiàn)過程如圖10所示。
3.2.3電機(jī)控制輸入函數(shù)(四足八電機(jī))
此函數(shù)設(shè)定了幾種四足上電及運(yùn)行的情況:
(1)開始上電的時(shí)候,四足靜止不動(dòng):
(2)站立,此時(shí)代表解鎖狀態(tài),剛解鎖時(shí),四足站立:
(3)踏步/行走,代表四足開始運(yùn)動(dòng),可以調(diào)節(jié)跨步的大小:
(4)四足關(guān)機(jī)。
函數(shù)流程具體如圖11所示。
4結(jié)語
本文首先通過對(duì)四足機(jī)器人進(jìn)行機(jī)械結(jié)構(gòu)分析,確定了該類型四足機(jī)器人的運(yùn)動(dòng)形態(tài):然后做出了四足機(jī)器人足端軌跡,確定了四足機(jī)器人的行進(jìn)方式:最后基于STM32單片機(jī)對(duì)四足機(jī)器人發(fā)出行走指令,完成了自行走四足機(jī)器人的初步研究。