Solutions to the inverse kinematics of the three dof MCM and a five

advertisement
CHAPTER 6
ANALYSIS: PSUEDO-RIGID BODY MODEL
Two analysis techniques have been developed. The first one is discussed here with
the other to follow in the next chapter. Solutions to the inverse kinematics of the three
dof MCM and a six dof hybrid serial-parallel version are developed and used to control
the two prototype manipulators. In Figure 6.1 a picture of the prototype is shown
depicting the arrangement of the SMA wires forming the compliant joints. The revolute
joint is made from two flexural pivots and is shown in Figure 6.1a. The spherical joint of
the manipulator is constructed from a single SMA wire (see Figure 6.1b).
6.1 Frame Assignments
The kinematics of the three dof manipulator proceeds from a kinematic diagram of
the pseudo-rigid-body model of the proposed manipulator (see Figure 6.2). Note that
Revolute
(a)
(b)
Figure 6.1: (a) Revolute Joint, (b) Spherical Joint
Figure 6.2: Frame Assignments for Leg i
only one of the three leg pairs are shown in this figure. By the pseudo-rigid body
technique, the manipulator is treated as a lumped compliance device, meaning the only
compliance in the system is in the joints. The manipulator consists of a base and distal
plate connected with three legs each formed of five-revolute chains. Each leg is attached
to the base plate through a rotary joint formed from two flexural pivots located an equal
distance from the center along the revolute axis (point b, Figure 6.2). Next, a single
flexural pivot at an intermediate point along the leg provides rotation about three
intersecting axes (point c, Figure 6.2) with the flexural center corresponding to the pivot
center. Finally, the leg connects to the distal plate through the last rotary joint, again
formed from two flexural pivots located along the revolute axis (point d, Figure 6.2).
Coordinate frames {B} and {D} are located at the centroids of the basal and distal plates
with the z-axis of each coordinate frame normal to its corresponding plate and with each
corresponding x-axis pointing toward the first leg revolute (b or d). Frame {D} is the
output frame and is specified uniquely in the inverse kinematics problem through the
transformation matrix, TBD .
To ensure that {D} is consistent with the manipulator
kinematics, only the pointing direction of the distal normal and the displacement of the
origin of frame {D} along the pointing direction are freely chosen. The remaining three
degrees of freedom are found consistent with the manipulator mechanics. Denevit and
Hartenberg frame assignments are created for each leg, with six intermediate frames ({0}
– {5}) assigned for each as shown in Figure 6.2. Note that the frame assignments for
each leg are similar. In addition, the leg lengths for the lower and upper legs are selected
independently and include the distance to the flexural centers of the joints.
6.2 Transformation Derivations
Using the frame asignments shown in Figure 6.2, the corresponding set of D&H
parameters are generated as shown in Table 6.1. From the frame assignments, frame
transformations are derived that relate the output frame, {D} to the base frame, {B} for
each leg.
Table 6.1: D&H Table
i
ai
I
di
i
1
0
/2
0
1
2
0
/2
l1
2
3
0
/2
0
3
4
0
/2
l2
4
5
0
0
0
5
The intermediate transformation for each leg is given as
c1 c 2 c 3 c 4 c 5  s 3 s 5   s1 s 3 c 4 c 5  c 3 s 5   c1 s 2 s 4 c 5
 s c c c c  s s   c s c c  c s   s s s c
1
3 4 5
3 5
1 2 4 5
T05   1 2 3 4 5 3 5

s 2 c 3 c 4 c 5  s 3 s 5   c 2 s 4 c 5

0

c1 c 2 c 3 s 4  s1 s 3 s 4  c1 s 2 c 4
s1 c 2 c 3 s 4  c1 s 3 s 4  s1 s 2 c 4
s 2 c3 s 4  c 2 c 4
0
c1 c 2  c 3 c 4 s 5  s 3 c 5   s1 s 3 c 4 s 5  c 3 c 5   c1 s 2 s 4 s 5
s1 c 2  c 3 c 4 s 5  s 3 c 5   c1 s 3 c 4 s 5  c 3 c 5   s1 s 2 s 4 s 5
s 2  c 3 c 4 s 5  s 3 c 5   c 2 s 4 s 5
.
0
(6.1)
c1 c 2 l 2 s 3  s1l 2 c 3  s1l1 
s1 c 2 l 2 s 3  c1l 2 c 3  c1l1 

s 2 s3l 2

1

The inverse kinematic solution for the three dof manipulator proceeds from the relation

TBD  f 11 , 21 , 31

