机器人工具箱中的3自由度机器人动力学错误

时间:2019-07-15 07:41:10

标签: matlab microsoft-dynamics simulator robotics

我正在尝试通过执行以下代码来使用Robotics Toolbox计算3自由度机器人的动力学:

robot.accel(q, zeros(1,3), zeros(1,3))

但是我遇到这个错误:分配具有比非单个下标更多的非单个rhs尺寸

我的机器人是:

L(1)= Link([0 0.03 0 -pi/2]);
L(2)= Link([0 0 0.28 0]);
L(3)= Link([0 0 0.2 0]);
L(1).m = 1;
L(2).m = 4;
L(3).m = 3;
L(1).r=[0 0 -0.015];
L(2).r=[0.14 0 0];
L(3).r=[0.1 0 0];

ax1=0.03; ay1=0.03; az1=0.03;
ax2=0.28; ay2=0.05; az2=0.05;
ax3=0.2; ay3=0.05; az3=0.05;
I1=1/12*[ay1^2+az1^2 0 0; 0 ax1^2+az1^2 0; 0 0 ax1^2+ay1^2];
I2=4/12*[ay2^2+az2^2 0 0; 0 ax2^2+az2^2 0; 0 0 ax2^2+ay2^2];
I3=3/12*[ay3^2+az3^2 0 0; 0 ax3^2+az3^2 0; 0 0 ax3^2+ay3^2];
L(1).I=I1;
L(2).I=I2;
L(3).I=I3;

q=[0 0 0]

robot=SerialLink(L);

1 个答案:

答案 0 :(得分:0)

该错误是由于未提及电动机惯性引起的。我将它们设置为:

for i=1:3
robot.links(i).Jm = 2.1184*10^-4;
end

并且使用robot.accel命令时错误消失了。