ROBOOP, A Robotics Object Oriented Package in C++
puma560_motor.m
1 %PUMA560 Load kinematic and dynamic data for a Puma 560 manipulator
2 %
3 % PUMA560
4 %
5 % Defines the object 'p560' in the current workspace which describes the
6 % kinematic and dynamic % characterstics of a Unimation Puma 560 manipulator
7 % using standard DH conventions.
8 % The model includes armature inertia and gear ratios.
9 %
10 % Also define the vector qz which corresponds to the zero joint
11 % angle configuration, qr which is the vertical 'READY' configuration,
12 % and qstretch in which the arm is stretched out in the X direction.
13 %
14 % See also: ROBOT, PUMA560AKB, STANFORD, TWOLINK.
15 
16 %
17 % Notes:
18 % - the value of m1 is given as 0 here. Armstrong found no value for it
19 % and it does not appear in the equation for tau1 after the substituion
20 % is made to inertia about link frame rather than COG frame.
21 % updated:
22 % 2/8/95 changed D3 to 150.05mm which is closer to data from Lee, AKB86 and Tarn
23 % fixed errors in COG for links 2 and 3
24 % 29/1/91 to agree with data from Armstrong etal. Due to their use
25 % of modified D&H params, some of the offsets Ai, Di are
26 % offset, and for links 3-5 swap Y and Z axes.
27 % 14/2/91 to use Paul's value of link twist (alpha) to be consistant
28 % with ARCL. This is the -ve of Lee's values, which means the
29 % zero angle position is a righty for Paul, and lefty for Lee.
30 % Note that gravity load torque is the motor torque necessary
31 % to keep the joint static, and is thus -ve of the gravity
32 % caused torque.
33 %
34 % 8/95 fix bugs in COG data for Puma 560. This led to signficant errors in
35 % inertia of joint 1.
36 % $Log: puma560_motor.m,v $
37 % Revision 1.2 2004/07/06 02:16:36 gourdeau
38 % doxy etc
39 %
40 % Revision 1.1 2004/05/12 13:34:37 elachance
41 % Initial revision
42 %
43 % Revision 1.1 2003/02/06 04:31:36 gourdeau
44 % 1er rev Etienne L.
45 %
46 % Revision 1.1 2002/12/17 02:31:55 elachance
47 % Initial revision
48 %
49 % Revision 1.3 2002/04/01 11:47:16 pic
50 % General cleanup of code: help comments, see also, copyright, remnant dh/dyn
51 % references, clarification of functions.
52 %
53 % $Revision: 1.2 $
54 
55 % Copyright (C) 1993-2002, by Peter I. Corke
56 
57 clear L
58 
59 L{1} = link([pi/2 0 0 0 0], 'standard');
60 L{2} = link([ 0 .4318 0 0 0], 'standard');
61 L{3} = link([-pi/2 .0203 0 .15005 0], 'standard');
62 L{4} = link([pi/2 0 0 .4318 0], 'standard');
63 L{5} = link([-pi/2 0 0 0 0], 'standard');
64 L{6} = link([0 0 0 0 0], 'standard');
65 
66 %L{1} = link([pi/2 0 0 0 0], 'standard');
67 %L{2} = link([ 0 .4318 0 0 0], 'standard');
68 %L{3} = link([-pi/2 .0203 0 .15005 0], 'standard');
69 %L{4} = link([pi/2 0 0 .4318 0], 'standard');
70 %L{5} = link([-pi/2 0 0 0 0], 'standard');
71 %L{6} = link([0 0 0 0 0], 'standard');
72 
73 
74 L{1}.m = 0;
75 L{2}.m = 17.4;
76 L{3}.m = 4.8;
77 L{4}.m = 0.82;
78 L{5}.m = 0.34;
79 L{6}.m = .09;
80 
81 L{1}.r = [ 0 0 0 ];
82 L{2}.r = [ -.3638 .006 .2275];
83 L{3}.r = [ -.0203 -.0141 .070];
84 L{4}.r = [ 0 .019 0];
85 L{5}.r = [ 0 0 0];
86 L{6}.r = [ 0 0 .032];
87 
88 L{1}.I = [ 0 0.35 0 0 0 0];
89 L{2}.I = [ .13 .524 .539 0 0 0];
90 L{3}.I = [ .066 .086 .0125 0 0 0];
91 L{4}.I = [ 1.8e-3 1.3e-3 1.8e-3 0 0 0];
92 L{5}.I = [ .3e-3 .4e-3 .3e-3 0 0 0];
93 L{6}.I = [ .15e-3 .15e-3 .04e-3 0 0 0];
94 
95 L{1}.Jm = 200e-6;
96 L{2}.Jm = 200e-6;
97 L{3}.Jm = 200e-6;
98 L{4}.Jm = 33e-6;
99 L{5}.Jm = 33e-6;
100 L{6}.Jm = 33e-6;
101 
102 %L{1}.G = 1.0;
103 %L{2}.G = 1.0;
104 %L{3}.G = 1.0;
105 %L{4}.G = 1.0;
106 %L{5}.G = 1.0;
107 %L{6}.G = 1.0;
108 
109 L{1}.G = -62.6111;
110 L{2}.G = 107.815;
111 L{3}.G = -53.7063;
112 L{4}.G = 76.0364;
113 L{5}.G = 71.923;
114 L{6}.G = 76.686;
115 
116 % viscous friction (motor referenced)
117 L{1}.B = 1.48e-3;
118 L{2}.B = .817e-3;
119 L{3}.B = 1.38e-3;
120 L{4}.B = 71.2e-6;
121 L{5}.B = 82.6e-6;
122 L{6}.B = 36.7e-6;
123 
124 % Coulomb friction (motor referenced)
125 L{1}.Tc = [ 0.0 0.0];
126 L{2}.Tc = [ 0.0 0.0];
127 L{3}.Tc = [ 0.0 0.0];
128 L{4}.Tc = [ 0.0 0.0];
129 L{5}.Tc = [ 0.0 0.0];
130 L{6}.Tc = [ 0.0 0.0];
131 
132 %L{1}.Tc = [ .395 -.435];
133 %L{2}.Tc = [ .126 -.071];
134 %L{3}.Tc = [ .132 -.105];
135 %L{4}.Tc = [ 11.2e-3 -16.9e-3];
136 %L{5}.Tc = [ 9.26e-3 -14.5e-3];
137 %L{6}.Tc = [ 3.96e-3 -10.5e-3];
138 
139 
140 %
141 % some useful poses
142 %
143 qz = [0 0 0 0 0 0]; % zero angles, L shaped pose
144 qr = [0 pi/2 -pi/2 0 0 0]; % ready pose, arm up
145 qstretch = [0 0 -pi/2 0 0 0];
146 
147 p560 = robot(L, 'Puma 560', 'Unimation', 'params of 8/95');
148 clear L
149 p560.name = 'Puma 560';
150 p560.manuf = 'Unimation';
151 
152 
153 
154 
155 
156