敬成林
(貴州財經大學 數統學院,貴州 貴陽 550025)
研究機器人運動學的目的是為了更好地控制機器人[1~3],而奇異位姿將引起雙足機器人跌倒導致行走失敗,在雙足機器人的行走控制算法中,避開奇異位姿是機器人行走控制研究的重點之一。奇異位姿是雙足機器人行走過程中,位置雅可比矩陣行列式為零或趨近零引起的。所以,機器人的行走控制中,雅可比矩陣(Jacobian matrix)起著重要作用,位置雅可比矩陣是各關節角矢量的微分運動量,與末端執行器廣義位置矢量的微分運動量之間的映射矩陣[4,5]。機器人的運動控制中除位置雅可比矩陣外,還有速度雅可比矩陣、力矩雅可比矩陣,對它們的分析稱為一階運動學或動力學。對機器人一階運動學的研究是進行運動學特性分析、加速度分析、精度分析,進而進行動力學分析及綜合的基礎,而一階運動學分析的核心是建立位置、速度雅可比矩陣。所以,雅可比矩陣是機器人分析及設計的基礎。通過分析雅可比矩陣的秩,可以探討機器人的奇異性。另外,許多有關設計的運動性能指標也都是基于雅可比矩陣來構造的,如,工作空間、靈活度和運動解耦性等。由于雅可比矩陣廣泛應用于機器人控制中,因此,它在有關機器人的論文中得到了大量的應用[6~10]。求取雅可比矩陣的傳統方法是對機器人的相關正運動學和動力學進行微分求解,通常情況下求解過程和結果都比較復雜。
本文主要探討位置雅可比矩陣,根據位置雅可比矩陣的特性來分析雙足機器人的不同位姿,通過傳感器檢測關節角數據進行補償,可以避開雅可比矩陣行列式為零或趨近零時機器人的奇異位姿,得到優化的關節角時間序列,即,得到機器人的行走模式。將此行走模式發送到下位機,這些優化的模式可以用來控制實際機器人,以使機器人成功實現步行運動。
設x為雙足機器人足部位姿的廣義位置矢量,是6維矢量。q為機器人的關節坐標矢量,n個關節則為n維矢量。數值解法的主要原理是采用機器人的微分運動求解逆運動學。由機器人的微分運動得到廣義位置矢量的微分運動量與關節角矢量的微分運動量之間的關系為Δq=J-1Δx。其中,J為雅可比矩陣。由于雅可比矩陣不一定是方陣,只有左右腿的關節數都為6時,相對足部逆運動學的雅可比矩陣才為方陣。即便雅可比為方陣,如果是病態或奇異陣,也會大大影響解的精確性。
要理解雅可比矩陣,先來看機器人的微分運動。所謂機器人的微分運動,是指機器人關節空間的微小變化與機器人末端執行器廣義位置微小變化之間的關系,主要用于機器人末端在世界坐標系中的位姿控制。從末端位姿控制的角度講,雅可比矩陣是關節角矢量的微分運動量與末端執行器廣義位置矢量的微分運動量之間的映射矩陣。下面來分析雅可比矩陣的具體計算方法。
如圖1所示,雙足機器人一條腿從軀干根連桿開始的由N個關節或連桿構成的機械鏈,從根部到末端依次用1~N對關節進行編號。末端執行器腳底板固接在第N個關節所在的連桿上,而且假定各連桿的位姿(pj,Rj)已由正運動學求得[11,12]。

圖1 雅可比矩陣計算方法

(1)
式中wa2為在世界坐標系中表示的第2個關節軸的單位矢量,計算方式如下
wa2=R2a2
(2)
事實上,
〈wa2,wa2〉=〈R2a2,R2a2〉=(R2a2)TR2a2
(3)
所以,wa2為世界坐標系下的單位軸矢量。
同樣的計算過程可用于從第1到第N的所有連桿。末端的實際微小位移和微小轉動就是各關節引起的微位移和微轉動的總和,即
(4)
寫成矩陣的形式則為

(5)
右邊前面的矩陣就是雅可比矩陣,即
(6)
利用上述方法得到的雅可比矩陣的列矢量,代表了關節坐標矢量的一個分量的微分運動量與機器人末端廣義位置矢量的微分運動量之間的關系。因此,在求取各旋轉關節到雙足機器人末端的雅可比矩陣時,需要首先求取當前關節到機器人末端的變換列矢量。
根據機器人的微分運動得到廣義位置矢量的微分運動量與關節角矢量的微分運動量之間的關系為

