Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

mls94-complete[1]

.pdf
Скачиваний:
42
Добавлен:
10.06.2015
Размер:
2.8 Mб
Скачать

 

p

 

 

 

 

u

 

 

u

r

θ

ξ

θ0

θ

 

 

 

 

v

 

eωθb u

v

 

δ

δ

 

 

 

 

q

 

ωT (pq)

(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

kveωθb uk2 = δ2

(see Figure 3.10b). If we let θ0 be the angle between the vectors uand v, we have

θ0 = atan2(ωT (u× v), uT 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 vsatisfies

kuk2 + kvk2 2kukkvk cos φ = δ2

and therefore

 

±

 

k

 

k

2 uk

 

!

 

 

0

 

 

v

 

θ = θ

 

 

cos1

 

u

 

2

+

vk2 δ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 kuk 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 gst1(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 = eb3

θ

3 eb2

θ

2 eb1

θ

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 = eb5

θ

5 eb4

θ

4 · · · eb1

θ

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)eb4

 

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 pon 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 = eb2

θ

2 eb1

θ

1 gdgst

(θ)eb4

θ

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

) = g1

2

)g1

1

) g

d

g1g1

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 gdg1 as

l6t

 

 

 

lx

mx

nx

qx

 

 

gdg1

=

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 gdg1

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 gl6t6) from equation (3.42), it follows that

g16) =

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

1
112
s4s5
s4c5
c4s5
Σ(c3, s3) c4s4c5 = 0,
c4 s5 c5

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)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]