李曉華,洪克城,李葉松
(廣東博智林機(jī)器人有限公司,廣東佛山 528300)
四足機(jī)器人的后空翻具有瞬時(shí)高爆發(fā)、非線性、強(qiáng)耦合和多約束的特征,具有較多自由度,依靠傳統(tǒng)的軌跡規(guī)劃技術(shù),不僅要考慮車(chē)身的運(yùn)動(dòng)軌跡與姿態(tài)、腿部各關(guān)節(jié)的運(yùn)動(dòng)軌跡及關(guān)節(jié)扭矩,還需考慮接觸、摩擦約束及關(guān)節(jié)電機(jī)扭矩等約束信息,很難人工規(guī)劃出可行的空翻軌跡。本文利用Adams 對(duì)所設(shè)計(jì)的后空翻軌跡曲線進(jìn)行驗(yàn)證,并針對(duì)后空翻所需扭矩過(guò)大問(wèn)題,采用Matlab 進(jìn)行軌跡調(diào)整優(yōu)化,實(shí)現(xiàn)四足機(jī)器人在電機(jī)扭矩限制范圍內(nèi)完成四足機(jī)器人后空翻動(dòng)作。
四足機(jī)器人外觀模型參考MIT Mini Cheetah,如圖1 所示。每條腿有3 個(gè)自由度,分別是膝關(guān)節(jié)轉(zhuǎn)動(dòng)、髖側(cè)關(guān)節(jié)轉(zhuǎn)動(dòng)和髖縱關(guān)節(jié)轉(zhuǎn)動(dòng),配備3 個(gè)電機(jī)(圖2)。
圖1 四足機(jī)器人三維模型
圖2 四足機(jī)器人腿部結(jié)構(gòu)說(shuō)明
作為使用廣泛的多體動(dòng)力學(xué)軟件,Adams 已經(jīng)廣泛應(yīng)用在四足機(jī)器人步態(tài)仿真中,汪永明等[1]在Adams 中研究了閉鏈?zhǔn)剿淖銠C(jī)器人對(duì)角小跑運(yùn)動(dòng),獲得其機(jī)體質(zhì)心和足端的運(yùn)動(dòng)軌跡。常同 立 等[2]基 于Adams 完成了四足機(jī)器人起立后以Trot 步態(tài)行走的運(yùn)動(dòng)仿真模擬。張奔等[3]針對(duì)JQRI00 四足機(jī)器人進(jìn)行運(yùn)動(dòng)學(xué)仿真,驗(yàn)證了步態(tài)規(guī)劃以及運(yùn)動(dòng)控制算法的正確性。杜威等[4]通過(guò)Adams 與Matlab 的聯(lián)合仿真驗(yàn)證了所設(shè)計(jì)的四足機(jī)器人斜面運(yùn)動(dòng)規(guī)劃。吳潯煒等[5]利用Matlab 與Adams 進(jìn)行四足機(jī)器人Trot 軌跡參數(shù)調(diào)整,實(shí)現(xiàn)了四足機(jī)器人Trot 步態(tài)平穩(wěn)走動(dòng)。
從以上文獻(xiàn)可以看出,對(duì)于所設(shè)計(jì)的運(yùn)動(dòng)軌跡,利用Adams能夠方便的驗(yàn)證四足機(jī)器人運(yùn)動(dòng)軌跡并計(jì)算扭矩,此外還可通過(guò)Matlab 對(duì)規(guī)劃軌跡進(jìn)行調(diào)整,優(yōu)化軌跡降低沖擊或扭矩。目前大多數(shù)研究人員是利用Adams 對(duì)四足機(jī)器人行走或奔跑軌跡進(jìn)行驗(yàn)證和優(yōu)化[6],對(duì)四足機(jī)器人后空翻的研究并不多見(jiàn),目前也僅有MIT Biomimetics 實(shí)驗(yàn)室公布[7]其四足機(jī)器人額的空翻過(guò)程。
MIT Biomimetics 實(shí)驗(yàn)室在其四足機(jī)器人Mini Cheetah 上實(shí)現(xiàn)了空翻功能,其首先基于非線性規(guī)劃離線求解出一條空翻軌跡,然后采用阻抗模型,實(shí)現(xiàn)對(duì)離線軌跡指令的跟蹤[7]。本仿真方案的目的同樣是離線規(guī)劃一條空翻軌跡,但不同的是并未采取非線性規(guī)劃的方法,而是采取求解微分動(dòng)力學(xué)方程的方法來(lái)設(shè)計(jì)合適的空翻軌跡。本仿真方案包含以下4 個(gè)模塊:①模型簡(jiǎn)化設(shè)計(jì);②空翻狀態(tài)機(jī)設(shè)計(jì);③動(dòng)力學(xué)模型構(gòu)建;④空翻軌跡求解。
根據(jù)后空翻過(guò)程的運(yùn)動(dòng)特點(diǎn),將四足機(jī)器人簡(jiǎn)化為矢狀面五連桿模型,如圖3 所示。該模型的廣義坐標(biāo)定義如下:
圖3 矢狀面五連桿簡(jiǎn)化模型
其中,(x,y)為車(chē)身連桿的質(zhì)心坐標(biāo);θpitch為車(chē)身連桿的姿態(tài)角;qfh、qfk、qbh和qbk分別為前腿髖關(guān)節(jié)角度、前腿膝關(guān)節(jié)角度、后腿髖關(guān)節(jié)角度和后腿膝關(guān)節(jié)角度。
后空翻過(guò)程的狀態(tài)機(jī)包含如下切換過(guò)程:雙腿著地、前腿離地后腿著地、飛行、下落觸地、雙腿落地階段,下落觸地僅考慮前腿觸地后腿下落階段,雙腿落地只作為狀態(tài)機(jī)的最后階段,進(jìn)入雙腿落地階段則立刻停止計(jì)算。各狀態(tài)切換條件依次為前腿離地,后腿離地,前腿觸地和后退觸地事件。后空翻過(guò)程的狀態(tài)機(jī)如圖4 所示。
圖4 后空翻過(guò)程狀態(tài)機(jī)
微分動(dòng)力學(xué)方程揭示了系統(tǒng)在給定初始狀態(tài)和控制輸入下運(yùn)動(dòng)演變的過(guò)程,各階段的動(dòng)力學(xué)方程如下所示:
雙腿著地階段:
其中,M為等效慣量矩陣;C為科氏力和離心力矩陣;G 為重力矩矩陣;Ff為前腿足端接觸力;Fb為后腿足端接觸力;Jf為前腿足端雅克比矩陣;Jf為后腿足端雅克比矩陣;af為前腿足端加速度;ab為后腿足端加速度;u=[ufh,ufk,ubh,ubk]T系統(tǒng)的控制輸入,即五連桿簡(jiǎn)化模型的各關(guān)節(jié)扭矩;B 為控制輸入選擇矩陣,因?qū)?chē)身的3 個(gè)狀態(tài)量并不存在對(duì)應(yīng)的驅(qū)動(dòng)輸入,因此其具有如下形式:
前腿離地后腿著地階段:
騰空飛行階段:
前腿著地后腿下落階段:
空翻軌跡的求解是在給定系統(tǒng)初始狀態(tài)下,設(shè)計(jì)雙腿著地階段的系統(tǒng)控制輸入,求解各階段的微分動(dòng)力學(xué)方程,得到整個(gè)過(guò)程的狀態(tài)演變。另外,由于足端反作用力和整機(jī)運(yùn)動(dòng)狀態(tài)具有較為直觀的關(guān)系,因此認(rèn)為足端作用力與關(guān)節(jié)控制輸入滿足以下條件:
通過(guò)設(shè)計(jì)足端反作用力,利用以上映射關(guān)系,得到關(guān)節(jié)控制輸入,并借助Matlab 和空翻狀態(tài)機(jī)順序求解各階段的微分動(dòng)力學(xué)方程,從而得到整個(gè)空翻過(guò)程的狀態(tài)軌跡和控制輸入軌跡。
將四足機(jī)器人模型導(dǎo)入Adams,用轉(zhuǎn)動(dòng)副模擬關(guān)節(jié)的轉(zhuǎn)動(dòng),并施加相應(yīng)的驅(qū)動(dòng),驅(qū)動(dòng)函數(shù)為計(jì)算得到的后空翻各關(guān)節(jié)角度時(shí)間曲線[8]。進(jìn)行仿真,結(jié)果顯示輸入的后空翻軌跡能夠完成四足機(jī)器人后空翻動(dòng)作(圖5)。但空翻過(guò)程中后腿髖側(cè)關(guān)節(jié)扭矩達(dá)到了37.3 N·m(圖6)。所采用的電機(jī)扭矩最大為33.5 N·m,后腿髖側(cè)關(guān)節(jié)電機(jī)不滿足使用要求。
圖5 四足機(jī)器人后空翻
圖6 后空翻起跳階段髖側(cè)關(guān)節(jié)扭矩
由于輸入的后空翻軌跡曲線為Matlab 中利用動(dòng)力學(xué)算法計(jì)算得出,是對(duì)實(shí)際模型進(jìn)行簡(jiǎn)化仿真,能夠快速完成軌跡規(guī)劃等任務(wù),但無(wú)法準(zhǔn)確反映實(shí)際受力情況。因此其計(jì)算得到的扭矩值和仿真結(jié)果有一定的偏差。但是Adams 仿真結(jié)果顯示其能夠完成后空翻動(dòng)作,若能夠?qū)⒑罂辗^(guò)程中各關(guān)節(jié)扭矩值優(yōu)化到電機(jī)最大扭矩范圍內(nèi),則證明該軌跡能夠完成四足機(jī)器人后空翻。
采用Matlab 與Adams 聯(lián)合仿真實(shí)現(xiàn)上述優(yōu)化。我們可以將Matlab 計(jì)算得到的初始軌跡曲線進(jìn)行幅值調(diào)整,生成多條調(diào)整后的前后腿軌跡曲線,之后將其導(dǎo)入Adams 中進(jìn)行計(jì)算,找出扭矩最小的后空翻軌跡,查看其扭矩是在小于電機(jī)的最大輸出扭矩。具體步驟如下:
(1)在Matlab 中編寫(xiě)程序,對(duì)四足機(jī)器人后腿髖縱關(guān)節(jié)、髖側(cè)關(guān)節(jié)、膝關(guān)節(jié)角度曲線進(jìn)行幅值調(diào)整(圖7~圖9),以各關(guān)節(jié)初始曲線的幅值為基礎(chǔ),各關(guān)節(jié)生成10 條幅值調(diào)整后曲線,并對(duì)起跳時(shí)間進(jìn)行調(diào)整,生成10組起跳時(shí)間,共計(jì)有10 000 種后空翻起跳軌跡。
圖7 幅值調(diào)整后髖側(cè)關(guān)節(jié)曲線
圖8 幅值調(diào)整后髖縱關(guān)節(jié)曲線
圖9 幅值調(diào)整后膝關(guān)節(jié)曲線
(2)在Adams中建立各關(guān)節(jié)扭矩的輸出,創(chuàng)建測(cè)量函數(shù),測(cè)量左前腿及左后腿的膝關(guān)節(jié)、髖側(cè)關(guān)節(jié)后空翻起跳過(guò)程的扭矩值,并定義為輸出變量。之后導(dǎo)出四足機(jī)器人動(dòng)力學(xué)模型的.adm文 件,.adm 文 件中包含各關(guān)節(jié)的驅(qū)動(dòng)函數(shù)。
(3)在Matlab中編寫(xiě)修改.adm文件的程序,其功能包括:修改個(gè)各關(guān)節(jié)的驅(qū)動(dòng)函數(shù)、提交計(jì)算、讀取計(jì)算完成后輸出的各關(guān)節(jié)扭矩值并判斷最小扭矩是由哪組曲線生成的(圖10)。
圖10 后空翻扭矩優(yōu)化流程
優(yōu)化調(diào)整后輸出的四足機(jī)器人后空翻過(guò)程種髖側(cè)關(guān)節(jié)扭矩值如圖11 所示,在起跳階段,髖側(cè)關(guān)節(jié)最大扭矩值為32.9 N·m,小于電機(jī)最大扭矩值,其余關(guān)節(jié)的扭矩值均小于電機(jī)最大扭矩值,這意味著該四足機(jī)器人能夠?qū)崿F(xiàn)后空翻。
圖11 優(yōu)化后髖側(cè)關(guān)節(jié)扭矩
本文對(duì)四足機(jī)器人后空翻原理進(jìn)行了說(shuō)明,并利用得到的后空翻軌跡曲線在Adams 中進(jìn)行后空翻動(dòng)作仿真。結(jié)果顯示基于動(dòng)力學(xué)算法計(jì)算得到的后空翻軌跡曲線能夠完成四足機(jī)器人后空翻動(dòng)作,但所需扭矩大于電機(jī)最大輸出扭矩,因此采用Matlab 編寫(xiě)扭矩優(yōu)化程序,基于Matlab 和Adams進(jìn)行聯(lián)合仿真優(yōu)化,將四足機(jī)器人后空翻扭矩降低到所選用的電機(jī)扭矩范圍內(nèi),說(shuō)明了該四足機(jī)器人具有完成后空翻動(dòng)作的能力。后續(xù)可引入相關(guān)的優(yōu)化算法嘗試對(duì)四足機(jī)器人后空翻軌跡進(jìn)行優(yōu)化,進(jìn)一步優(yōu)化四足機(jī)器人后空翻軌跡。