PSEUDO-INVERSE CONTROL OF ARTICULATED FIGURES

HOSAM KI AND DONGWOO SHEEN
Date
ABSTRACT. An inverse kinematics problem is considered to find a set of joint angles that corresponds to given set of target end effectors of an articulated figure. We introduce a nonlinear programming approach and a method using pseudo-inverse control. And we improve it to find the joint angles for multiple end effectors. Several numerical results are discussed.

1 Introduction

In computer animation, an articulated figure is often modelled as a set of rigid segments connected by joints. Abstractly, a joint is a constraint on the geometric relationship between two adjacent segments. This relationship is expressed with a number of parameters called joint angles. With judicious selection of joints so that, for example, segments are connected to form a tree structure, a collection of joint angles of all the joints corresponds exactly to a configuration of the figure. This correspondence provides an immediate computer representation of articulated figure configurations such that given a set of joint angles, it is straightforward to compute the corresponding configuration; however, the problem of finding a set of joint angles that corresponds to a given configuration - the inverse kinematics problem - is nontrivial.

The inverse kinematics problem is extremely important in computer animation because it is often the spatial appearance, rather than the joint angles, that an animator finds easier to express.

Many interesting objects in the computer animation domain, such as human figures and other characters, have many redundant degrees of freedom when viewed as a tree-structured kinematics mechanism. So, it was necessary to look for effective means for solving this problem under circumstances applicable to computer animation.

Korein and Badler began to study and implement methods for kinematic chain positioning, especially in the context of joint limits and redundant degrees of freedom[43]. In [1] Badler, Manoochehri and Walters used 3D position constraints to specify spatial configurations of articulated figures.

Girard and Maciejewski adopted a method from robotics[2]. In their work they calculated the pseudo-inverse of the Jacobian matrix that relates the increment of the joint angles to the displacement of the end effector in space. The main formula is

 /_\ h = J+/ _\ r,
where  /_\ h is the increment of the joint angle,  /_\ r is the displacement of the vector representing the position and orientation of the end effector in space and J+ is the pseudo-inverse of the Jacobian @r/@h.


psfig

Figure 1: The Reduced Degrees of Freedom of Human Body

Recently, most computer animation systems have adopted inverse kinematics techniques from robotics. In these approaches an inverse kinematics problem is cast into a system of nonlinear equations or an optimization problem which can be solved using an iterative numerical algorithm. Most inverse kinematics algorithms were originally designed to meet the requirements of robotics, their straightforward application to computer animation frequently lead to problems. It is instructive to highlight some of the difficulties: In robotics inverse kinematics tasks only involve constraining the position and orientation of the terminal segment or the end effector. In computer animation, many other types of constraints have to be considered, for example, constraining selected points on non-terminal segments, aiming the end effector, keeping the figure balanced, and avoiding collisions. It is not always easy to incorporate these constraints into a conventional inverse kinematics formulation. To make matters worse, multiple and possibly conflicting constraints can be active, and the system is usually under-determined or over-determined. Next, few robots have more than six joints. On the other hand, a virtual human model may have over a hundred degrees of freedom. Traditional inverse kinematics algorithms can break down or become unacceptably slow for the highly redundant systems that occur in computer animation.

Nonlinear programming is a numerical technique to solve for minima of nonlinear functions. The solution search maintains numerical efficiency and robustness; the intermediate values from the starting state to the final one could be in general fairly irregular. There are two classes of nonlinear programming problems. One is unconstrained nonlinear programming, where the variables are free to take any values; the other one is constrained nonlinear programming, where the variables can only take values in a certain range. The constraints on the variables fit exactly to joint limits of articulated figures. Although the latter problem can be theoretically reduced to the former one, both unconstrained and constrained nonlinear programming problems have been studied extensively because simple reduction may result in numerical instability.

We will offer a feasible approach to the inverse kinematics problem based on nonlinear programming. Because of the complex nature of nonlinear functions, many efficient nonlinear programming algorithms terminate when they find local minima.

The algorithm we choose has this limitation, too. In practice, however, this is not an unacceptably serious problem. Local minima are less likely when the target configuration is not too distance from the start one. If local minima are encountered during interactive manipulation, users can easily perturb the figure configuration slightly to get around the problem. Often, additional spatial constraints will be help guide a solution away from local minima.

Next, we will introduce the pseudo-inverse control with homogeneous term, which was first introduced in [5]. And then we will improve it to find the joint angles for given multiple end effectors.

The organization of the chapter is as follows. In the section to follow the end effector formula is given. Then, in §3 we explain nonlinear programming approach based on such formula. We introduce the pseudo-inverse control in §4. In §5 and §6 we extend to dual and multiple end effectors and in §7 we regularize our algorithm to avoid the singularity.

2 End Effector Formula


psfig

Figure 2: Joint Chain

First, we will define state variables.

Let Rx(h), Ry(h), Rz(h) be the rotation matrix of angle h with x-, y-, z-axis, respectively. Then the matrix forms are as follows:

         |_                 _| 
          1    0     0
Rx(h) :=  0  cosh   sin h  ,
         |_                 _| 
          0  -sinh  cosh
         |_                 _| 
          cosh  0 - sin h
Ry(h) :=   0    1    0    ,
         |_                 _| 
          sin h  0  cosh
         |_                 _| 
           cosh   sin h  0
Rz(h) :=  - sinh  cosh  0  .
         |_                 _| 
            0      0   1

Define rotation R : R3 --> GL(3, R) as

R(h) = Rz(hz)Ry(hy)Rx(hx)
where h = (hx, hy, hz) and GL(3, R) is general linear group over R of order 3.

Consider an articulated model composed of N rigid segments and N joints. Let S, Q be the set of all possible end effectors and state vectors

