我想創造一個二自由度的雙桿機器人,
我在寫函式的時候發現在逆運動學的時候跳出
Number of robot DOF must be >= the same number of 1s in the mask matrix這個提示。在查找后發現是因為ikines的自由度太多需要用mask約束一下,于是進行改進
代碼如下:
L1=Link([0 0 2 0 0]);
L2=Link([0,0,1,0,0]); //兩桿長度為2和1,初始位置在x軸上
r1=SerialLink([L1 l2]);
theta=[pi/6 pi/6]; //兩桿轉角都為pi/6
p=r1.fkine(theta); //先求正運動學
p.display();
p =
0.5000 -0.8660 0 2.232
0.8660 0.5000 0 1.866
0 0 1 0
0 0 0 1 //獲得坐標
//這里其實我想同時獲得姿態角,但是不知道如何操作
t=transl(2.2321,1.8660,pi/3); //這里想反代回去,角度沒求出來但是已知了
q1=r1.ikine(t,[0 0],[1 1 0 0 0 0]); //我也設定了原始點為[0 0],mask矩陣也是兩個1,機構也是兩個自由度,不知道為什么還是會跳出來上文所述的提示。
求求各位大神教教小學渣,不勝感激
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/95057.html
標籤:其他