(6.2)
where i 1 is the input joint angle for leg i and TBD is the desired transformation from the
distal frame D to the base frame B. Let this transform be given as
 r11
r
D
TB   21
 r31

0
r12
r13
r22
r32
0
r23
r33
0
x
y
.
z

1
(6.3)
Then
1
T05  TB0 TBD T5D
1
(6.4)
or
 r11 ' r12 ' r13 ' x'
r ' r ' r ' y '
22
23

T05   21
r31 ' r32 ' r33 ' z ' 


0
0 1
0
(6.5)
with TB0 , T5D known, constant transformations that are functions of the base and distal
plate geometry. Then, the joint angles for leg i are solved as
 x' 2  y ' 2  z' 2 l12  l22 


2
l
l
1 2


 3  acos
i
 z
x' 2  y ' 2 l22 c32  l12  2l1l2 c3  
,
 l 2 s3

l22 s32


 2  atan 2
i
1  atan 2 y ' , x'  atan 2k 2 , k1 
i
(6.6)
(6.7)
(6.8)
with
k1  c 2 l 2 s3
k 2  l1  l 2 c3 
and
 4  atan 2r13 ' ' , r23 ' ' 
(6.9)
 5  atan 2r31 ' ' , r32 ' ' 
(6.10)
i
i
where
r13 ' '  c1c2 s3  s1c3 r13 's1c2 s3  c1 s3 r23 ' s 2 c3 r33 '
r23 ' '  c1 s 2 r13 ' s1 s 2 r23 'c2 r33 '
r31 ' '  c1c2 s3  s1c3 r11 's1c2 s3  c1c3 r21 ' s 2 s3 r31 '
r32 ' '  c1c2 s3  s1c3 r12 's1c2 s3  c1c3 r22 ' s 2 s3 r32 '
In order to select a consistent output orientation for the MCM, the pointing direction,
specified as ztool and plunge or travel along this pointing direction, pd are given. The
pointing direction of the ouput distal plate results from a rotation,  about an axis of
rotation, ubend, derived from the desired pointing direction as
u bend 
z tool  z B
z tool  z B
  cos 1 z tool  z B  .
(6.11)
(6.12)
The location and orientation of frame {D} relative to {B} from Equation (6.3) becomes


R
D
TB   ubend ,

 0

 0 
 
R ubend ,  0 
 p 
 d

1

(6.13)
with
R ubend ,
 k x k x vφ  cφ k x k y vφ  k z sφ k x k z vφ  k y sφ


 k x k y vφ  k z sφ k y k y vφ  cφ k y k z vφ  k x sφ
k x k z vφ  k y sφ k y k z vφ  k x sφ k z k z vφ  cφ 
k x 
k   u , cφ  cosφ, vφ  1  cφ
bend
 y
 k z 
for the symmetric configuration of the manipulator (see Figure 6.3). The manipulator is
symmetric when all of the leg lengths are equal and the size of both the base and distal
plates are the same. This transformation matrix operates on a vector defining the distal
plate in a known, undisplaced condition to generate a consistent set of positions and
orientions of the distal plate and once acquired, leads to solutions for the three input
angles in closed form.
Figure 6.3: Symmetric Configuration MCM Prototype
For the non-symmetric (partially symmetric) configuration of the manipulator (see
Figure 6.4 and the prototype in Figure 6.5) an additional term (or set of terms) is present
in the transformation matrix and it becomes:


R
TBD   ubend ,

 0

 0   c x 
   
R ubend ,  0   c y 
 p   c 
 d  z

1

(6.14)
where {cx, cy, cz}T is the center of rotation of the distal plate, c in Figure 6.4. One
significant difference in the kinematics of the symmetric and non-symmetric case is
noted. In the symmetric case, the center of rotation of the distal plate is a known,
constant function of the desired plunge. In the unsymmetric case, the center of rotation is
not constant and in general is not known. The center of rotation is found here through a
numerical optimization based on guaranteeing the manipulator constraints.

