想做一个6自由度机械臂的逆运算,发现当使用ikine时候出现报错“类 SE3 没有名为 'convert' 的常量属性或静态方法”想知道解决办法。
clear;
clc;
th(1) = 0; d(1) = 0; a(1) = 0; alp(1) = pi/2;
th(2) = 0; d(2) = 0; a(2) = 0.104; alp(2) = 0;
th(3) = 0; d(3) = 0; a(3) = 0.096; alp(3) = 0;
th(4) = 0; d(4) = 0; a(4) = 0; alp(4) = 0;
th(5) = pi/2; d(5) = 0; a(5) = 0; alp(5) = pi/2;
th(6) = 0; d(6) = 0; a(6) = 0; alp(6) = 0;
th(7) = 0; d(7) = 0.163; a(7) = 0.028; alp(7) = 0;
% DH parameters th d a alpha sigma
l1 = link([th(1), d(1), a(1), alp(1), 0]);
l2 = link([th(2), d(2), a(2), alp(2), 0]);
l3 = link([th(3), d(3), a(3), alp(3), 0]);
l4 = link([th(4), d(4), a(4), alp(4), 0]);
l5 = link([th(5), d(5), a(5), alp(5), 0]);
l6 = link([th(6), d(6), a(6), alp(6), 0]);
l7 = link([th(7), d(7), a(7), alp(7), 0]);
robot = SerialLink([l1, l2, l3, l4, l5, l6, l7]);
robot.name='MyRobot-5-dof';
robot.display()
theta = [0 0 0 120 90 0 0]*pi/180;
robot.teach();
robot.plot(theta);
%% 起终点位姿
t=(0:0.056:1);
T1 = transl(100,0,0); %根据给定起始点
T2=transl(150,0,0); %根据给定终止点,得到终止点位姿
%%
theta_1_1 = robot.ikine(T1) %数值解
t1 = robot.fkine(theta_1_1)
theta_2_2 = robot.ikine(T2) %数值解
t2 = robot.fkine(theta_2_2)
%% 八组解
ik_T_1 = Inverse_kinematics(t1)
ik_T_2 = Inverse_kinematics(t2)
_类 SE3 没有名为 'convert' 的常量属性或静态方法。
出错 SerialLink/ikine (line 112)
TT = SE3.convert(tr);
出错 Untitled2 (line 38)
theta_1_1 = robot.ikine(T1)
我尝试过把其中一部分更改
%% 起终点位姿
t=(0:0.056:1);
T1 = transl(100,0,0); %根据给定起始点
T2=transl(150,0,0); %根据给定终止点,得到终止点位姿
%%
T=ctraj(T1,T2,length(t));
q=ikine(robot,T);
但是依然报错
还尝试过
% theta_1_1 = robot.ikine(T1,theta,[1 1 1 1 1 1]) %数值解
依然报错