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[4, 3]. 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


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/
.
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.
First, we will define state variables.
Let Rx(
), Ry(
), Rz(
) be the rotation matrix of angle
with x-, y-, z-axis, respectively. Then the matrix
forms are as follows:



Define rotation R :
3
GL(3,
) as

= (
x,
y,
z) and GL(3,
) is general linear group over
of order 3.
Consider an articulated model composed of N rigid segments and N joints. Let
,
be the set of all possible
end effectors and state vectors

. Then the goal of this chapter is to solve the following
inverse problem:

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


End effector is obtained by sequential application of above equation:

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

Thus gradient of f(
is

For given target end effector X = (X1, X2, X3)
3, our problem is to find a state variable
= (
1,
2,
,
3N )
3N such that

j < uj, j = 1, 2,
, 3N. We can recast this problem as nonlinear programming subject to linear
constraints on variables. Formally, 
> 0 is a Tikhonov regularization parameter.
The gradient
F = (
,
,
) of the cost functional F is as follows:

, 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

=
, we can get

For more smooth behavior we can select the internal points
,
,
,
satisfying the followings:

, i = 1, 2,
, M. Then

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
i are relative angles between adjacent links. The end effector position is given by

i =
j = 1i
j, i = 1, 2, 3.
Figure 3 shows the result.
Consider the problem to find the solution
=
(t)
n at every instant time of the vector equation:
m 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
:
) is the m × n Jacobian matrix
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
holds.

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
where G = G(
) is a generalized inverse matrix, of dimension n × m, of the matrix J. Also, for any generalized
inverse G, d
= GdX is a solution of the set (4.2).





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
be a solution of dX = Ad
and choose any generalized inverse G of J. Then since AGA = A and
A
= dX,


= GdX is a solution of dX = Ad
.
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

1) G1 and G2 are generalized inverse matrices of J, that is,
and
2) In is the n × n identity matrix,
3) Z is an arbitrary vector in
n.

= G1dX + (G2J - In)Z is a solution of dX = Jd
. The last equality follows by the fact that d
= G1dX is a
solution of dX = Jd
.
Theorem 4.4. The vector d
2 = (In - G2J)Z represents the projection of Z onto the null-space of J,
along the range-space of G2J.


n
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.
De nition 4.5. (Moore-Penrose) A pseudo-inverse A+ of an m × n matrix A is an n × m matrix satisfying

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
m×m and V
n×n
such that

1 >
2 >
>
k > 0 for some k < min{m, n}.
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].
, um] and V = [v1, v2,
, vn]. For any x
n, we have 
= [
1,
2,
,
n]T = V T x. Clearly, if x solves the least-square problem, then

i = 0 for i = k + 1,
, n,

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

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

Im.
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.
![J1X = J1(I- J1+J1)[J2(I -J1+J1)]+ = O.](ikp87x.gif)
![+ + +
J2X = J2(I- J1 J1)[J2(I - J1 J1)] = I.](ikp88x.gif)
![+ + + T + + T- 1
[J2(I- J1 J1)] = [J2(I- J1 J1)][J2(I- J1 J1){J2(I - J1 J1)} ] .](ikp89x.gif)
![(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)].](ikp90x.gif)
Lemma 5.4. The vector d
2 = (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.
![[(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)],](ikp91x.gif)
![+ + +
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](ikp92x.gif)
n 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](ikp93x.gif)
By Lemma 5.2, Lemma 5.3 and Lemma 5.4, we can obtain the following theorem.
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)].](ikp96x.gif)


But we can show that
![+ + + +
b = J1 dX1 + [J2(I- J1 J1)] (dX2 - J2J1 dX1)](ikp99x.gif)
Let J =
and G =
T .
![( )( )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,](ikp102x.gif)
![( + + +)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)},](ikp103x.gif)
![(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.](ikp104x.gif)
We can rewrite (5.1):
where J+ =
T .
Since J+ is the pseudo-inverse of J =
,

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

i =
j = 1i
j, i = 1, 2,
, 6 and
6+i =
j = 13
j +
j = 1i
6+j, i = 1, 2, 3.
Differentiating yields the Jocobians:


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.
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
i = 1Mmi < n, Ji is an mi × n matrix of full rank for
i = 1, 2,
, M and

be the pseudo-inverse matrix of J. Since J is of full rank,

, M.
![+ 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](ikp127x.gif)
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.](ikp129x.gif)
If M = 3, i.e., the articulated figure has 3 End Effector, we can find the exact formula of the general
solution.

