matlab机器人工具箱六轴机器人的DH模型和改进DH模型建立与区别

本文以PUMA560六轴机器人为例,探讨了标准DH模型和改进DH模型的建立过程,并通过MATLAB代码展示了两者在末端位姿上的差异。改进DH模型未包含工具坐标系的平移,而DH模型则将6系与工具坐标系结合。通过补充平移变换,两种模型的末端位姿得以一致。DH模型为后置模型,而改进DH模型为前置模型,两者间存在一个纯平移的差异。

一.模型
这里写图片描述
以****的六轴为例,我就直接放照片了,等以后有时间,我再画图。
这里写图片描述
DH模型:

iiiθi\theta_iθidid_idiaia_iaiαi\alpha_iαi
111θ1\theta_1θ10000.1800.1800.180π2\frac{\pi}{2}2π
222θ2\theta_2θ20000.6000.6000.600000
333θ3\theta_3θ30000.1300.1300.130−π2-\frac{\pi}{2}2π
444θ4\theta_4θ40.6300.6300.630000π2\frac{\pi}{2}2π
555θ5\theta_5θ5000000−π2-\frac{\pi}{2}2π
666θ6\theta_6θ60.10750.10750.1075000000

改进DH模型:
这里写图片描述

iiiθi\theta_iθidid_idiai−1a_{i-1}ai1αi−1\alpha_{i-1}αi1
111θ1\theta_1θ1000000000
222θ2\theta_2θ20000.1800.1800.180−π2-\frac{\pi}{2}2π
333θ3\theta_3θ30000.6000.6000.6000
444θ4\theta_4θ40.6300.6300.6300.1300.1300.130−π2-\frac{\pi}{2}2π
555θ5\theta_5θ5000000π2\frac{\pi}{2}2π
666θ6\theta_6θ6000000−π2-\frac{\pi}{2}2π

二.matlab代码

clear;
clc;
%建立机器人模型
%       theta    d           a        alpha     offset
SL1=Link([0       0          0.180    -pi/2        0     ],'standard'); 
SL2=Link([0       0          0.600     0           0     ],'standard');
SL3=Link([0       0          0.130    -pi/2        0     ],'standard');
SL4=Link([0       0.630       0        pi/2        0     ],'standard');
SL5=Link([0       0           0       -pi/2        0     ],'standard');
SL6=Link([0       0.1075      0        0           0     ],'standard');
starobot=SerialLink([SL1 SL2 SL3 SL4 SL5 SL6],'name','Xinje-mod');
figure(1),teach(starobot);
%        theta    d           a        alpha     offset
ML1=Link([0       0           0           0          0     ],'modified'); 
ML2=Link([0       0           0.180      -pi/2       0     ],'modified');
ML3=Link([0       0           0.600       0          0     ],'modified');
ML4=Link([0       0.630       0.130      -pi/2       0     ],'modified');
ML5=Link([0       0           0           pi/2       0     ],'modified');
ML6=Link([0       0           0          -pi/2       0     ],'modified');
modrobot=SerialLink([ML1 ML2 ML3 ML4 ML5 ML6],'name','Xinje-sta');
figure(2),teach(modrobot);

三.运行结果
这里写图片描述
可以看出末端位置,不完全一致,因为改进DH并没有建到工具坐标系,再乘一个纯平移的变换即可。
四.将平移变换补进改进DH模型里

clear;
clc;
%建立机器人模型
%       theta    d           a        alpha     offset
SL1=Link([0       0          0.180    -pi/2        0     ],'standard'); 
SL2=Link([0       0          0.600     0           0     ],'standard');
SL3=Link([0       0          0.130    -pi/2        0     ],'standard');
SL4=Link([0       0.630       0        pi/2        0     ],'standard');
SL5=Link([0       0           0       -pi/2        0     ],'standard');
SL6=Link([0       0.1075      0        0           0     ],'standard');
starobot=SerialLink([SL1 SL2 SL3 SL4 SL5 SL6],'name','Xinje-sta');
figure(1),teach(starobot);
%        theta    d           a        alpha     offset
ML1=Link([0       0           0           0          0     ],'modified'); 
ML2=Link([0       0           0.180      -pi/2       0     ],'modified');
ML3=Link([0       0           0.600       0          0     ],'modified');
ML4=Link([0       0.630       0.130      -pi/2       0     ],'modified');
ML5=Link([0       0           0           pi/2       0     ],'modified');
ML6=Link([0       0.1075      0          -pi/2       0     ],'modified');
modrobot=SerialLink([ML1 ML2 ML3 ML4 ML5 ML6],'name','Xinje-mod');
figure(2),teach(modrobot);

这里写图片描述
可见增加了一个平移变换后,末端位姿一致。
五.DH与改进DH模型的区别
将基坐标系表示为b,工具坐标系e,则工具坐标系到基坐标系的转换矩阵为:
bT0⋅(0T1⋅1T2⋅2T3⋅3T4⋅4T5⋅5T6)⋅6Te=bTe{^bT_0}\cdot({^0T_1}\cdot{^1T_2}\cdot{^2T_3}\cdot{^3T_4}\cdot{^4T_5}\cdot{^5T_6})\cdot{^6T_e}={^bT_e}bT00T11T22T33T44T55T66Te=bTe
DH:DH:DH:后置模型,将6系和e系,建立在一起。
改进DH:改进DH:DH前置模型,将0系和1系,建立在一起。
因此,DH下表示的位姿,跟改进DH下的位姿,差了一个6Te{^6T_e}6Te的变换,一般性都是一个纯平移。当然这个变换可以补偿到DH参数表中。
PS:未完待续,会有更新。

评论 30
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值