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

一:区别
MATLAB-Robot(2)(标准DH和改进DH的区别)
文章图片


二:WIKI百科对比图
MATLAB-Robot(2)(标准DH和改进DH的区别)
文章图片


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





MATLAB-Robot(2)(标准DH和改进DH的区别)
文章图片


对比代码中的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的区别)
文章图片


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-Robot(2)(标准DH和改进DH的区别)】所以一定要注意MATLAB机器人工具箱中连杆定义中DH的对应。


    推荐阅读