Robotics Toolbox :(6)puma560 动力学建模与仿真

puma560,是经典的机器人模型,很多教材上都用它作为例子。
这里写图片描述

其D-H矩阵为:
这里写图片描述
具体的建模是:

% 文件名为:mdl_p560

clear L
deg = pi/180;

L(1) = Revolute('d', 0, 'a', 0, 'alpha', pi/2, ...
    'I', [0, 0.35, 0, 0, 0, 0], ...
    'r', [0, 0, 0], ...
    'm', 0, ...
    'Jm', 200e-6, ...
    'G', -62.6111, ...
    'qlim', [-160 160]*deg );
L(2) = Revolute('d', 0, 'a', 0.4318, 'alpha', 0, ...
    'I', [0.13, 0.524, 0.539, 0, 0, 0], ...
    'r', [-0.3638, 0.006, 0.2275], ...
    'm', 17.4, ...
    'Jm', 200e-6, ...
    'G', 107.815, ...
    'qlim', [-45 225]*deg );
L(3) = Revolute('d', 0.15005, 'a', 0.0203, 'alpha', -pi/2,  ...
    'I', [0.066, 0.086, 0.0125, 0, 0, 0], ...
    'r', [-0.0203, -0.0141, 0.070], ...
    'm', 4.8, ...
    'Jm', 200e-6, ...
    'G', -53.7063, ...
    'qlim', [-225 45]*deg );
L(4) = Revolute('d', 0.4318, 'a', 0, 'alpha', pi/2,  ...
    'I', [1.8e-3, 1.3e-3, 1.8e-3, 0, 0, 0], ...
    'r', [0, 0.019, 0], ...
    'm', 0.82, ...
    'Jm', 33e-6, ...
    'G', 76.0364, ...
    'qlim', [-110 170]*deg);
L(5) = Revolute('d', 0, 'a', 0, 'alpha', -pi/2,  ...
    'I', [0.3e-3, 0.4e-3, 0.3e-3, 0, 0, 0], ...
    'r', [0, 0, 0], ...
    'm', 0.34, ...
    'Jm', 33e-6, ...
    'G', 71.923, ...
    'qlim', [-100 100]*deg );
L(6) = Revolute('d', 0, 'a', 0, 'alpha', 0,  ...
    'I', [0.15e-3, 0.15e-3, 0.04e-3, 0, 0, 0], ...
    'r', [0, 0, 0.032], ...
    'm', 0.09, ...
    'Jm', 33e-6, ...
    'G', 76.686, ...
    'qlim', [-266 266]*deg );
p560 = SerialLink(L, 'name', 'Puma 560', ...
    'manufacturer', 'Unimation');

如果要在 s-function 中调用的话,在第一行加上:

function p560=mdl_puma560()

动力学建模

如图所示,利用 matlab simulink 进行动力学建模
这里写图片描述

下图是仿真的结果,当起始关节角度固定是,得到的各关节所需要的力矩。
这里写图片描述

利用 Matlab Robotic Toolbox 进行动力学建模,避免了用公式计算时繁琐的计算和冗长的计算结果,节省大量的时间。

参考文献:

Peter Corke,Robotics Toolbox for MATLAB Release 9(Version,9.10),2015.02
P.I. Corke, Robotics, Vision & Control: Fundamental Algorithms in MATLAB.Springer, 2011.

猜你喜欢

转载自blog.csdn.net/qq_27838307/article/details/80715277