Figure 6.4: MCM Side Schematic (Rotated for Clarity)
6.3 Experimental Prototype Setup
Since the most practical applications of the MCM stem from the partially symmetric
configuration, this prototpye (see Figure 6.5) is used to record the experimental data for
verification of the kinematics. Therefore, the manipulator shown in Figure 6.5 is fitted
with an array of transducers suitable for measuring the movement of the device. To fully
characterize the movement of the manipulator, both the output at the distal plate and the
input at the basae legs must be meaured. The manipulator is actuated by three linear
piezo-electric stacks (see Figure 6.5). These stacks lie horizontally in the base of the
manipulator and provide the angular input for the base legs (i in Figure 6.4).
The prototype output displacements are measured via three linear glass scales. The
scales are probing on the distal plate surface at a point nearest the line of action of the leg
revolute joints (see the picture in Figure 6.6). These measurements yield the vertical
location of three points on the distal plate, p1, p2, and p3 (see Figure 6.7). The tip of the
PZT Actuator
Figure 6.5: Partially Symmetric MCM Prototype
encoders ride on balls such that they are free to slide along the surface of the distal plate.
Therefore, assuming no stiction between the distal plate surface and the probes, the
measurement probe remains in the same horizontal (x, y) location relative to the plane
from which the measurements are taken. Using the three points, p1, p2, and p3, an
equation for the plane of the distal plate is defined.
This data provides enough
information to characterize the manipulator output. Since the manipulator possesses
three degrees-of-freedom, defining the plane of the distal plate is sufficient to
characterize the manipulator movement. Thus with the plane defined for the distal plate,
a set of parameters consistent with the manipulator kinematics developed earlier can be
extracted. These parameters are the rotation axis, ubend, the rotation about that axis, 
and plunge for the manipulator, pd.
The first step if to form two vectors from the distal plate encoder measurements.
These two vectors are given as
Figure 6.6: Encoders Mounted on the Distal Plate of MCM
v 1  p 2  p1
v 2  p 3  p1
(6.15)
where
 pi , x 


p i   pi , y  .
p 
 i,z 
Then the vector normal to the distal plate (positive sense is pointing upwards away from
distal plate) is found by
N  v 2  v1 .
(6.16)
Figure 6.7: Distal Plate Transducer Measuring Point Locations
Using this outward pointing normal, a set of parameters suitable for the inverse
kinematics of the manipulator can be derived. These are the spherical coordinates of the
manipulator output (see Figure 6.8). The two angles are defined as
  atan 2N y , N x 
 Nz 
.

 N 
  a cos
(6.17)
(6.18)
The three encoder values present enough data to calculate an equation for the plane of the
distal plate. From the standard from of an equation for a plane given as
Ax  By  Cz  D  0 ,
where the coefficients are given as
(6.19)
Figure 6.8: Spherical Coordinate Diagram of Distal Plate Normal
A  Nx
B  Ny
(6.20)
C  Nz
D   A  p x  B  p y  C  p z 
and p is a point on that plane (say p1 from the prototype setup). Now with the plane of
the distal plate known, the last parameter referred to as plunge, pd, may be calculated.
This plunge distance is given as the Distance from a point to the distal plate plane as
pd 
A  cx  B  c y  C  cz  D
A2  B 2  C 2
.
(6.21)
where the point, c, is the rotation center of the distal plate and is given as
 0 


c   0 .
p

 d ,lower 
