MATLAB-Robot(2):标准DH和改进DH的区别

一:区别

MATLAB-Robot(2):标准DH和改进DH的区别_第1张图片

二:WIKI百科对比图

MATLAB-Robot(2):标准DH和改进DH的区别_第2张图片

三: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




对比代码中的DH参数和图中画的坐标系,再次确定标准DH四个参数含义:

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-Robot(2):标准DH和改进DH的区别_第3张图片

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的对应。


你可能感兴趣的:(MATLAB-Robot)