www.gusucode.com > 机器人工具箱 - robot源码程序 > robot\puma560akb.m

    %PUMA560AKB Load kinematic and dynamic data for a Puma 560 manipulator
%
%	PUMA560AKB
%
% Defines the object 'p560m' in current workspace which describes the 
% kinematic and dynamic characterstics of a Unimation Puma 560 manipulator 
% modified DH conventions and using the data and conventions of:
%
%	Armstrong, Khatib and Burdick 1986.
%	"The Explicit Dynamic Model and Inertial Parameters of the Puma 560 Arm"
%
% Also define the vector qz which corresponds to the zero joint
% angle configuration, qr which is the vertical 'READY' configuration,
% and qstretch in which the arm is stretched out in the X direction.
%
% See also: ROBOT, PUMA560, STANFORD, TWOLINK.

% Copyright (C) 1993-2008, by Peter I. Corke
%
% This file is part of The Robotics Toolbox for Matlab (RTB).
% 
% RTB is free software: you can redistribute it and/or modify
% it under the terms of the GNU Lesser General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.
% 
% RTB is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU Lesser General Public License for more details.
% 
% You should have received a copy of the GNU Leser General Public License
% along with RTB.  If not, see <http://www.gnu.org/licenses/>.

clear L
%            alpha   A     theta    D	sigma
L{1} = link([0       0       0       0       0], 'mod');
L{2} = link([-pi/2   0       0       0.2435  0], 'mod');
L{3} = link([0       0.4318  0       -0.0934 0], 'mod');
L{4} = link([pi/2    -0.0203 0       .4331   0], 'mod');
L{5} = link([-pi/2   0       0       0       0], 'mod');
L{6} = link([pi/2    0       0       0       0], 'mod');

L{1}.m = 0;
L{2}.m = 17.4;
L{3}.m = 4.8;
L{4}.m = 0.82;
L{5}.m = 0.34;
L{6}.m = .09;

%         rx      ry      rz
L{1}.r = [0   0	  0	];
L{2}.r = [0.068   0.006   -0.016];
L{3}.r = [0   -0.070  0.014 ];
L{4}.r = [0   0	  -0.019];
L{5}.r = [0   0	  0	];
L{6}.r = [0   0	  .032	];

%        Ixx     Iyy      Izz    Ixy     Iyz     Ixz
L{1}.I = [0   0	  0.35    0	  0	  0];
L{2}.I = [.13   .524    .539    0	  0	  0];
L{3}.I = [.066    .0125   .066    0   0	  0];
L{4}.I = [1.8e-3  1.8e-3  1.3e-3  0   0	  0];
L{5}.I = [.3e-3   .3e-3   .4e-3   0   0	  0];
L{6}.I = [.15e-3  .15e-3  .04e-3  0   0	  0];

L{1}.Jm =  291e-6;
L{2}.Jm =  409e-6;
L{3}.Jm =  299e-6;
L{4}.Jm =  35e-6;
L{5}.Jm =  35e-6;
L{6}.Jm =  35e-6;

L{1}.G =  -62.6111;
L{2}.G =  107.815;
L{3}.G =  -53.7063;
L{4}.G =  76.0364;
L{5}.G =  71.923;
L{6}.G =  76.686;

% viscous friction (motor referenced)
% unknown

% Coulomb friction (motor referenced)
% unknown

%
% some useful poses
%
qz = [0 0 0 0 0 0]; % zero angles, L shaped pose
qr = [0 -pi/2 pi/2 0 0 0]; % ready pose, arm up
qstretch = [0 0 pi/2 0 0 0]; % horizontal along x-axis

p560m = robot(L, 'Puma560-AKB', 'Unimation', 'AK&B');
clear L