(6.22)
The kinematics of the manipulator operate on a desired set of distal plate pose
parameters. Taking these values in it returns the base leg input angles. On the prototype
MCM the base leg angles are measured with the same type of linear encoders as the distal
plate ones. The scales are cantilevered from the legs for amplification of the movement
(see Figure 6.9). To relate these readings to a more useful leg angle a relationship is
established. This relation, or equation, is given below
Ei  l tan  offset   i  .
(6.23)
6.3 Experimental Results for Partially Symmetric Prototype
The procedure for testing of the prototype is as follows. The manipulator is moved
through a series of predetermined paths at various steps. At each step the three encoder
values at the distal plate and the three encoder values at from the legs are recorded. Two
types of moves were performed. One involved plunging the manipulator in a purely
Encoder
Figure 6.9: Layout of Base Leg Encoders
vertical sense, essentially moving all three legs the same. The other movement type is a
tilting move in which two legs were driven and the third was held stationary. A sample
subset of the data for both types of moves are shown in Tables 6.1 and 6.2 below.
Encoders 1, 2, and 3 are measuring the output at the distal plate and coincide with the
MCM legs 1, 2, and 3 respectively. Encoders 4, 5, and 6 are measuring the rotation of
the MCM base legs and correspond to legs 1, 2, and 3 respectively. The manipulator is
driven by a desktop pc communicating with three piezo motor drivers. The computer
commands the manipulator to move by servoing the distal plate to a desired orientation.
This orientation is set by choosing the three distal plate encoder values and having the pc
drive the manipulator such that the measured encoder values (at the distal plate) agree
with the desired encoder values. Hence the manipulator arrives at (or very near) the
desired location at which time all six encoder values are recorded to a file. This file is
Table 6.1: Plunge Move Sample Data (Measurements in m)
Move
1
2
3
4
5
6
7
8
9
Encoder1
20
30
40
49.98
60
70
80.02
90
99.98
Move
1
2
3
4
5
6
7
8
9
Encoder 1
20.02
30
40
50
60
69.98
80
90
99.98
Encoder2
20
30.02
40
50
60
70
80.02
90
99.98
Encoder3
20.04
29.98
40
50.02
59.96
70
80.02
89.98
99.98
Encoder4
26.64
38.96
52.06
65.7
78.24
91.3
104.84
116.94
130.54
Encoder5
25.56
38.34
51.08
63.72
76.36
89.1
101.68
114.54
127.06
Encoder6
25.62
38.14
52.5
63.9
78.52
90.56
104.58
116.92
131.18
Table 6.2: Tilting Move Sample Data (Measurements in m)
Encoder 2
20
30.02
40.02
50
60
70
80
90
100.02
Encoder 3
50
50
50.02
50.02
50
49.98
50
50
50
Encoder 4
20.2
34.08
49.14
64.14
78.56
92.6
107.76
122.52
136.76
Encoder 5
19.54
34.1
48.62
63
77.7
92.14
106.56
121.26
135.72
Encoder 6
76.76
73.68
70.68
67.4
63.52
59.9
56.7
53.76
50.58
then later read into the kinematics program for analysis.
The data ranges depicted in Tables 6.1 and 6.2 are just small sections of the actual
recorded data. The actual data range for the plunge move had the distal plate moving
from 20 m up to 340 m in 10 m increments. The manipulator was cycled through
this pattern twice in each data set to observe any hysteresis present in the system. The
travle is limited heredue to the physical limitations of the prototype (actually 0 m to 400
m). In the tilting move, the manipulator was driven such that one leg was held fixed
while the other two were driven equal amounts. The actual data for one set, say for
titling while holding leg 3 fixed, involved the distal plate encoders 1 and 2 to move from
20 m to 300 m while encoder 3 was held at 50 m. One important thing to note about
this tilting data is the results when encoders 1 and 2 were moved 270 m and 300m a
large deviation of encoder 3 was observed. This is due completely to the physical
constraints of the prototype. This pose was out of its range without allowing leg 3 to
move an excessive amount (up to approximately 5.5 m). Therefore, these data points
(270 m through 300 m) were not used in the kinematics comparisons. The complete
data set for all moves is shown in Appendix A, Tables A.1 and A.2.
To analyze the data collected from the experimental setup, the distal plate measured
encoder values were read directly into the program performing the kinematics. By
reading in the distal plate values, the program uses these values to calculate the expected
leg angle encoder measured values. Figure 6.10 shows a plot of the measured encoder
values at the legs verses the calculated encoder values at the legs. From the plot, it can be
seen that the kinematics match very well through the range of motion, deviating the most
at the extreme limits of the manipulator. For example, the measured encoder 4 (leg 1)
Measured vs. Calculated (for Plunge Move)
Caculated & Measured Encoder Reading
500
450
400
350
ENC4
300
ENC5
ENC6
250
CALC4
200
CALC5
150
CALC6
100
50
0
0
20
40
60
80
100
120
140
Step Number
Figure 6.10: Plot of Measured Encoder Values vs. Expected Values from the Kinematics
(for Plunge Move)
value at step 34 is 438.36 m while the kinematics yields an encoder 4 (leg 1) value of
420.41 m. From this observation, the kinematics are a very close approximation to the
movement of the prototype. This is not surprising due to the overall small movement of
the manipulator which leads to very small joint rotations.
However, when the results from a tilting move are compared to the kinematics, the
calculated values do not match as well in the beginning. The reason for this inaccuracy
lies in the assumption of the pdlower value. This parameter determines the center of
rotation about which the distal plate rotates. For simple plunge moves, this value does
not play a role in the calculated encoder values.
90
80
70
60
Calculated vs. Measured Leg Encoder Values
(for tilting move)
50
40
30
Calculated & Measured Encoder Reading
500
20
10
400
0
0
2
4
6
8
10
Meas. Leg 1
300
Meas. Leg 2
Meas. Leg 3
200
Calc. Leg 1
Calc. Leg 2
100
Calc. Leg 3
0
0
20
40
60
80
100
120
-100
Step Number
Figure 6.?: Plot of Measured Encoder Values vs. Expected Values from the Kinematics
(for Tilting Move)
Download