正逆運動學
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)進行的基於解析形式的解法,或者指對於不高於四次多項式不用迭達便可完成求解。過程中使用的代數法和幾何法。(在參看的博文中有)