关于MATLAB中使用Link函数和SerialLink建模
Link函数默认使用的是标准D-H法建立模型,如果想用改进D-H法建立模型,则应在参数后添加’modified’。如下所示:
%建立机器人模型
% theta d a alpha offset
L1=Link([0 0 0 0 0 ],'modified'); %改进D-H参数
L2=Link([0 0 3 0 0 ],'modified');
robot=SerialLink([L1 L2],'name','two_arm'); %连接连杆,机器人取名two_arm
robot.plot([0 0],'tilesize',2)%机械臂图
%建立机器人模型
% theta d a alpha offset
L1=Link([0 0 3 0 0 ]); %标准D-H参数
L2=Link([0 0 1.5 0 0 ]);
robot=SerialLink([L1 L2],'name','two_arm'); %连接连杆,机器人取名manman
robot.plot([0 0],'tilesize',2)%机械臂图
比较上述两幅图可以发现,标准D-H参数法定义的模型比改进D-H法定义的模型多出一个连杆,这是由于两种方法的D-H参数定义的差异造成的。对于一个两连杆模型来说,标准D-H参数法使用了连杆长度参数
a
1
a_1
a1和
a
2
a_2
a2,而改进D-H参数法使用了连杆长度参数
a
0
a_0
a0和
a
1
a_1
a1。
仅比较这两幅图,可能会感觉两种参数法建立的模型会不太一样,这是由最后一个连杆长度不为零导致的。但这仅是一个两连杆模型。对于大部分模型而言,比如六轴机械臂,最后三个连杆长度都是0,因此实际上的建模是一样的。这部分可以参考机器人学回炉重造(1):正运动学、标准D-H法与改进D-H法的区别与应用(附ABB机械臂运动学建模matlab代码)这篇博客,写的很详细了。
版权声明:本文为Azahaxia原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。