曾 怡,郭祖華,趙士杰
(北京航空航天大學(xué),北京 100191)
對于多足機器人而言,至少有三條腿支撐才能保持機體穩(wěn)定,每個足端反力有3個分量。但對于一個移動機器人而言,只能列出6個平衡方程,無法解得唯一的解,這個問題被稱為力/力矩的分配問題[1-7]。國內(nèi)外許多學(xué)者對此問題進行了研究,歸納起來主要有兩種解決方法。第一種方法即偽逆法。V.Kumar[2]采用螺旋理論列出了多肢體系統(tǒng)的平衡方程,根據(jù)偽逆的思想,推導(dǎo)了足端支反力的求解公式,該方法沒有考慮摩擦約束。J.F.Gardner[3]通過實驗結(jié)果補充了兩個有關(guān)摩擦力的方程,同樣利用偽逆理論進行求解,該方法得到的結(jié)果不能保證機器人關(guān)節(jié)的控制力矩最優(yōu)。第二種方法即優(yōu)化法。Mustafa Suphi Erden[4]和王新杰[5]都推導(dǎo)了以關(guān)節(jié)力矩為變量的動力學(xué)方程、摩擦約束方程,分別以關(guān)節(jié)力矩平方和最小、電機所需功率總和最小為目標(biāo)函數(shù),進行優(yōu)化求解,使得機器人關(guān)節(jié)力矩達到最小。該方法克服了文獻[3]中的問題,但計算費時。此外,H.Y Liu[6]補充了三個與足端反力有關(guān)的線性方程,實現(xiàn)了解析求解,計算速度快,由于忽略了一些約束條件,得到的關(guān)節(jié)力矩較大。本文中提出一個新的力分配算法,在求解模型中考慮了機器人動力學(xué)模型和足端的摩擦條件,然后對方程組進行線性化處理,得到一組關(guān)于關(guān)節(jié)力矩的線性方程組,然后采用偽逆法求解該方程組,該方法求解得結(jié)果既保證了關(guān)節(jié)力矩最小,又保證了高的計算效率。
這類問題中的約束條件和接觸反力有關(guān),故將這些非線性等式約束用一組非線性方程組抽象表達為:
式中:f為支反力向量。
利用Newton-Euler建立動力學(xué)方程,然后改變動力學(xué)方程形式,簡記成如下形式:
式中:τ為關(guān)節(jié)力矩向量;A,C為系數(shù)矩陣。
把式(3)代入式(1)中,有:
對于方程(4)利用泰勒公式展開,在初值τ0附近取一階近似對原方程進行線性化處理:
…,m;m為關(guān)節(jié)力矩向量τ的維數(shù);i為約束方程的個數(shù)。
把方程(5)寫成矩陣的形式如下:
把式(3)代入式(2)中,得:
簡記作:
由式(7)和式(9)組合,得:
方程(10)包含了動力學(xué)約束Aτ和非線性約束G。其中,Aτ為n×m的矩陣。假設(shè)補充的方程個數(shù)為m-n,那么方程(10)有唯一解。如果補充方程的個數(shù)小于m-n,則利用偽逆理論求具有最小范數(shù)的解。
由方程(6)可知,初值的選擇是一個關(guān)鍵的問題。如果初值的較為準(zhǔn)確,求解過程收斂速度將很快。通過循環(huán)迭代解決初值問題,跌代過程如下。
隨意給定初始值τ0;利用偽逆理論求解τ;計算|τ-τ0|,如果小于ε,退出循環(huán)。否則,跳轉(zhuǎn)把τ賦給τ0,回到式(2)繼續(xù)計算。
在機器人行走過程中,只需要在第一時間步時通過上述循環(huán)計算出τ0,然后計算τ。在下一時刻,只須用上一時刻的τ作為初值τ0進行當(dāng)前時刻的關(guān)節(jié)力矩計算,而不再需要跌代,這可以使計算速度大為提高,而且計算結(jié)果足夠精確。
筆者以機器人三條腿支撐情況為例驗證新算法?,F(xiàn)給出六足機器人的模型和結(jié)構(gòu)參數(shù),如圖1和表1所示。
圖1 一條腿的坐標(biāo)系示意圖
表1 軀體及桿件的設(shè)計參數(shù)
此時只有6個平衡方程,但有9個未知量?,F(xiàn)引用文獻[1]的補充方程:
其中:fxi,fyi,fzi,i=1,2,3 為足端反力的三個分量。
F、M為軀體的慣性力/力矩減去邁步腿對軀體作用的力/力矩所得的支撐腿對軀體作用的力/力矩。
圖3顯示了三種不同方法求得的三個支撐足的足端支反力大小,結(jié)果顯示,三種方法求得的結(jié)果變化趨勢一致,其中偽逆法求得的支反力大小略小,另外兩種方法求得的支反力大小幾乎完全一樣。
圖4給出了三種算法求得的每條支撐腿足端反力的切法比系數(shù)。結(jié)果顯示,偽逆法求得的切法比系數(shù)非常小,小于10-3。而優(yōu)化法和新算法求出的切法比系數(shù)大小相當(dāng),都在0.15左右,滿足足端不打滑的約束條件。
圖2 支撐腿關(guān)節(jié)力矩的平方和
圖3 三個支撐腿的足端力變化
圖4 三支撐腿支反力比率的變化
圖5 顯示了機器人單步行走時,三條支撐腿的力矩大小變化。其中最左側(cè)的一列是各腿關(guān)節(jié)1的力矩,最右側(cè)的一列是各腿關(guān)節(jié)3的力矩。從圖中可以看出,由于偽逆法和優(yōu)化法、新算法追求的目標(biāo)不一樣,所以得到的各關(guān)節(jié)力矩有較大區(qū)別。用偽逆法求得的結(jié)果顯示各條腿關(guān)節(jié)1和關(guān)節(jié)3的力矩很小,而關(guān)節(jié)2的力矩很大;用優(yōu)化法和新算法求得的結(jié)果也是關(guān)節(jié)1和關(guān)節(jié)3的力矩小,關(guān)節(jié)2的力矩大,但差別沒有那么顯著。另外,用優(yōu)化法和新算法得到的結(jié)果有所差別,關(guān)節(jié)1的力矩差別比較大,但數(shù)值都比較小。關(guān)節(jié)2和關(guān)節(jié)3的力矩變化趨勢一致,大小略有不同。結(jié)合圖2可以看出,使用用不同的力分配方法,在采用相同的步態(tài)行走一步時,機器人各個關(guān)節(jié)的力矩平方和的不同,圖中2顯示新方法的力矩與優(yōu)化法類似但明顯優(yōu)于傳統(tǒng)偽逆法,所以可以推測新方法可以使機器人的總體能耗小于傳統(tǒng)偽逆法。利用優(yōu)化法和新算法求解機器人單步行走關(guān)節(jié)力矩大小時,記錄了兩種算法的求解時間。優(yōu)化法耗時5 019 ms,新算法耗時21 ms,可見新算法的計算效率比優(yōu)化法高很多,可用于實時控制。
圖5 支撐腿9個關(guān)節(jié)力矩的變化
本文提出了一種新的多足機器人足端反力的求解方法。在求解模型中考慮了機器人動力學(xué)平衡和足端的摩擦條件,然后對方程組進行線性化處理,得到一組關(guān)于關(guān)節(jié)力矩的線性方程組,然后采用偽逆法求解該方程組。本文以六足機器人三條腿支撐為例,利用偽逆法、優(yōu)化法和新算法求解機器人一步行走過程中的關(guān)節(jié)力矩大小。從計算結(jié)果來看,偽逆法得到的結(jié)果偏于保守,能耗較大,而優(yōu)化法和新算法得出的關(guān)節(jié)力矩比較小,保證了機器人能耗較小。從計算時間上看,新算法求解速度快,用時短,計算效率高,優(yōu)于優(yōu)化方法。因此,用新算法得到的力/力矩分配方案既保證了關(guān)節(jié)力矩最小,又保證了高的計算效率,可用于實時控制。
[1] Cheng Fan-Tien,Orin David E.Efficient Algorithm for Optimal Force Distribution-The Compact-Dual LP Method[J].IEEE Transactions on Robotics and Automation,1990,6(2):178-187.
[2] V.Kumar,K.J.Waldron.Force Distribution in Closed Kinematic Chains[J].IEEE Journal of Robotics and Automation,1988,4(6):657-664
[3] J.F.Gardner.Efficient Computation of Force Distributions for Walking Machines on Rough Terrain[J].Robotica,1992,10(5):427-433.
[4] Mustafa Suphi Erden,Kemal Leblebicio?glu.Torque Distribution in a Six-Legged Robot[J].IEEE Transactions on Robotics,2007,23(1):179-186.
[5] 王新杰.多足步行機器人運動及力規(guī)劃研究[D].武漢:華中科技大學(xué),2005.
[6] H.Y.Liu,B.C.Wen.Force Distribution for the Legs of a Quadruped Walking Vehicle[J].Journal of Robotic Systems,1997,14(1):1-8.
[7] 趙士杰.六足機器人運動軌跡規(guī)劃[D].北京:北京航空航天大學(xué),2014.