盧志強,侯媛彬,孟 蕓,周福娜
(1.西安科技大學 機械工程學院,陜西 西安 710054;2.河南大學 計算與信息工程學院,河南 開封 475004)
雙足機器人具有類人的結構和外觀,可以很好地適應人類的生活環境,是替代人類從事如煤礦救援等危險性工作的理想機器人[1]。人們期待雙足機器人能夠以類人的方式在現實環境中穩定可靠地行走[2],甚至是奔跑[3]。雖然人類可以相對輕松地執行各種運動,但將人類的行為轉化為雙足機器人動態運動仍然是一項具有挑戰性的任務。近40 a來,國內外研究機構與學者在雙足機器人領域進行了許多理論[4]和實驗研究[5],并取得顯著的發展,如HRP-4可以將車輛行駛在道路中央[6],ATLAS能跨越障礙、攀爬樓梯等[7]。
雙足行走問題是雙足機器人運動研究中最重要且最根本的問題,按照研究思想的不同,提出雙足行走方法可分為3類:其一是以人類行走特征為參考的步態生成方法。雙足機器人設計的原型是人類本身,很多研究人員使用高速光學運動捕捉系統獲取人體運動的軌跡,分析人類的運動特征,并將這些特征應用到仿人機器人的運動中。BOUTIN等捕捉人體全身運動軌跡,生成雙足機器人步行模式,將該方法成功應用于HRP-2和HOAP-3這2款機器人的行走[8]。吳偉國等采集人體髖、腿、踝的運動樣本,構建機器人仿人步行樣本庫,實現機器人與人跟隨步行[9]。其二是基于中樞模式發生器(central pattern generator,CPG)的步態生成方法。人類的雙足運動具有周期節律性的特征,CPG是能夠產生節律運動的神經環路網絡,模仿CPG產生節律信號,可控制機器人步行運動。劉成菊等使用腳底壓力和腰部加速度作為CPG的驅動,實現了機器人NAO對不同地形的自適應行走[10]。JUANG等使用連續多目標蟻群優化的全連接遞歸神經網絡構成CPG,解決NAO的多目標步態生成問題[11]。其三是基于雙足機器人簡化模型的步態生成方法。雙足機器人一般有幾十個自由度且沒有固定的基座,導致其動力學系統非常復雜。考慮到系統復雜度和計算復雜度,利用完整的動力學系統模型難以實現雙足機器人的步行運動,簡化動力學系統便成為實現雙足機器人步行運動很好且容易實現的方案。HONG等將仿人機器人簡化成一個單質點和可伸縮不計質量的腿構成的線性倒立擺模型[12],SHAFII等將雙足機器人簡化成一個不計質量桌子與將全部質量集中在一輛在桌面上行駛小車構成的桌子-小車模型[13],SHIMMYO等在單質點倒立擺模型的基礎上,進一步考慮了支撐腿和擺動腿質量,構成了三質心倒立擺模型[14]。
目前,已有的雙足機器人結構復雜程度還遠遜于人類,這決定了以人類特征為參考和基于中樞模式發生器的步態生成方法有其局限性,研究人員更傾向于采用雙足機器人簡化模型的方法。簡化模型的精度決定了控制效果的精度,LUO等在三質心模型中,采用加入角動量的模型預測控制,獲得了比單質心模型或一般三質心模型高的零力矩點尋跡精度[15]。另一方面,減少機器人控制中的約束條件能獲得更優的控制效果,SHIN等允許機器人身體垂直運動,提高了行走速度、降低了驅動電機的能耗[16]。若允許機器人身體有更多自由度的運動,可以獲得更好的控制效果。約束條件的減少,則意味著機器人控制中參數空間的增大,用人工智能的方法尋找最優解將是一個有意義的問題,WRIGHT等綜述了機器人運動控制中的常用智能算法[17]。
結合當前雙足機器人行走步態規劃領域的研究成果和存在的不足,文中提出一種兼顧雙足機器人行走穩定性的節能步態規劃算法,解決雙足機器人行走的步態規劃與控制問題。
文中使用的雙足機器人,具有雙臂和雙腿,可以模仿人體的行走運動,機器人的每條腿有5個自由度,分別為髖部轉角q1/q6,q2/q7,膝蓋轉角q3/q8,腳踝轉角q4/q9和q5/q10,設關節向量q=[q1,q2,…,q10]T。機器人前、側和垂直方向,分別被定義為X軸、Y軸和Z軸方向。世界坐標系的原點定位于機器人直立時的兩腳中點,機器人模型如圖1所示。雙足機器人每個腳底分別安裝4片FSR壓力傳感器,用來測量腳底作用力的分布,表1列出了機器人身體及右腿的質量及長度,機器人左腿的參數相同。

表1 雙足機器人的基本參數

圖1 實驗機器人的連桿結構
擬議的雙足機器人步態行走基于以下假設。
1)上身在任何時候都保持直立的姿態。人的軀干俯仰角度一般在3°以內[18],多數相關研究表明,這個假設是可以接受的[8-10,12-16]。
2)雙腳總是與地面平行。常見的多數仿人機器人沒有腳趾,在抬腳和落腳時,不能發揮改善驅動性能的作用[19]。

