一:区别
二:WIKI百科对比图
三:MATLAB仿真对比
1. 标准DH
%标准DH
%Link(DH,option):
%DH = [THETA D A ALPHA SIGMA]//我的代码中此处定义theta的初始值无效
L1 = Link([0 0.2 1 pi/4 0],'standard');
L2 = Link([0 0.2 1 pi/4 0],'standard');
L3 = Link([0 0 0.5 pi/4 0],'standard');
robot = SerialLink([L1 L2 L3]); %建立连杆机器人
robot.plot([0 0 0]) %显示并赋三个关节变量theta值都为0//此处才可以初始theta
theta:绕Zi轴,从Xi旋转到Xi+1的角度
D:沿Zi轴,从Xi移动到Xi+1的距离
A:沿Xi轴,从Zi移动到Zi+1的距离
alpha:绕Xi+1轴,从Zi旋转到Zi+1的角度
2. 改进DH
%改进DH
%Link(DH,option):DH = [THETAi Di Ai-1 ALPHAi-1 SIGMA]
L1 = Link([0 0.2 1 pi/4 0],'modified');
L2 = Link([0 0.2 1 pi/4 0],'modified');
L3 = Link([0 0 0.5 pi/4 0],'modified');
robot = SerialLink([L1 L2 L3]); %建立连杆机器人
robot.plot([0 0 0]) %显示并赋三个关节变量theta的初始值都为0
MATLAB中定义改进DH连杆时一定要注意DH[theta d a alpha]中前两个参数下表为i,
即当前关节的DH值,后两个参数下表为i-1,及前一个关节的DH值参数值!
此时对比代码中的DH参数和图中画的坐标系,得到DH定义为:
theta:绕Zi轴,从Xi-1旋转到Xi的角度
D:沿Zi轴,从Xi-1移动到Xi的距离
A:沿Xi轴,从Zi移动到Zi+1的距离
alpha:绕Xi轴,从Zi旋转到Zi+1的角度
四:总结
标准型和改进型中A和alpha定义相同,都是相对于下一关节而言,不同的是theta和D在标准型中都是相对于下一关节,在改进型中是相对于上一关节。
定义DH表格时:
标准型的列标题为:THETAiDi Ai ALPHAi
改进型的列标题为:THETAiDiAi-1ALPHAi-1
所以一定要注意MATLAB机器人工具箱中连杆定义中DH的对应。