馬秀峰,張奇峰,孫英哲,5
(1. 中國科學(xué)院沈陽自動(dòng)化研究所機(jī)器人學(xué)國家重點(diǎn)實(shí)驗(yàn)室,遼寧 沈陽 110016;2. 中國科學(xué)院機(jī)器人與智能制造創(chuàng)新研究院,遼寧 沈陽 110169;3. 遼寧省水下機(jī)器人重點(diǎn)實(shí)驗(yàn)室,遼寧 沈陽 110169;4. 東北大學(xué)信息科學(xué)與工程學(xué)院,遼寧 沈陽 110819;5. 中國科學(xué)院大學(xué),北京 100049)
仿生機(jī)器人是指依據(jù)仿生學(xué)原理,模仿生物結(jié)構(gòu)、運(yùn)動(dòng)特性[1],多足仿生機(jī)器人主要有雙足類人機(jī)器人、四足類騾馬機(jī)器人和六足類蜘蛛、海蟹機(jī)器人[2]。六足機(jī)器人有著較強(qiáng)的穩(wěn)定性和地形適應(yīng)能力,能夠在社會(huì)服務(wù),軍事應(yīng)用,海洋科考等[3-5]多種場(chǎng)景下替代人類執(zhí)行任務(wù),具有重要研究意義與使用價(jià)值。國內(nèi)外相關(guān)學(xué)者對(duì)此進(jìn)行了相關(guān)研究,Kamikawa等人提出了一種使用位置和機(jī)體傾斜信息的六足步行機(jī)器人步態(tài)控制方法[6];Okamoto等人提出了一種六足機(jī)器人穩(wěn)定行走的策略,將機(jī)器人的重心控制在與地面接觸的三條腿形成的三角形內(nèi)[7];Shahriari等人使用強(qiáng)化學(xué)習(xí)方法生成六足步行機(jī)器人基本步態(tài)[8];金波等人采用仿哺乳類的腿部結(jié)構(gòu),設(shè)計(jì)了由步進(jìn)電機(jī)驅(qū)動(dòng)的六足機(jī)器人并實(shí)現(xiàn)了直行功能[9];劉連蕊等人針對(duì)六足機(jī)器人,設(shè)計(jì)了一種橫向運(yùn)動(dòng)行走步態(tài)[10]。
六足機(jī)器人是冗余并聯(lián)系統(tǒng),足腿均為開鏈?zhǔn)浇Y(jié)構(gòu),要控制機(jī)器人達(dá)到預(yù)期運(yùn)動(dòng)效果,其根本就是控制每條腿的各個(gè)關(guān)節(jié)按照給定期望運(yùn)動(dòng)。利用D-H(Denavit-Hartenberg)方法描述機(jī)器人的坐標(biāo)系統(tǒng)并結(jié)合機(jī)器人結(jié)構(gòu)參數(shù)構(gòu)建運(yùn)動(dòng)學(xué)模型[11],而機(jī)器人正逆運(yùn)動(dòng)學(xué)的建立與求解是運(yùn)動(dòng)控制的前提條件。在能夠運(yùn)動(dòng)的基礎(chǔ)之上機(jī)器人的運(yùn)動(dòng)步態(tài)、控制方法和關(guān)節(jié)驅(qū)動(dòng)能力決定了其運(yùn)動(dòng)的方向、速度、穩(wěn)定性、越障能力等性能,利用MATLAB的Simulink工具箱搭建六足機(jī)器人虛擬樣機(jī)仿真平臺(tái),采用基于模型開發(fā)的方式對(duì)所設(shè)計(jì)步態(tài)、控制方法和腿部關(guān)節(jié)力矩進(jìn)行仿真驗(yàn)證與分析,具有實(shí)際的參考應(yīng)用價(jià)值,進(jìn)一步提高了六足機(jī)器人的運(yùn)動(dòng)穩(wěn)定性和行走能力,并可縮短控制方法的設(shè)計(jì)時(shí)長(zhǎng),為六足機(jī)器人實(shí)物樣機(jī)設(shè)計(jì)與運(yùn)動(dòng)控制打下基礎(chǔ)。
六足機(jī)器人的結(jié)構(gòu)模型如圖1所示,在機(jī)器人的機(jī)體左右兩側(cè)六條三關(guān)節(jié)機(jī)械腿對(duì)稱分布,腿上三個(gè)關(guān)節(jié)分別為水平轉(zhuǎn)動(dòng)的基關(guān)節(jié),垂直轉(zhuǎn)動(dòng)的髖關(guān)節(jié)和膝關(guān)節(jié),機(jī)器人的主要參數(shù)值見表1,在此結(jié)構(gòu)下機(jī)器人具有較好的運(yùn)動(dòng)特性。
表1 六足機(jī)器人主要參數(shù)
腿部的正運(yùn)動(dòng)學(xué)是由已知的各驅(qū)動(dòng)關(guān)節(jié)角度計(jì)算得到腿末端在基關(guān)節(jié)固定坐標(biāo)系{O}下的位置,其本質(zhì)則為連桿坐標(biāo)系統(tǒng)的平移和旋轉(zhuǎn)變換過程,而腿上連桿i(i=1,2,3)遠(yuǎn)端坐標(biāo)系{i}在連桿i-1遠(yuǎn)端坐標(biāo)系{i-1}下的表達(dá)為
(1)
根據(jù)D-H參數(shù)理論方法和腿部的具體結(jié)構(gòu)參數(shù),機(jī)械腿的連桿坐標(biāo)系示意如圖2所示,并且得到單腿的D-H各項(xiàng)參數(shù)如表2所示。
表2 單腿D-H參數(shù)表
(2)
得到腿末端坐標(biāo)系{E}在基關(guān)節(jié)坐標(biāo)系{O}下的旋轉(zhuǎn)變換矩陣表達(dá)式
(3)
上式中第四列P向量為腿的末端在基關(guān)節(jié)坐標(biāo)系下的偏移量,故單腿正運(yùn)動(dòng)學(xué)表達(dá)式為:
(4)
其中λ=β+γ
逆運(yùn)動(dòng)學(xué)是對(duì)六足機(jī)器人做腿部運(yùn)動(dòng)控制的基礎(chǔ),是根據(jù)已知的腿部末端接觸點(diǎn)相對(duì)固定坐標(biāo)系的位置,求解機(jī)器人腿部各個(gè)關(guān)節(jié)角度的過程,由于六足機(jī)器人的足腿各關(guān)節(jié)的轉(zhuǎn)動(dòng)范圍已作限定,見表1,則在幾何關(guān)系上有任意一個(gè)空間位置P均對(duì)應(yīng)唯一的一組關(guān)節(jié)角度值,由此利用幾何方法完成逆運(yùn)動(dòng)學(xué)求解,幾何圖示如圖3所示。
圖3 幾何關(guān)系圖示
推導(dǎo)得出關(guān)系式(5),可確定足腿的末端接觸點(diǎn)對(duì)基關(guān)節(jié)、髖關(guān)節(jié)、膝關(guān)節(jié)的運(yùn)動(dòng)學(xué)逆解,已知腿末端位置Px,Py,Pz和各個(gè)連桿的長(zhǎng)度,即可求解出足腿的各個(gè)關(guān)節(jié)轉(zhuǎn)動(dòng)角度q。
至此,分析建立了運(yùn)動(dòng)學(xué)正解和運(yùn)動(dòng)學(xué)逆解的數(shù)學(xué)表達(dá)式。
(5)
此節(jié)為六足機(jī)器人設(shè)計(jì)運(yùn)動(dòng)步態(tài),基于上一節(jié)建立的運(yùn)動(dòng)學(xué)模型,通過設(shè)計(jì)控制器與虛擬機(jī)器人被控對(duì)象相結(jié)合,產(chǎn)生連續(xù)步態(tài),結(jié)合擺動(dòng)腿著地控制和機(jī)體姿態(tài)控制,實(shí)現(xiàn)機(jī)器人穩(wěn)定行走。機(jī)器人的步態(tài)包括靜態(tài)步態(tài)和動(dòng)態(tài)步態(tài)[12],靜態(tài)步態(tài)每次邁一條腿穩(wěn)定性高,但運(yùn)動(dòng)速度慢,執(zhí)行效率低;而動(dòng)態(tài)步態(tài)是對(duì)角運(yùn)動(dòng)方式,運(yùn)動(dòng)速度較快,穩(wěn)定性會(huì)降低;對(duì)于六足機(jī)器人而言在對(duì)角三角步態(tài)下三條對(duì)角腿為一組按照給定的啟停信號(hào)走過特定軌跡,有著靜態(tài)和動(dòng)態(tài)步態(tài)的優(yōu)點(diǎn)。步態(tài)設(shè)計(jì)中將六條腿劃分為兩組,見表3。
表3 腿的組別劃分
六足機(jī)器人以特定步態(tài)運(yùn)動(dòng)過程是由最基本的腿部擺動(dòng)和支撐階段所構(gòu)成,如圖4所示,其決定了運(yùn)動(dòng)的步幅長(zhǎng)度m和每步高度h,同時(shí)擺動(dòng)階段經(jīng)歷時(shí)間tb和支撐階段經(jīng)歷時(shí)間tz相等,既0.5的占空比,以保證運(yùn)動(dòng)的同步性。
圖4 擺動(dòng)支撐階段示意
針對(duì)此擺動(dòng)支撐過程提出一種函數(shù)方法用于參考軌跡生成,可達(dá)到擺動(dòng)階段經(jīng)過平穩(wěn)抬起-加速上升-減速下降-平穩(wěn)落腳,支撐階段經(jīng)過加速-平穩(wěn)-減速過程,利用三角函數(shù)特性,在笛卡爾空間坐標(biāo)系中將擺動(dòng)和支撐階段分解到單個(gè)軸線上并建立以對(duì)應(yīng)軸線為縱軸,以時(shí)間為橫軸的坐標(biāo)系,單獨(dú)處理后合并得到足端在笛卡爾空間坐標(biāo)系中的軌跡。分析推導(dǎo)出擺動(dòng)階段軌跡點(diǎn)生成方式,見式(6),式中P0、PE為3×1的足端位置向量,令式中Px和Py取反、Pz=PEz,經(jīng)變換可得到腿部在支撐階段軌跡點(diǎn)生成方式。
(6)
得到和時(shí)間t相關(guān)的軌跡點(diǎn)向量P
(7)
由式(7)并結(jié)合運(yùn)動(dòng)學(xué)分析中的式(4)、式(5)、機(jī)器人結(jié)構(gòu)、步長(zhǎng)m、步高h(yuǎn)和擺動(dòng)周期參數(shù),編寫軌跡生成模塊,得到擺動(dòng)支撐階段的運(yùn)動(dòng)軌跡和關(guān)節(jié)角度變化情況,如圖5所示,其中tb=tz=2s,當(dāng)足端在沿著此種方法生成的軌跡點(diǎn)運(yùn)動(dòng)時(shí)各關(guān)節(jié)角度、速度以及末端速度變化連續(xù)且無驟然突變情況,有效降低了運(yùn)動(dòng)過程中的沖擊和對(duì)機(jī)體的影響,以此動(dòng)態(tài)生成六足機(jī)器人運(yùn)動(dòng)中每步的軌跡參考。
圖5 擺動(dòng)-支撐運(yùn)動(dòng)軌跡各指標(biāo)變化
上述方法可以產(chǎn)生理想的足端運(yùn)動(dòng)參考軌跡,但在實(shí)際環(huán)境中地面并非是理想的平坦?fàn)顟B(tài)。在每一步中,就預(yù)先定義的步態(tài)中腿部擺動(dòng)過程而言,將會(huì)出現(xiàn)擺動(dòng)腿末端早著地或晚著地的情況,如圖6所示。對(duì)于這兩種情況,有必要修改擺腳的落地位置,以保證平穩(wěn)落地。在六足機(jī)器人的足端安裝力傳感器,其反饋信號(hào)是足端著地狀態(tài)的體現(xiàn),垂直位置誤差在擺動(dòng)階段得到補(bǔ)償。為此所提出的擺動(dòng)腿足端著陸位置調(diào)整控制策略流程如圖7所示,圖中擺動(dòng)腿足端軌跡是相對(duì)地面坐標(biāo)系而言的。
圖6 擺動(dòng)腿下落階段過早和過晚著地情況
圖7 擺動(dòng)腿足端落點(diǎn)位置調(diào)整控制策略
轉(zhuǎn)彎步態(tài)是多足機(jī)器人運(yùn)動(dòng)中的常見步態(tài),在機(jī)器人運(yùn)動(dòng)過程中遇到障礙物等情況下,通常需要切換到轉(zhuǎn)彎步態(tài)通過調(diào)整落腳點(diǎn)位置實(shí)現(xiàn)六足機(jī)器人運(yùn)動(dòng)方向的改變,在一個(gè)調(diào)整周期T內(nèi)轉(zhuǎn)彎這一動(dòng)態(tài)過程分為:第一階段(0~T/2)第一組腿為擺動(dòng)相,以機(jī)體中心作為參考逆(順)時(shí)針擺動(dòng),第二組腿為支撐相保持機(jī)體穩(wěn)定;第二階段(T/2~T)第一組腿為支撐相,順(逆)時(shí)針運(yùn)動(dòng),第二組腿為擺動(dòng)相;以組為單位繞機(jī)體中心擺動(dòng),兩階段連續(xù)執(zhí)行實(shí)現(xiàn)六足機(jī)器人的原地轉(zhuǎn)彎步態(tài),如圖8所示為六足機(jī)器人轉(zhuǎn)彎步態(tài)。
圖8 轉(zhuǎn)彎步態(tài)
直行步態(tài)不同于轉(zhuǎn)彎步態(tài)中每組腿同時(shí)順時(shí)針或逆時(shí)針運(yùn)動(dòng),而是同時(shí)處于擺動(dòng)或支撐模式,在直行過程中分布在機(jī)體兩側(cè)的六條腿各自的擺動(dòng)步幅長(zhǎng)度相等,直行中第一組擺動(dòng),第二組支撐在T/2時(shí)刻停止,T/2時(shí)刻第二組擺動(dòng),第一組支撐至T時(shí)刻結(jié)束,依次循環(huán)往復(fù),針對(duì)直行步態(tài)構(gòu)成又具體劃分為起始步、中間級(jí)全步、停止步,直行步態(tài)的構(gòu)成時(shí)序圖如圖9所示;其中,啟動(dòng)步是為后續(xù)行走做準(zhǔn)備,停止步使六足機(jī)器人在靜止時(shí)各個(gè)腿均勻受力,以此保證機(jī)器人站立時(shí)最好的穩(wěn)定性,并為后續(xù)其它運(yùn)行步態(tài)提供初始運(yùn)動(dòng)條件。
圖9 直行步態(tài)時(shí)序
此步態(tài)相較于轉(zhuǎn)彎和直行步態(tài)在運(yùn)動(dòng)控制上更為復(fù)雜,弧線行走步態(tài)和直行步態(tài)的差異在于擺動(dòng)步幅長(zhǎng)度的不同,機(jī)器人的弧線行走是通過動(dòng)態(tài)調(diào)整步長(zhǎng)的方式,使六足機(jī)器人兩側(cè)出現(xiàn)速度差,實(shí)現(xiàn)弧線行走,此時(shí)既要按照分組做組內(nèi)同步運(yùn)動(dòng),又要對(duì)同側(cè)腿做步長(zhǎng)上的調(diào)整;如機(jī)器人前行中,當(dāng)R一側(cè)腿的單步步幅小于L一側(cè),連續(xù)執(zhí)行此過程時(shí),完成直行中向右側(cè)轉(zhuǎn)彎,步態(tài)設(shè)計(jì)如圖10所示。
圖10 弧線行走步態(tài)
六足機(jī)器人機(jī)體保持水平,特別是在傾斜地形上,以提高行走的穩(wěn)定性,利用多軸姿態(tài)傳感器獲取機(jī)體的姿態(tài)信息。歐拉變換的順序?yàn)閆-Y-X設(shè)置濾波器的截止頻率為0.1Hz。為將機(jī)體的俯仰和滾動(dòng)角控制在0值附近,針對(duì)二者設(shè)計(jì)了比-例積分控制器,式(8),而得到兩個(gè)控制角度α和φ,經(jīng)由歐拉變換和腿部的坐標(biāo)變換得到新的調(diào)整后的足端位置量,如下
(8)
A=Rotzγ·Rotyφ·Rotxα
(9)
(10)
其中,d′是上一時(shí)刻的足端在機(jī)體坐標(biāo)系下的向量表示,d是當(dāng)前時(shí)刻計(jì)算出新的足端向量值,下圖為機(jī)器人初始傾斜姿態(tài)下調(diào)整到0的過程。
圖11 機(jī)體傾斜狀態(tài)恢復(fù)水平
利用MATLAB的Simulink物理仿真環(huán)境創(chuàng)建機(jī)器人仿真平臺(tái),對(duì)機(jī)器人的運(yùn)動(dòng)進(jìn)行仿真,驗(yàn)證所設(shè)計(jì)的步態(tài)并對(duì)機(jī)器人的運(yùn)動(dòng)性能和關(guān)節(jié)力矩情況進(jìn)行分析,為使六足機(jī)器人連續(xù)運(yùn)動(dòng),根據(jù)前文運(yùn)動(dòng)學(xué)公式及運(yùn)動(dòng)步態(tài)編寫了行走模式控制和連續(xù)運(yùn)動(dòng)路徑生成模塊,系統(tǒng)組成如圖12所示。
仿真系統(tǒng)中設(shè)置運(yùn)動(dòng)參數(shù):步高h(yuǎn)=80mm,步長(zhǎng)200mm,160mm,100mm,單步時(shí)長(zhǎng)2s,關(guān)節(jié)最大輸出力矩70N·m,在8s時(shí)開始行走運(yùn)動(dòng),運(yùn)行至22s結(jié)束。
直行過程中對(duì)比實(shí)驗(yàn)了不同步長(zhǎng)下的運(yùn)動(dòng)效果并得到如圖13所示的機(jī)器人運(yùn)動(dòng)軌跡和L1號(hào)腿各關(guān)節(jié)輸出力矩結(jié)果,由圖13(a)可知,隨著機(jī)械腿擺動(dòng)步長(zhǎng)減小,機(jī)器人運(yùn)動(dòng)速度隨之降低,在擺動(dòng)步長(zhǎng)為200mm時(shí),得到機(jī)器人行走階段最大平均速度約0.1m/s;通過分析圖13(b)腿L1的基關(guān)節(jié)輸出力矩,隨著機(jī)器人行進(jìn)速度的提升,基關(guān)節(jié)輸出力矩隨之變大,既運(yùn)動(dòng)速度與基關(guān)節(jié)力矩呈正相關(guān);由圖13(c)(d)知,當(dāng)足腿處于支撐階段時(shí)髖關(guān)節(jié)輸出力矩最大,達(dá)到了52N·m,是支撐機(jī)器人的最主要?jiǎng)恿碓?,是機(jī)器人腿部的主要受力關(guān)節(jié)。綜合以上分析可得出基關(guān)節(jié)的驅(qū)動(dòng)能力決定了機(jī)器人的行進(jìn)速度,同時(shí)在設(shè)計(jì)機(jī)器人時(shí)應(yīng)著重注意髖關(guān)節(jié)的驅(qū)動(dòng)能力,以保證運(yùn)動(dòng)中機(jī)器人機(jī)體的穩(wěn)定,如若此關(guān)節(jié)驅(qū)動(dòng)能力不足將會(huì)導(dǎo)致機(jī)器人在運(yùn)動(dòng)過程中機(jī)體上下起伏和左右擺動(dòng),降低實(shí)際行走穩(wěn)定性。
機(jī)器人使用弧線步態(tài)運(yùn)動(dòng)過程中,設(shè)定基礎(chǔ)步長(zhǎng)200mm,對(duì)比實(shí)驗(yàn)了機(jī)器人兩側(cè)腿在不同步長(zhǎng)比例下機(jī)器人轉(zhuǎn)彎情況,如圖14所示為機(jī)器人機(jī)體中心投影在X-Y平面上運(yùn)動(dòng)路徑,其中兩組數(shù)據(jù)分別表示左側(cè)和右側(cè)腿的擺動(dòng)步長(zhǎng)之比為3:2和2:1的情況,在相同的運(yùn)動(dòng)時(shí)間內(nèi),隨著機(jī)器人兩側(cè)腿的步長(zhǎng)比例系數(shù)增大,轉(zhuǎn)彎半徑變小,同時(shí)機(jī)器人并未出現(xiàn)失穩(wěn)狀況。通過以上仿真,說明所設(shè)計(jì)步態(tài)和控制策略在直行和轉(zhuǎn)彎情景下具有合理性。
圖13 直行運(yùn)動(dòng)過程仿真結(jié)果
圖14 弧線步態(tài)仿真結(jié)果
利用D-H理論方法建立六足機(jī)器人運(yùn)動(dòng)學(xué)模型,推導(dǎo)出正-逆運(yùn)動(dòng)學(xué)數(shù)學(xué)表達(dá)式,并結(jié)合所設(shè)計(jì)的機(jī)器人運(yùn)動(dòng)參考步態(tài)、落足點(diǎn)調(diào)整策略和機(jī)體姿態(tài)控制方法,在虛擬物理環(huán)境下對(duì)機(jī)器人進(jìn)行運(yùn)動(dòng)仿真,通過以上運(yùn)動(dòng)仿真及數(shù)據(jù)分析可得結(jié)論:①采用基于模型的設(shè)計(jì)開發(fā)方法,驗(yàn)證了在步態(tài)設(shè)計(jì)中所提方法和策略的可行性、正確性,加快了機(jī)器人算法的開發(fā)設(shè)計(jì)流程;②此物理構(gòu)型的六足機(jī)器人基關(guān)節(jié)驅(qū)動(dòng)能力決定了行進(jìn)速度,髖關(guān)節(jié)是支撐腿的最大受力關(guān)節(jié),其最大驅(qū)動(dòng)能力決定機(jī)體質(zhì)量上限,為后續(xù)六足機(jī)器人設(shè)計(jì)與控制提供參考。