![+ + + +
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,](ikp134x.gif)
![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.](ikp135x.gif)
Let
![N2,3 = (I - J3+J3)[I- {J2(I- J3+J3)}+J2(I- J3+J3)].](ikp136x.gif)
![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,](ikp137x.gif)
![+ + + +
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](ikp138x.gif)
![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.](ikp139x.gif)

![[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](ikp142x.gif)

n in 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}] ,](ikp145x.gif)

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


![~ sum j +
Zj = [Jj(I- ZiJi)]
i/=j](ikp155x.gif)
, M. Then

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](ikp162x.gif)
![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,](ikp163x.gif)
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.](ikp165x.gif)
Define {N1,2,
,i} as follows.
,i is symmetric
,i is of full rank mi+1
,i(Ji+1N1,2,
,i)+ = (Ji+1N1,2,
,i)+
,i = 0 for j = 1, 2,
, i
, Ji, N1,2,
,iZ = Zhold.
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,](ikp178x.gif)
,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,

,k+1 is of full rank, 
, k,


,k+1 = 0 for j = 1, 2,
, k + 1. For any Z in the intersection of null-spaces of J1, J2,
, Jk+1,

Lemma 6.12. d
2 = N1,2,
,M Z represents the projection of Z onto the intersection of null-spaces of
J1, J2,
, JM .
From Lemma 6.9 and Lemma 6.12 we can obtain the following Theorem.
Let Fi = N1,2,
,i, i = 1, 2,
, i.e., define {Fi} satisfies as follows.
And define {
} as follows:


. Since J
= I, J
J = J,
J
=
and (J
)T = J
. And since
J = I - Fi
and Fi is symmetric, (
J)T = (I - Fi)T = I - FiT = I - Fi =
J. Therefore
is the pseudo-inverse of
J.
Thus we can obtain the following two theorems.
Theorem 6.19. d
1 = 
is the minimal 2-norm solution of the set of linear consistent
equations dXi = Jid
, i = 1, 2,
, M.
In particular, if M = 3 then the minimal 2-norm solution is

![F1 = I- J1+J1,
+ + + +
F2 = (I - J1 J1)[I -{J2(I- J1 J1)} J2(I- J1 J1)].](ikp229x.gif)
Consider a simple two-dimensional example with 3 end effectors. Figure 7 shows a two-dimensional joint chain
where the joint angles
i are relative angles between adjacent links. The initial and target end effectors are as
follows:



Differentiating yields the Jacobians:


Thus we can calculate
![+
F1 = I- J1 J1,
F2 = (I- J1+J1)[I - {J2(I - J1+J1)}+J2(I - J1+J1)]](ikp237x.gif)

Then the solution is d
1 =
dX1 +
dX2 +
dX3. Figure 8 shows the result.
|
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

Differentiating yields the Jacobian:


Thus we can calculate
![F3 = F2[I- (J3F2)+J3F2]](ikp246x.gif)

Then the solution is d
1 =
dX1 +
dX2 +
dX3 +
dX4. Figure 9 shows the result.
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 = Jd
is the solution which
minimizes the sum
, also
known as the damping factor. This solution is typically obtained by solving an equation of the form



> 0, then JT J +
2I is nonsingular and

1,
2,
,
m)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).](ikp258x.gif)
> 0, JT J +
2I = V diag(
12 +
2,
22 +
2,
,
m2 +
2,
2,
,
2)V T is nonsingular
and

= (JT J +
2I)-1JT dX,
r = {I - J(JT J +
2I)-1JT }dX. Thus


r = J
, 

|
Lemma 7.1 shows that a large
brings the condition number arbitrary close to unity. In contrast, by Lemma 7.2
should be small enough that the residual error is not greatly increased.
Example 7.3. Figure 11 - Figure 14 show the results when
= 0.1, 0.25, 1.5, 10.0, respectively. I think
that
= 0.1 is too small in Figure 11 and
= 10.0 is too large in Figure 14.
Now, suppose that (7.1) has simple bound constraints:
where l, u
n are constant vectors. Then reformulating (7.1) and (7.3), we can obtain the following problem:

(m+n)×n, d =
m+n, A =
2n×n and b =
2n, which is
referred the linear least square problem with linear constraints.
Example 7.4. Figure 15 shows the solution when -
<
i <
if i
6 and -
<
i < 0 if i = 6. Compare
with Figure 12.
[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.
E-mail address: no3khs@snu.ac.kr
E-mail address: sheen@snu.ac.kr