劉 鋮,周亞麗,張奇志
(北京信息科技大學(xué) 自動(dòng)化學(xué)院,北京 100192)
20世紀(jì)末,加拿大著名學(xué)者T.McGeer[1]首次提出了被動(dòng)動(dòng)態(tài)行走的概念,即機(jī)器人可以不依靠外力,僅憑自身的重力特性在具有一定坡度的斜坡上行走。根據(jù)這一概念,他成功研制出了平面被動(dòng)行走雙足機(jī)器人。該機(jī)器人采用圓弧形的腳掌設(shè)計(jì),雖能夠在具有一定傾斜角度的斜坡上行走,但存在不可控的特點(diǎn),實(shí)用價(jià)值不大。Michael J.Coleman[2]對(duì)雙足機(jī)器人進(jìn)行改進(jìn),加入了自由擺動(dòng)的手臂,使其能夠適應(yīng)三維空間的自由行走。雖然被動(dòng)動(dòng)態(tài)行走方法使得機(jī)器人能夠高效行走,能量消耗低且步態(tài)自然,但其抗干擾性能較差,穩(wěn)定性隨著斜坡坡度變大不斷降低[3]。并且機(jī)器人不能在平地行走,因此使用場(chǎng)景十分有限??紤]到傳統(tǒng)的主動(dòng)行走機(jī)器人存在效率低、步態(tài)不自然的缺點(diǎn),介于純被動(dòng)行走和主動(dòng)行走機(jī)器人之間的欠驅(qū)動(dòng)雙足機(jī)器人便成為了眾多學(xué)者們的研究對(duì)象。
欠驅(qū)動(dòng)雙足機(jī)器人只在機(jī)器人的部分關(guān)節(jié)增加驅(qū)動(dòng)裝置,讓機(jī)器人不僅能在平地行走,還能提高其魯棒性。自1980年以來(lái),Raibert等[4]對(duì)欠驅(qū)動(dòng)雙足機(jī)器人進(jìn)行了深入的研究。除此之外,Buss B. G.[5]研發(fā)了欠驅(qū)動(dòng)雙足機(jī)器人MARLO,該機(jī)器人在踝關(guān)節(jié)新增了驅(qū)動(dòng)結(jié)構(gòu),使得機(jī)器人能夠在三維空間中自由行走。此外,美國(guó)康奈爾大學(xué)[6]研制了五自由度欠驅(qū)動(dòng)機(jī)器人,Tedrake等[7]研制了六自由度無(wú)膝關(guān)節(jié)的3D欠驅(qū)動(dòng)機(jī)器人。清華大學(xué)[8]研制的欠驅(qū)動(dòng)機(jī)器人THR-I,成功實(shí)現(xiàn)了步行周期為0.64 s、步幅為腿長(zhǎng)0.56倍的快速行走。張奇志等[9]對(duì)半被動(dòng)雙足機(jī)器人的固定點(diǎn)進(jìn)行穩(wěn)定性分析,采用脈沖推力作為行走的動(dòng)力源,使得機(jī)器人可以在水平面上穩(wěn)定行走。這些研究成果不僅驗(yàn)證了采用被動(dòng)行走原理設(shè)計(jì)欠驅(qū)動(dòng)雙足機(jī)器人的可行性,也對(duì)基于被動(dòng)行走原理的雙足機(jī)器人的研究起到了推動(dòng)作用。
建立機(jī)器人的動(dòng)力學(xué)模型是研究欠驅(qū)動(dòng)雙足機(jī)器人行走步態(tài)的首要步驟。Blickhan[10]在1989年首次提出了彈簧負(fù)載倒立擺模型(spring-loaded inverted pendulum,SLIP),該模型將人類奔跑時(shí)雙腿的運(yùn)動(dòng)簡(jiǎn)化為兩條帶彈簧的腿的交替運(yùn)動(dòng)。Rummel等[11]通過(guò)多次步態(tài)仿真證實(shí)了柔性腿在實(shí)際行走過(guò)程中具有較好的抗干擾能力。SLIP 模型雖然具有較強(qiáng)的穩(wěn)定性,但其魯棒性較差。因此,Visser等[12]采用變剛度的柔性腿進(jìn)行仿真,使得系統(tǒng)的魯棒性大大增強(qiáng)。Bae等[13]在經(jīng)典SLIP模型的基礎(chǔ)上增加一個(gè)虛擬彈簧和一個(gè)阻尼器,并提出新的狀態(tài)估計(jì)器,對(duì)該模型進(jìn)行運(yùn)動(dòng)學(xué)估計(jì)。本文擬對(duì)具有SLIP模型和柔性腿的欠驅(qū)動(dòng)雙足機(jī)器人進(jìn)行研究。
由于欠驅(qū)動(dòng)機(jī)器人的動(dòng)力學(xué)模型具有非線性和強(qiáng)耦合性,是一個(gè)高維的變結(jié)構(gòu)模型,通過(guò)傳統(tǒng)的數(shù)值計(jì)算方法難以對(duì)機(jī)器人運(yùn)動(dòng)過(guò)程中的步態(tài)進(jìn)行有效分析。而采用胞映射算法則可以對(duì)欠驅(qū)動(dòng)機(jī)器人的動(dòng)力學(xué)模型的全局性態(tài)進(jìn)行有效的分析。傳統(tǒng)胞映射算法有兩種形式:簡(jiǎn)單胞映射 (simple cell mapping,SCM)和廣義胞映射 (generalized cell mapping,GCM)。
自從Hsu C.S.[14]于1987年首次將胞映射用于非線性系統(tǒng)的全局性態(tài)分析以來(lái),胞映射方法在各個(gè)領(lǐng)域得到了廣泛應(yīng)用。柳寧等[15]利用胞映射研究直腿和有膝關(guān)節(jié)的被動(dòng)機(jī)器人,得到了直腿模型的吸引域。張佩杰[16]將Newton-Raphson迭代的思想應(yīng)用到胞映射方法中,極大地提高了吸引域的計(jì)算效率與精度。郭聞昊等[17]通過(guò)用簡(jiǎn)單胞映射方法計(jì)算不同摩擦系數(shù)對(duì)應(yīng)的直腿被動(dòng)行走器的吸引盆,得到了模型的吸引盆會(huì)隨著髖關(guān)節(jié)含庫(kù)倫摩擦系數(shù)的變化而改變的結(jié)論。熊夫睿[18]通過(guò)對(duì)胞映射算法的改進(jìn),大大提高了運(yùn)用胞映射計(jì)算系統(tǒng)全局性態(tài)的速度。孫建橋等[19]將胞映射算法用于多目標(biāo)最優(yōu)控制設(shè)計(jì),并通過(guò)計(jì)算機(jī)的并行計(jì)算解決高維多目標(biāo)的優(yōu)化問(wèn)題。傳統(tǒng)胞映射算法往往會(huì)產(chǎn)生巨大的運(yùn)算量,而采用類龐加萊胞映射 (Poincare-like simple cell mapping,PLSCM)算法[20]能有效地解決這個(gè)問(wèn)題。PLSCM算法通過(guò)引入龐加萊截面,使胞空間維數(shù)降一維,計(jì)算量大大降低,且更容易求得周期解及分辨周期軌道。尤其在兩個(gè)周期解軌跡十分接近時(shí),PLSCM算法優(yōu)勢(shì)更為明顯。
在上述文獻(xiàn)中,PLSCM算法主要是應(yīng)用在廣義非線性系統(tǒng)中,來(lái)分析系統(tǒng)的全局特性;或者是應(yīng)用到雙足機(jī)器人領(lǐng)域,對(duì)純被動(dòng)剛性腿機(jī)器人進(jìn)行吸引域的分析。在本文所采用的欠驅(qū)動(dòng)機(jī)器人系統(tǒng)中,在機(jī)器人一個(gè)運(yùn)行周期內(nèi),擺動(dòng)腿擺動(dòng)階段不施加控制,僅關(guān)注單雙支撐切換瞬間系統(tǒng)狀態(tài)的變化。因此可采用PLSCM算法,以單雙支撐切換瞬間作為龐加萊截面,可大大減少計(jì)算量。
圖1為所要研究的雙足機(jī)器人模型。由一個(gè)髖關(guān)節(jié)和兩條長(zhǎng)度可變的柔性腿組成。兩腿各有一個(gè)彈性系數(shù)為k0的彈簧,腿的原始長(zhǎng)度為L(zhǎng)0,L1為支撐腿長(zhǎng)度,L2為擺動(dòng)腿長(zhǎng)度,腿的長(zhǎng)度變化量為u1和u2。髖關(guān)節(jié)的質(zhì)量為M,腿無(wú)質(zhì)量。以q=[x,y]T為系統(tǒng)的廣義坐標(biāo),其中x是髖部運(yùn)動(dòng)的水平位移,y是髖部運(yùn)動(dòng)的豎直位移。圖2為機(jī)器人一個(gè)完整的步態(tài)周期。其初始狀態(tài)是支撐腿垂直站立,擺動(dòng)腿不與地面接觸,即單支撐階段。當(dāng)髖關(guān)節(jié)下降到高度H時(shí),此時(shí)的H=L0sinα稱為切換高度,擺動(dòng)腿以原始長(zhǎng)度L0和角度α接觸地面,然后機(jī)器人進(jìn)入雙支撐階段。當(dāng)髖關(guān)節(jié)升高到高度H時(shí),系統(tǒng)再次進(jìn)入單支撐階段,如此循環(huán)反復(fù)。
圖1 雙足機(jī)器人結(jié)構(gòu)
圖2 雙足機(jī)器人完整的步態(tài)周期
基于拉格朗日方程建立動(dòng)力學(xué)方程。拉格朗日函數(shù)定義為
(1)
(2)
式中:n為自由度數(shù),在本文中n=2;qi為廣義坐標(biāo);Qi為作用在系統(tǒng)上的廣義力。
由于髖關(guān)節(jié)沒(méi)有力矩,則作用在廣義坐標(biāo)[x,y]T的廣義力Qi為0。以地面為勢(shì)能零點(diǎn),計(jì)算總動(dòng)能和總勢(shì)能,可得拉格朗日函數(shù)的表達(dá)式為
(3)
將式(2)代入式(3),可得單支撐階段的動(dòng)力學(xué)方程為
(4)
(5)
將式(4)、(5)寫(xiě)成如下的形式:
(6)
式中:
(7)
同理,雙支撐階段可以表示為
(8)
可以簡(jiǎn)化為
(9)
由式(9)可見(jiàn),當(dāng)機(jī)器人處于單支撐階段時(shí),是欠驅(qū)動(dòng)模型,在雙支撐階段是全驅(qū)動(dòng)模型。所以從總體上來(lái)說(shuō)是欠驅(qū)動(dòng)系統(tǒng)。
以不動(dòng)點(diǎn)作為初值能使機(jī)器人直接進(jìn)入穩(wěn)定的步態(tài)周期,因此先找到系統(tǒng)的不動(dòng)點(diǎn)至關(guān)重要。將每一次完整的周期步態(tài)看作一次Poincare映射F,Poincare截面取機(jī)器人單雙支撐切換瞬間。設(shè)一個(gè)狀態(tài)zi(i=1,2,…,n),有
zi+1=F(zi)
(10)
若有
F(z*)=z*
(11)
則z*稱為不動(dòng)點(diǎn)。偏離不動(dòng)點(diǎn)一定范圍的狀態(tài)變量依然能產(chǎn)生穩(wěn)定步態(tài),這個(gè)范圍便是該不動(dòng)點(diǎn)的吸引域。在吸引域中選取系統(tǒng)的狀態(tài)初值,機(jī)器人通過(guò)一段時(shí)間的動(dòng)態(tài)過(guò)程,可以收斂到穩(wěn)定的步態(tài)周期。
在實(shí)際的系統(tǒng)中,每次都從精確的不動(dòng)點(diǎn)出發(fā)是難以達(dá)到的,因此需要對(duì)不動(dòng)點(diǎn)的吸引域進(jìn)行確定。從不動(dòng)點(diǎn)的吸引域中選擇系統(tǒng)的步態(tài)初值能很大程度降低初值選取的不確定性。
PLSCM算法是利用Poincare映射的思想,將求解非線性動(dòng)力系統(tǒng)周期解的問(wèn)題
u(t)=u(t+kT)k為正整數(shù)
(12)
轉(zhuǎn)化為求解Poincare截面上點(diǎn)映射系統(tǒng)的周期點(diǎn)問(wèn)題
u*=Cm(u*)
(13)
式中:C為定義在整個(gè)胞狀態(tài)空間上的映射函數(shù);m為胞映射的階次。在PLSCM算法中,胞函數(shù)C即為Poincare映射F。
圖3 胞空間的劃分
進(jìn)行胞映射前,先賦予所有胞編號(hào)。正規(guī)胞共N個(gè),編號(hào)為從2到N+1的正整數(shù),陷胞編號(hào)則為1,陷胞為所關(guān)注的狀態(tài)空間范圍之外的胞。賦予每個(gè)胞3個(gè)參數(shù):分別為該胞的群數(shù)G,該胞對(duì)應(yīng)周期解的周期數(shù)P,以及該胞映射到周期胞需要的最少映射步數(shù)S。陷胞的周期數(shù)P=1。將正規(guī)胞分成未處理胞、在處理胞和已處理胞。未處理胞為進(jìn)行胞映射之前的正規(guī)胞,其群數(shù)G是0,已處理胞有一個(gè)正整數(shù)的群數(shù),映射到同一周期運(yùn)動(dòng)的已處理胞具有相同的群數(shù)。以胞編號(hào)為順序進(jìn)行胞映射,設(shè)其編號(hào)為n,以該胞中心點(diǎn)作為初值開(kāi)始胞映射,得到:
zn→C(zn)→C(C(zn))→…Cm(zn)→…
(14)
當(dāng)映射到下一個(gè)胞時(shí),對(duì)該胞的群數(shù)進(jìn)行檢查。如果新映射到的胞群數(shù)為0,則該胞為未處理胞,將此胞的群數(shù)賦為-1,表示正在對(duì)此胞進(jìn)行處理,繼續(xù)對(duì)此胞進(jìn)行胞映射處理;如果新映射到的胞群數(shù)為正整數(shù),表示該胞為已處理胞,說(shuō)明映射到了已發(fā)現(xiàn)的周期序列,則將整個(gè)映射序列中的胞都賦予這個(gè)正整數(shù),結(jié)束此序列,進(jìn)行下一個(gè)未處理胞的映射;如果新映射到的胞的群數(shù)為-1,表示映射到了在處理胞,即發(fā)現(xiàn)一個(gè)新的周期運(yùn)動(dòng),則將序列中所有的胞的群數(shù)賦為一個(gè)新的正整數(shù)值,然后結(jié)束此序列,進(jìn)行下一個(gè)未處理胞的映射。按照上述步驟依次對(duì)所有未處理胞進(jìn)行映射,直到所有胞都被處理過(guò)。
要求取不動(dòng)點(diǎn)的吸引域,需先對(duì)所有正規(guī)胞進(jìn)行胞映射得出周期胞,然后用所得的周期胞作為初值進(jìn)行迭代得出模型的不動(dòng)點(diǎn),最后通過(guò)PLSCM算法計(jì)算不動(dòng)點(diǎn)的吸引域。
首先給出機(jī)器人的各部分參數(shù):M=15 kg,L0=1 m,α=62°,k0=1 500 N/m,g=9.8 m/s2,u1=0,u2=0。根據(jù)給定機(jī)器人實(shí)際物理參數(shù),經(jīng)過(guò)仿真實(shí)驗(yàn)測(cè)試,確定有效的狀態(tài)空間范圍為:x1∈[0.6,1.8],x2∈[-2,0]。每個(gè)方向離散100份,加上陷胞共計(jì)10 001個(gè)胞。對(duì)所有胞進(jìn)行編號(hào),并按順序?qū)⑺姓?guī)胞依次進(jìn)行一次PLSCM計(jì)算。
通過(guò)計(jì)算發(fā)現(xiàn),第3 901號(hào)胞映射回自身,且有324個(gè)胞映射到3 901號(hào)胞,可知3 901號(hào)胞為周期胞,部分結(jié)果如表1所示。用該胞對(duì)應(yīng)的狀態(tài)變量組合代入機(jī)器人的動(dòng)力學(xué)模型進(jìn)行迭代計(jì)算,得到不動(dòng)點(diǎn)[1.062,-0.035],再運(yùn)用PLSCM算法對(duì)不動(dòng)點(diǎn)的吸引域進(jìn)行計(jì)算,整個(gè)與不動(dòng)點(diǎn)組數(shù)相同的胞形成的映射序列便構(gòu)成了不動(dòng)點(diǎn)的吸引域,得出的吸引域如圖4所示,不動(dòng)點(diǎn)用“*”標(biāo)出。
從仿真程序運(yùn)行中可以看出:由于簡(jiǎn)單胞映射是對(duì)一個(gè)完整步態(tài)周期連續(xù)跟蹤,一臺(tái)2.20 GHz CPU、8 GB內(nèi)存的計(jì)算機(jī)對(duì)雙足機(jī)器人的步態(tài)周期進(jìn)行連續(xù)計(jì)算,需要約0.536 s,相比于僅關(guān)注龐加萊截面上狀態(tài)變量的PLSCM算法所需的0.268 ms,計(jì)算時(shí)間相差約2 000倍,可見(jiàn)PLSCM算法能使計(jì)算量大大減少。
表1 一次PLSCM計(jì)算部分結(jié)果
圖4 用PLSCM算法得到的機(jī)器人吸引域
使用PLSCM算法得到系統(tǒng)的吸引域和不動(dòng)點(diǎn)之后,選取離不動(dòng)點(diǎn)不同距離的胞作為初值進(jìn)行步態(tài)仿真,對(duì)比不同初值下雙足機(jī)器人行走步態(tài)的區(qū)別。首先,選取不動(dòng)點(diǎn)[1.062,-0.035]作為初值,仿真結(jié)果如圖5所示。從圖5中可以看出,雙足機(jī)器人沒(méi)有經(jīng)過(guò)過(guò)渡過(guò)程,直接進(jìn)入穩(wěn)定的步態(tài)周期,形成穩(wěn)定的極限環(huán)。而且由于模型采用的是柔性腿,所以在機(jī)器人足底碰撞時(shí)各部分狀態(tài)變量不會(huì)發(fā)生突變,髖關(guān)節(jié)的水平速度和豎直速度這兩個(gè)狀態(tài)變量得以形成首尾相連的環(huán)。
圖5 不動(dòng)點(diǎn)為初值產(chǎn)生的步態(tài)周期
選取不動(dòng)點(diǎn)附近的胞[1.11,-0.515]作為初值進(jìn)行步態(tài)仿真,仿真結(jié)果如圖6所示??梢钥闯觯瑱C(jī)器人在經(jīng)歷幾個(gè)周期之后進(jìn)入穩(wěn)定的步態(tài)。從髖關(guān)節(jié)的水平速度和豎直速度的變化可知,該胞經(jīng)過(guò)幾次胞映射之后才映射到不動(dòng)點(diǎn)上,這也導(dǎo)致剛開(kāi)始時(shí)髖關(guān)節(jié)的水平速度有一定的起伏,在映射到不動(dòng)點(diǎn)的時(shí)候才穩(wěn)定下來(lái)。可知,在不動(dòng)點(diǎn)附近選取的初值能使機(jī)器人映射一定步數(shù)后進(jìn)入穩(wěn)定的步態(tài)。
圖6 不動(dòng)點(diǎn)附近的初值([1.11,-0.515])產(chǎn)生的步態(tài)周期
再選取吸引域邊緣遠(yuǎn)離不動(dòng)點(diǎn)的胞[1.302,-1.385]作為初值進(jìn)行步態(tài)仿真,結(jié)果如圖7所示。從髖關(guān)節(jié)的水平速度和豎直速度的變化可知,該胞剛開(kāi)始完全不能產(chǎn)生穩(wěn)定的步態(tài)周期,經(jīng)過(guò)多次胞映射之后映射到不動(dòng)點(diǎn)才逐漸穩(wěn)定下來(lái)。進(jìn)入穩(wěn)態(tài)的時(shí)間較不動(dòng)點(diǎn)附近初值進(jìn)入穩(wěn)定步態(tài)的時(shí)間要長(zhǎng)。從圖7中可以看出,機(jī)器人在進(jìn)入穩(wěn)定步態(tài)的調(diào)整過(guò)程中,髖關(guān)節(jié)的水平速度有較大起伏,不如不動(dòng)點(diǎn)附近初值的水平速度與水平位移產(chǎn)生的曲線平順。
圖7 遠(yuǎn)離不動(dòng)點(diǎn)的初值([1.302,-1.385])產(chǎn)生的步態(tài)周期
最后,選取陷胞[0.822,-1.595]作為系統(tǒng)的初值,所得的步態(tài)周期如圖8所示。可以看出,無(wú)論是髖關(guān)節(jié)的水平速度還是豎直速度,隨著水平位移的增加都是一片混亂,兩狀態(tài)變量一直不能形成穩(wěn)定的步態(tài),可見(jiàn)機(jī)器人在吸引域之外不能進(jìn)入穩(wěn)定的步態(tài)周期。
圖8 陷胞為初值時(shí)產(chǎn)生的步態(tài)
本文通過(guò)拉格朗日第二方程推導(dǎo)出機(jī)器人的動(dòng)力學(xué)方程,用PLSCM算法對(duì)柔性雙足欠驅(qū)動(dòng)機(jī)器人進(jìn)行研究,得到機(jī)器人模型的周期胞和不動(dòng)點(diǎn)的吸引域,從吸引域中選取初值能使機(jī)器人較快地進(jìn)入穩(wěn)定的周期步態(tài)。選取離不動(dòng)點(diǎn)不同距離的胞進(jìn)行映射,發(fā)現(xiàn)不同的胞進(jìn)入穩(wěn)定步態(tài)所需要的步數(shù)不同。以不動(dòng)點(diǎn)作為初值,機(jī)器人直接進(jìn)入穩(wěn)定的步態(tài)周期,以遠(yuǎn)離不動(dòng)點(diǎn)的胞作為初值,機(jī)器人經(jīng)過(guò)一定的步態(tài)周期也能進(jìn)入穩(wěn)定的步態(tài),用陷胞作為初值則機(jī)器人無(wú)法產(chǎn)生穩(wěn)定的步態(tài)。在以上研究的基礎(chǔ)上,如何通過(guò)改變機(jī)器人各部分的物理參數(shù)得到更大的吸引域,使模型具有更好的抗干擾能力是進(jìn)一步研究的課題。