h = (h1,h2,...,hN), hj = (hjx,hjy,hjz), j = 1,2,...,N
of joint angles, respectively. Choose an end effector X  (- S. Then the goal of this chapter is to solve the following inverse problem:
X  = f(h)
where f is some nonlinear function, i.e., to find h satisfying the above equation.

We can specify a wide variety of goals for the end effector. Multiple and disjunctive goals are also permitted.

1. position goals: The user wants to position the end effector and is unconcerned about the final orientation.

2. orientation goals: The user is only interested in orienting the end effector.

3. aiming at goals: It is sometimes necessary to aim a line on the end effector. The goal is reached if and only if the ray emanating from the position of end effector in a direction passes through a point in space.

4. plane goals: The user wants to lie on a plane specified by a point and a normal vector.

We will choose position goals in this chapter. So the end effector has three degrees of freedom.

Now we can compute the end effector formula as follows:

For 1 < j, n < N, define Pj(n) as position of j-th joint when state vector is

(h1,h2,...,hn,0,...,0).
Then

      {
 (n)    Pj(n-1)                             if 1 < j < n- 1
Pj  =   R  (h )(P(n-1)- P(n-1))+ P(n-1)     if j > n.
          n n   j       n-1      n-1

End effector is obtained by sequential application of above equation:

f(h) =   P(NN)
                  (N- 1)    (N-1)    (N-1)
     =   RN(hN )(PN     -P N-1  )+ PN-1
     =   RN(hN )RN -1(hN-1)(P(NN-2)- PN(N--12))
                           (N -2)   (N-2)    (N-2)
            +RN  -1(hN -1)(PN -1  - PN-2  )+ PN- 2
     =   R (h  )R    (h   )R    (h    )(P (N -3)- P(N-3))
          N  N   N-1  N-1  N -2 N -2  N        N-1
            +RN  -1(hN -1)RN -2(hN- 2)(P(NN--31)- PN(N--23))
                           (N -3)   (N-3)    (N-3)
            +RN  -2(hN -2)(PN -2  - PN-3  )+ PN- 3
         ...

     =   RN(hN )RN -1(hN-1)RN -2(hN -2)...R1(h1)(P(N0) - P(N0)-1)
                                              (0)     (0)
            +RN  -1(hN -1)RN -2(hN- 2)...R1(h1)(PN -1- PN -2)
            +RN  -2(hN -2)...R1(h1)(P(N0)-2 - P(N0)-3)

            + ...
            +R  (h )R  (h )(P(0)- P(0))
               2  2  1 1   2     1
            +R1(h1)P (01).

And for z = x, y, z and j = 1, 2, ..., N, we can get

-@f-                                       @Rj-              (0)   (0)
@hjz(h)  =  RN (hN)RN -1(hN -1)RN -2(hN-2)...@hjz(hj)...R1(h1)(PN  - PN -1)
                                          @R
                +RN -1(hN-1)RN -2(hN -2)...--j(hj)...R1(h1)(P(N0-)1 - P(N0-)2)
                                          @hjz
                ...
                + @RN--2(hj)...R1(h1)(Pj(0)- P(j0-)1).
                   @hjz

Thus gradient of f(h) is

        (                                                 )
         -@f-    -@f-   -@f-       -@f--   -@f--   -@f--
 \~/ f (h) = @h1x(h),@h1y(h),@h1z(h),...,@hNx (h),@hNy (h),@hNz (h) .

3 Nonlinear Programming Approach

For given target end effector X = (X1, X2, X3)  (- R3, our problem is to find a state variable h = (h1, h2, ..., h3N )  (- R3N such that

X  = f(h)
with constraints lj < hj < uj,   j = 1, 2, ..., 3N. We can recast this problem as nonlinear programming subject to linear constraints on variables. Formally,
minimize F (h) = |X - f(h)| 2 + g2| h| 2,                     (3.1)

subject to lj < hj < uj, j = 1,2,...,3N,                  (3.2)
where g > 0 is a Tikhonov regularization parameter.

The gradient  \~/ F = (@@hF-
 1, ..., @@hF--
 3N) of the cost functional F is as follows:

@F         sum 3          @fi
@h-(h) = -2   (Xi- fi(h))@h-(h)+ 2ghj,
  j       i=1            j
for j = 1, 2, ..., 3N and f = (f1, f2, f3).

We compute the trajectory of end effectors Y 1, Y 2, ..., Y M as follows:

Let Y be an initial end effector and X a target end effector. It shows natural behavior that we divide the segment Y X equally - denote the internal points by Y 1, Y 2, ..., Y M - and find Euler angles in sequence for each internal points: initial guess Y and then target end effector Y 1, initial guess Y 1 and then target end effector Y 2, ... ,initial guess Y M and target end effector X. It is also effective to solve our inverse kinematics problem.

For i = 1, 2, ..., M, since

|Yi- Y |:|Yi- X|= |Y|sin---i--h :|X |sin M-+-1--ih
                       M  + 1          M + 1
where cos h =  Y.X
|Y-||X-|, we can get
           a1                       i               M  + 1- i
Yi = Y + a-+-a-(X - Y), a1 = |Y|sin M-+-1h, a2 = |X|sin-M-+-1-h.
          1   2

For more smooth behavior we can select the internal points ~Y1, ~Y2, ..., Y~M satisfying the followings:

 ~
|Yi|= t| X |+ (1- t)| Y|
where t =  i
M+1-,  i = 1, 2, ..., M. Then
Y~i = {t| X |+(1 -t)| Y |} Yi-.
                     |Yi|


psfig

Figure 3: *: Trajectory of Target End Effectors, g: Regularization Parameter

To solve the above constrained minimization problem we use L-BFGS-B method, which is a limited memory algorithm for solving large nonlinear optimization problems subject to simple bounds on the variables. For L-BFGS-B method, see [21] and [22].

Example 3.1. Consider a simple joint chain with an end effector in 2-dimensional space. Figure 2 shows a joint chain where the joint angles hi are relative angles between adjacent links. The end effector position is given by

( )   (s um 3        )
 x  =    sum 3i=1 licoswi ,
 y        i=1 lisinwi
where wi =  sum j = 1ihj,  i = 1, 2, 3.

Figure 3 shows the result.

4 Pseudo-inverse Control

Consider the problem to find the solution h = h(t)  (- Rn at every instant time of the vector equation:

X = f(h),                                     (4.1)
where X = X(t)  (- Rm is given.

Equation (4.1) may have no solution, a single solution, or an infinite number of solutions. The latter case which requires m < n is considered in this correspondence. To solve the problem we can make use of the linearized model of (4.1) by considering small displacements about the current h:

dX = J(h)dh,                                    (4.2)
where J = J(h) is the m × n Jacobian matrix
   (    )
J =  @fi  , i = 1,2,...,m; j = 1,2,...,n.                   (4.3)
     @hj

The various solutions proposed so far are equivalent in the sense that they use, more or less explicitly, a generalized inverse G of J such that

JGJ = J                                      (4.4)
holds.

Theorem 4.1. For any matrix A there exists a generalized inverse G.

Proof. There exist nonsingular matrices P and Q such that
       (   )
PAQ  =  I 0 .
        0 0
Letting
      (    )
G = Q   I U  P
       V W
where U, V and W are arbitrary, it is easily verified that AGA = A.
[] We can assume that J is of full rank. Then the following theorem holds.

Theorem 4.2. If the set (4.2) of linear equations is consistent, then a solution is given by

dh = GdX,                                     (4.5)
where G = G(h) is a generalized inverse matrix, of dimension n × m, of the matrix J. Also, for any generalized inverse G, dh = GdX is a solution of the set (4.2).
Proof. Assume that J is of rank n < m. Then there exist nonsingular matrices P and Q such that
       (  )
         I
P AQ =   0  .
We compute
   (  )
P-1  I  Q-1dh = dX,
     0
( )
 I  Q -1dh = P dX,
 0
        (   )
Q -1dh =  I 0 PdX,
dh = Q (  )P dX.
        I 0
Then Q(  )
 I 0 P is a generalized matrix by the proof of the above theorem. The proof of the case that J is of rank m < n is similar.

Let ~dh be a solution of dX = Adh and choose any generalized inverse G of J. Then since AGA = A and A~dh = dX,

     ~     ~
AGA  dh = A dh = dX,
AGdX  = dX.
Thus, dh = GdX is a solution of dX = Adh.
[] The main idea in developing the general solution derives intuitively from the fact that it is possible to add to the solution (4.5) any vector consistent with the constraints. This is asserted by the following theorem.

Theorem 4.3. The set of linear consistent equations

dX = Jdh
admits as a solution
dh = G1dX + (G2J - In)Z,                              (4.6)
where

1) G1 and G2 are generalized inverse matrices of J, that is,

JG1J = J                                      (4.7)

and

JG2J = J,                                     (4.8)

2) In is the n × n identity matrix,

3) Z is an arbitrary vector in Rn.

Proof. Since
Jdh   =  J{G1dX  +(G2J - In)Z}

      =  JG1dX  + (JG2J  -J)Z
      =  JG1dX

      =  dX,
dh = G1dX + (G2J - In)Z is a solution of dX = Jdh. The last equality follows by the fact that dh = G1dX is a solution of dX = Jdh.
[]

Theorem 4.4. The vector dh2 = (In - G2J)Z represents the projection of Z onto the null-space of J, along the range-space of G2J.

Proof. Since
(In- G2J)(In - G2J) = In - 2G2J +G2JG2J = In- G2J,
In - G2J is a projection matrix and since
Jdh2 = J(In- G2J)Z = (J - JG2J)Z = 0
for any Z, the range-space of In - G2J is the subset of the null-space of J. And if we choose any Z  (- Rn in the null-space of J, (In - G2J)Z = Z - G2(JZ) = Z holds and it follows that Z is an element of range-space of In - G2J. Therefore the range-space of In - G2J is exactly the null-space of J.
[] From now on we substitute the pseudo-inverse of J for the generalized inverses G1 and G2 in the general solution (4.6).

The definition of the pseudo-inverse is as follows.

Denition 4.5. (Moore-Penrose) A pseudo-inverse A+ of an m × n matrix A is an n × m matrix satisfying

    +
 AA  A  =   A,                                  (4.9)
A+AA+   =   A+,                                (4.10)
  +  T       +
(A A)   =   A  A,                              (4.11)
(AA+)T  =   AA+,                               (4.12)
where XT denotes the transpose of the matrix X.

These conditions amount to the requirement that AA+ and A+A are orthogonal projections onto the ranges of A and AT , respectively.

It is well-known that the pseudo-inverse A+ of a matrix A is unique and it can be calculated using the singular value decomposition.

Theorem 4.6. If A is a real m×n matrix then there exist orthonormal matrices U  (- Rm×m and V  (- Rn×n such that

U TAV  = diag(s1,s2,...,sk,0,...,0)  (-  Rm× n,
where s1 > s2 > ... > sk > 0 for some k < min{m, n}.

Theorem 4.7. The pseudo-inverse matrix A+  (- Rn×m is given by

A+ = V S+U T
where
          (                    )
  +        -1 -1     -1-            n×m
S   = diag  s1,s2 ,...,sk ,0,...,0   (-  R   .

Corollary 4.8. AA+ = U1U1T where U1 = [u1, ..., uk] for U = [u1, ..., um] and A+A = V 1V 1T where V 1 = [v1, ..., vk] for V = [v1, ..., vn].

Theorem 4.9. The vector xLS = A+b minimizes ||Ax - b||2 where || . || is the matrix 2-norm.

Proof. Let U = [u1, u2, ..., um] and V = [v1, v2, ..., vn]. For any x  (- Rn, we have
        2        T        2      T      T      T  2
||Ax - b||   =  ||U  (Ax - b)|| = ||(U  AV )(V  x)- U  b||
               sum k        T  2    sum m   T  2
           =     (siai- ui b) +     (ui b) ,
              i=1              i=k+1
where a = [a1, a2, ..., an]T = V T x. Clearly, if x solves the least-square problem, then
a  = uiTb, i = 1,2,...,k.
 i    si
Therefore if we set si = 0 for i = k + 1, ..., n,
      sum k  T
xLS =    ui-bvi = VS+U T b = A+b.
      i=1  si
[]

In particular, if an m × n matrix A is of rank k = m < n, then the pseudo-inverse A+ is given by A+ = AT (AAT )-1. Then

AA+  = A(AT(AAT )-1) = (AAT )(AAT )- 1 = I ,
                                       m
but A+A/=In.

On the contrary, if an m × n matrix A is of rank k = n < m, then the pseudo-inverse A+ is given by A+ = (AT A)-1AT . Then

 +       T   -1 T        T  -1  T
A A = {(A  A)  A  }A = (A  A)  {A  A}=  In,
but AA+/=Im.

5 Control of Dual End Effectors

Now, let’s control the highly redundant articulated figure that has dual end effectors.

Let J1 be an m1 × n matrix of rank m1 < n and J2 an m2 × n matrix of rank m2 < n. We can assume that m1 + m2 < n.


psfig

Figure 4: A Joint Chain with Dual End Effectors

Lemma 5.1. J2(I - J1+J1) is of full rank.

Proof. Since I - J1+J1 is a projection onto the null-space of J1, I - J1+J1 is of rank n - m1 and since m2 < n - m1, J2(I - J1+J1) is of rank m1.
[]

Lemma 5.2. If X = (I - J1+J1)[J2(I - J1+J1)]+, then J1X = O and J2X = I.

Proof. Since J1+ is a generalized matrix of J1, J1 = J1J1+J1 and it implies
J1X = J1(I- J1+J1)[J2(I -J1+J1)]+ = O.
And since J2(I - J1+J1) is of full rank,
              +            +   +
J2X = J2(I- J1  J1)[J2(I - J1 J1)] = I.
[]

Lemma 5.3. (I - J1+J1)[J2(I - J1+J1)]+ = [J2(I - J1+J1)]+.

Proof. Since J2(I - J1+J1) is of full rank,
        +    +           +   T         +            +    T- 1
[J2(I- J1 J1)] = [J2(I- J1 J1)][J2(I- J1 J1){J2(I - J1 J1)} ] .
Thus using the fact that I - J1+J1 is symmetric,
(I- J1+J1)[J2(I - J1+J1)]+

= (I- J1+J1)[J2(I - J1+J1)]T[J2(I - J1+J1){J2(I -J1+J1)}T]-1
        +         +   T  T         +            +   T - 1
= (I- J1  J1)(I- J1 J1) J2 [J2(I- J1 J1){J2(I - J1 J1)}  ]
= (I- J1+J1)(I- J1+J1)J2T[J2(I - J1+J1){J2(I- J1+J1)}T]-1
        +     T         +           +
= (I- J1  J1)J2 [J2(I - J1 J1){J2(I - J1 J1)}T]-1
= (I- J +J )TJ T[J (I- J +J ){J (I - J +J )}T ]- 1
       1   1  2   2     1  1   2     1  1
= [J2(I - J1+J1)]T[J2(I- J1+J1){J2(I - J1+J1)}T ]- 1
           +   +
= [J2(I - J1 J1)].
[]

Lemma 5.4. The vector dh2 = (I-J1+J1)[I-{J2(I-J1+J1)}+J2(I-J1+J1)]Z represents the projection of Z onto the intersection of null-spaces of J1 and J2.

Proof. Since
[(I- J1+J1)[I- {J2(I- J1+J1)}+J2(I- J1+J1)]]2
        +           +            +             +
= [(I- J1 J1) -(I - J1 J1){J2(I- J1 J1)}+J2(I- J1 J1)]2
= [(I- J +J ) -{J (I- J +J )}+J (I- J +J )]2
       1   1    2     1   1   2     1   1
= (I - J1+J1)2- (I- J1+J1){J2(I - J1+J1)}+J2(I - J1+J1)
          +    +        +         +               +   +         +   2
-{J2(I- J1 J1)} J2(I- J1 J1)(I- J1 J1)+ [{J2(I - J1 J1)}  J2(I - J1 J1)]
= (I - J1+J1)- {J2(I- J1+J1)}+J2(I- J1+J1)

-{J2(I- J1+J1)}+J2(I- J1+J1)+ [{J2(I - J1+J1)}+J2(I - J1+J1)]2
        +               +    +        +
= (I - J1 J1)- 2{J2(I - J1 J1)} J2(I - J1 J1)
+{J2(I- J1+J1)}+J2(I- J1+J1){J2(I- J1+J1)}+J2(I- J1+J1)
        +               +             +              +             +
= (I - J1 J1)- 2{J2(I - J1 J1)}+J2(I - J1 J1)+ {J2(I- J1 J1)}+J2(I- J1 J1)
= (I - J +J )- {J (I- J +J )}+J (I- J +J )
       1  1     2     1  1    2     1  1
= (I - J1+J1)- (I- J1+J1){J2(I - J1+J1)}+J2(I - J1+J1)
        +               +    +        +
= (I - J1 J1)[I -{J2(I- J1  J1)} J2(I- J1  J1)],
(I - J1+J1)[I - {J2(I - J1+J1)}+J2(I - J1+J1)] is a projection and since
               +                +             +
J1dh2 = J1(I- J1 J1)[I - {J2(I - J1 J1)}+J2(I - J1 J1)]Z = O,
J dh = J (I- J +J )[I - {J (I - J +J )}+J (I - J +J )]Z = O
 2  2   2     1  1       2     1  1    2     1  1
for any Z, the range-space of (I - J1+J1)[I - {J2(I - J1+J1)}+J2(I - J1+J1)] is the subset of the intersection of null-spaces of J1 and J2. And if we choose any Z  (- Rn in the intersection of null-spaces of J1 and J2,
      +               +    +        +
(I - J1 J1)[I -{J2(I- J1  J1)} J2(I -J1  J1)]Z
= (I- J +J )[Z - {J (I- J +J )}+J (I- J +J )Z]
       1  1       2     1  1    2     1  1
= (I- J1+J1)[Z - {J2(I- J1+J1)}+J2Z]
        +
= (I- J1 J1)Z
= Z
holds and it follows that Z is an element of range-space of (I - J1+J1)[I - {J2(I - J1+J1)}+J2(I - J1+J1)]. Therefore the range-space of (I - J1+J1)[I - {J2(I - J1+J1)}+J2(I - J1+J1)] is exactly the intersection of null-spaces of J1 and J2.
[] By Lemma 5.2, Lemma 5.3 and Lemma 5.4, we can obtain the following theorem.

Theorem 5.5. The set of linear consistent equations

dX1 = J1dh, dX2 = J2dh
admits as a solution
dh  =   J1+dX1 + [J2(I- J1+J1)]+(dX2 - J2J1+dX1)
              +               +    +        +
    +   (I - J1 J1)[I -{J2(I- J1  J1)} J2(I- J1  J1)]Z               (5.1)
for any Z.

Let

 b  =  J +dX  + [J (I- J +J )]+(dX  -J J +dX  ),
        1    1   2     1   1     2   2 1    1
A   =  (I- J1+J1)[I - {J2(I - J1+J1)}+J2(I - J1+J1)].
Then the minimal 2-norm solution of the set of linear consistent equations
dX1 = J1dh, dX2 = J2dh
is
dh = (I -AA+)b.

But we can show that

     +               +   +           +
b = J1 dX1 + [J2(I- J1 J1)] (dX2 - J2J1 dX1)
is the minimal 2-norm solution.

Let J = (  )
  J1
  J2 and G = (             +    +     +)
 {I - [J2(I- J1 J1)] J2}J1
       [J2(I- J1+J1)]+ T .

Theorem 5.6. G is the pseudo-inverse of J:

Proof. Since
        (   )(                         )T
          J1   {I- [J2(I - J1+J1)]+J2}J1+
JG   =    J         [J(I - J+J  )]+
        (  2          2     1  1                     )
          J1{I- [J2(I- J1+J1)]+J2}J1+ J1[J2(I- J1+J1)]+
     =    J {I- [J (I- J +J )]+J }J + J [J (I- J +J )]+
        (  2 )   2     1   1   2  1   2 2     1  1
          I O
     =    O I

     =  I,
we can obtain JGJ = J,  GJG = G and (JG)T = JG. And since
        (             +    +     +)T (  )
GJ   =   {I - [J2(I- J1 J1)] J2}J1     J1
               [J2(I- J1+J1)]+          J2
     =  {I- [J (I - J +J )]+J }J +J  + [J (I- J +J )]+J
              2     1  1   2  1  1    2     1  1    2
     =  J1+J1- [J2(I- J1+J1)]+{J2(I -J1+J1)},
GJ is symmetric:
(GJ)T   =  [J1+J1- [J2(I - J1+J1)]+{J2(I- J1+J1)}]T
              +   T            +   +          +    T
        =  (J1 J1) - [{J2(I - J1 J1)} {J2(I - J1 J1)}]
        =  J1+J1 - {J2(I -J1+J1)}+{J2(I -J1+J1)}

        =  GJ.
Thus all Moore-Penrose conditions hold.
[]

psfig

Figure 5: When all the two end effectors move


psfig

Figure 6: When only one end effector moves

We can rewrite (5.1):

          (    )
            dX1
dh  =   J+       + (I- J1+J1)[I- {J2(I - J1+J1)}+J2(I - J1+J1)]Z,         (5.2)
            dX2
where J+ = ({I - [J (I- J +J )]+J }J +)
       2     1 + 1  +2  1
       [J2(I- J1 J1)] T .

Since J+ is the pseudo-inverse of J = (  )
 J1
 J
  2 ,

         (   )
          dX1
dh1 = J+        = J1+dX1  +[J2(I- J1+J1)]+(dX2 - J2J1+dX1)              (5.3)
          dX2
is the minimal 2-norm solution of the set of linear consistent equations
dX1 = J1dh, dX2 = J2dh.

Example 5.7. Consider a simple two-dimensional example. Figure 4 shows a two-dimensional joint chain where the joint angles hi are relative angles between adjacent links. The end effector positions are given by

(  )      (s um 3                     )
 x1    =     sum  i=1(licoswi + li+6 coswi+6) ,
 y1           3i=1(lisinwi + li+6 sinwi+6)
(  )      (s um 6        )
 x2    =     sum  i=1licoswi ,
 y2           6i=1 lisin wi
where wi =  sum j = 1ihj,  i = 1, 2, ..., 6 and w6+i =  sum j = 13hj +  sum j = 1ih6+j,  i = 1, 2, 3.

Differentiating yields the Jocobians:

       (                                       )
J   =   J    J    J    O   O  O  J    J    J    ,
 1     ( 1,1   1,2   1,3             1,7  1,8  1,9)
J2  =   J2,1  J2,2  J2,3  J2,4  J2,5  J2,6  O   O  O  ,
where
          (    sum 3           sum 3            )
  J1,i  =    - sum  j=i ljsin wj- sum  j=1l6+jsin w6+j  , i = 1,2,3,
               3j=iljcoswj +  3j=1l6+jcosw6+j
          (    sum 3            )
J1,6+i  =    - sum  j=i l6+jsin w6+j  , i = 1,2,3,
               3j=i l6+jcosw6+j
          (    sum 6        )
  J2,i  =    - sum  j=i ljsin wj  , i = 1,2,...,6.
               6j=i ljcoswj

If an initial state and the position of a target end effector are given, we can compute trajectories of end effectors and by (5.3) obtain euler angles for each end effector as Figure 5 and Figure 6.

6 Control of Multiple End Effectors

Let’s extend our approach to the case that the articulated figure has multiple end effectors. Suppose that the number of end effectors is M. And suppose that  sum i = 1Mmi < n, Ji is an mi × n matrix of full rank for i = 1, 2, ..., M and

    (    )
      J1
      J2
J =    ...

      JM
is also of full rank.

Lemma 6.1. For all i = 1, 2, ..., M there exists an n × mi matrix Zi such that

      {
        Imi  if i = j,
JjZi =   O    if i /= j
for all j = 1, 2, ..., M.
Proof. Let Z = (            )
 Z1 Z2 ...ZM be the pseudo-inverse matrix of J. Since J is of full rank,
      {
JjZi =  Imi  if i = j,
         O    if i /= j
for all i, j = 1, 2, ..., M.
[]

Theorem 6.2. The set of linear consistent equations

dXi = Jidh, i = 1,2,...,M
admits as a solution
             M sum 
dh = Jj+dXj +   Zi(dXi- JiJj+dXj)
             i=1
for any j  (- {1, 2, ..., M}.
Proof. First,
              +      M sum               +
Jjdh  =  Jj[Jj dXj +    Zi(dXi - JiJj dXj)]
                     i=1
             +       sum M              +
      =  JjJj dXj +    JjZi(dXi- JiJj dXj)
                    i=1      +
      =  dXj + JjZj(dXj - JjJj  dXj)
      =  dX  .
            j
And if l/=j,
                    M sum 
Jldh  =   Jl[Jj+dXj +    Zi(dXi - JiJj+dXj)]
                    i=1
                    sum M
     =   JlJj+dXj +    JlZi(dXi - JiJj+dXj)
                   i=1
     =   JJ +dX  + J Z (dX  - JJ +dX  )
          lj    j   l l   l   lj    j
     =   JlJj+dXj + (dXl- JlJj+dXj)

     =   dXl.
[] If M = 3, i.e., the articulated figure has 3 End Effector, we can find the exact formula of the general solution.

Lemma 6.3. The matrix G = (                             )
 [J1(I- J2+J2)]+ [J2(I- J1+J1)]+ is a generalized inverse matrix of J = (J  )
   1
  J2 .

Proof. Since JG = I, G is a Generalized inverse matrix of J.
[]

Lemma 6.4. If

                   +    +             +   +    +
X = [J1{I- [J2(I -J3  J3)] J2- [J3(I - J2 J2)]J3}] ,
then J1X = I,  J2X = J3X = O.
Proof. Let P = I - [J2(I - J3+J3)]+J2 - [J3(I - J2+J2)]+J3. By the above lemma P2 = P and PT = P. Then
X = (J1P)+ = (J1P)T{J1P(J1P)T}- 1 = P(J1P )T {J1P (J1P)T}-1 = P (J1P)+.
Thus J1X = J1P(J1P)+ = I. And
                       +    +            +    +
J2P  =   J2{I - [J2(I- J3 J3)] J2- [J3(I - J2 J2)] J3}
     =   J2- J2[J2(I- J3+J3)]+J2- J2[J3(I -J2+J2)]+J3

     =   J2- J2(I - J3+J3)[J2(I- J3+J3)]+J2 - J2(I- J2+J2)[J3(I- J2+J2)]+J3

     =   O,
J3P  =   J3{I - [J2(I- J3+J3)]+J2- [J3(I - J2+J2)]+J3}
                       +    +              +    +
     =   J3- J3[J2(I- J3 J3)] J2- J3[J3(I -J2  J2)] J3
     =   J3- J3(I - J3+J3)[J2(I- J3+J3)]+J2 - J3(I- J2+J2)[J3(I- J2+J2)]+J3

     =   O.
Therefore J2X = J3X = O.
[] Let
N2,3 = (I - J3+J3)[I- {J2(I- J3+J3)}+J2(I- J3+J3)].
Then N2,3 is symmetric:
   T            +                +    +        +    T
N2,3   =   [(I- J3 J3)[I- {J2(I- J3 J3)} J2(I- J3 J3)]]
      =   [(I- J3+J3) -{J2(I- J3+J3)}+J2(I- J3+J3)]T
                +   T           +    +        +    T
      =   (I - J3 J3) - [{J2(I - J3 J3)}  J2(I - J3 J3)]
      =   (I - J +J )- {J (I- J +J )}+J (I- J +J )
               3  3     2     3  3    2     3  3
      =   (I - J3+J3)[I -{J2(I- J3+J3)}+J2(I- J3+J3)]

      =   N2,3,
the range-space of N2,3 is the intersection of null-spaces of J2 and J3:
                +                +    +        +
J2N2,3 = J2(I- J3 J3)[I- {J2(I- J3 J3)} J2(I- J3 J3)] = O,
J3N2,3 = J3(I- J3+J3)[I- {J2(I- J3+J3)}+J2(I- J3+J3)] = O
and for any Z in the intersection of null-spaces of J2 and J3,
N2,3Z   =  (I- J3+J3)[I - {J2(I - J3+J3)}+J2(I - J3+J3)]Z

       =  (I- J3+J3)[Z - {J2(I- J3+J3)}+J2(I- J3+J3)Z]
                +                +    +
       =  (I- J3 J3)[Z - {J2(I- J3 J3)} J2Z]
       =  (I- J3+J3)Z

       =  Z.

Lemma 6.5. J1N2,3 is of full rank.

Proof. By Lemma 5.4 N2,3 is of rank n - m2 - m3. Since J1 is of full rank m1 and m1 < n - m2 - m3, J1N2,3 is of full rank m1.
[]

Lemma 6.6. N2,3(J1N2,3)+ = (J1N2,3)+.

Proof. Since J1N2,3 is of full rank,
N2,3(J1N2,3)+  =  N2,3(J1N2,3)T{J1N2,3(J1N2,3)T }-1

              =  N2,3N2,3T J1T {J1N2,3(J1N2,3)T}-1
                     2  T             T - 1
              =  N2,3 J1 {J1N2,3(J1N2,3) }
              =  N2,3J1T{J1N2,3(J1N2,3)T }- 1
                     T  T              T -1
              =  N2,3 J1 {J1N2,3(J1N2,3) }
              =  (J N  )T{J N   (JN   )T}-1
                   1 2,3   1  2,3  1 2,3
              =  (J1N2,3)+.
[]

Lemma 6.7.

                    +
dh2 = N2,3{I - (J1N2,3) J1N2,3}Z
represents the projection of Z onto the intersection of null-spaces of J1, J2 and J3.
Proof. Since
[N2,3{I- (J1N2,3)+J1N2,3}]2 =   [N2,3- (J1N2,3)+J1N2,3]2
                                 2             +               +      2
                          =   N2,3  -N2,3(J1N2,3) J1N2,3- (J1N2,3) J1N2,3
                          +   (J1N2,3)+J1N2,3(J1N2,3)+J1N2,3
                                           +
                          =   N2,3 - (J1N2,3) J1N2,3
                          =   N  {I - (J N   )+J N  },
                               2,3      1  2,3   1 2,3
N2,3{I - (J1N2,3)+J1N2,3} is a projection and since
J1dh2 =   J1N2,3{I - (J1N2,3)+J1N2,3}Z = O,
J dh  =   J N  {I - (J N   )+J N  }Z = O,
 2  2      2 2,3     1  2,3   1 2,3
J3dh2 =   J3N2,3{I - (J1N2,3)+J1N2,3}Z = O
for any Z, the range of N2,3{I - (J1N2,3)+J1N2,3} is the subset of the intersection of null-spaces of J1, J2 and J3. And if we choose any Z  (- Rn in the intersection of null-spaces of J1, J2 and J3,
N   {I- (J N   )+J N   }Z  =   N  {Z - (J N  )+J N   Z}
  2,3      1 2,3   1 2,3         2,3       1 2,3   1  2,3
                          =   N2,3{Z - (J1N2,3)+J1Z}

                          =   N2,3Z
                          =   Z
holds and it follows that Z is an element of range-space of N2,3{I - (J1N2,3)+J1N2,3}. Therefore the range-space of N2,3{I - (J1N2,3)+J1N2,3} is exactly the intersection of null-spaces of J1, J2 and J3.
[] By Lemma 6.4, if
Z1  =   [J1{I- [J2(I- J3+J3)]+J2 - [J3(I- J2+J2)]+J3}]+,

Z2  =   [J2{I- [J3(I- J1+J1)]+J3 - [J1(I- J3+J3)]+J1}]+,
                       +   +             +    +   +
Z3  =   [J3{I- [J1(I- J2 J2)] J1- [J2(I- J1 J1)] J2}] ,
then
(   )
  J1  (        )
  J2   Z1 Z2 Z3  = I.
  J
   3
Thus by Lemma 6.7 we can obtain the following theorem.

Theorem 6.8. The set of linear consistent equations

dXi = Jidh, i = 1,2,3
admits as a solution
dh = J1+dX1 + Z2(dX2 -J2J1+dX1) + Z3(dX3 - J3J1+dX1) + N2,3{I- (J1N2,3)+J1N2,3}Z
where Z is any vector,
Z2  =   [J2{I- [J3(I- J1+J1)]+J3 - [J1(I- J3+J3)]+J1}]+,
                       +   +             +    +   +
Z3  =   [J3{I- [J1(I- J2 J2)] J1- [J2(I- J1 J1)] J2}]
and
N2,3 = (I - J3+J3)[I- {J2(I- J3+J3)}+J2(I- J3+J3)].

Next, we generalize for any M. We can obtain the exact formula of the general solution recursively in case that the number of end effectors is M.

Lemma 6.9. For i, j = 1, 2, ..., M such that i/=j, suppose {Zij} satisfies

      {
   j    I   if i = k /= j,
JkZi =  O   if i /= k /= j,
i.e.,
( J2)                   ( J1)                       (  J1 )
      (             )         (             )               (                 )
  J3   Z1 Z1  ...Z1    =   J3   Z2 Z2 ...Z2   = ...=    J2    ZM  ZM  ...ZM     = I.
  ...     2  3     M      ...    1  3      M            ...     1   2      M -1
  JM                     JM                           JM-1
Let
 ~          sum    j  +
Zj = [Jj(I-    ZiJi)]
           i/=j
for j = 1, 2, ..., M. Then
(   )
  J1
  J   (             )
   2   Z~1 Z~2 ... Z~M  = I.
  ...
  JM
Proof. First, since (Z1k ... Zk - 1k Zk + 1k ... ZMk) is a generalized inverse of (J1 ... Jk-1 Jk+1 ... JM )T , we can obtain
       sum    k   +       sum    k          sum   k   +
[Jk(I-    Z i Ji)] = (I-   Z i Ji)[Jk(I-   Zi Ji)] .
      i/=k             i/=k            i/=k
If j = k then
                    sum 
JkZ~k   =  Jk[Jk(I -    Zki Ji)]+
                   i/=k
       =  J (I-  sum  ZkJ )[J (I - sum   ZkJ )]+
           k    i/=k i  i k     i/=k  i i

       =  I,
and if j/=k then
   ~               sum   k   +
JjZk  =   Jj[Jk(I-    Zi Ji)]
                sum  i/=k          sum 
      =   Jj(I -    Zki Ji)[Jk(I-   Zki Ji)]+
                i/=k            i/=k
               sum      k          sum   k   +
      =   (Jj -    JjZ i Ji)[Jk(I -   Zi Ji)]
               i/=k            sum  i/=k
      =   (Jj -JjZkjJj)[Jk(I-    Zki Ji)]+
                            i/=k
                          sum   k   +
      =   (Jj -IJj)[Jk(I -    Zi Ji)]
                         i/=k
      =   O.
[] Define {N1,2,...,i} as follows.

Denition 6.10.

          +
N1 = I- J1 J1,
N1,2,...,i,i+1 = N1,2,...,i{I - (Ji+1N1,2,...,i)+Ji+1N1,2,...,i}, i = 1,2,....

Lemma 6.11. For i = 2, 3, ...,

  1. N1,2,...,i is symmetric
  2. Ji+1N1,2,...,i is of full rank mi+1
  3. N1,2,...,i(Ji+1N1,2,...,i)+ = (Ji+1N1,2,...,i)+
  4. JjN1,2,...,i = 0 for j = 1, 2, ..., i
  5. for any Z in the intersection of null-spaces of J1, J2, ..., Ji, N1,2,...,iZ = Z

hold.

Proof. The proof is by induction. It is trivial for i = 1. Assume for i = k.

For i = k + 1,

N1,2,...,k+1T  =  [N1,2,...,k{I- (Jk+1N1,2,...,k)+Jk+1N1,2,...,k}]T

            =  [N1,2,...,k- N1,2,...,k(Jk+1N1,2,...,k)+Jk+1N1,2,...,k]T
                                      +           T
            =  [N1,2,...,k- (Jk+1N1,2,...,k) Jk+1N1,2,...,k]
            =  N1,2,...,kT - [(Jk+1N1,2,...,k)+Jk+1N1,2,...,k]T
                                     +
            =  N1,2,...,k- (Jk+1N1,2,...,k) Jk+1N1,2,...,k
            =  N       - N      (J   N      )+J   N
                 1,2,...,k   1,2,...,k  k+1  1,2,...,k   k+1  1,2,...,k
            =  N1,2,...,k{I - (Jk+1N1,2,...,k)+Jk+1N1,2,...,k}

            =  N1,2,...,k+1,
and since Jk+2N1,2,...,k is of full rank mk+2, I - (Jk+1N1,2,...,k)+Jk+1N1,2,...,k is of rank n - mk+1 and mk+2 < n - mk+1,
Jk+2N1,2,...,k+1 = Jk+2N1,2,...,k{I- (Jk+1N1,2,...,k)+Jk+1N1,2,...,k}
is of full rank mk+2. And since Jk+2N1,2,...,k+1 is of full rank,
N1,2,...,k+1(Jk+2N1,2,...,k+1)+
                         T                            T - 1
= N1,2,...,k+1(Jk+2N1,2,...,k+1) {Jk+2N1,2,...,k+1(Jk+2N1,2,...,k+1) }
= N1,2,...,k+1N1,2,...,k+1TJk+2T{Jk+2N1,2,...,k+1(Jk+2N1,2,...,k+1)T}-1
           2    T
= N1,2,...,k+1 Jk+2 {Jk+2N1,2,...,k+1(Jk+2N1,2,...,k+1)T}-1
= N        J   T{J   N        (J   N        )T}-1
   1,2,...,k+1 k+2   k+2 1,2,...,k+1 k+2  1,2,...,k+1
= N1,2,...,k+1TJk+2T{Jk+2N1,2,...,k+1(Jk+2N1,2,...,k+1)T}- 1
                T                            T  -1
= (Jk+2N1,2,...,k+1) {Jk+2N1,2,...,k+1(Jk+2N1,2,...,k+1) }
= (Jk+2N1,2,...,k+1)+.
If j = 1, 2, ..., k,
JjN1,2,...,k+1 = JjN1,2,...,k{I - (Jk+1N1,2,...,k)+Jk+1N1,2,...,k}=  O
and if j = k + 1,
Jk+1N1,2,...,k+1 = Jk+1N1,2,...,k{I - (Jk+1N1,2,...,k)+Jk+1N1,2,...,k}= O.
Thus JjN1,2,...,k+1 = 0 for j = 1, 2, ..., k + 1. For any Z in the intersection of null-spaces of J1, J2, ..., Jk+1,
N1,2,...,k+1Z  =   N1,2,...,k{I- (Jk+1N1,2,...,k)+Jk+1N1,2,...,k}Z

            =   N1,2,...,k{Z -(Jk+1N1,2,...,k)+Jk+1N1,2,...,kZ}
                                        +
            =   N1,2,...,k{Z -(Jk+1N1,2,...,k) Jk+1Z}
            =   N1,2,...,kZ

            =   Z.
[]

Lemma 6.12. dh2 = N1,2,...,M Z represents the projection of Z onto the intersection of null-spaces of J1, J2, ..., JM .

Proof. From Lemma 6.11 we can proof this Lemma.
[] From Lemma 6.9 and Lemma 6.12 we can obtain the following Theorem.

Theorem 6.13. The set of linear consistent equations

dXi = Jidh, i = 1,2,...,M
admits as a solution
              M
dh = J1+dX1 +  sum  Z~i(dXi- JiJ1+dX1) + N1,2,...,MZ
             i=2
for any vector Z.

Let Fi = N1,2,...,i,  i = 1, 2, ..., i.e., define {Fi} satisfies as follows.

Denition 6.14.

          +
F1 = I - J1 J1,                                          (6.1)
F   = F {I- (J   F)+J   F }, i = 1,2,....                 (6.2)
 i+1   i      i+1 i   i+1 i

And define {J~
 i} as follows:

Denition 6.15.

~J1 = J1+ ,                                                       (6.3)

    n×m(1                               )
        ---n×(m1+m2+...+mi)---  -n×mi+1--
J~i+1 =  {I - Fi(Ji+1Fi)+Ji+1}~Ji Fi(Ji+1Fi)+  , i = 1,2,....          (6.4)
        --------------- ---------------
               n×(m1+m2+...+mi+1)

Lemma 6.16. (  )
 J1
 J2
  ...

  Ji  ~
Ji = I,   ~
Ji(   )
  J1
  J2
   ...

  Ji = I - Fi,  i = 1, 2, ....

Proof. The proof is by induction. It is trivial for i = 1. Assume for i = k. For i = k + 1,
(     )          (    )
   J1              J1
   J2              J2                  +                  +
   ..   Jk~+1  =      ..   ({I- Fk(Jk+1Fk) Jk+1}~Jk Fk(Jk+1Fk) )
   .                .
  Jk+1             Jk+1
                 ((   )                         (   )            )
                    J1                            J1
                    J2                +      ~    J2           +
             =       ..  {I- Fk(Jk+1Fk) Jk+1}Jk    ..   Fk(Jk+1Fk)
                     .                            .
                    Jk                            Jk
                   Jk+1{I -Fk(Jk+1Fk)+Jk+1}~Jk    Jk+1Fk(Jk+1Fk)+
                 ((   )      )
                    J1
                    J2
                     ..  J~k  O
             =       .
                    Jk
                     O      I

             =   I
and
    (     )                                         (     )
       J1                                              J1
       J2                       +                 +    J2
Jk~+1    ..    =   ({I- Fk(Jk+1Fk) Jk+1}~Jk Fk(Jk+1Fk) )   ..
        .                                               .
      Jk+1                                            Jk+1
                                       (   )
                                         J1
                               +     ~   J2              +
             =   {I- Fk(Jk+1Fk) Jk+1}Jk   ..  + Fk(Jk+1Fk) )Jk+1
                                          .
                                         Jk
             =   {I- F (J   F )+J   }(I- F )+ F (J   F )+)J
                      k  k+1 k   k+1      k    k  k+1 k    k+1
             =   (I- Fk)+ Fk(Jk+1Fk)+Jk+1Fk
                                  +
             =   I- Fk{I - (Jk+1Fk) Jk+1Fk}
             =   I- Fk+1.
[]

Lemma 6.17. J~
  i is the pseudo-inverse matrix of (J )
  1
 J2
  ...

 Ji for i = 1, 2, ....

Proof. Let J = (  )
  J1
  J2
  .
  ..
  Ji . Since J~Ji = I, J~JiJ = J, ~JiJ~Ji = ~Ji and (J~Ji)T = JJ~i. And since J~iJ = I - Fi and Fi is symmetric, (~
JiJ)T = (I - Fi)T = I - FiT = I - Fi =  ~
JiJ. Therefore ~
Ji is the pseudo-inverse of J.
[] Thus we can obtain the following two theorems.

Theorem 6.18. The set of linear consistent equations

dXi = Jidh, i = 1,2,...,M
admits as a solution
        (     )
          dX1

dh = J~M   dX2   + FM Z
           ...
          dX
            M
for any vector Z.

Theorem 6.19. dh1 = J~M(     )
  dX1

  dX2.
    ..
  dX
    M is the minimal 2-norm solution of the set of linear consistent equations dXi = Jidh,    i = 1, 2, ..., M.

In particular, if M = 3 then the minimal 2-norm solution is

dh1  =  {I -(J3F2)+J3}{I- (J2F1)+J2}J1+dX1
                  +        +
     +  {I -(J3F2) J3}(J2F1) dX2
     +  (J3F2)+dX3,
where
F1 = I- J1+J1,
           +               +    +        +
F2 = (I - J1 J1)[I -{J2(I- J1  J1)} J2(I- J1  J1)].

Example 6.20.


psfig
Figure 7: Joint Chain with Three End Effectors

Consider a simple two-dimensional example with 3 end effectors. Figure 7 shows a two-dimensional joint chain where the joint angles hi are relative angles between adjacent links. The initial and target end effectors are as follows:

 P9   -->   P9 + (0,-1),
 P    -->   P + (- 1,- 1),
  5        5
P11   -->   P11 + (1,-1).

                                                   (6.5)
The end effector positions are given by
(  )      (s um                       )
 x1           3i=1(licoswi + li+6 coswi+6)
 y1    =     sum 3 (lisinwi + li+6 sinwi+6) ,
(  )      (s um  i=1      )
 x2           6i=1licoswi
 y2    =     sum 6  lisin wi ,
(  )      (   i=1  )   (s um             )
 x3         l1cosw1        2i=1li+9coswi+9
 y3    =    l1sinw1  +    sum 2  li+9sin wi+9  ,
                          i=1
where
          sum i
  wi  =     hj, i = 1,2,...,6,
         j=1
          sum 3     sum i
w6+i  =     hj +   h6+j, i = 1,2,3,
         j=1    j=1
              sum i
w9+i  =  h1 +   h9+j, i = 1,2.
             j=1


psfig
Figure 8: When all the three end effectors move

Differentiating yields the Jacobians:

       (                                         )
J1  =   J1,1  J1,2  J1,3  O2× 3 J1,7 J1,8 J1,9 O2 ×2 ,
       (                                  )
J2  =   J2,1  J2,2  J2,3  J2,4  J2,5  J2,6  O2× 5 ,
       (                     )
J3  =   J3,1  O2×8  J3,10  J3,11 ,
where
          (                               )
            -  sum 3  ljsin wj-  sum 3  l6+jsin w6+j
  J1,i  =      sum 3 j=i        sum 3 j=1           , i = 1,2,3,
          (    j=iljcoswj +  j=)1l6+jcosw6+j
            -  sum 3  l6+jsin w6+j
J1,6+i  =      sum 3 j=i            , i = 1,2,3,
          (    j=i l6+jcosw6)+j
            -  sum 6  ljsin wj
  J2,i  =      sum 6 j=i        , i = 1,2,...,6,
          (    j=i ljco)swj
            -l1sin w1
  J3,1  =              ,
          (  l1cosw1          )
            -  sum 2  lj+9sin wj+9
J3,9+i  =      sum 2 j=i            , i = 1,2,
               j=i lj+9coswj+9
and O2×i is the 2 × i zero matrix.

Thus we can calculate

          +
F1 = I- J1 J1,
F2 = (I- J1+J1)[I - {J2(I - J1+J1)}+J2(I - J1+J1)]
and
~J13  =  {I- (J3F2)+J3}{I- (J2F1)+J2}J1+,
~2               +        +
J3  =  {I- (J3F2) J3}(J2F1) ,
~J33  =  (J3F2)+.

Then the solution is dh1 = J~1
 3dX1 + J~2
 3dX2 + J~3
 3dX3. Figure 8 shows the result.

Example 6.21.


psfig
Figure 9: When one end effector is inserted in Figure 8

Consider an example with 4 end effectors. Suppose that one end effector is inserted in previous example: the initial and target end effectors are P2 and P2 + (0, -1), respectively. The 4th end effector position is given by

(   )   (           )
  x4      sum 2  licoswi
      =   sum 2i=1       .
  y4       i=1lisinwi

Differentiating yields the Jacobian:

     (              )
J4 =  J4,1  J4,2  O2×9  ,
where
      (   sum 2        )
J4,i = - sum  j=iljsinwj  , i = 1,2.
          2j=iljcoswj

Thus we can calculate

F3 = F2[I- (J3F2)+J3F2]
and
J~1  =   {I- (J4F3)+J4}~J1 ,
 4                     3
J~24  =   {I- (J4F3)+J4}~J23,
 ~3               +    ~3
J4  =   {I- (J4F3) J4}J 3,
J~44  =   (J4F3)+.

Then the solution is dh1 = J~1
 4dX1 + J~2
 4dX2 + J~3
 4dX3 + J~4
 4dX4. Figure 9 shows the result.

7 Regularized Formulation

Consider the configuration of the joint chain with end effector 5 in Figure 10. The joint chain is approaching the singular configuration which occurs when the joint chain is completely stretched out. As result the end effector 5 deviates from the target end effector.

A general approach to resolving the discontinuity at singular configurations and maintaining a well-conditioned formulation which results in physically meaningful joint velocities is to use the damped least squares formulation independently proposed in [11] and [12]. The damped least squares solution of dX = Jdh is the solution which minimizes the sum

||dX - Jdh||2 + c2||dh||2                              (7.1)
so that the end effector tracking error is weighted against the norm of the joint velocity by using c, also known as the damping factor. This solution is typically obtained by solving an equation of the form
  T     2       T
(J J + c I)dh = J dX.                                (7.2)

Lemma 7.1. Let

U TJV = diag(s ,s ,...,s )  (-  Rm ×n
              1 2      m
for orthonormal matrices U and V . Then
V T(JTJ + c2I)V = diag(s2+ c2,s2 +c2,...,s2 + c2,c2,...,c2)  (-  Rn ×n.
                       1      2          m
Thus if c > 0, then JT J + c2I is nonsingular and
      T     2    s21-+-c2
cond(J J + c I) =  c2   .
Proof. Since J = Udiag(s1, s2, ..., sm)V T ,
V T(JTJ + c2I)V   =  V T[{Udiag(s1,s2,...,sm)V T}T{Udiag(s1,s2,...,sm)V T}+ c2I]V
                      T        2  2     2   T    2
                 =  V  {V diag(s1,s2,...,sm)V   + c I}V
                 =  diag(s21,s22,...,s2m) + c2I

                 =  diag(s21 + c2,s22 + c2,...,s2m + c2,c2,...,c2).
Since c > 0, JT J + c2I = V diag(s12 + c2, s22 + c2, ..., sm2 + c2, c2, ..., c2)V T is nonsingular and
      T     2    s21-+-c2
cond(J J + c I) =  c2   .
[]

Lemma 7.2. If Dr = dX - J~
dh where ~
dh is a minimizer of ||dX - Jdh||2 + c2||dh||2, then

--c2---< ||Dr||< ---c2--.
s21 + c2  ||dX ||  s2m + c2
Proof. Since d~h = (JT J + c2I)-1JT dX, Dr = {I - J(JT J + c2I)-1JT }dX. Thus
||Dr ||< ||{I - J(JTJ + c2I)- 1JT }||||dX ||.
Since ||dX|| > 0,
||Dr||
----- <   ||I- J(JT J + c2I)-1JT||
||dX||
      =   ||I- J{V  diag(s21 + c2,s22 +c2,...,s2m + c2,c2,...,c2)VT }-1JT||
                       (   1      1           1     1      1)   T  T
      =   ||I- J{V  diag  s2-+-c2,s2+-c2,...,s2-+-c2,c2,...,c2  V  }J ||
                    (    12       22          m2   )
      =   ||I- U diag  -2s1---,-2s2--,...,--sm---  UT||
                 (    s1 + c2 s2 + c2    s2m +)c2
                   --c2-----c2---     --c2---   T
      =   ||U diag  s21 + c2,s22 + c2,..., s2m +c2 U  ||
               (    2      2           2  )
      =   ||diag  -2c--2,-2c---2,...,--2c--2  ||
                 s1 + c s2 +c      s m + c
          ---c2--
      =   s2m + c2.
And since dX - Dr = Jd~h,
||dX ||-||Dr|| <  ||J ~dh||

              =  ||J(JT J + c2I)-1JT dX||
              <  ||J{V  diag(s2 +c2,s2 + c2,...,s2 + c2,c2,...,c2)V T}-1JT||||dX ||
                           (1      2          m                  )
              =  ||J{V  diag  ---1---,---1--,...,---1---,-1 ,...,-1  V T}JT||||dX||
                            s21 + c2 s22 + c2    s2m + c2 c2     c2
                         (  s21      s22         s2m   )  T
              =  ||U  diag  s2-+c2-,s2+-c2,...,s2-+-c2  U  ||||dX||
                      (    12       22          m2   )
              =  ||diag  -2s1---,-2s2--,...,--sm---  ||||dX ||
                        s1 + c2 s2 + c2    s2m + c2
                  --s21---
              =   s21 + c2||dX ||.
Thus we can obtain
   2
--c----< ||Dr-||.
s21 + c2  ||dX ||
[]

psfig

Figure 10: Joint Chain with a Singularity


psfig

Figure 11: c = 0.1; s1 = 12.3701,  s4 = 0.1495 at 5


psfig

Figure 12: c = 0.25; s1 = 12.3812,  s4 = 0.1669 at 5


psfig

Figure 13: c = 1.5; s1 = 12.1607,  s4 = 0.5714 at 5


psfig

Figure 14: c = 10.0; s1 = 11.7280,  s4 = 0.5837 at 5









Figure 11 Figure 12 Figure 13 Figure 14







Condition Number 1.5303e+004 2.4537e+003 66.7251 2.3755







Lower Bound of Residual Error 6.5347e-005 4.0755e-004 0.0150 0.4210







Upper Bound of Residual Error 0.3091 0.6917 0.8733 0.9966








Table 1: Condition Numbers and Bounds of Residual Error at 5 of Figure 11 - Figure 14


psfig

Figure 15: c = 0.25; -p < hi < p if i/=6 and -p < hi < 0 if i = 6

Lemma 7.1 shows that a large c brings the condition number arbitrary close to unity. In contrast, by Lemma 7.2 c should be small enough that the residual error is not greatly increased.

Example 7.3. Figure 11 - Figure 14 show the results when c = 0.1, 0.25, 1.5, 10.0, respectively. I think that c = 0.1 is too small in Figure 11 and c = 10.0 is too large in Figure 14.

Now, suppose that (7.1) has simple bound constraints:

l < h+ dh < u,                                  (7.3)
where l, u  (- Rn are constant vectors. Then reformulating (7.1) and (7.3), we can obtain the following problem:
minimize ||Cdh - d||                             (7.4)

subject to Adh < b,                             (7.5)
where C = (   )
  J
  cI  (- R(m+n)×n, d = (   )
  dX
  O  (- Rm+n, A = (   )
  I
 - I  (- R2n×n and b = (     )
  u- h
  h- l  (- R2n, which is referred the linear least square problem with linear constraints.


psfig

Figure 16: ANIC

Example 7.4. Figure 15 shows the solution when -p < hi < p if i/=6 and -p < hi < 0 if i = 6. Compare with Figure 12.

Example 7.5. Figure 16 shows ANIC1 being moving to grasp an object on the table.

References

[1]    N. I. Badler, K. H. Manoochehri and G. Walters. Articulated figure positioning by multiple constraints, IEEE Comput. Graph. Appl. 7, 6 (1987), 28-38

[2]    M. Girara and A. A. Machiejewski. Computational modeling for the computer animation of legged figures, ACM Comput. Graph 19, 3 (1985), 263-270

[3]    J. Korein. A Geometric Investigation of Reach, MIT Press, Mass., 1985

[4]    J. Korein and N. I. Badler. Techaniques for goal directed motion, IEEE Comput. Graph. Appl. 2, 9 (1982), 71-81

[5]    A. Liegeois. Automatic Supervisory Control of the Configuration and Behavoir of Multibody Mechanisms, IEEE Trans. System, Man, Cybernetics, SMC-7, 12 (1977), 868-871

[6]    C. A. Klein and C. H. Huang. Review of Pseudoinverse Control for use with kinematically redundant manipulators, IEEE Trans. System, Man, Cybernetics, SMC-13, 3 (1983), 245-250

[7]    T. I. Boullion and P. L. Odell. Generalized inverse matrices, John Wiley & Sons, Inc., New York, 1971

[8]    D. Tolani, A. Goswami and N. I. Badler. Real-time inverse kinematics techniques for anthropomorphic limbs, preprint in http://www.cis.upenn.edu/ badler/home.html

[9]    J. Zhao and N. I. Badler. Inverse kinematics positioning using nonlinear programming for highly articulated figures, ACM Transactions on Graphics, 13, 4 (1994), 313-336

[10]    N. M. Thalmann and D. Thalmann. Interactive Computer Animation, Prentice Hall, London, 1996

[11]    Y. Nakamura and H. Hanafusa. Inverse kinematic solutions with singularity robustness for robot manipulator, ASME Journal of Dynamic Systems, Measurement, and Control, 108, 3 (1986), 163-171

[12]    C. W. Wampler II. Manipulator inverse kinematic solutions based on vector formulations and damped least squares methods, IEEE Transactions on Systems, Man, and Cybernetics, SMC-16, January/February (1986), 93-101

[13]    V. L. Golub. Matrix Computation, The Johns Hopkins University Press, Baltimore and London, 1989

[14]    N. I. Badler, C. B. Phillips and B. L. Webber. Simulating Humans: Computer, Graphics, Animation, and Control, Oxford University Press, 1992

[15]    N. I. Badler, B. A. Barksy and D. Zeltzer. Making Them Move: Mechanics, Control, and Animation of Articulated Figures, Morgan Kaufmann Publishers, Inc., San Mateo, California, 1991

[16]    A. A. Maciejewski and C. A. Klein. The singular value decomposition: Computation and applications to robotics, International Journal of Robotics Research, 8, 6 (1989), 63-79

[17]    A. A. Maciejewski. Dealing with the ill-conditioned equations of motion for articulated figures, IEEE Computer Graphics and Applications, 10, 3 (1990), 63-71

[18]    A. A. Maciejewski, Kinetic limitations on the use of redundancy in robotic manipulators, IEEE Transactions on Robotics and Automation, 7, 2 (1991), 205-210

[19]    A. A. Maciejewski and J. M. Reagin. A parallel algorithm and architecture for the control of kinematically redundant manipulators, IEEE Transactions on Robotics and Automation, 10, 4 (1994), 405-414

[20]    C. B. Phillips, J. Zhao and N. I. Badler. Interactive real-time articulated figure manipulation using multiple kinematic constraints, Computer Graphics, 24, 2 (1990), 245-250

[21]    R. H. Byrd, P. Lu, J. Nocedal and C. Zhu. A limited memory algorithm for bound constrained optimization, SIAM J. Scientific Computing, 16, 5 (1995), 1190-1208

[22]    C. Zhu, R. H. Byrd, P. Lu and J. Nocedal. L-BFGS-B: a limited memory FORTRAN code for solving bound constrained optimization problems, Tech. Report, NAM-11, EECS Department, Northwestern University, 1994.

[23]    R. Boulic, R. Mas and D. Thalmann. Inverse Kinetics for Center of Mass Position Control and Posture Optimization, Proc. European Workshop on Combined Real and Synthetic Image Processing for Broadcast and video Production, Hamburg, November 1994.

[24]    R. Boulicand D. Thalmann. Combined Direct and Inverse Kinematic Control for Articulated Figures Motion Editing, Computer Graphics Forum, 11, 4 (1994), 189-202.

DEPARTMENT OF MATHEMATICS, SEOUL NATIONAL UNIVERSITY, SEOUL 151-742, KOREA

E-mail address: no3khs@snu.ac.kr

E-mail address: sheen@snu.ac.kr