在諸多雙足機器人的動態穩定性指標中,使用最為廣泛的是零力矩點(zero moment point,ZMP)概念,ZMP是地面上由重力和慣性產生的總力矩水平分量為零的點[20]。設雙足機器人的5個質量點分別為身體b,左腿lu,左足ld,右腿ru,右足rd,組成集合Pc={b,lu,ld,ru,rd},位置為{ri|i∈Pc},其中b與髖中心點的距離為hb。同時,設左髖關節lh,左膝關節lk,左踝關節lf,右髖關節rh,右膝關節rk,右踝關節rf,組成集合Pr={lh,lk,lf,rh,rk,rf},位置為{rj|j∈Pr}。機器人的位置示意如圖2所示。

圖2 雙足機器人的五質心模型
在ZMP位置rZMP=[xZMP,yZMP,0]T處,地面作用力的合力F產生的力矩MZMP,與由于各質心的重力和慣性施加于機器人身體的合力矩M,滿足
n×MZMP=n×(M-rZMP×F)=0
(1)
式中
(2)
(3)

(4)
雙足機器人的建模中不可避免的存在建模誤差,HONG等將ZMP固定在支撐腳的中心,以實現最穩定的行走[12],但這并不是高效的方法。在支撐腳的區域內,劃出一些邊緣區域,用來補償建模誤差[16],并使ZMP位于支撐腳中部的有效ZMP區域(allowable ZMP region,AZR)方法,是一種在克服誤差與高效行走之間權衡的較好方法。設足長lfl、足寬lfw的雙足機器人,步行時步幅為s,雙足Y軸距離是w,AZR示意如圖3所示。文中分別用ηl=lal/lfl和ηw=law/lfw表示腳長方向和腳寬方向的容限,后續步態規劃算法中,ηl取固定值,并約定η=ηw。以左腳在前,右腳在后為例,在第1個DSP中,AZR是由點r1,r2,r3,r4,r5,r6構成的六邊形區域;在SSP時,AZR是由點r4,r5,r6,r7構成的長方形;在第2個DSP中,AZR是由點r5,r6,r7,r8,r9,r10構成的六邊形。

圖3 雙足機器人的AZR
依賴電池提供能源的雙足機器人,能耗E包括運動能耗Em和非運動能耗Ea這2部分[22]。Em用于維持電機的運行,是系統能耗的主要部分,其值為電機瞬時電壓向量um(t)和電流向量im(t)對時間t的積分。Ea用于傳感器、控制器和內部電路運行,其功率Pa在一段時間內是相對穩定的,可以表示為時間t的線性函數。即
(5)

(6)
基于前面的分析,文中的節能步態規劃問題可表述為
1)給定雙足機器人步長和AZR,允許身體在行走中三維運動,滿足1.1中假設條件,確定最小化能耗指標函數E的步態軌跡。
2)已知運動距離,確定包含開始步、中間步和停止步的完整步態軌跡,并利用AZR,提高雙足機器人行走的魯棒性。
文中提出的步態規劃算法分為步態參數優化(gait parameter optimization,GPO)算法和步態合成(gait synthesis,GSYN)算法2部分,如圖4所示。

圖4 步態規劃算法示意
1)GPO算法從步長集合S和AZR容限集合H選取元素si和ηi,在si傅里葉級數表示空間中布網運算,獲得符合ηi要求的種子集合Pi,在Pi中元素pi的鄰域,依據文中1.4中的算法計算能耗指標函數,按照最優梯度法迭代運算,獲得最小能耗指標函數的電機優化角度序列(步態軌跡)gi={qi(n)|N=1,2,…,N},存入數據庫。
GPO算法運算時間較長,算法宜于離線運行,對S和H完成運算后,將離線數據庫中的結果,復制到在線數據庫,GSYN計算中可實時調用。

