ROBOOP, A Robotics Object Oriented Package in C++
puma560akb_motor.m
1 %PUMA560AKB Load kinematic and dynamic data for a Puma 560 manipulator
2 %
3 % PUMA560AKB
4 %
5 % Defines the object 'p560m' in current workspace which describes the
6 % kinematic and dynamic characterstics of a Unimation Puma 560 manipulator
7 % modified DH conventions and using the data and conventions of:
8 %
9 % Armstrong, Khatib and Burdick 1986.
10 % "The Explicit Dynamic Model and Inertial Parameters of the Puma 560 Arm"
11 %
12 % Also define the vector qz which corresponds to the zero joint
13 % angle configuration, qr which is the vertical 'READY' configuration,
14 % and qstretch in which the arm is stretched out in the X direction.
15 %
16 % See also: ROBOT, PUMA560, STANFORD, TWOLINK.
17 
18 % Copyright (C) 1993-2002, by Peter I. Corke
19 % CHANGES:
20 % 12/01 convert to object format
21 % $Log: puma560akb_motor.m,v $
22 % Revision 1.2 2004/07/06 02:16:36 gourdeau
23 % doxy etc
24 %
25 % Revision 1.1 2004/05/12 13:34:37 elachance
26 % Initial revision
27 %
28 % Revision 1.1 2003/02/06 04:31:36 gourdeau
29 % 1er rev Etienne L.
30 %
31 % Revision 1.1 2002/12/17 02:32:22 elachance
32 % Initial revision
33 %
34 % Revision 1.1 2002/12/13 04:50:14 elachance
35 % Initial revision
36 %
37 % Revision 1.3 2002/04/01 11:47:15 pic
38 % General cleanup of code: help comments, see also, copyright, remnant dh/dyn
39 % references, clarification of functions.
40 %
41 % $Revision: 1.2 $
42 
43 clear L
44 % alpha A theta D sigma
45 L{1} = link([0 0 0 0 0], 'mod');
46 L{2} = link([-pi/2 0 0 0 0], 'mod');
47 L{3} = link([0 0.4318 0 -0.15005 0], 'mod');
48 L{4} = link([-pi/2 0.0203 0 -.4318 0], 'mod');
49 L{5} = link([pi/2 0 0 0 0], 'mod');
50 L{6} = link([-pi/2 0 0 0 0], 'mod');
51 
52 %L{1} = link([0 0 0 0 0], 'mod');
53 %L{2} = link([-pi/2 0 0 0.2435 0], 'mod');
54 %L{3} = link([0 0.4318 0 -0.0934 0], 'mod');
55 %L{4} = link([pi/2 -0.0203 0 .4331 0], 'mod');
56 %L{5} = link([-pi/2 0 0 0 0], 'mod');
57 %L{6} = link([pi/2 0 0 0 0], 'mod');
58 
59 L{1}.m = 0;
60 L{2}.m = 17.4;
61 L{3}.m = 4.8;
62 L{4}.m = 0.82;
63 L{5}.m = 0.34;
64 L{6}.m = .09;
65 
66 % rx ry rz
67 L{1}.r = [0 0 0 ];
68 L{2}.r = [0.068 0.006 -0.016];
69 L{3}.r = [0 -0.070 0.014 ];
70 L{4}.r = [0 0 -0.019];
71 L{5}.r = [0 0 0 ];
72 L{6}.r = [0 0 .032 ];
73 
74 % Ixx Iyy Izz Ixy Iyz Ixz
75 L{1}.I = [0 0 0.35 0 0 0];
76 L{2}.I = [.13 .524 .539 0 0 0];
77 L{3}.I = [.066 .0125 .066 0 0 0];
78 L{4}.I = [1.8e-3 1.8e-3 1.3e-3 0 0 0];
79 L{5}.I = [.3e-3 .3e-3 .4e-3 0 0 0];
80 L{6}.I = [.15e-3 .15e-3 .04e-3 0 0 0];
81 
82 L{1}.Jm = 200e-6;
83 L{2}.Jm = 200e-6;
84 L{3}.Jm = 200e-6;
85 L{4}.Jm = 33e-6;
86 L{5}.Jm = 33e-6;
87 L{6}.Jm = 33e-6;
88 
89 %L{1}.G = 1.0;
90 %L{2}.G = 1.0;
91 %L{3}.G = 1.0;
92 %L{4}.G = 1.0;
93 %L{5}.G = 1.0;
94 %L{6}.G = 1.0;
95 
96 L{1}.G = -62.6111;
97 L{2}.G = 107.815;
98 L{3}.G = -53.7063;
99 L{4}.G = 76.0364;
100 L{5}.G = 71.923;
101 L{6}.G = 76.686;
102 
103 % viscous friction (motor referenced)
104 L{1}.B = 1.48e-3;
105 L{2}.B = .817e-3;
106 L{3}.B = 1.38e-3;
107 L{4}.B = 71.2e-6;
108 L{5}.B = 82.6e-6;
109 L{6}.B = 36.7e-6;
110 
111 % Coulomb friction (motor referenced)
112 L{1}.Tc = [ 0.0 0.0];
113 L{2}.Tc = [ 0.0 0.0];
114 L{3}.Tc = [ 0.0 0.0];
115 L{4}.Tc = [ 0.0 0.0];
116 L{5}.Tc = [ 0.0 0.0];
117 L{6}.Tc = [ 0.0 0.0];
118 
119 %L{1}.Tc = [ .395 -.435];
120 %L{2}.Tc = [ .126 -.071];
121 %L{3}.Tc = [ .132 -.105];
122 %L{4}.Tc = [ 11.2e-3 -16.9e-3];
123 %L{5}.Tc = [ 9.26e-3 -14.5e-3];
124 %L{6}.Tc = [ 3.96e-3 -10.5e-3];
125 
126 %
127 % some useful poses
128 %
129 qz = [0 0 0 0 0 0]; % zero angles, L shaped pose
130 qr = [0 -pi/2 pi/2 0 0 0]; % ready pose, arm up
131 qstretch = [0 0 pi/2 0 0 0]; % horizontal along x-axis
132 
133 p560m = robot(L, 'Puma560-AKB', 'Unimation', 'AK&B');
134 clear L
135 
136