納文, 張世強, 曹越琦, 孫華飛
(北京理工大學(xué) 數(shù)學(xué)與統(tǒng)計學(xué)院, 北京 100081)
隨著機器人的應(yīng)用范圍不斷擴大, 對機器人的運動學(xué)、控制以及軌跡規(guī)劃等要求不斷提高. 上述各個方面的研究進展制約著機器人的表現(xiàn). 本文利用雅可比矩陣來研究帶有冗余度的機器人的運動、特別是逆運動學(xué)問題. 眾所周知, 機器人的正運動學(xué)相對簡單, 逆運動學(xué)比較復(fù)雜, 因為對于給定的機器人的末端執(zhí)行器的位置和方向, 要求得連桿的關(guān)節(jié)角, 這個問題有時無解或者存在多解現(xiàn)象. 另一方面, 盡管冗余度的存在增加了解決問題的復(fù)雜性, 但是可以利用冗余度來解決諸如避障、躲避奇異點等問題[1-6]. 這些研究與雅可比矩陣密切相關(guān).
在本文中, 利用雅可比矩陣首先介紹機器人的逆運動學(xué), 然后給出帶有冗余度的逆運動學(xué)的應(yīng)用, 特別地給出模擬仿真, 為后續(xù)的機器人的運動規(guī)劃和控制的實現(xiàn)奠定基礎(chǔ).
設(shè)機器人的位姿為x, 它包括位置和方向角, 關(guān)節(jié)角為θ. 于是它們滿足
x=f(θ).
(1)
已知關(guān)節(jié)角來求位姿屬于正運動學(xué)問題, 這個過程相對簡單, 而實際問題往往要求給定位姿來求解關(guān)節(jié)角,這個過程稱為逆運動學(xué), 這個過程的求解比較困難. 目前通常的方法是利用式(1) 獲得.
(2)
(3)
(4)
式中J*(θ)=g-1JT(θ)[J(θ)g-1JT(θ)]-1,為J(θ)的廣義逆.
下面考慮帶有具有冗余度的情形(m (5) 式中:I為n×n單位矩陣;ξ為任意的向量. 冗余度的存在使得問題變得復(fù)雜, 而利用冗余度的存在, 也可以說在解決避障等問題的同時而獲得關(guān)節(jié)角速度. (6) 式中θ0是期望達到的或者期望避開的. 當想要避開θ0時,ψ(θ)要取最大值,于是要求k>0. 反之,當要達到θ0時,ψ(θ)要取最小值, 要求k<0. 對于rank(J(θ)) (7) 其中μ為實常數(shù). 可以得到 (8) 命題1.2.1帶有最大操作度的角加速度可由下面公式給出[7-11] (9) (10) 式中: A=J(θ)JT(θ)=(aij)m×m; 下面, 要給出J(θ)的值域. 注意到 J(θ)J*(θ)=I, (J*(θ))T[I-J*(θ)J(θ)]T= [(I-J*(θ)J(θ))J*(θ)]T=0. 同理可以得到 [I-J*(θ)J(θ)]TJ*(θ)=0. 由式(5)可以得到 {[I-J*(θ)J(θ)]ξ}T{[I-J*(θ)J(θ)]ξ}≥ (11) 由奇異值分解, 則存在正交矩陣U,V滿足 JT(θ)=Udiag[σ1…σm0…0]VT, 其中,σi≥0. 于是可得 (12) (13) 這是一個橢球方程. 設(shè)機械臂執(zhí)行器的理想位置為xd, 的目標就是讓當前機械臂的執(zhí)行器的位置f(θ)與xd的距離最短,于是問題可以轉(zhuǎn)化為 用梯度下降法求解上述F(θ)的最小值. 既然 -JT(θ)(xd-f(θ)), 令0<η<1為常數(shù), 有迭代公式 θt +1=θt-ηJT(θt)(xd-f(θt)), 由此迭代公式可獲得F(θ)的局部最小值. 考慮二維和三維的情況, 以向量L為機械臂每段的臂長, 向量θ為關(guān)節(jié)角,θ0為初始狀態(tài)機械臂的關(guān)節(jié)角, 二維情況機械臂初始狀態(tài)如圖1所示(二維情況下的關(guān)節(jié)角指的是相鄰兩個機械臂的夾角). 其中機械臂每段臂長 L=[0.670.4320.4320.15], 初始狀態(tài)機械臂的關(guān)節(jié)角為 θ0=[-0.595 12.720 90.492 1]. 初始關(guān)節(jié)角對應(yīng)的可操作度為0.082 1. 由式(12)(13)可知末端執(zhí)行器的速度向量的變化范圍是一個橢球. 三維情況下機械臂初始情況如圖2所示,三維情況下的關(guān)節(jié)角指的是每個機械臂在球坐標下的兩個角度. 其中機械臂每段臂長 L=[0.200.760.610.53], 初始狀態(tài)機械臂的關(guān)節(jié)角為 θ0=[(0.50,0.23), (1.00,0.31), (1.50,0.50)]. 初始關(guān)節(jié)角對應(yīng)的可操作度為0.356 3. 由迭代公式, 設(shè)定步長為0.005. 3個關(guān)節(jié)角時, 讓機械臂用1 s從初始狀態(tài)沿直線到達點(0.2,0.8), 三維情況下, 讓機械臂用1 s從初始狀態(tài)沿直線到達點(0.2,0.3,0.4), 其軌跡如圖3所示. 由迭代公式,其中為可操作度, 取c=1,設(shè)定步長為0.005. 3個關(guān)節(jié)角時, 讓機械臂用1 s從初始狀態(tài)沿直線到達點(0.4,0.5), 三維情況下, 讓機械臂用1 s從初始狀態(tài)沿直線到達點(-0.3,0.2,-0.2), 其軌跡如圖4所示. 由迭代公式,取μ2=0.001, 設(shè)定步長為0.005. 3個關(guān)節(jié)角時, 讓機械臂用1 s從初始狀態(tài)沿直線到達點(0.8,0.6), 三維情況下, 讓機械臂用1 s從初始狀態(tài)沿直線到達點(0.4,0.5,0), 其軌跡如圖5所示. 由迭代公式θt+1=θt-ηJT(θt)(xd-f(θt)), 取步長η=0.5. 3個關(guān)節(jié)角時, 讓機械臂不斷沿梯度下降方向到達點(0.8,0.4), 三維情況下, 讓機械臂不斷沿梯度下降方向到達點(0.6,0.8,1.0), 其軌跡如圖6所示. 通過分析雅克比矩陣的性質(zhì)研究了機器人的逆運動問題. 在無冗余度時,利用偽逆可以直接求解機器人逆運動,給出終點位姿即可得到機械臂的關(guān)節(jié)角. 雖然冗余度的存在使得問題變得更加復(fù)雜,但利用冗余度通過阻尼最小平方法在解決避障等問題的同時獲得了關(guān)節(jié)角速度. 在雅克比矩陣奇異時通過梯度下降法給出求解機器人逆運動的迭代公式. 在模擬仿真階段,文中首先給出末端執(zhí)行器速度向量的變化范圍,實驗結(jié)果與理論分析相符. 之后通過不同維數(shù)下設(shè)定直線軌跡求解關(guān)節(jié)角,證明了雅克比矩陣非奇異條件下阻尼最小平方法的正確性與高效性. 而在雅克比矩陣奇異的情況下,設(shè)定終點位姿,通過梯度下降法高效地給出了合法軌跡. 在不同維數(shù)和自由度的情形下均得到了很好的仿真結(jié)果,反映出理論方法的準確性和高效性.1.2 操作度
1.3 梯度下降法
2 模擬仿真
2.1 rank(J(θ))=m且無冗余項
2.2 rank(J(θ))=m且有冗余項
2.3 rank(J(θ))
2.4 梯度下降法求解逆運動學(xué)問題
3 結(jié) 論