畢盛 莊鐘杰 閔華清
(1.華南理工大學(xué)計算機科學(xué)與工程學(xué)院,廣東廣州510006;2.華南理工大學(xué)軟件學(xué)院,廣東廣州510006)
模仿人類的運動特點和行走方式,為仿人機器人構(gòu)建雙足穩(wěn)定行走的步態(tài)規(guī)劃方法是機器人領(lǐng)域的一個研究熱點和難點.目前一些仿人機器人已經(jīng)實現(xiàn)了穩(wěn)定的行走,但如何在保持步行穩(wěn)定的情況下使機器人步行速度更快、能耗更小還需要進一步的研究.已有一些學(xué)者就這些問題開展了研究.文獻[1]中通過對步行過程中描述髖部和腳部軌跡的7個參數(shù)進行優(yōu)化,使機器人在穩(wěn)定行走的過程中消耗的能量最小.文獻[2]中以穩(wěn)定性為目標(biāo),通過對機器人步行參數(shù)尋優(yōu)實現(xiàn)機器人穩(wěn)定行走.但這兩種方法只對一個目標(biāo)進行優(yōu)化,以最大限度地滿足步行過程的某個指標(biāo),而沒有考慮其它指標(biāo),因此需要開展步態(tài)規(guī)劃中多目標(biāo)優(yōu)化問題的研究.
通常采用強度Pareto進化算法(SPEA)來實現(xiàn)步態(tài)規(guī)劃的多目標(biāo)優(yōu)化.文獻[3]中采用SPEA對機器人行走過程的運動穩(wěn)定性、能耗和運動速度進行尋優(yōu).文獻[4]中采用SPEA方法對行走過程的能耗和力矩變化量進行尋優(yōu).它們都較好地實現(xiàn)了機器人的行走,但都沒有建立機器人運動的簡化模型,需要在機器人運動的整個可行解空間內(nèi)進行搜索,因此求解時間長而不利于在線生成步態(tài).如何選擇合適的步行參數(shù)來描述機器人的步行過程及相應(yīng)的步態(tài)規(guī)劃方法,還需要進行進一步的研究和嘗試.
針對這些問題,文中提出了基于三維倒立擺模型的多目標(biāo)優(yōu)化方法.首先,建立了SCUT-I仿人機器人的倒立擺模型,以實現(xiàn)機器人的穩(wěn)定行走[5-6],并通過質(zhì)心高度zc、步行周期Tsup、步行單元雙足支撐率rdbl、抬腳高度lz和抬腳寬度ly(沿y軸偏移量)來描述機器人的行走過程.最后通過改進型強度Pareto進化算法(SPEA2)[7]從機器人步行過程的穩(wěn)定性、移動性和能耗3個方面進行參數(shù)尋優(yōu),獲得穩(wěn)定、快速和能耗小的步行模式,并通過仿真和實物機器人的實驗驗證所提算法的有效性.
基于倒立擺的雙足步態(tài)規(guī)劃將步行過程視為由多個步行單元依次連接而成.
在[0,Tsup]內(nèi),將步行單元定義為如圖1所示的一段關(guān)于y軸對稱的三維線性倒立擺軌跡[5].
給定Tsup和質(zhì)心z軸坐標(biāo)zc后,在以支撐點為原點的相對坐標(biāo)系下步行單元確定為,其質(zhì)心軌跡為[5]
式中:(xi,yi)為步行單元的初始位置;(˙xi,˙yi)為步行單元的初始速度;為重力加速度.
圖1 三維線性倒立擺步行單元Fig.1 3D linear inverted pendulum walk primitive
在步行單元的單腳支撐階段[0,tsgl],擺動腿踝關(guān)節(jié)從(xsi,ysi,zsi)運動至(xsf,ysf,zsf),可用線性插值加正弦插值生成其軌跡:
由于正弦附加項的作用,在y軸方向上可保持機器人軀干平衡,在z軸方向上擺動腿可形成先抬高后放低的運動軌跡.將步行單元與擺動腿運動結(jié)合起來,可以完整地描述一個步行周期內(nèi)質(zhì)心與左右踝關(guān)節(jié)的運動軌跡.
機器人的行走過程由多個步行單元依次連接而成,圖2標(biāo)出機器人從雙足并排站立開始,最初右腳作為支撐腳向前走5步,直到停步的各個落腳點位置.其中Ln和Rn分別表示以左腳、右腳為擺動腳向前邁出ˉ的距離.規(guī)劃機器人落腳點與質(zhì)心的距離在x 軸方向上為,在y 軸方向上為,使機器人以最佳步行單元前進.
整個行走過程可以用圖3所示狀態(tài)機來說明.其中準(zhǔn)備狀態(tài)機器人雙足并排站立;起步階段是左腳向前邁出ˉ距離進入狀態(tài)L1,而右腳向前邁出進入狀態(tài)R3;接著左腳向前邁出ˉ進入狀態(tài)L4,此后機器人可交替雙腳前進,在狀態(tài)L4與狀態(tài)R4之間進行切換.在狀態(tài)R4中,當(dāng)機器人要停止時,右腳支撐左腳向前邁出ˉ返回準(zhǔn)備狀態(tài).
圖2 直線行走示意圖Fig.2 Schematic diagram of straight walking footprints
圖3 步行過程狀態(tài)圖Fig.3 State diagram of walking process
將雙足行走的步態(tài)規(guī)劃視為由多個步行單元依次連接而成,因此優(yōu)化問題的目標(biāo)是尋找滿足機器人各種約束的最佳步行單元.
2.1.1 決策變量及約束條件
圖4 在L4時刻的步行單元Fig.4 Walk primitive at L4time
(2)設(shè)髖關(guān)節(jié)與質(zhì)心距離為d,機器人步長及步寬受最大腿長lm與質(zhì)心高度zc約束,即
(3)對任意時刻 t∈[0,Tsup],質(zhì)心與左右踝關(guān)節(jié)的長度小于最大等效腿長,即
式中,pcom(t)、pl(t)、pr(t)分別為 t時刻質(zhì)心、左踝和右踝的位置.
(4)任意時刻關(guān)節(jié)j的角度約束為
(5)任意時刻關(guān)節(jié)j的最大角速度約束為
2.1.2 目標(biāo)函數(shù)
文中將尋找最佳步行單元的最優(yōu)化問題抽象為一個多目標(biāo)優(yōu)化問題,并提出了3個目標(biāo)函數(shù)用于衡量機器人的穩(wěn)定程度、前進速度及能耗.
(1)穩(wěn)定性.機器人質(zhì)心地面投影與支撐中心的距離是影響機器人穩(wěn)定性的重大因素,質(zhì)心越接近支撐中心,行走越穩(wěn)定.因此,定量表示機器人穩(wěn)定性指標(biāo)為
其中(xcen,ycen)為支撐中心.在單足支撐階段[0,tsgl),支撐中心為(xsup,ysup);而在雙足支撐階段[tsgl,tsup],支撐中心為左右踝關(guān)節(jié)的中點位置,即(0.5(xl+xr),0.5(yl+yr)),(xl,yl)和(xr,yr)分別在左、右踝關(guān)節(jié)的位置坐標(biāo).
(2)移動性.以機器人質(zhì)心前進的平均速度為衡量移動性能的指標(biāo),為了轉(zhuǎn)換成最小化問題,文中選取了速度的倒數(shù),即
(3)能耗.擺動腿的擺動越高,能耗越大,能耗指標(biāo)為
令式(2)中zsi=zsf=0,并對式(10)求積分,得
在求解最優(yōu)化問題時,可以構(gòu)造懲罰函數(shù),將約束優(yōu)化問題轉(zhuǎn)化為無約束優(yōu)化問題.對約束為gj(x)的最小化問題,其懲罰函數(shù)可設(shè)為
通過選取適當(dāng)?shù)腗值可使?jié)M足約束的值在可行解中占優(yōu).文中采用這種方法來處理步行單元優(yōu)化問題的約束(式(3)-(7)).
將約束代入目標(biāo)函數(shù)后,可使用SPEA來求解無約束多目標(biāo)優(yōu)化問題的Pareto最優(yōu)解集[8],文中采用了改進的SPEA(SPEA2)[9].設(shè)N為進化群體P的規(guī)模,M為歸檔集Q的大小,G為預(yù)定的進化代數(shù),則 SPEA2 算法步驟如下[7]:
1)產(chǎn)生初始群體P0,置Q0為空,n=0.
2)計算Pn和Qn中所有個體的適應(yīng)度.
3)將Pn和 Qn中所有非支配解個體保存到Qn+1中,若Qn+1的大小超過M,則利用修剪過程降低其大小;若Qn+1的大小比M小,則從Pn和Qn中選取支配個體填滿Qn+1.
4)若n≥G或其它終止條件滿足,則將Qn+1中所有的非支配解作為返回結(jié)果,算法結(jié)束.
5)對Qn+1執(zhí)行錦標(biāo)賽選擇.
6)對Qn+1執(zhí)行交叉、變異操作,并將結(jié)果保存到 Qn+1中,令 n=n+1,轉(zhuǎn)步驟2).
文中采用圖5所示流程進行SCUT-I型仿人機器人的步態(tài)規(guī)劃.
圖5 雙足步行步態(tài)產(chǎn)生流程圖Fig.5 Generation flowchart of biped walking gait
SCUT-I型機器人基本參數(shù)根據(jù)機器人上的舵機確定為:髖關(guān)節(jié)最大角速度=6.28 rad/s,髖關(guān)節(jié)與質(zhì)心距離d=0.06 m,腿長lm=0.27 m.決策參數(shù)取值范圍可根據(jù)經(jīng)驗確定,引導(dǎo)進化算法在較有可能獲得最優(yōu)解的可行域中搜索,結(jié)果見表1.其中zc的范圍使機器人行走時的質(zhì)心高度始終在直立時膝蓋之上、髖部之下,以保持曲膝步行的姿態(tài).與ly、lz均以小腿長度為上界,以盡可能使進化算法中交叉變異產(chǎn)生的個體位于可行域之內(nèi).
表1 決策參數(shù)取值范圍Table 1 Bounds of decision variables
利用Matlab建立了SCUT-I型仿人機器人的仿真模型,并實現(xiàn)其正逆運動學(xué)算法.根據(jù)倒立擺模型規(guī)劃機器人腰部和踝部軌跡,并借助于Zitzler[8-9]的SPEA2 C語言程序和Matlab混合編程功能,對穩(wěn)定性、速度和能耗3個目標(biāo)進行尋優(yōu).
設(shè)定進化算法中種群大小為50,懲罰因子M=105,經(jīng)過20次迭代后,末代個體的適應(yīng)度如圖6(a)所示.可以看出,末代個體懲罰函數(shù)均為0,可作為可行解,但仍然存在速度太小導(dǎo)致移動適應(yīng)度太大的個體,即圖6(a)左下方遠離可行解集的那個點.圖6(b)為末代所有個體的步行速度,設(shè)置最小速度閾值vth=0.1m/s,僅保留速度大于vth的個體(圖中虛線以上的個體),作為候選最佳步行單元集合.
圖6 末代的適應(yīng)度和步行速度Fig.6 Fitness and velocity of last generation
在候選多組解中,通過計算機仿真和實際機器人實驗可挑選出能較好滿足穩(wěn)定性、移動性和能耗目標(biāo)的一組解.文中選擇步行單元速度為0.68 m/s的一組解進行仿真,得出速度最快步行參數(shù)為:zc=0.22m,Tsup=0.24 s,ˉx=0.08 m,ˉy=0.06 m,rdbl=0,ly=0.04m,lz=0.05m.使用這組參數(shù)按圖2給出的落腳點位置對機器人進行雙足步行規(guī)劃,得到圖7所示的腰部和左右踝關(guān)節(jié)的運動軌跡.
圖7 腰部及左右踝部的步態(tài)軌跡Fig.7 Trajectories of waist,left and right ankles
根據(jù)文中提出的步行模式,截取機器人以上述最快步行參數(shù)行走時L4步行單元中6個不同時刻的姿態(tài),如圖8所示.
圖8 L4步行單元中機器人的姿態(tài)Fig.8 Robot poses during L4walk primitive
由于仿真和實際有一定的區(qū)別,仿真結(jié)果只能提供一些參考.要獲得真正使機器人行走的參數(shù),還需要在實際機器人上做實驗.
SCUT-I型仿人機器人是一款具有視覺和自主決策功能的全自主機器人,身高580 mm,有23個自由度(左右腿各6個:髖部3個、膝部1個、踝部2個),如圖9所示.
圖9 SCUT-I仿人機器人實物和結(jié)構(gòu)Fig.9 Material form and structure of SCUT-I Humanoid Robot
文中采用多級分布控制方法進行機器人步態(tài)實驗,系統(tǒng)數(shù)據(jù)流向見圖10.由PC(CPU E5800,內(nèi)存2GB)運行SPEA2,并生成機器人直線行走步態(tài).通過藍牙將步態(tài)文件發(fā)送到機器人的微控制器上,控制器再通過RS485串行總線將各個關(guān)節(jié)角度傳給各個舵機.實驗中發(fā)現(xiàn),生成步態(tài)時,速度越大,機器人越容易失去平衡.除了選用速度較小的步行單元外,還可以通過適當(dāng)改變擺動附加量ly、lz來補償機器人質(zhì)心偏移造成的失衡.如圖11所示,因機器人腰部沿-y方向的運動造成傾倒趨勢,可由擺動腿y軸正向的運動來糾正.
圖10 半分布式控制數(shù)據(jù)流向Fig.10 Data flow in semi-distributed control
圖11 擺動踝關(guān)節(jié)以維持平衡Fig.11 Swing ankle to keep balance
在SCUT-I上試驗了由Pareto最優(yōu)步行單元生成的多組步態(tài),并適當(dāng)?shù)卣{(diào)整擺動腿附加量,最終獲得速度為0.26m/s的穩(wěn)定步行模式.與原先沒有優(yōu)化過的速度為0.16 m/s的步態(tài)相比,Pareto方法在速度上提高了62.5%.
文中提出了一種基于倒立擺模型和強度Pareto進化算法的多目標(biāo)優(yōu)化仿人機器人步態(tài)規(guī)劃方法.首先建立SCUT-I仿人機器人的倒立擺模型,并利用質(zhì)心高度、步行周期、步行單元、雙足支撐率、抬腳高度和抬腳寬度(沿y軸偏移量)對機器人的步行過程進行參數(shù)化描述.然后利用SPEA2算法對步行過程中機器人的穩(wěn)定性、移動性和能耗進行尋優(yōu),從而得到多組最優(yōu)解.通過對多組解進行測試和比較,從中選出最好的一組解,最終獲得穩(wěn)定、快速和能耗小的步行模式.仿真和實物機器人測試表明,在保持行走穩(wěn)定的前提下,實際步行速度可達到0.26m/s,遠遠高于沒有優(yōu)化時的結(jié)果.
[1]Dau Van-Huan,Chew Chee-Meng,Poo Aun-Neow.Achieving energy-efficient bipedal walking trajectory through GA-based optimization of key parameters[J].International Journal of Humanoid Robotics,2009,6(4):609-629.
[2]劉濤,王志良,解侖,等.基于遺傳算法的雙足步行機器人步行姿態(tài)控制策略[J].微計算機信息,2006,22(20):252-254.Liu Tao,Wang Zhi-liang,Xie Lun,et al.Design of an walking strategy based on genetic algorithms in biped robot[J].Microcomputer Information,2006,22(20):252-254.
[3]Lee Joon-Yong,Kim Min-Soeng,Lee Ju-Jang.Multi-objective walking trajectories generation for a biped robot[C]∥Processings of IEEE/RSJ International Conference on Intelligent Robots and Systems.Sendai:IEEE,2004:3853-3858.
[4]Genci Capi,Masao Yokota,Kazuhisa Mitobe.A new humanoid robot gait generation based on multiobjective optimization[C]∥Processings of International Conference on Advanced Intelligent Mechatronics.Monterey:IEEE,2005:450-454.
[5]尾田秀司.仿人人機器人[M].北京:清華大學(xué)出版社,2007:121,124-125.
[6]Shuuji Kajita,F(xiàn)umio Kanehiro,Kenji Kaneko,et al.The 3D linear inverted pendulum mode:a simple modeling for a biped walking pattern generation[C]∥Proceedings of IEEE/RSJ International Conference on Intelligent Robots and Systems.Maui:IEEE,2001:239-246.
[7]鄭金華.多目標(biāo)進化算法及其應(yīng)用[M].北京:科學(xué)出版社,2007:28-31.
[8]Zitzler E,Thiele L.Multi-objective evolutionary algorithms:a comparative case study and the strength Pareto apporach[J].IEEE Transactions on Evolutionary Computation,1999,3(4):257-271.
[9]Zitzler E,Marco Laumanns,Lothar Thiele.SPEA2:improving the strength Pareto algorithm for multi-objective optimization[C]∥Proceedings of Evolutionary Methods for Design,Optimization and Control with Application to Industrial Problems.Barcelona:International Center for Numerical Methods in Engineering,2002:95-100.