Matlab Robotics Toolbox 仿真计算:Kinematics, Dynamics, Trajectory Generation

1. 理论知识

理论知识请参考:

  • 机器人学导论++(原书第3版)_(美)HLHN+J.CRAIG著++贠超等译
  • 机器人学课程讲义(丁烨)
  • 机器人学课程讲义(赵言正)

2. Matlab Robotics Toolbox安装

上官网:
http://petercorke.com/wordpress/toolboxes/robotics-toolbox

Download RTB-10.3.1 mltbx format (23.2 MB) in MATLAB toolbox format (.mltbx)
将down下来的文件放到一般放untitled.m所在的文件夹内。打开MATLAB运行,显示安装完成即可。

不要下zip,里面的东西各种缺失并且乱七八糟,很难配。

该工具箱内的说明书是robot.pdf
也可查阅 “机器人工具箱简介.ppt”

3. 机器人建模

本仿真程序仿照fanuc_M20ia机器人进行建模。

3.1 利用DH矩阵建立机器人模型(modified)

经测绘,用如下代码建立DH矩阵
使用robot.teach()函数,进行机器人示教

% RobotTeach.m

clc;
%             theta   d         a        alpha     offset
ML1 =  Link([ 0,      0.4967,   0,       0,        0], 'modified');
ML2 =  Link([ -pi/2,  -0.18804, 0.2,     3*pi/2,   0], 'modified');
ML3 =  Link([ 0,      0.17248,  0.79876, 0 ,       0], 'modified');
ML4 =  Link([ 0,      0.98557,  0.25126, 3*pi/2,   0], 'modified');
ML5 =  Link([ 0,      0,        0,       pi/2 ,    0], 'modified');
ML6 =  Link([ 0,      0,        0,       pi/2 ,    0], 'modified');

robot = SerialLink([ML1 ML2 ML3 ML4 ML5 ML6],'name','Fanuc M20ia');
robot.teach(); %可以自由拖动的关节角度

% EOF

效果如下:

3.2 机器人参数设定

在做仿真计算时,需要设定各个关节的运动学与动力学参数
质量属性可以在SolidWorks中指定材质后,在“评估-质量属性”中查看

运动学参数:

%  theta    关节角度
%  d        连杆偏移量
%  a        连杆长度
%  alpha    连杆扭角
%  sigma    旋转关节为0,移动关节为1
%  mdh      标准的D&H为0,否则为1
%  offset   关节变量偏移量
%  qlim     关节变量范围[min max]

动力学参数:

%  m        连杆质量
%  r        连杆相对于坐标系的质心位置3x1
%  I        连杆的惯性矩阵(关于连杆重心)3x3
%  B        粘性摩擦力(对于电机)1x1或2x1
%  Tc       库仑摩擦力1x1或2x1

电机和传动参数:

%  G        齿轮传动比
%  Jm       电机惯性矩(对于电机)

完整的机器人建模代码

clear;
clc;
%             theta   d         a        alpha     offset
ML1 =  Link([ 0,      0.4967,   0,       0,        0], 'modified');
ML2 =  Link([ -pi/2,  -0.18804, 0.2,     3*pi/2,   0], 'modified');
ML3 =  Link([ 0,      0.17248,  0.79876, 0 ,       0], 'modified');
ML4 =  Link([ 0,      0.98557,  0.25126, 3*pi/2,   0], 'modified');
ML5 =  Link([ 0,      0,        0,       pi/2 ,    0], 'modified');
ML6 =  Link([ 0,      0,        0,       pi/2 ,    0], 'modified');

%配置机器人参数
ML1.m = 20.8;
ML2.m = 17.4;
ML3.m = 4.8;
ML4.m = 0.82;
ML5.m = 0.34;
ML6.m = 0.09;

ML1.r = [ 0    0    0 ];
ML2.r = [ -0.3638  0.006    0.2275];
ML3.r = [ -0.0203  -0.0141  0.070];
ML4.r = [ 0    0.019    0];
ML5.r = [ 0    0        0];
ML6.r = [ 0    0        0.032];

ML1.I = [  0         0.35         0         0         0         0];
ML2.I = [  0.13      0.524        0.539     0         0         0];
ML3.I = [  0.066     0.086        0.0125    0         0         0];
ML4.I = [  1.8e-3  1.3e-3  1.8e-3  0         0         0];
ML5.I = [  0.3e-3  0.4e-3  0.3e-3   0         0         0];
ML6.I = [  0.15e-3 0.15e-3 0.04e-3  0         0         0];

ML1.Jm =  200e-6;
ML2.Jm =  200e-6;
ML3.Jm =  200e-6;
ML4.Jm =  33e-6;
ML5.Jm =  33e-6;
ML6.Jm 

你可能感兴趣的:(matlab,php)