参考这篇博客,非常感谢
https://blog.csdn.net/u013528298/article/details/81021386?utm_source=blogxgwz8
ZX变换和XZ类变换
对这张图 解释 有很多
https://blog.csdn.net/qq_21834027/article/details/85206561
两者的不同
让我感觉很奇怪的是 很多人把这个 写成 叉乘 。是点乘。
syms za di ai xa;
Rot_Z=str2sym('[cos(za),-sin(za),0,0;sin(za),cos(za),0,0;0,0,1,0;0,0,0,1]');
Trans_Z=str2sym('[1,0,0,0;0,1,0,0;0,0,1,di;0,0,0,1]');
Trans_X=str2sym('[1,0,0,ai;0,1,0,0;0,0,1,0;0,0,0,1]');
Rot_X=str2sym('[1,0,0,0;0,cos(xa),-sin(xa),0;0,sin(xa),cos(xa),0;0,0,0,1]');
% 标准DH
A = Rot_Z*Trans_Z*Trans_X*Rot_X
% 改进DH
B = Rot_X*Trans_X*Rot_Z*Trans_Z
在命令行 窗口里得到结果
A =
[ cos(za), -cos(xa)*sin(za), sin(xa)*sin(za), ai*cos(za)]
[ sin(za), cos(xa)*cos(za), -cos(za)*sin(xa), ai*sin(za)]
[ 0, sin(xa), cos(xa), di]
[ 0, 0, 0, 1]
B =
[ cos(za), -sin(za), 0, ai]
[ cos(xa)*sin(za), cos(xa)*cos(za), -sin(xa), -di*sin(xa)]
[ sin(xa)*sin(za), cos(za)*sin(xa), cos(xa), di*cos(xa)]
[ 0, 0, 0, 1]