出现的问题
一般使用Robotics System Toolbox(RST)中的动力学仿真使用到的都是标准DH参数表,而我导入了改进型DH参数表。本来仿真的目的是求解四关节机器人的力矩(1关节是旋转关节,2,3关节是移动关节,4关节是旋转关节),在速度和加速度都为0的情况下,反而求得移动关节有力矩值,而末端旋转关节力矩值一直为0,错误的代码和结果如下:
错误的代码
% a alpha d theta
dh = [0 0 0 0;
0 0 0.150 0;
0 -0.5*pi 0.250 0.5*pi;
0.075 0 0.150 0;];
%% create rigid body tree
robot = robotics.RigidBodyTree;
...........................
...........................
%% inverse dynamics
robot.DataFormat = 'row';
q = [0.5*pi 0.170 0.350 0.5*pi]; % variables
dq = [0.1 0.1 0.1 0.1]; % velocity
ddq = [0 0 0 0]; % acceleration
tau = inverseDynamics(robot, q, dq, ddq);
tau
结果
tau =
5.6575 0.0000 -95.0558 0.000