GPO算法用于生成步態控制的電機角度序列,是文中算法的核心。按照雙足機器人行走的精度要求,從最小步長至最大步長離散取值,確定S中的元素si。H從值域[0,1]選取若干等級,對應不同的魯棒性要求的ηi。GPO算法從S和H依次選取元素si和ηi,進行布網梯度優化計算,以獲得滿足最小化E的gi。
2.2.1 布網計算方法
所謂布網計算,是將多維參數取值按照一定間隙離散化為網格,使構成的參數空間網格化,進而計算各個網格交點函數值的過程。若機器人步長為si,身體b進行滿足1.1中假設1的三維周期運動,位置rb(n)=[xb(n)yb(n)zb(n)]T可用有限階的傅里葉級數表示,即
(7)
式中rb(n)用參數{ak|k=1,2,…,18}表示;N為步態周期,ω0=2π/N。若ak∈[dk,uk]按照間隙μk取值為Ak={dk,dk+μk,dk+2μk,…,uk},k=1,2,…,18。則布網形成的交點集合U為(Ak|K=1,2,…,18)的笛卡爾積,即U=A1×A2×…×A18。
另一方面,若設機器人運動起始為左腿在前,右腿在后的雙支撐階段,隨后右腿擺動向前,且右腳rf起始位置為[0 0 0]T,并設運動滿足1.1中假設3,則位置rrf(n)=[xrf(n)yrf(n)zrf(n)]T運動軌跡為
(8)
式中w為步寬,cm;hf為步高,cm;N1=N/16,N2=7N/16,N3=3N/8。機器人的雙足運動具有對稱性,左腳軌跡rlf(n)為rrf(n)時移N/2,并在Y方向對稱取值。
HERZOG等論述了已知rb(n)和rrf(n)求解雙足機器人關節角度q(n)的逆動力學方法[24]。布網空間U一般具有較大的元素數目,考慮rb(n)具有的運動特性,可排除rb(n)在U中的一些不合理取值,從而減少需要的逆動力學計算數量。常見的rb(n)特性有如下特點。
1)xb(n)在步態周期內單調增。
2)yb(n)前半個周期為凸函數,后半個周期為凹函數,且在半個周期內無拐點。
3)zb(n)在前、后半個周期內均為先單調增,后單調減。


2.2.2 梯度尋優算法


算法2.1 梯度尋優算法
給定Pi,δλ,AZR,
forλ=1,2,…,Λ do

重復進行


end for


給定運動距離d,規劃S*={sj|j=1,2,…,c}包括2個起始步s1和s2,2個停止步sc-2和sc-1,多個循環步sm,m=3,4,…,c-3。其中s1=sc-1,s2=sc-2,循環步sm具有相等的距離。起始步和停止步的總長db控制在1~2sm,即sm (9) yMIN=min{c0(yZMP(n)-yAZR(n))|n=1,2,…,N} (10) 按照增量PI控制算法,可計算Δηj (11) 式中kP,kI分別為比例、積分系數。 (12) 表2 梯度尋優中的 圖5 能耗指標函數收斂曲線 為對比算法性能,以機器人髖高度固定[15]和髖高度按余弦波形垂直變化[16],其他條件與文中算法相同,設置算法二和算法三,經過優化計算后,其E分別為280.4和252.4 mJ,并標識于圖5中。設機器人步態以DSP起始,單步周期N=16,DSP比率σ=0.25,3種算法的單步ZMP軌跡如圖6所示,其中文中算法采用能耗E=231.5 mJ時的步態數據。 圖6 ZMP數據分析 表3 ZMP軌跡分析 若取d=90 cm,sm=12 cm,按照式(9)計算得c=10,s1=2 cm,s2=7 cm,則機器人運動的步長S*={2,7,12,12,12,12,12,12,7,2}。在機器人運動的每步均以ηj=5/6從在線數據庫中取得gj=[q1q2…q16],j=1,2,…,10,控制機器人的關節運動,對應的雙足機器人步態運動的動態仿真如圖7所示。 圖7 機器人步行的動態仿真 依照前述仿真數據,實測機器人行走試驗如圖8所示。試驗中,設定行走距離90 cm,在第1步為右腳支撐,設定SSP右腳yAZR=-1.5 cm,初始η1=1/3,在行走中,檢測到yMIN=1.53 cm,經過式(11)PI及邏輯運算,得Δη1=-1/3,按式(12)取η2=2/3。其后,經過第2,3步的校正后,η值穩定在5/6。若控制中選用η1=1/3的控制方法,行走sm=12 cm時,E=276.3 mJ。而采用文中的GSYN算法,調整η=5/6后,行走12 cm的E=231.5 mJ,其值下降了16.21%。 圖8 機器人行走的試驗 1)電機驅動的機器人具有質量分散的特點,建立多質心機器人模型可較好的描述機器人物理特性。在機器人多質心模型的基礎上,建立了以負荷轉矩為主要參數的能耗函數,能在仿真中精確而方便地計算機器人運動的能耗指標。 2)GPO算法中的對運動空間網格化的過程中,要求單個網孔內不出現多個峰值,選擇合適的網孔間隙,此方法適用于多數系統的優化。算法的梯度逼近中按照精度要求,確定逐次逼近的步長,在網孔規模較大時,可采用將網孔空間再次網格化的方法加速逼近過程。GPO算法對系統優化的過程中需要進行大量的運算,可在有限的時間內確定找到最優值,隨著計算機科學的進步,其對比隨機優化算法,將愈加表現出其優越的性能。 3)GSYN算法按照實際機器人行走的要求,規劃含起始步、中間步和停止步的完整運動過程。在機器人的行走過程中,算法根據反饋的ZMP數據,修改機器人運動的AZR,從而克服建模和環境誤差的干擾,可實現低能耗和高魯棒性的折中,較好地解決具有高度非線性特征的雙足機器人行走問題。因此,該算法也作為一種新途徑,推廣到煤礦救援機器人的開發中。


3 仿真與實驗分析








4 結 論