matlab中ikines函数的应用?
我想创造一个二自由度的双杆机器人,
我在写函数的时候发现在逆运动学的时候跳出
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,机构也是两个自由度,不知道为什么还是会跳出来上文所述的提示。
求求各位大神教教小学渣,不胜感激