mls94-complete[1]
.pdf
|
p |
|
|
|
|
u |
|
|
u′ |
r |
θ |
ξ |
θ0 |
θ |
|
||||
|
|
|||
|
v |
|
eωθb u′ |
v′ |
|
δ |
δ′ |
||
|
|
|
|
q |
|
ωT (p−q) |
(a) |
(b) |
|
Figure 3.10: Subproblem 3: (a) Rotate p about the axis of ξ until it is a distance δ from q. (b) The projection onto the plane perpendicular to the axis. The dashed line is the “flip” solution.
We can also “project” δ by subtracting the component of p − q in the ω direction,
δ′2 = δ2 − |ωT (p − q)|2,
so that equation (3.27) becomes
kv′ − eωθb u′k2 = δ′2
(see Figure 3.10b). If we let θ0 be the angle between the vectors u′ and v′, we have
θ0 = atan2(ωT (u′ × v′), u′T v′). |
(3.28) |
We can now use the law of cosines to solve for the angle φ = θ0 − θ. The triangle formed by the center of the axis, exp(ωθb )u′, and v′ satisfies
ku′k2 + kv′k2 − 2ku′kkv′k cos φ = δ′2
and therefore |
|
± |
|
k |
|
k |
2 uk′ |
|
! |
|
|
|
0 |
|
|
v′ |
|
||||||
θ = θ |
|
|
cos−1 |
|
u′ |
|
2 |
+ |
v′k2 − δ′2 |
. |
(3.29) |
|
|
|
|
|
|
k kk k |
|||||
|
|
|
|
|
|
|
|
|
|
Equation (3.29) has either zero, one, or two solutions, depending on the
number of points in which the circle of radius ku′k intersects the circle of radius δ′.
103
3.3Solving inverse kinematics using subproblems
Given the solutions to the subproblems presented above, we must now find techniques for converting the complete inverse kinematics problem into the appropriate subproblems.
The basic technique for simplification is to apply the kinematic equations to special points, such as the intersection of two or more axes. This
b
is a potentially powerful operation since exp(ξθ)p = p if p is on the axis of a revolute twist ξ. Using this, we can eliminate the dependence of certain joint angles by appropriate selection of points. For example, if we wish to solve
eb1 |
θ |
1 eb2 |
θ |
2 eb3 |
θ |
3 |
= g, |
ξ |
ξ |
ξ |
|
|
with ξ1, ξ2, and ξ3 all zero-pitch twists, then applying both sides to a point p on the axis of ξ3 yields
b b
eξ1θ1 eξ2θ2 p = gp,
which can be solved using Subproblem 2 (in the case that ξ1 and ξ2 intersect).
Another common trick for reducing a problem to a subproblem is to subtract a point from both sides of an equation and take the norm of the result. Since rigid motions preserve norm, some dependencies can be eliminated. For example, if we wish to solve
eb1 |
θ |
1 eb2 |
θ |
2 eb3 |
θ |
3 |
= g |
ξ |
ξ |
ξ |
|
|
for ξ3, and ξ1, ξ2 intersect at a point q, then we can apply both sides of the equation to a point p that is not on the axis of ξ3 and subtract the point q. Taking the norm of the result yields
δ := kgp − qk = keb1 |
θ |
1 eb2 |
θ |
2 eb3 |
θ |
3 p − qk |
|
ξ |
ξ |
ξ |
|
3 p − q)k |
|||
= keb1 |
θ |
1 eb2 |
θ |
2 (eb3 |
θ |
||
ξ |
ξ |
ξ |
|
|
|||
= keb3 |
θ |
3 p − qk |
|
|
|
||
ξ |
|
|
|
|
|
|
which is Subproblem 3.
We now show how the subproblems of Section 3.2 can be used to solve the inverse kinematics of some common manipulators. Additional examples appear in the exercises.
Example 3.5. Elbow manipulator inverse kinematics
The elbow manipulator in Figure 3.11 consists of a three degree of freedom manipulator with a spherical wrist. This special structure simplifies the inverse kinematics and fits nicely with the subproblems presented earlier.
The equation we wish to solve is
ξ |
θ |
ξ |
θ |
6 gst(0) = gd, |
gst(θ) = eb1 |
|
1 · · · eb6 |
|
104
ξ1 |
|
ξ4 |
ξ2 |
ξ3 |
ξ5 |
l1 |
l2 |
|
pb |
|
ξ6 |
|
|
qw |
l0
S
Figure 3.11: Elbow manipulator.
where gd SE(3) is the desired configuration of the tool frame. Postmultiplying this equation by gst−1(0) isolates the exponential maps:
ξ |
θ |
ξ |
θ |
1 |
(0) =: g1. |
(3.30) |
eb1 |
|
1 · · · eb6 |
|
6 = gdgst− |
We determine the requisite joint angles in four steps.
Step 1 (solve for the elbow angle, θ3). Apply both sides of equation (3.30) to a point pw R3 which is the common point of intersection for the wrist axes. Since exp(ξθ)p = pw if pw is on the axis of ξ, this yields
b |
w |
b |
b |
b |
θ3 pw = g1pw . |
(3.31) |
eξ1 |
θ1 eξ2 |
θ2 eξ3 |
Subtract from both sides of equation (3.31) a point pb which is at the intersection of the first two axes, as shown in Figure 3.11:
eb1 |
θ |
1 eb2 |
θ |
2 eb3 |
θ |
3 pw − pb = eb1 |
θ |
1 eb2 |
θ |
2 |
eb3 |
θ |
3 pw − pb |
= g1pw − pb. (3.32) |
ξ |
ξ |
ξ |
ξ |
ξ |
|
ξ |
|
|
Using the property that the distance between points is preserved by rigid motions, take the magnitude of both sides of equation (3.32):
keb3 |
θ |
3 pw − pbk = kg1pw − pbk. |
(3.33) |
ξ |
|
|
This equation is in the form required for Subproblem 3, with p = pw , q = pb, and δ = kg1pw − pbk. Applying Subproblem 3, we solve for θ3.
Step 2 (solve for the base joint angles). Since θ3 is known, equation (3.31) becomes
ξ |
θ |
ξ |
θ |
ξ |
θ |
3 pw ) = g1pw. |
(3.34) |
eb1 |
|
1 eb2 |
|
2 (eb3 |
|
b
Applying Subproblem 2 with p = exp(ξ3θ3)pw and q = g1pw gives the values for θ1 and θ2.
105
Step 3 (solve for two of three wrist angles). The remaining kinematics can be written as
eb4 |
θ |
4 eb5 |
θ |
5 eb6 |
θ |
6 = e−b3 |
θ |
3 e−b2 |
θ |
2 e−b1 |
θ |
1 gdgst− |
(0) =: g2. |
(3.35) |
ξ |
ξ |
ξ |
ξ |
ξ |
ξ |
1 |
|
|
Apply both sides of equation (3.35) to a point p which is on the axis of ξ6 but not on the ξ4, ξ5 axes. This gives
ξ |
θ |
ξ |
θ |
5 p = g2p. |
(3.36) |
eb4 |
|
4 eb5 |
|
Apply Subproblem 2 to find θ4 and θ5.
Step 4 (solve for the remaining wrist angle). The only remaining unknown is θ6. Rearranging the kinematics equation and applying both sides to any point p which is not on the axis of ξ6,
eb6 |
θ |
6 p = e−b5 |
θ |
5 e−b4 |
θ |
4 · · · e−b1 |
θ |
1 gdgst− |
(0)p =: q. |
(3.37) |
ξ |
ξ |
ξ |
ξ |
1 |
|
|
Apply Subproblem 1 to find θ6.
At the end of this procedure, θ1 through θ6 are determined. There are a maximum of eight possible solutions, due to multiple solutions for equations (3.33), (3.34), and (3.36). Note that the overall procedure is to first solve for the three angles which determine the position of the center of the wrist and then solve for the wrist angles.
Example 3.6. Inverse kinematics of a SCARA manipulator
Consider the four degree of freedom SCARA manipulator shown in Figure 3.12. From the forward kinematics derived in Example 3.1 on page 87, the tool configuration has the form
gst(θ) = eξ1θ1 eξ4θ4 gst(0) = |
sin φ |
cos φ |
0 |
y |
|
=: gd |
|
b · · · b |
|
cos φ |
− sin φ |
0 |
x |
|
|
0 |
0 |
0 |
1 |
|
|||
|
|
|
|
|
|
|
|
|
|
0 |
0 |
1 |
z |
|
|
|
|
|
|
(3.38) and hence we can solve the inverse kinematics given x, y, z, and φ as in equation (3.38). We begin by solving for θ4. Applying both sides of equation (3.38) to the origin of the tool frame gives
p(θ) = |
−l1 cos θ1 |
+ l2 cos(θ1 |
+ θ2) |
= |
y |
, |
|
|
l1 sin θ1 |
− l2 sin(θ1 |
+ θ2) |
|
x |
|
|
|
|
|
l0 + θ4 |
|
z |
|
where p(θ) is the position component of the forward kinematics, given by equation (3.4). From the form of p(θ), we see that θ4 = z −l0. Notice that finding θ4 did not make use of any of the previously defined subproblems.
106
|
θ3 |
|
|
θ2 |
|
θ1 |
l2 |
|
θ4 |
||
|
||
|
l1 |
|
z |
|
T |
|
|
|
|
||
|
S |
|
l0 |
|
q1 |
q2 |
q3 |
||
y |
x
Figure 3.12: SCARA manipulator in its reference configuration.
Once θ4 is known, we can rearrange equation (3.38) to read
ξ |
θ |
ξ |
θ |
ξ |
θ |
1 |
ξ |
θ |
|
=: g1. |
(3.39) |
eb1 |
|
1 eb2 |
|
2 eb3 |
|
3 = gdgst− |
(0)e−b4 |
|
4 |
Let p be a point on the axis of ξ3 and q be a point on the axis of ξ1. Applying equation (3.39) to p, subtracting q from both sides, and applying norms,
keb1 |
θ |
1 eb2 |
θ |
2 p − qk = keb1 |
θ |
1 (eb2 |
θ |
2 p − q)k |
ξ |
ξ |
ξ |
ξ |
|
b
(3.40)
= keξ2θ2 p − qk = kg1p − qk =: δ.
Application of Subproblem 3 gives the value of θ2. θ1 can now be found by applying equation (3.39) to a point p′ on the axis of ξ3 and solving Subproblem 1:
eb1 |
θ |
1 eb2 |
θ |
2 eb3 |
θ |
3 p′ = eb1 |
θ |
1 |
eb2 |
θ |
2 p′ |
= g1p′. |
ξ |
ξ |
ξ |
ξ |
|
ξ |
|
|
Finally, we rearrange equation (3.39), shifting the (known) θ1 and θ2 terms to the right-hand side:
eb3 |
θ |
3 = e−b2 |
θ |
2 e−b1 |
θ |
1 gdgst− |
(θ)e−b4 |
θ |
4 . |
(3.41) |
ξ |
ξ |
ξ |
1 |
ξ |
|
|
Applying equation (3.41) to any point p which is not on the axis of ξ3 and solving Subproblem 1 a final time gives θ3 and completes the solution.
There are a maximum of two possible solutions for the SCARA manipulator, corresponding to the solutions of equation (3.40).
107
3.4General solutions to inverse kinematics problems
In the preceding sections, we have developed an elegant set of geometric and conceptual subproblems in terms of which the inverse kinematics solution of a large number of manipulators can be decomposed. The set of subproblems and their extensions given in the exercises turn out to be useful for decomposing the solution of the inverse kinematics equations, primarily when the robot has at least some intersecting axes.
The question of how to solve the inverse kinematics problem in general, (that is, in the absence of any intersections of the axes of the manipulator) for both planar and spatial mechanisms is an extremely active area of current research. In particular, there are many interesting questions about the number of inverse kinematics solutions and how the computations can be mechanized in real-time. In this subsection, we give a brief summary of some of the newest and most general approaches in this regard, drawn from [57], [64] and [95]. Our development closely parallels that of Manocha and Canny [64]. The approaches are primarily based on classic elimination theory from algebraic geometry; this is a systematic procedure for simultaneously eliminating n − 1 of the variables in a system of n polynomials in n variables to obtain a single polynomial in one variable. This procedure is a general procedure but also a “brute-force” procedure, in that it only takes very simple properties of the manipulator kinematics into account (unlike the solutions based on the subproblems listed above). We illustrate this procedure, sometimes referred to as dialytical elimination, in the following example of three nonhomogeneous polynomials in three variables.
Example 3.7. Dialytical elimination for three polynomials in three variables
We will assume that the three polynomials f1, f2, f3 are nonhomogeneous in x1, x2, x3 and are of the form
|
f1 |
a1 |
b1 |
c1 |
d1 |
e1 |
g1 |
x1x2 |
0 |
|||||
|
|
|
|
|
|
|
|
|
|
|
x2 |
|
|
|
f2 = a2 |
|
|
|
|
|
|
|
|
1 |
|
= 0 . |
|||
b2 |
c2 |
d2 |
e2 |
g2 |
x2 |
|||||||||
|
f |
|
a |
b |
c |
d |
e |
g |
|
|
|
2 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
x1x3 |
|
|
|
|
|
|
|
|
|
|
|
3 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
3 |
3 |
3 |
3 |
3 |
|
3 |
|
x |
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Here, ai, bi, ci, di, ei, gi, for i = 1, . . . , 3 are all real numbers. To solve this system of three polynomials in x1, x2, x3 for their common zeros, we eliminate x2, x3 to get a single polynomial in x1 in two steps:
Step 1. We express the above equation as a system of equations in x2, x3
108
with coe cients being polynomials in x1 as follows: |
|
= 0 . |
|||||||||||||||||
|
f2 |
|
= d2 |
e2 + c2x1 |
b2x1 |
a2x1 |
+ g2 |
|
|
x2 |
|||||||||
|
f |
|
|
e + c |
x |
|
|
|
|
2 |
+ g |
|
|
|
x2 |
|
|
||
|
|
d |
1 |
b x a x2 |
1 |
|
|
2 |
|
0 |
|||||||||
|
1 |
|
|
1 |
1 |
1 |
|
1 |
1 |
1 |
1 |
|
|
1 |
|
0 |
|||
|
f3 |
|
d3 |
e3 + c3x1 |
b3x1 |
a3x1 |
+ g3 |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
x3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Step 2. We try to generate more polynomials which are independent2 of f1, f2, f3 until we have as many unknown monomials3 in x2, x3 as there are equations. For example, multiplying f1, f2, f3 by x2 yields the following set of polynomials which are independent of f1, f2, f3:
x2f2 |
|
= d2 |
e2 + c2x1 |
b2x1 |
a2x1 + g2 |
|
|
|
2 |
|
= 0 . |
|
|
|
|
e1 + c1x1 |
b1x1 |
2 |
+ g1 |
|
|
x23 |
|
|
|
2 |
|
x |
|
|
||||||||
x2f1 |
|
d1 |
a1x1 |
|
|
x2 |
|
0 |
||||
x2f3 |
|
d3 |
e3 + c3x1 |
b3x1 |
a3x1 + g3 |
|
0 |
|||||
|
|
|
|
|
2 |
|
|
|
x2x3 |
|
|
|
|
|
|
|
|
2 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Combining these equations with those for f1, f2, f3 yields the following set of six equations in the six monomials x32, x22, x2x3, x2, x3, 1:
|
|
|
|
2 |
|
|
|
|
x3 |
|
|
|
0 |
|
|
|
|
|
|
0 |
0 |
|
|
|
2 |
|
|
|
|
|
|
|
d1 e1+c1x1 b1x1 a1x1+g1 |
|
x2x3 |
|
|
0 |
|||||||||
|
d2 e2+c2x1 b2x1 a2x12+g2 |
0 |
0 |
|
|
||||||||||
|
e3+c3x1 |
b3x1 a3x12+g3 |
0 |
2 |
x3 |
|
|
0 |
|||||||
d3 |
0 |
|
|
x22 |
|
|
|
0 |
|
||||||
A(x1) := |
0 |
0 |
d1 |
b1x1 |
e1+c1x1 |
a1x12+g1 |
|
x |
|
= |
0 . |
||||
|
|
0 |
d2 |
b2x1 |
|
|
|
1 |
|
|
0 |
||||
0 |
e2+c2x1 a2x12+g2 |
|
|
2 |
|
|
|
|
|
||||||
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
0 |
d3 |
b3x1 |
e3+c3x1 a3x1+g3 |
|
|
|
|
|
|
|
For this equation to have a solution, it is clear that the determinant of the matrix A(x1) multiplying the entries x32, x2x3, x22, x2, x3, 1 should have zero determinant. Thus, the system of equations f1 = f2 = f3 = 0 is equivalent to det A(x1) = 0. In general, the degree of this polynomial in x1 is high (generically, i.e., for almost all values of ai, . . . , gi, its degree is six) and, furthermore, solutions need not be real. However, the degree of the polynomial is an upper bound on the number of real solutions and once a real number x1 has been found, one can read o the solution for x2, x3 by scaling the element in the null space of A(x1) to have 1 as its last entry. If the null space of the matrix A(x1) has dimension greater than one, corresponding to a multiplicity of roots for the polynomial det A(x1) = 0, then there may be a multiplicity of solutions for x2, x3 corresponding to the value(s) of x1 for which the null space of the matrix A(x1) has dimension greater than 1. While the exact multiplicity is a subtle question in [64], it is stated that an upper bound for the multiplicity of the solutions x2, x3 associated with that value of x1 is the dimension of the null space of A(x1).
2Independence is meant in a technical sense, over the ring of polynomials in x1. 3A monomial is a single polynomial; for example, x2x3 or x31.
109
A general procedure for six degree of freedom manipulators
To apply this procedure to the inverse kinematics of a six-link manipulator, some preliminary work is necessary. The kinematics are given by
gst(θ) = eb1 |
θ |
1 · · · eb6 |
θ |
6 gst(0) |
ξ |
ξ |
|
and the inverse kinematics problem is to solve for θ1, . . . , θ6 given gd SE(3). We rewrite the kinematics in terms of the Denavit-Hartenberg parameterization, as in equation (3.6):
|
|
|
gst(θ) = gl0l1 (θ1)gl1l2 (θ2) · · · gl5l6 (θn)gl6t = gd. |
|
||||
By proper choice of link frames, each gli−1li has the form |
|
|||||||
|
|
|
|
cos φi |
− sin φi cos αi |
sin φi sin αi |
ai cos φi |
|
gl |
,l |
= |
0 |
0 i |
0 i |
1i |
||
sin φi |
cos φi cos αi |
− cos φi sin αi |
ai sin φi |
. |
||||
|
|
|
|
|
|
|
|
|
i−1 |
i |
|
|
0 |
sin α |
cos α |
d |
|
|
|
|
(3.42) Given a desired gd for the end-e ector position and orientation, we rewrite this equation as
g |
l2l3 |
(θ |
3 |
)g |
l3l4 |
(θ |
4 |
)g |
l4l5 |
(θ |
5 |
) = g−1 (θ |
2 |
)g−1 (θ |
1 |
) g |
d |
g−1g−1 (θ |
6 |
). |
(3.43) |
|
|
|
|
|
|
l1l2 |
l0l1 |
|
l6t l5l6 |
|
|
What we have done is to take the inverses of gl5l6 (θ6), gl0l1 (θ1), and gl1l2 (θ2) and moved them to the right-hand side. The reason for this clever rearrangement and the choice of the Denavit-Hartenberg parameterization in the kinematics will become clear in Step 1 of the procedure
which follows. By way of notation, we write gdg−1 as
l6t
|
|
|
lx |
mx |
nx |
qx |
|
|
gdg−1 |
= |
0 |
0 |
0 |
1 |
(3.44) |
||
|
ly |
my |
ny |
qy |
. |
|||
|
|
|
|
|
|
|
|
|
l6t |
|
|
lz |
mz |
nz |
qz |
|
|
|
|
|
|
|
|
|
|
|
Hence, l, m, n R3 are the columns of the rotational component of gdg−1
l6t
and and q R3 is the translational component.
To bring to bear the machinery of algebraic geometry in an equation involving sines and cosines of angles, we define ci := cos θi and si := sin θi for i = 1, . . . , 6 and think of equation (3.43) as being polynomial in si and ci. Indeed, by direct inspection we may see that the entries of each exponential are unary (i.e., of degree 1 or less) in ci and si. Part of the reason for rewriting the kinematics as in equation (3.43) is to be able to reduce the order of the polynomial in si and ci. Both the left-hand side and right-hand side of (3.43) are now cubic in si and ci. The details of the procedure to eliminate all the variables except for θ3 is sketched as a
110
number of steps. The details of the proofs and justification of the steps is quite involved and, for them, the reader is referred to the papers cited above.
Step 1. Verify that the third and fourth columns of equation (3.43) are independent of θ6. This is the step where the Denavit-Hartenberg parameterization comes in handy. Indeed, from taking the inverse of the formula for gl6t(θ6) from equation (3.42), it follows that
g−1(θ6) = |
−cα6 sθ6 |
cα6 cθ6 |
sα6 |
−d6sα6 . |
||||
|
|
cθ6 |
− |
sθ6 |
0 |
− |
a6 |
|
|
0 |
0 |
0 |
1 |
||||
|
|
|
|
|
|
|
|
|
l6t |
|
sα6 sθ6 |
|
sα6 cθ6 |
cα6 |
|
d6cα6 |
|
|
|
|
|
|
Thus, the last two columns on the right-hand side of equation (3.43) are independent of θ6.
Step 2. Equate the third and fourth column of the left-hand side and right hand side of equation (3.43). This yields the following six equations in θi, i = 1, . . . , 5:
EQ1 : c3f1 + s3f2 = c2h1 + s2h2 − a2
EQ2 : s3f1 − c3f2 = −λ2(s2h1 − c2h2) + µ2(h3 − d2)
EQ3 : f3 = µ2(s2h1 − c2h2) + λ2(h3 − d2)
(3.45)
EQ4 : c3r1 + s3r2 = c2n1 + s2n2
EQ5 : s3r1 − c3r3 = −λ2(s2n1 − c2n2) + µ2n3 EQ6 : r3 = µ3(s2n1 − c2n2) + λ2n3,
where
f1 = c4g1 +s4g2 +a3 r1 = c4m1 +s4m2 g1 = c5a5 +a4
m1 = s5µ5
h1 = c1p+s1q −a1 n1 = c1u+s1v
f2 = µ3g3 −λ3(s4g1 −c4g2) r2 = µ3m3 −λ3(s4m1 −c4m2) g2 = µ4d5 −λ4s5a5
m2 = c5λ4µ5 +µ4λ5
h2 = µ1(r −d1)−λ1(s1p−c1q) n2 = µ1w −λ1(s1u−c1v)
f3 = µ3(s4g1 −c4g2)+λ3g3 +d3 r3 = µ3(s4m1 −c4m2)+λ3m3 g3 = −s5µ4a5 +λ4d5 +d4
m3 = −c5µ4µ5 +λ4λ5
h3 = µ1(s1p−c1q)+λ1(r −d1) n3 = µ1(s1u−c1v)+λ1w.
The scalars ai and di are the Denavit-Hartenberg parameters of the links, and µi = sin αi, λi = cos αi. The desired configuration enters through the following parameters:
p = −lxa6 − (mxµ6 q = −ly a6 − (my µ6 r = −lz a6 − (mz µ6
+nxλ6)d6 + qx
+ny λ6)d6 + qy
+nz λ6)d6 + qz
u = mxµ6 v = my µ6 w = mz µ6
+nxλ6
+ny λ6
+nz λ6.
Recall that the l = (lx, ly , lz ), m = (mx, my , mz ), n = (nx, ny , nz ), and q = (qx, qy , qz ) were defined in equation (3.44).
111
Step 3. Now, rearrange equations EQ1–EQ6, with the obvious definitions for h, f, n, r R3 from the above definitions for their components, to get two sets of three equations:
p = |
−s2 |
c2 |
0 h = |
0 |
−λ2 |
µ2 |
s3 |
−c3 |
0 f + |
0 |
|
|
|
c2 |
s2 |
0 |
1 |
0 |
0 |
c3 |
s3 |
0 |
a2 |
l = |
0 |
0 |
1 |
0 |
µ2 |
λ2 |
0 |
0 |
1 |
d2 |
|
|
s2 |
c2 |
0 n = |
0 |
−λ2 |
µ2 |
s3 |
−c3 |
0 r. |
|
|
|
|
c2 |
s2 |
0 |
1 |
0 |
0 |
c3 |
s3 |
0 |
|
|
−0 |
0 |
1 |
0 |
µ2 |
λ2 0 |
0 |
1 |
|
(3.46) The left-hand sides of p and l are linear combinations of 1, c2, s2, c1, s1, c1c2, s1c2, and s1s2. The right-hand sides are linear combinations in functions of s3, c3 of 1, c5, s5, c4, s4, c4c5, s4c5, and s4s5.
Step 4. From a lengthy calculation, using the kinematics, it follows that
l p p · p p · l p × l (p · p)l − 2(p · l)p
have the same functional form as p and l in terms of their dependence on linear combinations of the same variables as the leftand right-hand sides of p and l. Between them, these represent 3 + 3 + 1 + 1 + 3 + 3 = 14 equations. Combine these 14 equations to get an equation of the form
|
|
s4s5 |
|
|
|
s1s2 |
|
|
|
|
|
s4c5 |
|
|
|
|
|
|
|
|
|
|
|
|
s1c2 |
|
|
|
|
|
|
c4s5 |
|
|
|
|
|
|
|
|
|
|
|
|
c1s2 |
|
|
|
|
|
c5 |
|
|
|
|
|
|||
|
|
|
s2 |
|
|
|
|||
|
|
c4c5 |
|
|
|
c2 |
|
|
|
|
1 |
|
|
|
|||||
P (s3, c3) |
|
s4 |
|
= Q |
|
c1c2 |
|
. |
(3.47) |
s |
|||||||||
|
|
c4 |
|
|
|
|
|
||
|
|
|
|
c11 |
|
|
|
||
|
|
s5 |
|
|
|
|
|
|
|
In this equation, P (s3, c3) R14×9 is a function of s3, c3 and Q R14×8 is a constant matrix.
Step 5. If the rank of the matrix Q R14×8 is 8, use any 8 of the 14 equations in equation (3.47) to solve for the eight variables
s1s2 s1c2 c1s2 c1c2 s1 c1 s2 c2
in terms of the variables
s4s5 s4c5 c4s5 c4c5 s4 c4 s5 c5.
Use this in the remaining six equations of (3.47) to get six equations of the form
(3.48)