PUMA560的DH参数表如下
根据参数表可以求出每一个连杆变换矩阵,求各连杆变换矩阵的MATLAB函数如下
function trans_matrix = trans_multi(afa,a,d,theta)
%%
%变换矩阵相乘函数
%通过输入的D-H表达法表,可以得到相应的变换矩阵
%如计算T_{3,6},则输入{ afa_{3-5},a_{3-5},d_{4-6},theta_{4-6} }
%以列向量的形式输入afa,a,d,theta参数
len = length(afa);
syms T [4 4 len]
for i = 1:len
T(:,:,i) = trans_cal( afa(i),a(i),d(i),theta(i) );
if(i == 1)
trans_matrix = T(:,:,i);
else
trans_matrix = trans_matrix*T(:,:,i);
end
end
end
带入DH表的最后三行参数,计算使用样例如下:
clear;clc
syms afa a d theta [6 1]
Matrix = [afa,a,d,theta]
afa = [-90;90;-90]
a = [a3;0;0]
d = [d4;0;0;]
theta = [theta4;theta5;theta6]
test = trans_multi(afa,a,d,theta)
得到的结果为:
test =
[ cos((pi*theta4)/180)*cos((pi*theta5)/180)*cos((pi*theta6)/180) - sin((pi*theta4)/180)*sin((pi*theta6)/180), - cos((pi*theta6)/180)*sin((pi*theta4)/180) - cos((pi*theta4)/180)*cos((pi*theta5)/180)*sin((pi*theta6)/180), -cos((pi*theta4)/180)*sin((pi*theta5)/180), a3]
[ cos((pi*theta6)/180)*sin((pi*theta5)/180), -sin((pi*theta5)/180)*sin((pi*theta6)/180), cos((pi*theta5)/180), d4]
[- cos((pi*theta4)/180)*sin((pi*theta6)/180) - cos((pi*theta5)/180)*cos((pi*theta6)/180)*sin((pi*theta4)/180), cos((pi*theta5)/180)*sin((pi*theta4)/180)*sin((pi*theta6)/180) - cos((pi*theta4)/180)*cos((pi*theta6)/180), sin((pi*theta4)/180)*sin((pi*theta5)/180), 0]
[ 0, 0, 0, 1]
书上结果为
文章来源:https://www.toymoban.com/news/detail-741552.html
对比可得,代码计算结果与书上结果一致文章来源地址https://www.toymoban.com/news/detail-741552.html
到了这里,关于《机器人学导论》根据DH参数表计算变换矩阵MATLAB代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!