(7)
式中 dx=[dx1,dx2,…,dx6]T是6維矢量,J(q)為6×n階矩陣,dq=[dq1,…,dqn]T,n為自由度數。取雅可比矩陣為
(8)
將式(8)寫成方程組
(9)
對于式(10),文獻[13]給出如下的近似解
(10)
令J(︰,j)=[J1jJ2j…J6j]T(j=1,2,…,n)為雅可比矩陣J(q)的列向量,行向量為J(i,︰)=[Ji1Ji2…Jin](i=1,…,6)。
容易看出,此近似解分母為‖J(︰,j)‖1與‖J(i,︰)‖1的乘積,但在循環中雅可比矩陣的范數‖J(q)‖1或‖J(q)‖∞可能變得很小,尤其對于特殊的奇異位姿會出現這種情況。例如當雙足機器人的兩腿伸直處于奇異姿態時,由于所有關節角為零而導致雅可比矩陣出現零行向量,由此引起此近似解的至少一個分母變得很小甚至趨近于零,從而關節運動的位置誤差放大。為了保證近似解的有效性,將它修正[14]為
(11)
此修正解保證分母不為零,通過傳感器數據生成關節角補償數據Δq,dqj為Δq的分量,以使雅可比矩陣的行列式不為零或不趨近于零,從而使機器人避開奇異位姿。原理圖如圖2所示。

圖2 避開奇異位姿關節角補償方法原理
補償算法如下:1)給定目標連桿的位姿(pref,Rref);2)定義從軀干到目標連桿之間的關節角矢量q;3)由正運動學計算目標連桿的位姿(p,R);4)計算目標連桿位姿的誤差(Δp,ΔR)=(pref-p,RTRref);5)當誤差(Δp,ΔR)足夠小時停止運算,否則,轉下步;6)由傳感器檢測計算關節角的補償量Δq;7)q=q+Δq,返回第3步。
用作者在文獻[15]中開發的三維仿真平臺進行仿真實驗分析。為了分析奇異位姿補償,設置機器人的非正常位姿,即奇異位姿進行三維仿真研究,怎樣讓機器人避開奇異位姿是運動學研究的熱點。取機器人的2種初始位姿,如圖3所示,很明顯機器人處于奇異位姿狀態。取右腳期望位置為[-0.25,0.35,0]T,左腳期望位置為[0.25,-0.35,0]T,姿態矩陣可以任意取值。

圖3 關節角取值在奇異位姿下的姿態
圖4所示的三維仿真圖為不補償時機器人到達終點位姿時的姿態。

圖4 關節角不補償時奇異位姿運動情況
圖3所示兩種初態代表了非正常情況下機器人的位姿,稱為機器人的奇異位姿。用運動學做三維仿真分析,如圖3和圖4所示。在循環次數取100次時,圖3(a)能夠到達終點位姿圖4(a),三維仿真機器人的一條腿消失掉;圖3(b)也循環相同次數時,機器人到達腳掌與地面不平行的位姿圖4(b),說明不進行關節角補償不能避開奇異位姿。原因是雅可比矩陣在求逆問題中,或循環求解過程中,出現了行列式為零或趨近零的情況,將使通過正運動學或逆運動學求解得到的關節角放大到無窮大,從而出現奇異位姿;在這些情況下,將該算法用于機器人的行走控制,機器人不能實現期望的運動,可能導致跌倒,甚至失控而損壞電機或機器人本體。
由上面三維仿真分析知,必須用式(11)進行關節角補償,在機器人處于奇異姿態時表現出明顯的優勢,可以避開機器人的奇異位姿。下面通過仿真平臺再現行走控制在式(12)關節角補償計算下,圖3(b)到達期望位姿的過程,來得到機器人優化的行走動作和關節角時間序列。
從圖5可以看出,通過關節角補償,雅可比矩陣參數優化時初態b的左右腳到達期望位姿過程中變化較平穩,而且在到達期望位姿前腳底板始終與地面平行,保證了機器人運動的穩定性,并且循環較少次數就能準確到達期望位姿。從圖中還可以看出,初態b為奇異位姿,通過傳感器數據補償,優化的雅可比矩陣都能使非正常位姿恢復正常運動,再一次印證了通過關節角補償方法,優化雅可比矩陣在行走控制中的重要作用。
本文主要探討位置雅可比矩陣引起的奇異位姿問題,
根據位置雅可比矩陣的特性來分析雙足機器人的不同位姿,通過傳感器檢測關節角數據補償方法,優化雅可比矩陣可以避開機器人的奇異位姿,得到優化的關節角時間序列,即得到機器人的步行模式。將此步行模式發送到下位機,這些優化的步行模式可以用來控制實際機器人,以使機器人成功實現步行運動。