Parallel Robots ch3
Parallel Robots ch3
Equation 2.52 describes the absolute position of any point P of the rigid body, AP, by follows. The motion of the rigid body can be divided into a translation represented by
the relative position of that point with respect to the moving frame, B P, and the location the vector 0 P O1 , and a rotation represented by 0 R1 as
or pose of the rigid body represented by the set { AR B , A P OB }. In this equation, the leading ⎡ ⎤ ⎡ ⎤
superscript of B P cancels with the trailing subscript of AR B , leaving all quantities as vectors −1 −1 0 0
O1 = ⎣ 1 ⎦ ;
0P 0R = ⎣ 0 0 1⎦ .
expressed in the fixed frame {A}. 1
When the motion of a rigid body is expressed in this way, since it is assumed that initially 1 0 1 0
the moving frame coincides with the fixed frame, B P may be considered as the position of Therefore, absolute position of point P with respect to the fixed frame {0} is
a point P before the motion, while AP is the position of the same point after the motion.
Therefore, as suggested in Equation 2.52, the motion of the rigid body is divided into two 0P = 0R 1P + 0P
1 O1
parts. The first term in the right-hand side of Equation 2.52, represents the contribution due ⎡ ⎤⎡ ⎤ ⎡ ⎤
to a pure rotation of the rigid body, while the second term represents the contribution due −1 0 0 0.1 −1
to the translation along the vector AP OB . This relation is well known as Chasles’ theorem, =⎣ 0 0 1⎦ ⎣0.1⎦ + ⎣ 1 ⎦
that general spatial displacement of a rigid body can be considered as a rotation plus a 0 1 0 0 1
⎡ ⎤
translation. −1.1
⎣
= 1.0 ,⎦
1.1
Example 2.14
Consider a rigid body in an initial state represented by frame {0}, and a point P on the which can be easily verified by inspection from Figure 2.11.
rigid body with the coordinates P = [0.1 0.1 0]T , as shown in Figure 2.11. Furthermore,
consider the rigid body is moved to a location represented by frame {1}. The absolute
position vector of point P is denoted by 0 P, and can be calculated by Equation 2.52 as
A
P = AT B B P, (2.53)
that are represented by vectors such as linear and angular velocities, linear and angular
accelerations, forces, and moments have been discussed in the following chapters. There
{0} are two basic classes of vector quantities, the generalization to homogeneous coordinates
z
of which are different. The first type is called line vector. Line vectors refer to a vector-
valued quantity the amount of which depends on the line of action, or the position where
y the vector is applied. As seen in this chapter, the position vector is of this type. Similarly,
1m
0.1 linear velocity, linear acceleration, and force are vector-valued quantities that depend on
0.1 P the line of action. On the contrary, there exist quantities like orientation that hold for the
x whole rigid body, and do not correspond to a point. Vector-valued quantities like angular
velocity, angular accelerations, and moments are such quantities that hold for the whole
FIGURE 2.11 rigid body, and can be positioned freely throughout the whole rigid body, without any
Example of a rigid body motion. change in their quantity. These types of vectors are called free vectors.
For line vectors, both orientation and translation of the moving frame contribute to their Using homogeneous coordinates for a free vector like angular velocity of a rigid body,
value. Hence, in order to use Equation 2.53, the 4 × 1 homogeneous coordinate of such the transformation Equation 2.53 yields
vectors is generated by appending 1 to the three components of that vector as follows:
⎡ ⎤ ⎡ ⎤⎡ ⎤
⎡ ⎤
vx ⎢ Aω⎥ ⎢ AR AP
OB ⎥ ⎢ B ω⎥
⎢v y ⎥ ⎢ ⎥=⎢ B ⎥⎢ ⎥ (2.59)
⎣ ⎦ ⎣ ⎦⎣ ⎦
For line vectors V = ⎢ ⎥
⎣ vz ⎦ . (2.54)
0 0 0 0 1 0
1
A
ω = AR B B ω (2.60)
For free vectors, only the orientation of the moving frame contributes to their value.
0 = 0,
Hence, in order to use Equation 2.53, the 4 × 1 homogeneous coordinate of such vectors is
generated by appending 0 to the three components of that vector as follows:
which confirms the property of free vectors in general motions that only change in
⎤ ⎡ orientation affects their representation, while translation of the frame does not.
ωx
⎢ω y ⎥
⎢ ⎥.
For free vectors ω = ⎣ (2.55)
ωz ⎦ Example 2.15
0 Consider the general motion of the rigid body shown in Figure 2.11. Furthermore,
assume that the position of point P with respect to the moving frame {1}, denoted by the
The convention adopted in here is that a vector-valued quantity is represented by a 3 × 1 vector 1 P, and the angular velocity of the rigid body with respect to frame {1}, denoted
or 4 × 1 vector, depending on whether it is multiplied by a 3 × 3 rotation matrix or a 4 × 4 by 1 ω are given as
homogeneous transformation matrix. ⎡ ⎤ ⎡ ⎤
0.1 1
1 P = ⎣0.1⎦ ; 1 ω = ⎣ 0 ⎦ .
2.3.2 Homogeneous Transformation Matrix 0 1.2
The homogeneous transformation matrix is a 4 × 4 matrix, defined for the purpose of trans-
formation mapping of a vector in a homogeneous coordinate from one frame to another In order to obtain the absolute position vector 0 P and the angular velocity of the rigid
in a compact form as depicted in Equation 2.53. The matrix is composed of the rotation body represented in frame {0}, namely 0 ω, the homogeneous transformation can be
matrix AR B , representing the orientation, and the position vector AP OB , representing the used by Equation 2.53. For this example, the homogeneous transformation matrix is
translation partitioned as follows: simplified to
⎡ ⎤ ⎡ ⎡
⎤ ⎤
−1 0 0 −1
⎢ ⎢ O1 ⎥⎢0 1⎥
OB ⎥
AR AP 0R 0P 0 1
0T = ⎢ 1 =⎥⎢ ⎥.
A
TB = ⎢
⎣
B ⎥
⎦. (2.56) 1 ⎣ ⎦ ⎣0 1 0 1⎦
0 0 0 1 0 0 0 1
0 0 0 1
Furthermore, since the position vector is a line vector while angular velocity is a free
The homogeneous transformation matrix AT B is a 4 × 4 matrix operator mapping vector-
vector, their corresponding homogeneous coordinates are given as
valued quantities represented by 4 × 1 homogeneous coordinates. Using the homogeneous
coordinates for a line vector like position, the transformation Equation 2.53 yields ⎡ ⎤ ⎡ ⎤
0.1 1
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎢ ⎥ ⎢ ⎥
1 P = ⎢0.1⎥ ; 1 ω = ⎢ 0 ⎥ .
⎣0⎦ ⎣1.2⎦
⎢ AP⎥ ⎢ AR AP
OB ⎥ ⎢ B P⎥
⎢ ⎥=⎢ B ⎥⎢ ⎥ (2.57) 1 0
⎣ ⎦ ⎣ ⎦⎣ ⎦
1 0 0 0 1 1
Therefore, 0 P and 0 ω are calculated as follows:
A
P = AR B B P + AP OB (2.58)
⎡ ⎤ ⎡ ⎤
−1.1 −1
1 = 1. ⎢ ⎥ ⎢ ⎥
0 P = 0 T 1 P = ⎢ 1.0 ⎥ ; 0 ω = 0 T 1 ω = ⎢1.2⎥ .
1 ⎣ ⎦ 1.1 1 ⎣ ⎦ 0
As seen, using homogeneous transformation matrix, the compact form of mapping 1 0
Equation 2.53 leads to the same result obtained in Equation 2.52.
Motion Representation 47 48 Parallel Robots
2.3.3 Screw Displacement represent the translational part of the general motion along the screw axis, it is sufficient to
use the projection of vector AP OB on the screw axis ŝ, denoted by a scalar d (Figure 2.12).
As discussed earlier, Chasles’ theorem states that the most general rigid body displacement
Furthermore, contrary to the pure rotation case, depicted in Figure 2.5, the screw axis does
can be produced by a translation along a line followed by a rotation about the same line.
not pass through the origin of the fixed frame {A}. Any point so on the screw axis can be
Because this displacement is reminiscent of the displacement of a screw, it is called a screw
chosen to represent its distance to the frame {A}, whereas we may choose so coincident
displacement, and the line or axis is called the screw axis. Earlier in this chapter, we have
with OB , the origin of the frame {B}. Hence, the general motion of the rigid body can be
represented pure rotation by an equivalent angle of rotation about the screw axis. Now
represented by two scalars, namely θ and d, and two vectors, namely ŝ and so , where
consider a general motion of the rigid body, wherein a combination of translation and
rotation has occurred. Figure 2.12 shows such a general motion in which the rigid body has
ŝT ŝ = 1; soT ŝ = d. (2.61)
moved from an initial state represented by frame {A} to a final state which is represented by
frame {B}. An intermediate frame {A } is considered in this figure in order to separate the If the transformation matrix is given to represent the general motion of a rigid body, the
translational motion of the rigid body from the general motion. As depicted in Figure 2.12, screw displacement parameters can be easily obtained as follows. The rotation parame-
frame {A } coincides with the origin of frame {B}, but it is parallel to {A}. By this means, ters, namely θ and ŝ, are found by Equations 2.20 and 2.36, respectively. The translation
the translational motion of the rigid body is represented by frame {A }, which represents parameters are derived by
the motion with the translation vector of AP OB .
so = AP OB ; d = soT ŝ. (2.62)
Rotation of the rigid body can be considered as the relative motion of the two frames {A }
and {B}. As studied in Section [Link], the pure rotation of the rigid body can be represented Otherwise, if the screw displacement parameters
by a screw axis of rotation ŝ, and an equivalent angle of rotation θ , shown in Figure 2.12.
The screw axis coordinates ŝ = [sx , s y , sz ]T , and the equivalent angle of rotation θ may be {θ , ŝ = [sx , s y , sz ]T ; d, so = [so x , so y , so z ]T } (2.63)
derived using Equations 2.36 and 2.20, respectively. This representation can be generalized
to incorporate the translational motion as well. According to the Chasles’ theorem, the are given, the transformation matrix is determined by
general rigid body displacement can be represented by a translation along the same screw ⎡ 2 ⎤
axis. However, the translation of frame {A }, with respect to frame {A}, has been earlier sx vθ + cθ sx s y vθ − sz sθ sx sz vθ + s y sθ px
represented by the vector AP OB , which is not necessarily along the screw axis. In order to ⎢s y sx vθ + sz sθ s y2 vθ + cθ s y sz vθ − sx sθ py⎥
A
TB = ⎢
⎣sz sx vθ − s y sθ
⎥ (2.64)
sz s y vθ + sx sθ sz2 vθ + cθ pz ⎦
0 0 0 1
ŝ
in which
p y = d s y − so x (s y sx vθ + sz sθ ) − so y (s y2 − 1)vθ − so z (s y sz vθ − sx sθ ) (2.65)
Furthermore, using Equation 2.62, d and so are determined as follows: {C} represents the rigid body at its final location. Furthermore, suppose the position vec-
tor of a point P of the rigid body is given in the final location, that is C P is given, and
d = 2; so = [1.4142, −1.5764, −1.4142]T . the position of this point is to be found in the fixed frame {A}, that is AP. Since the loca-
tions of the rigid body is known relative to each other, C P can be transformed to B P using
transformation matrix B T C as
Example 2.17 B
P = B T C C P. (2.66)
Consider that the general motion of a rigid body is represented by the following screw
displacement parameters: Now, B P can be transformed into AP, using transformation matrix AT B as
A
π 1 P = A T B B P. (2.67)
θ = , ŝ = √ [1, −2, −1]T ; d = 0.5, so = [0, 0, 1]T .
4 6
Combining Equations 2.66 and 2.67 yields
Note that, in this example, so is considered as an arbitrary point in the space. For this A
case, Equation 2.64 is used to determine the transformation matrix as follows: P =A T B B TC C
P. (2.68)
Furthermore, if more than two consecutive transformations exist, relation 2.69 can be
[Link] Consecutive Transformations generalized to
A
As shown in Figure 2.13, consider the motion of a rigid body described at three locations. T Z =A T B B TC C
TD · · · Y
T Z. (2.71)
Frame {A} represents the initial location, frame {B} is an intermediate location, and frame
Example 2.18: Consecutive Transformations
{B}
Consider three locations of a rigid body shown in Figure 2.14, and represented by frames
{A} w {0}, {1}, and {2}. The homogeneous transfer matrices 0 T 1 , 1 T 2 , and 0 T 2 can be determined
z v by Equation 2.56 as follows:
⎡ ⎤
0 −1 0 0
OB
0 T = ⎢−1
⎢ 0 0 1⎥
{C } ⎥,
AP
OB t 1 ⎣ 0 0 −1 1⎦
BP 0 0 0 1
OC
u ⎡ ⎤
OA y 1 0 0 0
BP ⎢
1 T = ⎢0 −1 0 1⎥⎥,
Oc 2 ⎣0 0 −1 1⎦
AP s
0 0 0 1
r CP ⎡ ⎤
0 1 0 −1
x
0 T = ⎢−1
⎢ 0 0 1⎥⎥.
P 2 ⎣ 0 0 1 0⎦
0 0 0 1
FIGURE 2.13
Motion of a rigid body represented at three locations by frames {A}, {B}, and {C}. Multiply 0 T 1 by 1 T 2 , and show that 0 T 2 = 0 T 1 1 T 2 as given in Equation 2.71.
Motion Representation 51 52 Parallel Robots
1m
y θ1 = δθ1 , and θ2 = δθ2 , then the approximations s1 δθ1 , c 1 1, s2 δθ2 , and c 2 1 can
be used in corresponding rotation matrices. Therefore, for infinitesimal rotations, we
have
x ⎡ ⎤
1 −δθ2 0
{2} R1 = Rx (θ1 ) Rz (θ2 ) = ⎣ δθ2 1 −δθ1 ⎦ ,
{1} z z δθ1 δθ2 δθ1 1
⎡ ⎤
1 −δθ2 δθ1 δθ2
R2 = Rz (θ2 ) Rx (θ1 ) = ⎣δθ2 1 −δθ1 ⎦ ,
1m
x 0 δθ1 1
{0} where for small δθi ’s, the higher-order terms can be neglected, that is, δθ1 δθ2 0. There-
z fore, in this case (and in general) R1 = R2 . Hence, infinitesimal rotation angles commute,
y
and therefore, can be represented by vectors.
1m
y
[Link] Inverse Transformation
x
Direct inversion of a 4 × 4 homogeneous transfer matrix AT B , to obtain B T A, might be com-
FIGURE 2.14 putationally intensive. Since the homogeneous transfer matrix is composed of a rotation
Motion of a rigid body represented in three locations by frames {0}, {1}, and {2}. matrix, a position vector describing the origin of frame {B} with respect to frame {A}, and
a row with constant values, it is much easier to use this structure for inversion. In order to
Example 2.19: Finite Angle Rotations obtain B T A using this structure, it is necessary to compute B R A and B P O A from the known
AR and AP B
In this example, it is shown that finite angle rotations cannot be represented by vectors B OB and generate T A as follows:
since they do not generally commute. Moreover, it is shown that in contrast to finite ⎡ ⎤
rotations, infinitesimal rotations can be represented by a vector δθ since they commute.
Consider two consecutive rotations, first about x̂ with a finite angle θ1 and then about ⎢ BR BP
OA ⎥
B
TA = ⎢
⎣
A ⎥
⎦. (2.72)
ẑ with another finite angle θ2 . The final rotation matrix is derived by using consecutive
transformation formula 2.71 as follows: 0 0 0 1
⎡ ⎤
1 0 0
Rx (θ1 ) = ⎣0 c 1 −s1 ⎦ , First recall that B R A = ARTB . Next, describe the position vector of the origin of frame {A} in
0 s1 c1 {B} as follows:
⎡ ⎤
c 2 −s2 0 A
P OA = − AP OB
⎣
Rz (θ2 ) = s2 c2 0⎦ ,
B
0 0 1 P OA = B R A AP OA = − B R A AP OB
⎡ ⎤
c2 −s2 0 = − ARTB AP OB (2.73)
R1 = Rx (θ1 ) Rz (θ2 ) = ⎣c 1 s2 c 1 c 2 −s1 ⎦ ,
s1 s 2 s 1 c 2 c1 Hence, the inverse of the transformation matrix can be obtained by
in which c 1 = cos(θ1 ), s1 = sin(θ1 ), c 2 = cos(θ2 ), and s2 = sin(θ2 ) are used as shorthand ⎡ ⎤
notations. Since finite rotations are generally represented by a rotation matrix, and ⎢
⎢
ART − ARTB AP OB ⎥
⎥.
matrix multiplication does not commute, if the order of rotations is changed, the B
T A = A T −1
B =⎣
B
⎦ (2.74)
resulting orientation is represented by
0 0 0 1
⎡ ⎤
c2 −c 1 s2 s1 s2
R2 = Rz (θ2 ) Rx (θ1 ) = ⎣s2 c1 c2 −s1 c 2 ⎦ . Equation 2.74 is a general and computationally efficient way of computing the inverse of
0 s1 c1 a homogeneous transformation matrix.
Example 2.20
y
The orientation of an object frame {1} with respect to frame {0} is given by the following 1m 0.5 m
1m
rotation matrix: ⎡ ⎤
0.933 0.167 0.354 x {C }
0 R = ⎣ 0.067 0.933 −0.354⎦ .
1
−0.354 0.354 0.866 z
y
We suspect that the elements of 0 R1 may be wrong, and check the orthonormality of its z
column vectors. It can be easily verified that the norm of the first and the third column x y
vectors are equal to one, but the norm of the second column vector is greater than one. {A} {B}
By inspection, it can be seen that r12 is mistyped and should be equal to 0.067.
Furthermore, consider that the origin of frame {1} is represented by the position vector x
0P
T
O = 2 −1 0 . If the position vector of point P expressed in frame {0} is 0 P =
1
T z
0.25 0.43 0.86 , the position vector 1 P of the same point P in frame {1} can be
obtained as follows:
1 P = 1 T 0 P = 0 T −1 0 P
0 1 FIGURE 2.15
Frames {A}, {B}, and {C} at the corners of a rectangular box.
In order to complete the calculation, it is necessary to determine the inverse of the homo-
geneous transfer matrix 0 T 1 . The inversion can be performed using Equation 2.74 as
follows: y
⎡ ⎤
⎢
1 T =0 T −1 = ⎢
0 RT −0 R1T 0 P O1 ⎥
1 ⎥ x {C }
0 1 ⎣ ⎦
0 0 0 1
⎡ ⎤ z
0.933 0.067 −0.354 −1.80 z
⎢0.067 0.933 0.354 0.80⎥ y
=⎢
⎣0.354
⎥. y x
−0.354 0.866 −1.06⎦
0 0 0 1
T
0.6 m
{A}
Hence, 1 P = −1.84 1.52 −0.38 .
x 0.3m
1m
z
PROBLEMS {B}
1. Consider the frames {A}, {B}, and {C} as depicted in Figure 2.15. Give the values of FIGURE 2.16
AR , A R , and B R . Frames {A}, {B}, and {C} at the corners of a wedge.
B C C
2. For the frames defined in Figure 2.15, find the following rotation matrices
B R ,C R , and C R by definition. Verify the results by numerical inversion of the
A A B
rotation matrices found in Problem 1.
a. If the position vector B P = [0.7071 −0.7071 0]T is given, find AP.
3. Repeat Problem 1 for the frames given in Figure 2.16.
b. If the position vector AP = [0.5774 −0.5774 −0.5774]T is given, find B P.
4. Repeat Problem 2 for the frames given in Figure 2.16.
c. Find the eigenvalues and eigenvectors of AR B .
5. Repeat Problem 1 for the frames given in Figure 2.17.
d. Give the screw axis representation of the rotation, namely the equivalent angle
6. Repeat Problem 2 for the frames given in Figure 2.17.
of rotation θ , and the components of the screw axis Aŝ = [sx s y sz ]T . Verify
7. The rotation of a rigid body is represented by the following rotation matrix: the results by the eigenvalues and eigenvectors of the rotation matrix obtained
⎡ ⎤ in part (c).
0.5000 0.0795 0.8624
A
R B = ⎣ 0.5000 0.7866 −0.3624⎦ e. Give the equivalent pitch–roll–yaw Euler angles for this rotation.
−0.7071 0.6124 0.3536 f. Give the equivalent w–v–u Euler angles that can represent this rotation.
Motion Representation 55 56 Parallel Robots
0.75 m
matrix, and the inverse of such matrix is equal to its transpose. For this reason,
z suppose that two unit vectors ŝ and r̂ are embedded in a rigid body, and note
0.4 m x that the geometric angle between such vectors is preserved for any rotations. Use
1m
this fact to provide a concise proof for the orthonormality condition of a rotation
y matrix.
{A}
14. Suppose the rotation of a rigid body is represented by the following pitch–roll–
FIGURE 2.17 yaw Euler angles Rx (π/6), R y (π/4), and Rz (π/4).
Frames {A}, {B}, and {C} at the corners of a wedge. a. Find the corresponding rotation matrix AR B .
b. Give the screw axis representation of the rotation, namely the equivalent angle
8. Repeat Problem 7 for the following rotation matrix: of rotation θ and the components of the screw axis Aŝ = [sx s y sz ]T .
⎡ ⎤ c. Give the equivalent w–u–w Euler angles for this rotation.
0.5000 0.0795 0.8624
A
R B = ⎣ 0.5000 0.7866 −0.3624⎦ . d. Give the equivalent w–v–u Euler angles that can represent this rotation.
−0.7071 0.6124 0.3536 15. Suppose the rotation of a rigid body is represented by the following three rotations
about fixed axes, Rz (α), R y (β), and Rz (γ ):
9. The rotation of a rigid body is represented by the following rotation matrix: a. Find the corresponding rotation matrix AR B .
⎡ ⎤ b. Evaluate the rotation matrix for α = π/2, β = −π/4, and γ = π/6.
−0.1464 −0.8536 0.5000
A
R B = ⎣ 0.8536 0.1464 0.5000⎦ . c. Give the screw axis representation of the rotation, namely the equivalent angle
−0.5000 0.5000 0.7071 of rotation θ and the components of the screw axis Aŝ = [sx s y sz ]T .
d. Give the equivalent w–v–w Euler angles for this rotation.
a. Find the eigenvalues and eigenvectors of AR B . e. Give the equivalent w–v–u Euler angles that can represent this rotation.
b. Give the screw axis representation of the rotation, namely the equivalent angle 16. Suppose the rotation of a rigid body is represented by the following three rotations
of rotation θ and the components of the screw axis Aŝ = [sx s y sz ]T . Verify about moving axes Rv (α), Rw (β), and Ru (γ ):
the results by the eigenvalues and eigenvectors of the rotation matrix obtained a. Find the corresponding rotation matrix AR B .
in part (c). b. Evaluate the rotation matrix for α = π/4, β = −π/2, and γ = π/3.
c. Give the equivalent w–v–w Euler angles for this rotation. c. Give the screw axis representation of the rotation, namely the equivalent angle
d. Give the equivalent w–v–u Euler angles that can represent this rotation. of rotation θ , and the components of the screw axis Aŝ = [sx s y sz ]T .
10. Repeat Problem 9 for the following rotation matrix: d. Give the equivalent w–v–w Euler angles for this rotation.
⎡ ⎤ e. Give the equivalent w–u–w Euler angles that can represent this rotation.
0 0.2588 0.9659
17. Suppose the rotation of a rigid body is given by the following screw axis
A
RB = ⎣ 0 0.9659 −0.2588⎦ .
representation:
−1.0000 0 0
θ = π/2, ŝ = [−0.5774 0.5774 0.5774]T .
11. A rotation matrix is given as follows. We suspect that there are few errors in log-
ging this rotation. Using the properties of a rotation matrix, find the errors and
correct them: a. Find the corresponding rotation matrix AR B .
⎡ ⎤
0.0990 −0.3696 0.9239 b. Give the equivalent pitch–roll–yaw Euler angles that represent this rotation.
A
R B = ⎣0.9839 −0.1124 −0.1464⎦ c. Give the equivalent w–v–w Euler angles for this rotation.
0.1487 0.9235 0.3536 d. Give the equivalent w–u–w Euler angles that can represent this rotation.
18. Consider the pure rotation of a rigid body that is represented by the screw axis 21. For the frames defined in Figure 2.15, find the following homogeneous trans-
parameters {θ , ŝ = [sx s y sz ]T }. Show that the corresponding rotation matrix formation matrices B T A,C T A, and C T B , by definition. Verify the results through
can be evaluated by the following matrix exponential function: inversion of the homogeneous transformation matrices found in Problem 20, using
the inversion formula 2.74.
A
R B = e ŝ× θ , (2.75) 22. Repeat Problem 20 for the frames given in Figure 2.16.
23. Repeat Problem 21 for the frames given in Figure 2.16.
in which the matrix ŝ× is defined as
24. Repeat Problem 20 for the frames given in Figure 2.17.
⎡ ⎤
0 −sz sy 25. Repeat Problem 21 for the frames given in Figure 2.17.
ŝ× = ⎣ sz 0 −sx ⎦ . (2.76) 26. For a general motion of rigid body depicted in Figure 2.12, show that the cor-
−s y sx 0 responding general Rodrigues formula similar to that given in Equation 2.33 is as
follows:
19. In this problem, Euler parameters or unit quaternion are introduced. Consider the
pure rotation of a rigid body that is represented by the screw axis parameters A
P = so + d ŝ + ( B P − so )cθ + ŝ × ( B P − so )sθ + [( B P − so )T ŝ]vθ ŝ,
{θ , ŝ = [sx s y sz ]T }. Four Euler parameters are defined as
in which cθ = cos θ , sθ = sin θ , and vθ = 1 − cos θ . Furthermore, prove Equa-
1 = sx sin(θ/2); 2 = s y sin(θ/2); 3 = sz sin(θ/2); 4 = cos(θ/2). (2.77) tion 2.65.
Euler parameters can be put together into a 4 × 1 tuple 27. Given AT B as follows, find B T A.
⎡ ⎤
T 0.2500 0.6124 0.7500 0.4223
= 1 2 3 4 , ⎢ 0.6124 0.5000 −0.6124 1.6717⎥
A
TB = ⎢
⎣−0.7500
⎥.
0.6124 −0.2500 −0.1723⎦
and are also known as a unit quaternion. Since
0 0 0 1
2 = 12 + 22 + 32 + 42 = 1 28. Consider the frames {A}, {B}, and {C} as depicted in Figure 2.15. Furthermore,
assume that the position vector of a point of the rigid body and the angular
velocity of the rigid body with respect to frame {C} are given as follows:
a. Show that the rotation matrix can be represented by Euler parameters as
⎡ ⎤ ⎡ ⎤
follows: 1 1
⎡ ⎤ C
P = ⎣−1⎦ ; C
ω = ⎣ 1.75 ⎦ .
1 − 2 22 − 2 32 2( 1 2 − 3 4 ) 2( 1 3 + 2 4 ) 1 −1.2
A
R B = ⎣2( 1 2 + 3 4 ) 1 − 2 12 − 2 32 2( 2 3 − 1 4 )⎦ . (2.78)
2( 1 3 − 2 4 ) 2( 2 3 + 1 4 ) 1 − 2 12 − 2 22 Using the proper homogeneous transformations, find B P and B ω. Using these vec-
tors and proper homogeneous transformations, find AP and Aω. Finally, evaluate
b. Show that given a rotation matrix, the inverse solution for the Euler parameters AP and Aω directly from the first vectors, using proper transformations, and verify
are your results.
(r32 − r23 ) 29. Repeat Problem 28 using the frames given in Figure 2.16.
1 = ;
4 4 30. Repeat Problem 28 using the frames given in Figure 2.17.
(r13 − r31 )
2 = ;
4 4
(r21 − r12 )
3 = ;
4 4
1
4 = 1 + r11 + r22 + r33 .
2
20. Consider the frames {A}, {B}, and {C} as depicted in Figure 2.15. Give the values of
AT , A T , and B T .
B C C
60 Parallel Robots
3 A3
Kinematics
B3
P(px , py)
f B2
B1
3.1 Introduction
In this chapter kinematic analysis of parallel robots is discussed in detail. Kinematic analy-
sis refers to the study of the geometry of motion of a robot, without considering the forces A1 A2
and torques that cause the motion. In this analysis, the relation between the geometrical
parameters of the manipulator with the final motion of the moving platform is derived
FIGURE 3.1
and analyzed. A symmetrical planar parallel robot.
A parallel robot is a mechanism with a number of closed kinematic chains, and its mov-
ing platform is linked to the base by several independent kinematic chains. This definition
of parallel robots is very extensive, and it includes redundant parallel manipulators with manipulator, the passive link which is connected to the base with a spherical joint (S6),
more actuators than the number of controlled degrees-of-freedom as well as under con- limits the motion of the moving platform to only three rotational degrees-of-freedom.
strained parallel manipulators. Parallel robots for which the number of kinematic chains However, in this manipulator, four limbs with identical structures of U PU are used to
is equal to the number of degrees-of-freedom of the moving platform are called fully par- generate a redundant parallel robot. In this book, thorough kinematic analyses of both the
allel robots [58,133]. If in addition to this condition, the type and number of joints at each redundant planar manipulator as well as the redundant spatial orientation manipulator
limb, and the number and location of the actuated joints are identical in all the limbs, are given, while the analysis of the fully parallel manipulators is left to the reader to be
such a parallel robot is called symmetric. Since kinematic analysis of symmetrical parallel examined in the problems.
manipulators is more convenient, this structure is used in many industrial robots, such as The Stewart–Gough platform (SGP) is also adopted for the analysis of fully parallel six-
Stewart–Gough manipulator, or Delta robot. degrees-of-freedom manipulators. This manipulator consists of six identical limbs with an
There are three main cases for fully parallel manipulators. Planar robots with two trans- SP S structure. Although kinematic analysis of the SGP in its most general form has been
lation and one rotational degree-of-freedom in the plane; spatial orientation manipulators considered by many researchers and fascinating results have been obtained [52,190], in this
with three rotational degrees-of-freedom in space, and a general spatial robot with three book, the closed-form solution of a special geometry of the SGP, which is called 6–6 p SGP
translational and three rotational degrees-of-freedom in space. Figure 3.1 illustrates a sym- is chosen. This is mainly due to the reason that the analytical forward kinematic solution of
metrical planar parallel robot the limbs of which consist of an identical structure of three this manipulator is tractable and can be more easily followed by the reader than the other
revolute joints, which can be named as 3RRR manipulator. The underlined joint in this geometries. The 6–6 P SGP is shown in Figure 3.18.
convention refers to the actuated one. Figure 3.32 shows a redundant 4RRR similar to this It is known that unlike serial manipulators, inverse kinematic analysis of parallel robots
manipulator, in which the first revolute joint is actuated. As another planar robot, consider is usually simple and straightforward. In most cases, limb variables may be computed
the manipulator shown in Figure 1.7. This manipulator is a redundant manipulator with independently using the given pose of the moving platform, and the solution in most
the structure of 4RP R, which means a symmetrical limb structure of RP R is used and the cases even for redundant manipulators is uniquely determined. However, forward kine-
prismatic joint is actuated. matics of parallel manipulators is generally very complicated, and its solution usually
Examples of spatial orientation manipulators are shown in Figures 3.33 and 3.10, in involves systems of nonlinear equations, which are highly coupled and in general have
which the first manipulator is a fully parallel three-degrees-of-freedom manipulator, while no closed form and unique solution [123,124]. Different approaches are given in the
the latter is a redundant parallel manipulator. Both manipulators are designed to pro- literature to solve this problem either in general [131] or in special cases [15,90]. In
vide a pure orientation motion for their moving platform. The first manipulator shown in general, different solutions to the forward kinematic problem of parallel manipulators
Figure 3.33, consists of two tetrahedrals connected to each other by a spherical joint, limit- can be found by using numerical [131] or analytical approaches [90]. In what follows,
ing the motion of the moving platform into three rotational degrees-of-freedom. The limbs a systematic means to perform kinematic analysis of parallel manipulators is given
in this robot have an SP S structure, in which their prismatic joint is actuated. Likewise, and this method is examined through the above-mentioned three selected case studies.
in the redundant manipulator shown in Figure 3.10, which is called hydraulic shoulder
59
At the displacement level, the closure of each kinematic loop can be expressed in the
vector form as
3.2 Loop Closure Method −→ −−→ −−→ −−→
AB = AAi + Ai Bi − B Bi for i = 1, 2, . . . , n, (3.1)
As illustrated in Figure 3.2, a typical parallel manipulator consists of two main bodies.
Body A is arbitrarily designated as fixed and is called the base, while body B is designed −−→ −−→
in which AAi and B Bi can be easily obtained from the geometry of the attachment points
to be movable and is called the moving platform, or sometimes the end effector. These two −−→
bodies are coupled via n limbs, each attached to points Ai and Bi , and called fixed- and in the base and in the moving platform. Let us define vector ai = AAi in the fixed frame
−−→ −−→
moving-attachment points of the limb i, respectively. At the displacement level, the for- {A}, and bi = B Bi in the moving frame {B}. Furthermore, qi = Ai Bi is defined as the limb
ward kinematic problem pertains to the determination of the actual location or pose of the variable, which indicates the geometry of the limb, and generally includes the active and
moving platform relative to the base from a set of joint–position readouts. At the velocity passive limb segments. Hence, the loop closure can be written as the unknown pose vari-
level, the forward kinematic problem refers to the determination of the actual twist, that is, ables p, and R, the position vectors describing the known geometry of the base and the
the translational and angular velocities of the moving platform relative to the base, from moving platform, ai and bi . Furthermore, the limb vector qi is only known from the kine-
a set of joint-velocity readouts and for a known configuration. Since the properties of par- matic equation of the limb together with the readouts of the position sensors located at the
allel manipulators are usually complementary to those of serial architectures, they can be different joints of that limb. Therefore, one may write the loop closure equations as follows:
used in situations where the properties of the latter do not meet the application require-
ments. However, the higher degree of complexity of parallel mechanisms leads to more p = ai + qi − R bi for i = 1, 2, . . . , n. (3.2)
challenging forward kinematic problems, at both the displacement and velocity levels. The
complexity of the forward kinematic problems depends extensively on the architecture, These equations are the main body of kinematic analysis. For an inverse kinematic prob-
geometry, and joint–sensor layouts. lem, it is assumed that the moving platform position p and orientation R are given and
To describe the motion of the moving platform relative to the base, attach frame {A} to the problem is to solve the active limb variables. Hence, from the above equations the
body A and frame {B} to body B, as shown in Figure 3.2. The pose of the moving platform passive limb variables must be eliminated to solve the inverse kinematic problem. This
relative to the base is thus defined by a position vector p in addition to a rotation matrix R, analysis is usually straightforward and results in a unique solution for the limb variables,
in which p denotes the position vector of the origin of {B} with respect to frame {A}, and even for redundant parallel manipulators. However, the inverse solution is not straight-
furthermore, the orientation of {B} with respect to {A} is represented by a 3 × 3 rotation forward, and usually numerical methods are used for forward kinematic solution. In the
matrix R. Each limb of a parallel manipulator defines a kinematic loop passing through the proceeding sections, the inverse and forward kinematic analysis of three case studies are
origins of frames {A} and {B}, and through the two limb attachment points Ai and Bi . elaborated in detail.
A4 A3 y
V
G U
j
O x
y
Bi
B3 B4
Li
x
B2 B1
ai
Ai
Li
FIGURE 3.4
A1 ai Kinematic configuration of the 4RP R planar manipulator.
A2
manipulator, the limbs are considered to be crossed. Complete singularity analysis of the −−→ −−→ −−→
mechanism is presented in Section 4.6.2. Ai G = Ai Bi − G Bi . (3.5)
As shown in Figure 3.3, Ai denotes the fixed base points of the limbs, Bi denotes point
of connection of the limbs to the moving platform, L i denotes the limbs’ lengths, and αi Rewriting the vector-loop closure componentwise,
denotes the limbs’ angles. The position of the center of the moving platform G is denoted
by G = [xG , yG ], and orientation of the manipulator moving platform is denoted by φ with xG − x Ai = L i cos(αi ) − RB cos(φi ), (3.6)
respect to the fixed coordinate frame. Hence, the manipulator possesses three-degrees-of-
freedom X = [xG , yG , φ], with one-degree-of-redundancy in the actuators. yG − yAi = L i sin(αi ) − RB sin(φi ), (3.7)
3.3.2 Geometry of the Manipulator in which αi ’s are the absolute limb angles. To solve the inverse kinematic problem,
it is required to eliminate αi ’s from the above equations and solve L i ’s. This can be
For the purpose of analysis and as illustrated in Figure 3.4, a fixed frame O: xy is attached accomplished by reordering the above equations as,
to the fixed base at point O, the center of the base point circle which passes through Ai s.
Moreover, another moving coordinate frame G: UV is attached to the manipulator moving
L i cos(αi ) = xG − x Ai + RB cos(φi ) (3.8)
platform at point G. Furthermore, assume that point Ai lies at a radial distance of RA from
point O, and point Bi lies at a radial distance of RB from point G in the xy plane, when the L i sin(αi ) = yG − yAi + RB sin(φi ). (3.9)
manipulator is at a central location.
In order to specify the geometry of the manipulator, let us define θ Ai and θ Bi as the
By adding the square of both the sides of Equations 3.8 and 3.9, the limb lengths are
absolute angles of points Ai and Bi at the central configuration of the manipulator with
uniquely determined as follows:
respect to the fixed frame O. The instantaneous orientation angle of Bi ’s is defined as
1/2
φi = φ + θ Bi . (3.3)
L i = (xG − x Ai + RB cos(φi ))2 + (yG − yAi + RB sin(φi ))2 . (3.10)
Therefore, for each limb, i = 1, 2, 3, 4, the positions of the base points Ai are given by
Furthermore, the limb angles αi ’s can be determined from the following equation:
Ai = [RA cos(θ Ai ), RA sin(θ Ai )]T . (3.4)
3.3.4 Forward Kinematics There exist tractable numerical methods such as Householder reflection, or Cholesky
decomposition∗ to evaluate the pseudo-inverse. Note that the components of A and b are
In the forward kinematic problem, the joint variable L i ’s are given, and the position and
all functions of φ, and for a given φ Equation 3.18 gives the solution with least-squares
orientation of the moving platform X = [xG , yG , φ]T are to be found. This can be accom- error for xG and yG . In order to solve φ, this solution can be substituted in Equation 3.14,
plished by eliminating xG and yG from Equations 3.6 and 3.7 as follows. Let us define two and a function of only one unknown variable φ is obtained:
intermediate variables xi and yi as follows:
2
f i (φ) = xG 2
+ yG + ri xG + si yG + ui . (3.20)
xi = −x Ai + RB cos(φi )
(3.12)
yi = −yAi + RB sin(φi ).
Consider
In order to simplify the calculations, consider the square of Equation 3.10:
4
f (φ) = f i (φ), (3.21)
L i2 = (xG + xi )2 + (yG + yi )2 . (3.13) i=1
We first try to solve xG and yG . This can be accomplished by reordering Equation 3.13 into: and use numerical methods that use iterative search routines† to find the final solution of
f (φ) = 0. It appears that any function f i (φ) = 0 could be used to obtain the solution of
2 2 forward kinematics φ. However, the summation of all four equations is used here to have
xG + yG + ri xG + si yG + ui = 0, (3.14) a tractable solution even at singular configurations.
The flowchart given in Figure 3.5 reveals the details of the iterative method of the for-
in which i = 1, 2, 3, 4, ward kinematic solution. As seen in this flowchart, for a given φ the values of xi , yi , and φi
are calculated using Equations 3.12 and 3.3, respectively. Then ri , si , and ui are calculated
ri = 2xi , si = 2yi , ui = xi2 + yi2 − L i2 . (3.15) using Equation 3.15, and the values of matrices A and b are derived from Equation 3.17.
For the given values of A and b, the least-squares solutions for xi and yi are derived from
Equation 3.14 provides four quadratic relations for xG and yG for i = 1, 2, 3, 4. Subtracting Equation 3.19. Then the value of f (φ) is calculated from Equation 3.21, and if it is not
each of the two equations from each other results in linear equations in terms of xG and yG . very close to zero, an effective search routine is used to recalculate a new value for φ. This
iteration is followed to obtain a solution for f (φ) = 0 with an accuracy of ε 1.
Multiple solutions may exist for equation f (φ) = 0, and in order to avoid jumps in the
xG
A· = b, (3.16) forward kinematic solutions, in the numerical routine the solution at the previous itera-
yG
tion is used for the search of the next solution. Simulation results, detailed in Section 3.3.5,
in which illustrate the integrity and accuracy of the numerical routines used to solve forward kine-
⎡ ⎤ ⎡ ⎤ matics. If the limb angles αi ’s need to be derived, Equation 3.11 can be used directly by
r1 − r2 s 1 − s2 u2 − u1 substituting xG , yG , and φ.
⎢r2 − r3 s 2 − s3 ⎥ ⎢u3 − u2 ⎥
A=⎢
⎣r3 − r4
⎥, ⎢
b=⎣ ⎥. (3.17)
s 3 − s4 ⎦ u4 − u3 ⎦
r4 − r1 s 4 − s1 u1 − u4 3.3.5 Simulations
Geometric parameters used in the simulations are adopted from a cable-driven paral-
The components of A and b are all functions of φ. It appears that only two equations of lel manipulator design [177], and are given in Table 3.1. This manipulator design is
the above equations of all are sufficient to evaluate xG and yG in terms of φ, but all four adopted from the Canadian concept of next-generation telescopes, [178,179]. For this
equations have been used here to have tractable solutions even at singular configurations. special application, the limb lengths are much greater than those of conventional manipu-
As shown in Appendix A, overdetermined Equations 3.16 can be solved using left pseudo- lators, resulting in a larger workspace compared with that of conventional manipulators.
inverse, For simulations, a typical trajectory for the 4RP R manipulator X d is considered and illus-
trated in Figure 3.6. As seen in this figure, 200 m motion in the x direction, and 100 m
xG
= A† · b, (3.18) movement in the y direction is considered, while a 45◦ rotation is considered for the orien-
yG
tation of the moving platform φ, in 10 s. For the given trajectory, inverse kinematic solution
of the manipulator is obtained from Equation 3.10, and the manipulator limbs lengths
in which A† denotes the left pseudo-inverse solution of A, and for an overdetermined set are uniquely determined and have been illustrated in Figure 3.7. As seen in this figure,
of equations this is calculated from,
∗ Use pinv function in MATLAB.
A† = (AT A)−1 AT . (3.19) † Use fzero function in MATLAB.
Kinematics 67 68 Parallel Robots
x and y (m)
100
50
Calculate fi, xi, yi
0
–50
–100
0 1 2 3 4 5 6 7 8 9 10
Calculate ri, si, ui Time (s)
f (deg)
30
20
10
Solve for xG, yG 0
0 1 2 3 4 5 6 7 8 9 10
Time (s)
FIGURE 3.6
No
if | f (f)|< e A typical trajectory of a 4RP R parallel manipulator.
manipulator limb lengths change in the order of hundred meters, in accordance with the FIGURE 3.7
desired trajectory variations. The inverse kinematic solution for the given trajectory.
As shown in Figure 3.8, to verify the accuracy and integrity of the numerical solu-
tions, the forward kinematic solutions for the manipulator are derived for the given limbs
lengths. The difference between the numerical solutions X c and the desired motion X d obtain the forward kinematic solution. It should be noted that forward kinematic solutions
are illustrated in Figure 3.9. It is observed that the calculated numerical solutions from are not unique, and to avoid converging towards other solutions at each step, the last
the forward kinematic problem are completely identical to the desired trajectories, with step solution is used as the initial guess for the next step of iterations. By this means, the
an accuracy of 10−13 . This confirms the accuracy and integrity of the numerical method to numerical solution converges toward the right solution in all the examined points.
Xd Inverse L Forward Xc
kinematics kinematics
Typical Limbs’ Verification L6
trajectory lengths trajectory R5
Passive link
FIGURE 3.8
Mechanism of the forward kinematics verification for a given trajectory. L5
S6 L4 R4
× 10–13 Xd–Xc: Forward kinematics verification
4 P3 R1
ex
ey L2
2 L1
ef
L3
R2
0
–2
–4
0 1 2 3 4 5 6 7 8 9 10
Time (s)
FIGURE 3.10
A CAD drawing of the shoulder manipulator.
FIGURE 3.9
The accuracy and integrity of the forward and inverse kinematic solutions.
The shoulder manipulator was designed in 1992 [71], by borrowing design ideas from
the human biological shoulder. A CAD model of the mechanism is shown in Figure 3.10,
and a picture of the manipulator in a twisted configuration is shown in Figure 3.11. As
shown in these figures, the moving platform is constrained to a three-degrees-of-freedom
3.4 Kinematic Analysis of Shoulder Manipulator purely orientation motion. Four high-performance hydraulic piston actuators are used to
In this section, kinematic analysis of a three-degrees-of-freedom spatial orientation manip- generate three-degrees-of-freedom motion in the moving platform, and hence, like the
ulator is studied in detail. In this analysis, first the mechanism kinematic structure is human shoulder structure, one degree of actuator redundancy is considered in this design.
described and then the geometry of the system is worked out. Next, the inverse and Each actuator includes a position sensor of LVDT-type and an embedded Hall effect force
a closed-form forward kinematic solution of the manipulator are analyzed in detail. In sensor. Simple revolute joints are used in the manipulator to build spherical and universal
order to verify the formulations, in Section 3.4.5, simulation results for computation of
the inverse and forward kinematics of the manipulator are presented, and the accuracy of
the forward kinematic solution is verified.
joints, and all the four limbs share an identical kinematic structure. The four active limbs −−→
in which the latter two norms denote the component of P Pi in v and w directions, respec-
share a U PU kinematic structure in which each of the two limbs are connected to the tively. Furthermore, α is the angle between C A4 and y; C is the center of the reference
moving platform through a single connecting link. frame; P is the center of the moving platform; li are the actuator lengths for i = 1, 2, 3, 4;
As shown in Figure 3.10, the base link L 1 is connected to the cylinder link L 3 via a con- Pi ’s denote the moving endpoints of the actuators; and Ai ’s are the fixed endpoints of the
necting link L 2 . Therefore, the universal joint used in the manipulator can be decomposed actuators. Two coordinate frames are defined for the purpose of analysis. The base coor-
into two binary revolute joints R1 and R2 . The prismatic joint is denoted by P3 in this fig- dinate frame {A} : xyz is attached to the fixed base at point C (rotation center) with its
ure, and the universal joint connecting the piston link L 4 to the moving platform L 6 is also z-axis perpendicular to the plane defined by the actuator base points A1 , A2 , A3 , A4 , and its
decomposed into two binary revolute joints R4 and R5 . It is important to note that the uni- x-axis parallel to the bisector of angle ∠A1 C A4 . The second coordinate frame {B} : uvw
versal joints of each of the two pairs of piston actuators share one connecting link denoted is attached to the center of the moving platform P with its w-axis perpendicular to the line
by L 5 in the figure. Finally, a passive limb connects the moving platform to the fixed base defined by the actuators’ moving end points P1 P3 along the passive limb. It is assumed
by a spherical joint S6 , by which the pure translations of the moving platform are sup- that the actuators’ fixed end points lie on the same plane as the rotation center C. The
pressed. As seen in this figure, the spherical joint S6 is also built from three perpendicular position of the moving platform center P is defined by
revolute joints.
From the structural point of view, the shoulder manipulator can be considered as a A
T
shoulder for a light-weight seven-degrees-of-freedom robotic arm, which can carry loads P = px py pz . (3.23)
several times its own weight. The workspace of such a mechanism can be considered as
part of a spherical surface, while the orientation angles are limited to vary between −π/6 Moreover, a rotation matrix AR
B is used to define the orientation of the moving platform
and π/6. No sensors are available for measuring the orientation angles of the moving plat- with respect to the base frame, using a pitch–roll–yaw representation:
form. This fact justifies the importance of the forward kinematic analysis as a key element
in the position control of the shoulder manipulator, using the LVDT position sensors as the A
R B = Rz (θz )R y (θ y )Rx (θx )
only source of measurement in such a control scheme. A complete kinematic analysis of ⎡ ⎤
such a manipulator will provide the required means to better understand the characteris- cθz cθ y cθz sθ y sθx − sθz cθx cθz sθ y cθx + sθz sθx
tics of the structure and to design suitable control laws to accomplish the required tracking = ⎣sθz cθ y sθz sθ y sθx + cθz cθx sθz sθ y cθx − cθz sθx ⎦ , (3.24)
performance. −sθ y cθ y sθx cθ y cθx
3.4.2 Geometry of the Manipulator where θx , θ y , and θz are the Euler angles of the moving platform denoting rotations of
the moving frame about the fixed x, y, and z axes, respectively. Furthermore, cθ and sθ
Figure 3.12 depicts a geometric model for the shoulder manipulator. The parameters used
are short-hand notations representing cos(θ ) and sin(θ ), respectively. Although pitch–roll–
in the kinematics can be defined as
yaw Euler angles are a convenient way to represent the orientation of the moving platform,
−−→ −→ −−→ −−→ it is not very convenient for the forward kinematic solution. A thorough kinematic anal-
lb = C Ai , l p = C P, ld = P Pi v , lk = P Pi w , (3.22)
ysis of this manipulator is reported in [159–161]. Using a pitch–roll–yaw representation
for the orientation yields a complex forward kinematic formulation for the system, which
w
can only be solved numerically, using neural networks [161], Taylor series expansion,
{B} or quasi-closed solution [159]. However, using another representation for the orientation
ld P v yields a closed-form solution for the forward kinematics [160]. This representation is based
lk
BP
on kinematic decomposition of the spherical joint into three perpendicular binary joints.
P1, P2 u i P3, P4 As shown in Figure 3.10, the spherical joint S6 is built from three perpendicular revolute
l2 l3 joints intersecting at a point. These rotations can be represented by u–v–w Euler angles as
lp follows:
A2 A3
l1 z l4
{A}
Ruvw (θ1 , θ2 , θ3 ) = Ru (θ1 ) Rv (θ2 ) Rw (θ3 )
⎡ ⎤
y si c3 c2 −s3 c 2 s2
lb C
a = ⎣s3 c 1 + c 3 s2 s1 c 3 c 1 − s3 s2 s1 −c 2 s1 ⎦ . (3.25)
A1 ai A4 s3 s1 − c 3 s2 c 1 c 3 s1 + s3 s2 c 1 c2 c1
x
Hence, the position and orientation of the moving platform are completely defined by
FIGURE 3.12 six variables, from which only three orientation angles θ1 , θ2 , and θ3 are independently
Geometry of the shoulder manipulator. specified as independent variables of the shoulder manipulator.
in which li is the length of the ith actuated limb and ŝi is the unit vector pointing along Therefore, the actuator lengths are uniquely determined by Equations 3.31 through 3.34 as
the direction of the ith actuated limb. Moreover, AR B is the rotation matrix of the moving a function of the moving platform orientation variables.
platform, and AP is its center position vector:
A
T 3.4.4 Forward Kinematics
P = l p s2 −c 2 s1 c2 c1 . (3.27)
In the forward kinematic analysis of the shoulder manipulator, we shall find all the
Furthermore, as shown in Figure 3.12, vectors ai and B Pi denote the fixed end points of possible orientations of the moving platform for a given set of actuated limb lengths.
the actuators (Ai ) in the base frame and the moving attachment points of the actuators, Equations 3.31 through 3.34 may be used to obtain the forward kinematic solution of
respectively. Hence, for the given geometry of the manipulator we have the hydraulic shoulder with the actuator lengths as the input variables. In fact, since the
manipulator is redundantly actuated we have four nonlinear equations to solve for three
T unknowns. First, let us try to express the moving platform position and orientation in
a1 = lb + sin α − cos α 0 , terms of the joint variables θ1 , θ2 , and θ3 using Equations 3.25 and 3.27. Subtract Equa-
T tion 3.32 from Equation 3.31 and similarly Equation 3.34 from Equation 3.33 to simplify
a2 = lb −sin α − cos α 0 ,
(3.28) the equations to
T
a3 = lb −sin α + cos α 0 ,
T l12 − l22 = +2k2 s2 + 2k4 s3 c 2 , (3.36)
a4 = lb + sin α + cos α 0 ,
l32 − l42 = −2k2 s2 + 2k4 s3 c 2 . (3.37)
and
T Subtract Equation 3.37 from Equation 3.36, and solve s2 as follows:
BP
1 = B P2 = 0 −ld l p − lk ,
T (3.29)
BP
3 = B P4 = 0 +ld l p − lk . l12 − l22 − l32 + l42
s2 = . (3.38)
4k2
The actuator lengths, li , can be easily computed by dot multiplying Equation 3.26 to
itself: Substituting Equation 3.38 into the trigonometric identity s22 + c 22 = 1 results in two
T solutions for c 2 .
LiT Li = li2 = AP + AR B B Pi − ai A
P + AR B B Pi − ai . (3.30)
c 2 = ± 1 − s22 . (3.39)
Writing Equation 3.30 four times with the corresponding parameters given in Equa-
tions 3.25, 3.27 through 3.29, and simplifying the results yields Having s2 and c 2 in hand, we can solve s3 from Equation 3.36 as
Up to here, four possible solutions for the forward kinematics have been generated. 30
In order to solve the remaining unknowns, c 1 and s1 , subtract Equation 3.31 from
Equation 3.33 and similarly subtract Equation 3.32 from Equation 3.34: 20
Hence, –10
The solutions degenerate if c 2 = 0. In this case two independent values for θ1 and θ3 cannot 0.6
be obtained. If c 2 = 0 and s2 = 1, then 0.58
P2 A6
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 A5 li
z P3
Time (s)
y
OA Si
A1
FIGURE 3.15 Fixed ai
{A}
The accuracy and integrity of the forward and inverse kinematic solutions for the shoulder manipulator. base Ai
x
A2
manipulator limbs’ lengths change a few centimeters, according to the desired trajectory
A3
variations.
To verify the accuracy and integrity of the formulations, the forward kinematic solution
FIGURE 3.16
of the manipulator is obtained for the given limbs’ lengths using Equation 3.46. The differ-
Schematic of a Stewart–Gough platform and the frames attached to the fixed base and to the moving platform.
ence between the forward kinematic solutions θc and the desired motion θd is illustrated
in Figure 3.15. It is observed that the calculated forward kinematic solution is completely
identical to the desired trajectories with an accuracy of 10−14 . These simulations verify the manipulator has six-degrees-of-freedom and can serve as a general parallel manipulator
integrity of the forward kinematic formulations. to produce a complete spatial movement with three-degrees-of-freedom in position and
three-degrees-of-freedom in orientation. The number of actuators are also equal to the
degrees-of-freedom of the manipulator and hence the manipulator is fully parallel. Since
all the limbs are connected to the moving platform and to the base by spherical joints, no
twisting torques can be transmitted through the limbs. Therefore, the transmitting force
acting on each limb is directed along the longitudinal axis of the limb.
3.5 Kinematic Analysis of Stewart–Gough Platform
In this section, the kinematic analysis of the Stewart–Gough platform (SGP) is studied in 3.5.2 Geometry of the Manipulator
detail. In this analysis, first the manipulator kinematic structure is explained and then the
geometry of the system is given. Next, the inverse and forward kinematic analyses of the As shown in Figure 3.16, and for the purpose of kinematic analysis, the geometry of the
manipulator are worked out. manipulator is described by two coordinate frames attached to the fixed base and the mov-
ing platform. The fixed frame {A} is attached to the base at point OA, and the position of
attachment points on the fixed base is denoted by the vectors ai ’s. Similarly, the moving
3.5.1 Mechanism Description frame {B} is attached to the moving platform at point OB , and the positions of moving
attachment points are denoted by the vectors bi ’s. The geometry of each limb is described
Figure 3.16 shows the schematic of an SGP. In this manipulator, the spatial motion of
by its length i , and its direction is denoted by a unit vector ŝi . Position of the point OB of
the moving platform is generated by six identical piston–cylinder actuators. Each piston–
T
cylinder actuator consists of two parts connected with a prismatic joint. In practice, either the moving platform is described by the position vector AP = px p y pz , and orien-
hydraulic actuators or electric motors with ball screw generate the prismatic motion in the tation of the moving platform is described by the rotation matrix AR B . The rotation matrix
limbs. The actuators connect the fixed base to the moving platform by spherical joints at can be represented componentwise by the components of the unit vectors û, v̂, and ŵ, as
points Ai and Bi , i = 1, 2, . . . , 6. Note that in Figure 3.16 all the attachment points Ai ’s lie follows: ⎡ ⎤
in the base plane, and all Bi ’s lie in the moving platform plane. However, in a general SGP ux vx wx
the attachment points are not necessarily confined to lie in a plane.
A
R B = ⎣u y v y w y ⎦ . (3.49)
As shown in Figure 3.16, and in order to analyze the kinematics of the manipula- uz vz w z
tor, frame {A} is attached to the fixed base and frame {B} is attached to the moving
platform at points OA and OB , respectively. The kinematic structure of each limb is an Note that the rotation matrix is orthonormal and satisfies the orthonormality conditions
SP S arrangement. As analyzed in Example 1.3 in Chapter 1, in this manipulator there detailed in Equations 2.8 through 2.10. The orientation of the moving platform can also
exist 14 links connected by 6 prismatic joints and 12 spherical joints. Moreover, for each be represented by screw axis representation or different Euler angles. In the forward kine-
SP S kinematic structure, there exists one passive degree-of-freedom. Hence, this spatial matic analysis of the SGP, which will be presented in Section 3.5.4, the following screw axis
Kinematics 79 80 Parallel Robots
w B5 representative of the vast research work in this area is to give a scientific judgment to the
B4 performance, limitations, and implementation characteristics of these methods in practice.
Moving
platform B6 OB The methods are compared by a simulation study in Section 3.5.5.
B1 v
u
B2 B3 [Link] Analytical Solution
In this section, the closed-form solution of a special geometry of an SGP is elaborated. The
special geometry adopted is called 6–6 p SGP. It is chosen for the analysis given in this
A6 z section, because its analytical solution is tractable and can be followed more easily than
other geometries. The 6–6 P SGP is shown in Figure 3.18. As defined in [169], this platform
OA is different from a general 6–6 SGP due to the following characteristics.
Fixed y
base A4
x A3 1. Planar base and moving platforms: The six vertices of the base platform are
A1 required to be in a plane, so a hexagon is formed by the six vertices. Similarly, the
A2
six vertices of the moving platform are also in a plane to form another hexagon.
2. Similar hexagons: The two hexagons are required to be similar. In other words,
FIGURE 3.17
Schematic of a 3–3 Stewart–Gough platform. if the six vertices of the base plate are given, the corresponding vertices of the
moving platform will be determined simply by multiplying the positions of the
base plate by a scalar factor.
therefore, the forward kinematics can be reduced to a 16th-order polynomial equation. It
has been further shown that in order to obtain the set of 16 solutions, it is sufficient to solve This special 6–6 p SGP has been studied by many researchers. It is well-known that a
only an 8th-order polynomial. closed-form solution in the forward kinematics usually introduces unnecessary complex
A more general case of a 6–3 SGP is analyzed in [118]. In this structure the six limbs meet roots [18]. Yang and Geng analyzed the condition when complex roots would vanish,
in a pairwise fashion at three points on the moving platform. However, they are arbitrarily and the condition was used such that the unnecessary complex roots were avoided and
located in a plane at the base. In the algorithm proposed in [118], the forward kinematic only four real roots were found from a 4th-order polynomial with eight solutions to the
solution is found through a numerical solution of three simultaneous nonlinear algebraic kinematics of the platform [194]. In this section, a simpler closed-form forward kinematic
equations. No specified initial guess is needed for convergence toward the right solution.
Once the three equations are solved, the unique kinematic solutions are obtained by some
algebraic operations. B6 w
B5
In the literature, References 52, 189, and 190 can be named as representatives of the analy- Moving
sis performed on a nearly general 6–6 SGP. The analysis given in [190] leads to a 20th-order platform OB {B}
polynomial equation in one unknown, from which with other equations 40 different loca- B1 B4
v
tions of the platform can be derived. A generalization of the SGP is introduced in [52], by B2 u
considering all possible geometric constraints between six pairs of geometric primitives on B3
the base and the platform, respectively. This gives 3850 types of generalized SGPs with the
original SGP as one of the cases. Furthermore, closed-form solutions to general SGPs are
P
also given. It is proved that the original SGP could have 40 real solutions. A6
All analytical solutions like the one given in [52,190] are much involved and fairly com- A5
z
plex for implementation. Wang has presented a numerical method for forward kinematics
of nearly general SGPs, which can directly generate a unique solution [189]. This method
utilizes the trivial nature of inverse kinematics of parallel manipulators, and derives a A1
OA
{A} y
straightforward linear relationship between the small change in joint variables (limbs’ Fixed A4
lengths) and the resulting small motion of the platform. The solution to the forward base x
kinematics is then obtained through a series of small changes in joint variables.
In fact, mathematical complexity of the forward kinematics of SGPs has become a seri- A2
ous deficiency that prevents it from being used in many high-speed, real-time, and online A3
implementations. In the following sections, an analytical solution to a special structure
of an SGP, and a numerical method to find the forward kinematics for a general Stew- FIGURE 3.18
art platform structure are given. The main purpose of introducing these two methods as Schematic of a 6–6 P Stewart–Gough platform.
Kinematics 83 84 Parallel Robots
solution to the 6–6 p SGP will be given from a set of quadratic equations. This set of and
quadratic equations is obtained by separating orientation from position equations [89].
Besides, the screw axis representation is introduced to get the orientation of the moving W4 = x̂T Rx̂,
platform. Obviously, by this means, solving a degree four polynomial equation is avoided.
Another advantage is that unnecessary complex roots vanish automatically. W5 = x̂T Rŷ + ŷT Rx̂, (3.63)
As shown in Figure 3.18, the two coordinate systems {A} and {B} are attached to the base W6 = ŷT Rŷ.
and the moving platform, respectively. As shown in Figure 3.16, the platform geometry can
be described by vectors ai and bi for i = 1, 2, . . . , 6, which represent the vertices of the base
Equation 3.61 becomes a linear algebraic set of equations represented by
platform in frame {A} and the vertices of the moving platform in frame {B}, respectively.
The six limbs are denoted by vectors i ŝi that connect vertices Ai and Bi for i = 1, 2, . . . , 6.
In this 6–6 p SGP, since two hexagons are similar, the following condition exists: Q W = d. (3.64)
where a xi , a yi , and a zi are three components of ai , and x̂, ŷ, and ẑ are three unit vectors of and vector d = [d1 , d2 , d3 , d4 , d5 , d6 ]T may be obtained by
frame {A}. In the 6–6 p SGP, a zi = 0, therefore
bi = μ(a xi x̂ + a yi ŷ). (3.58) It is worth noting that, by this formulation, the position of the moving platform is solely
a function of W1 , W2 , and W3 , and is separated from the orientation of the moving plat-
Recall the kinematic loop closure Equation 3.51 and substitute Equation 3.56. Hence, for
form, which is a function of W4 , W5 , and W6 . If matrix Q is not singular, that is, the six
i = 1, 2, . . . , 6
vertices of the base platform or the moving platform are not in a quadratic curve, W can
i Aŝi = AP + AR B B bi − Aai , be obtained by
i ŝi = P + (μR − I) ai , (3.59) W = Q−1 d. (3.67)
in which I is a 3 × 3 identity matrix, R = AR B , and for simplicity, the superscript A
Since W is now determined, Equation 3.63 can be used to analyze the orientation, and
is omitted from the notations. Therefore, for i = 1, 2, . . . , 6, the limbs’ lengths can be
Equation 3.62 can be used to derive the position of the moving platform
as follows. Let us
obtained from
T
represent the orientation of the moving platform by the screw axis ŝ = sx s y sz , θ .
i2 = [(μR − I) ai + P]T [(μR − I) ai + P] Hence, the rotation matrix can be written as
= PT P + aiT (μRT − I)(μR − I) ai + 2aiT (μRT − I) P. (3.60) ⎡ 2 ⎤
sx vθ + cθ sx s y vθ − sz sθ sx sz vθ + s y sθ
By substituting Equation 3.57 into Equation 3.60, and for i = 1, 2, . . . , 6, we have R = ⎣s y sx vθ + sz sθ s y2 vθ + cθ s y sz vθ − sx sθ ⎦ . (3.68)
sz sx vθ − s y sθ sz s y vθ + sx sθ sz vθ + cθ
2
axis, the following four equations must be solved to find the screw parameters: By substituting the screw parameters into Equation 3.68, four different transformation
matrices may be obtained as Ri , i = 1, 2, 3, 4, correspondingly.
W4 = sx2 vθ + cθ , (3.70) Now that the orientation of the moving platform is determined, the position of its center
point is found using W1 , W2 , and W3 . Let us define
W5 = 2sx s y vθ , (3.71)
W6 = s y2 vθ + cθ , (3.72) U T = x̂T (μRT − I), (3.81)
cos2 θ − B cos θ + C = 0, (3.75) Obviously, Equations 3.84 and 3.85 represent two planes and their intersection is a line
represented as
in which P = r0 + tr1 , (3.86)
B = W4 + W6 ; C = W4 W6 − W52 /4. (3.76)
where t is the parameter of the line, r0 is a line in the plane spanned by vectors U and V.
Therefore, the screw parameters can be determined from
(V T V)W2 − (U T V)W3 (U T V)W2 − (U T U)W3
r0 = U+ V (3.87)
1 (U T U)(V T V) − (U T V)2 (U T U)(V T V) − (U T V)2
cos θ = B − B 2 − 4C , (3.77)
2
and r1 is a unit vector perpendicular to both vectors U and V:
and if W4 = cθ , then
U×V
r1 = (3.88)
W4 − cθ W5 U × V
sx = ; sy = ; sz = 1 − sx2 − s y2 ; (3.78)
vθ 2sx vθ
in which × denotes the vector cross product. Obviously
otherwise, if W6 = cθ , then
r0T r1 = r1T r0 = 0. (3.89)
W6 − cθ W5
sy = ; sx = ; sz = 1 − sx2 − s y2 ; (3.79) The line Equation 3.86, intersects the sphere Equation 3.83 at two points P1 and P2 , which
vθ 2s y vθ
are the solutions to Equations 3.83 through 3.85. Here
and in case W4 = W6 = cθ , then
P1 = r0 + tr1 , (3.90)
sx = s y = 0; sz = 1. (3.80) P2 = r0 − tr1 , (3.91)
Here, the positive root of B 2 − 4C is omitted, such that unnecessary complex roots of and
θ are avoided. Furthermore, the negative roots of sx , sz provide four different screw
representations for the rotation of the moving platform. These four rotations are t= W1 − r0T r0 (3.92)
T
T
s = sx s y sz , s = sx s y −sz , considering Equation 3.89. So far, both orientation matrix R and position vector P have
T
T been obtained. The forward kinematics for the 6–6 p Stewart platform have eight solutions
s = −sx −s y sz , s = −sx −s y −sz . if the equations are not degenerated.
Kinematics 87 88 Parallel Robots
The analytical solution presented here for the 6–6 P SGP, has major advantages to other position AP = [ px , p y , pz ]T , and
orientation of the moving platform represented by screw
solutions presented in the literature for a nearly general SGP, such as [190,194]. The pre- parameters ŝ = [sx , s y , sz ]T , θ . Therefore, seven unknown variables can be encapsulated
sented analytical solution is computationally more efficient, and more tractable than the by the vector x as
others. However, there are specific deficiencies in any analytical solution, which is reported
T
less in the literature. The analytical solution of the 6–6 P SGP is not excluded from this x = px py pz sx sy sz θ (3.93)
rule, and two main deficiencies have been reported in the simulations carried out on this
T
solution. = x1 x2 x3 x4 x5 x6 x7 . (3.94)
The first deficiency is the dependency of the orientation parameters of the solution,
namely W4 , W5 , and W6 on the value of cθ . Reconsider Equations 3.70 through 3.72 for The unknown position vector P, and orientation matrix R(x) can be determined as a
the case where θ = 0 or θ = π, by which cθ = 1 and vθ = 0. In this case, W4 = W6 = 1, and function of x by the following equations:
W5 becomes zero, and these equations fail to generate any solution for sx , s y , and sz . Unfor-
T
tunately, there is no means to overcome this problem in the solution, and this is a singular P(x) = x1 x2 x3 (3.95)
orientation for the given analytical solution.
The second deficiency is more general and it applies to all analytical solutions. As and
⎡ ⎤
seen in the given analysis, eight possible solutions for a given set of limbs’ lengths are x42 vx7 + cx7 x4 x5 vx7 − x6 sx7 x4 x6 vx7 + x5 sx7
produced. Schemes are further needed to find a unique actual position, and orientation R(x) = ⎣x5 x4 vx7 + x6 sx7 x52 vx7 + cx7 x5 x6 vx7 − x4 sx7 ⎦ . (3.96)
of the platform among all the possible solutions. Use of an iterative numerical proce- x6 x4 vx7 − x5 sx7 x6 x5 vx7 + x4 sx7 x62 vx7 + cx7
dure [84,106,131,188] and auxiliary sensors [10,24,68,150] are the two commonly adopted
schemes to further lead to a unique solution. Numerical iteration is usually sensitive to Assume that the geometry of the base and moving platforms’ attachment points Ai and
the choice of initial values and the nature of the resulting constraint equations. The auxil- Bi are given by vectors ai , and bi , respectively. The numerical solution involves iteratively
iary sensors approach has practical limitations, such as cost and measurement errors. No finding the solution to the following seven nonlinear equations:
matter how the forward kinematic problem has been solved, the direct determination of a ⎧
unique solution is still a challenging problem. ⎪
⎪ F (x) = −i2 + [P(x) + R(x) bi − ai ]T [P(x) + R(x) bi − ai ]
⎨ i
As detailed in Section 3.5.5, the scheme used here to determine a unique solution of for i = 1, 2, . . . , 6
(3.97)
all the possible solutions, is based on the fact that at each step, the solutions are compared ⎪
⎪
⎩
to those of the previous step. The solution whose error norm to the previous solution is F7 (x) = x42 + x52 + x62 − 1
smaller than a threshold is selected as the right solution. This causes two deficiencies in
the analytical solution. The first deficiency is that although the analytical method does not Numerical methods using nonlinear least-squares optimization routines [138], can be
inherently need any initial guess to determine the possible solutions, in order to determine used to obtain a solution for F(x) = 0. In a least-squares problem, the functional f (x) =
1
i Fi (x) is minimized over x ∈ R [34]. The Gauss–Newton and Levenberg–Marquardt
a unique solution at initial time, an initial guess of position and orientation is needed, and 2 n
2
converging towards the desired solution depends on the accuracy of the initial guess. The methods [112,122] are two main search routines used to solve the nonlinear least-squares
second deficiency observed in the simulation is for the cases where either one of sx , s y problem.∗ The flowchart given in Figure 3.19 reveals the details of the iterative method
or especially sz approaches zero. Although the solution at the time when either of the used to obtain the forward kinematic solution. As seen in this flowchart, for a given
screw axes components are zero is correctly obtained by the proposed method, right after x, the values of P(x) and R(x) are calculated using Equations 3.95 and 3.96, respec-
this point in time, the proposed method cannot distinguish between the positive or neg- tively. Next, Fi (x) for i = 1, 2, . . . , 7 are calculated using Equation 3.97. Then, the value
ative values of the solutions, and may fail in providing the right solution. The problem is of f (x) = 12 i Fi (x)2 is calculated, and if it is not close to zero with the required accuracy,
exaggerated if two of the screw axes components approach zero simultaneously. an optimal search routine is used to recalculate a new value for x. This iteration is followed
From the above-mentioned observation, it can be concluded that for the cases where to obtain a solution for f (x) = 0 with an accuracy of 1. Multiple solutions may exist
none of the screw axes parameters, namely sx , s y , sz , and θ , are zero or approaching zero, for the equation F(x) = 0, and in order to avoid abrupt changes in the forward kinematic
the analytical solution leads to the right solution. But otherwise, the solution may degen- solutions, the solution of the previous iteration is used to search for the next step solution.
erate, or may diverge from the right solution. In the next section, a numerical solution to Simulation results detailed in Section 3.5.5 illustrate the effectiveness, and accuracy of the
the problem is given, in which although the computational time is 10 times greater than numerical routines used to solve the forward kinematics.
that of the analytical solution, it is not much sensitive to the special cases of the orientation
to converge towards the right solution.
3.5.5 Simulations
To verify the accuracy and integrity of the solutions, a simulation study is performed for
[Link] Numerical Solution
a typical 6–6 p SGP in this section. The forward kinematic solution results are given for
In order to generate a numerical solution to the forward kinematic problem, assume that
the limbs’ lengths L = [1 , 2 , 3 , 4 , 5 , 6 ]T are given and the problem is to obtain the ∗ Use fsolve function in MATLAB.
1.5
Given x
A2
A3
1
0
Calculate Fi (x)
fsolve –0.5
Calculate f (x) A5
–1
A6
–1.5
No –1.5 –1 –0.5 0 0.5 1 1.5
If | f (x)| < e
x (m)
1.5
FIGURE 3.19
Flowchart of the iterative routine used to solve the forward kinematics of Stewart–Gough platform.
Displacement (m)
1
TABLE 3.2
Geometric Parameters of the 6–6 P Stewart–Gough Platform 0.5
x
Description Quantity Unit y
z
a1 : Position vector of point A1 [+0.8, +0.0, 0]T m 0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
a2 : Position vector of point A2 [+0.5, +1.2, 0]T m
Time (s)
a3 : Position vector of point A3 [−0.2, +1.0, 0]T m
a4 : Position vector of point A4 [−0.6, +0.4, 0]T m 65
Orientation angles (deg)
3 × 10–15
l1 6
l2 ex
5
Limb length (m)
2.5 ey
l5
2
Orientation error
2.5 l6
2 0
1.5
–2
1 eθx
–4 eθy
0.5 eθz
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
–6
Time (s) 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Time (s)
FIGURE 3.22
Inverse kinematic solution of a 6–6 P Stewart–Gough platform for the given trajectory. FIGURE 3.23
The accuracy and integrity of the forward and inverse kinematic solutions; analytical approach.
is derived for the determined limbs’ lengths of the inverse kinematics, which are illustrated × 10–8
0.5
in Figure 3.22. The difference between the forward kinematic solution X c and the desired 0
motion X d is illustrated in Figure 3.23. It is observed that the calculated analytical solution
Orientation error
[Link] Numerical Solution 0
In order to compare the accuracy and the computational effort of the analytical solution to –1
that of the numerical solution, first the same trajectory depicted in Figure 3.21 is considered eθx
for the simulation. This time, numerical methods are used to obtain the forward kinematic –2 eθy
eθz
solution and the difference between the forward kinematic solution X c and the desired –3
motion X d are illustrated in Figure 3.24. It is observed that the numerical solutions are 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
identical to the desired trajectories to an accuracy of 10−8 in positions, and 10−10 in orien- Time (s)
tation parameters. Although the obtained numerical solutions are less accurate than those
of analytical solutions, they are quite acceptable and can meet the required precision. FIGURE 3.24
The accuracy and integrity of the forward and inverse kinematic solutions; numerical approach.
In order to compare the computation time of each method, the simulation has been per- 1.5
Displacement (m)
formed on a Sony laptop, VGN-TX2 Series, with a 1.20 GHz Intel Pentium processor in 200
step times. For the total simulation time of 2 s, the elapsed time for numerical solutions is 1
about 5.89 s, while that for analytical solutions is about 0.65 s. Furthermore, the average x
computation time of the forward kinematic solution at each iteration step is about 26.33 ms y
0.5 z
for the numerical method, and about 0.86 ms for the analytical method. It is evident that
the computational speed of the numerical solution is much lower than that of the analytical 0
solution. 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
However, the numerical solution is not sensitive to the orientation parameters, and Time (s)
works well in cases where analytical solution degenerates. Moreover, it can solve forward 60
Orientaion angles (deg)
2.5 l2
Figure 3.26. The difference between the forward kinematic solution X c and the desired tra- 2 l3
jectory X d is illustrated in Figure 3.27. It is observed that the numerical forward kinematic
solutions are identical to the desired trajectories, to an accuracy of 10−8 . The accuracies 1.5
obtained here are almost the same as those in Figure 3.24 for various positions; however, 1
0.5
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Time (s)
TABLE 3.3 3.5
Geometric Parameters of a General Stewart–Gough 3 l4
Limb length (m)
l5
Platform 2.5
l6
Description Quantity Unit 2
1.5
a1 : Position vector of point A1 [+0.8, +0.0, +0.1]T m
1
a2 : Position vector of point A2 [+0.5, +1.2, −0.2]T m
a3 : Position vector of point A3 [−0.2, +1.0, −0.1]T m 0.5
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
a4 : Position vector of point A4 [−0.6, +0.4, +0.2]T m Time (s)
a5 : Position vector of point A5 [−0.4, −0.8, −0.1]T m
a6 : Position vector of point A6 [+0.4, −1.2, +0.1]T m FIGURE 3.26
b1 : Position vector of point B1 [+0.6, +0.2, −0.1]T m Inverse kinematic solution for the given trajectory for general Stewart–Gough platform.
b2 : Position vector of point B2 [+0.3, +1.0, +0.2]T m
b3 : Position vector of point B3 [−0.1, +1.2, −0.2]T m
they are less than those of the analytical solutions given in Figure 3.23. Nevertheless,
b4 : Position vector of point B4 [−0.4, +0.2, −0.1]T m
the accuracies still satisfy practical requirements. Finally, it should be mentioned that the
b5 : Position vector of point B5 [−0.2, −1.0, +0.1]T m
numerical solution is sensitive to the initial guess, and may diverge from the right solutions
b6 : Position vector of point B6 [+0.3, −1.0, −0.1]T m
if it is not well assigned.