1. 程式人生 > >正逆運動學

正逆運動學

2、逆運動學:如果知道一個物體的笛卡爾座標位姿,那麼機器人需要怎樣的關節座標才能接近這個物體。

  以下主要說明 一般逆解不唯一:

以PUMA560模型為例(mdl_puma560),先定義一個位姿狀態,有正解函式fkine( )得末端位姿.---

qn---->(0,pi/4,-pi,0,pi/4,0)%機器人標準狀態(關節座標)

qn =
         0    0.7854    3.1416         0    0.7854         0

 T=p560.fkine(qn)     %對應的機器人末端位姿
T =
   -0.0000    0.0000    1.0000    0.5963
   -0.0000    1.0000   -0.0000   -0.1501
   -1.0000   -0.0000   -0.0000   -0.0144

         0         0         0    1.0000

這樣先由qn的標準狀態得到末端位姿(用正運動學解函式fkine(qn)),再用ikine6s的方法來計算逆運動學的封閉解。所以要實現末端位姿T,所需的關節座標為

qi=p560.ikine6s(T)      %由逆解函式ikine6s( )---工具箱解析法函式求出,與函式ikine( )數值法不同,可以開啟檢視具體程式碼
qi =

    2.6486   -3.9270    0.0940    2.5326    0.9743    0.373      %與標準關節座標值不一樣

同樣的,T1=p560.fkine(qi)  %對應的末端位姿 與qn確定的一樣。


            T1 =
                        -0.0000    0.0000    1.0000    0.5963
                         0.0000    1.0000   -0.0000   -0.1500
                        -1.0000    0.0000   -0.0000   -0.0144

                          0         0         0    1.0000

即:不同的關節座標得到了同樣的末端位姿————封閉解不唯一。

畫出觀察(注意影子):               p560.plot(qn)       ——————————————————     p560.plot(qi)

          

以上是逆運動學求解由工具箱函式實現,在實際逆運動學求解方法中有數值解法和封閉解法兩種。

數值解:迭代求解的方式,求解速度慢;優勢在於它能夠求解處於奇異位形以及非6關節型的機械臂。

封閉解:一般是針對像PUMA機器人一樣的,擁有六個旋轉關節的操作臂(存在幾個正交關節軸或者多個關節扭轉角為0或pi)進行的基於解析形式的解法,或者指對於不高於四次多項式不用迭達便可完成求解。過程中使用的代數法和幾何法。(在參看的博文中有)