www.gusucode.com > robot-9 源码程序matlab代码 > robot-9.4Toolbox/rvctools/robot/mdl_puma560.m
%MDL_PUMA560 Create model of Puma 560 manipulator % % mdl_puma560 % % Script creates the workspace variable p560 which describes the % kinematic and dynamic characteristics of a Unimation Puma 560 manipulator % using standard DH conventions. % The model includes armature inertia and gear ratios. % % Also define the workspace vectors: % qz zero joint angle configuration % qr vertical 'READY' configuration % qstretch arm is stretched out in the X direction % qn arm is at a nominal non-singular configuration % % Reference:: % - "A search for consensus among model parameters reported for the PUMA 560 robot", % P. Corke and B. Armstrong-Helouvry, % Proc. IEEE Int. Conf. Robotics and Automation, (San Diego), % pp. 1608-1613, May 1994. % % See also SerialLink, mdl_puma560akb, mdl_stanford, mdl_twolink. % % Notes: % - the value of m1 is given as 0 here. Armstrong found no value for it % and it does not appear in the equation for tau1 after the substituion % is made to inertia about link frame rather than COG frame. % updated: % 2/8/95 changed D3 to 150.05mm which is closer to data from Lee, AKB86 and Tarn % fixed errors in COG for links 2 and 3 % 29/1/91 to agree with data from Armstrong etal. Due to their use % of modified D&H params, some of the offsets Ai, Di are % offset, and for links 3-5 swap Y and Z axes. % 14/2/91 to use Paul's value of link twist (alpha) to be consistant % with ARCL. This is the -ve of Lee's values, which means the % zero angle position is a righty for Paul, and lefty for Lee. % Note that gravity load torque is the motor torque necessary % to keep the joint static, and is thus -ve of the gravity % caused torque. % % 8/95 fix bugs in COG data for Puma 560. This led to signficant errors in % inertia of joint 1. % $Log: not supported by cvs2svn $ % Revision 1.4 2008/04/27 11:36:54 cor134 % Add nominal (non singular) pose qn % Copyright (C) 1993-2011, 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 % th d a alpha L(1) = Link([ 0 0 0 pi/2 0], 'standard'); L(2) = Link([ 0 0 0.4318 0 0], 'standard'); L(3) = Link([ 0 0.15005 0.0203 -pi/2 0], 'standard'); L(4) = Link([ 0 0.4318 0 pi/2 0], 'standard'); L(5) = Link([ 0 0 0 -pi/2 0], 'standard'); L(6) = Link([ 0 0 0 0 0], 'standard'); 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; L(1).r = [ 0 0 0 ]; L(2).r = [ -.3638 .006 .2275]; L(3).r = [ -.0203 -.0141 .070]; L(4).r = [ 0 .019 0]; L(5).r = [ 0 0 0]; L(6).r = [ 0 0 .032]; L(1).I = [ 0 0.35 0 0 0 0]; L(2).I = [ .13 .524 .539 0 0 0]; L(3).I = [ .066 .086 .0125 0 0 0]; L(4).I = [ 1.8e-3 1.3e-3 1.8e-3 0 0 0]; L(5).I = [ .3e-3 .4e-3 .3e-3 0 0 0]; L(6).I = [ .15e-3 .15e-3 .04e-3 0 0 0]; L(1).Jm = 200e-6; L(2).Jm = 200e-6; L(3).Jm = 200e-6; L(4).Jm = 33e-6; L(5).Jm = 33e-6; L(6).Jm = 33e-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) L(1).B = 1.48e-3; L(2).B = .817e-3; L(3).B = 1.38e-3; L(4).B = 71.2e-6; L(5).B = 82.6e-6; L(6).B = 36.7e-6; p560 = SerialLink(L, 'name', 'Puma 560', ... 'manufacturer', 'Unimation', 'comment', 'viscous friction; params of 8/95'); % Coulomb friction (motor referenced) L(1).Tc = [ .395 -.435]; L(2).Tc = [ .126 -.071]; L(3).Tc = [ .132 -.105]; L(4).Tc = [ 11.2e-3 -16.9e-3]; L(5).Tc = [ 9.26e-3 -14.5e-3]; L(6).Tc = [ 3.96e-3 -10.5e-3]; % % 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 qs = [0 0 -pi/2 0 0 0]; qn=[0 pi/4 pi 0 pi/4 0]; p560_f = SerialLink(L, 'name', 'Puma 560', ... 'manufacturer', 'Unimation', 'comment', 'nonlin friction; params of 8/95'); clear L