Fast inverse kinematics and kinetics solver for human-like figures

6
Fast inverse kinematics and kinetics solver for human-like figures * Richard Kulpa SIAMES project IRISA Campus Universitaire de Beaulieu, F-35042 Rennes Cedex, France [email protected] Franck Multon LPBEM University of Rennes 2 av. Charles Tillon, F-35044 Rennes Cedex, France [email protected] Abstract— Applying complex motions to humanoids involves to deal with different kinematic, kinetic and dynamic constraints. Although dynamics is more accurate to simulate humanoids, inverse kinematics is an alternative to rapidly calculate plausible movements required for motion planning. Humanoids motion planning that deals with numerous degrees of freedom requires numerous calls to inverse kinematics solvers that make computa- tion time increase significantly. We propose a new approach that is able to solve complex character positioning while dealing with the center of mass position with very few computation time. An iterative hierarchical process is proposed: analytical solutions are proposed for groups of body segments while a higher solver is applied to drive the whole body and is repeated until stability is reached. With such a system, we are able to animate from 22 to 177 characters at 30Hz on a classical P4 computer. Index Terms— Inverse kinetics, inverse kinematics, human-like figures, computer animation I. I NTRODUCTION In industry, simulating virtual human operators was in- vestigated thanks to the use of robot motion planning tech- niques [1]. For example, those techniques could be used to plan how a human operator can act on objects of a complex mechanical structure (such as planes or other vehicles). Motion planning appears also as a challenging issue to provide hu- manoid robots with motion autonomy [2]. In motion planning inverse kinematics is generally used to make the skeleton drive objects in complex environments. Those techniques generally enable to state if the action is feasible or not but do not ensure to produce natural motions. On the opposite, in computer animation, numerous works focused on how calculating natural motions without taking accurate contacts and collisions into ac- count. Basically inspired from robotics, new inverse kinematics and kinetics solvers were introduced in computer animation in order to produce realistic gestures for human-like figures. This paper addresses the problem of such inverse kinematics and inverse kinetics solver for human-like skeletons. The constraints of such a method are: offering very rapid calculations in order to be efficiently used by a motion planning system, * This work was partially founded by the French research program, RIAM within the SEMOCAP project initiated by Artefacto calculating realistic gestures for humans, and offering various easy-to-use constraints in order to drive various kinds of effectors. We propose a new method that was successfully applied in computer animation [3] to animate up to 177 characters in real-time at 30Hz. II. RELATED WORKS In computer animation, inverse kinematics was first used to make various creatures move into a virtual environment while taking the shape of the ground into account [4] [5]. A general algorithm consists in inverting the function X = f (q) that expresses the coordinate X of an effector depending on the state of the joint parameters q. As f is non-linear, it is locally linearized [6]. To this end, the Jacobian matrix J of function f could be obtained either numerically or analytically and requires many computations. Moreover, if possible, inverting this equation has generally a O(n 3 ) computation cost if n is the number of degrees of freedom. However, because of redundancy, J is generally not squared, implying the use of the pseudo-inverse J + in order to solve the problem. The computation cost consequently increases significantly. Moreover, as several solutions exist, secondary tasks were introduced to select a specific solution that minimizes a crite- rion z . The choice of the secondary task strongly influences realism [7] and also requires additional computation time. This method was extended to control the center of mass position for complex character positioning [8].In order to deal with prioritized constraints [9][10], new algorithms were recently proposed [11] [12] in computer animation. Contrary to weighted constraints, those methods insure that low-level constraints are solved only if they do not interfere with high- level constraints. However computation time is still high. An alternative consists in decomposing the skeleton into sub-chains [13] and to propose specific solutions for each sub- chain individually. This technique was especially applied for anthropometric limbs [14] where direct analytical solutions can be proposed. However, controlling subparts of the skeleton independently is not always adequate to solve constraints that require the displacement of all the body. Proceedings of 2005 5th IEEE-RAS International Conference on Humanoid Robots 0-7803-9320-1/05/$20.00 ©2005 IEEE 38

Transcript of Fast inverse kinematics and kinetics solver for human-like figures

Fast inverse kinematics and kinetics solver forhuman-like figures∗

Richard KulpaSIAMES project

IRISACampus Universitaire de Beaulieu, F-35042 Rennes Cedex, France

[email protected]

Franck MultonLPBEM

University of Rennes 2av. Charles Tillon, F-35044 Rennes Cedex, France

[email protected]

Abstract— Applying complex motions to humanoids involves todeal with different kinematic, kinetic and dynamic constraints.Although dynamics is more accurate to simulate humanoids,inverse kinematics is an alternative to rapidly calculate plausiblemovements required for motion planning. Humanoids motionplanning that deals with numerous degrees of freedom requiresnumerous calls to inverse kinematics solvers that make computa-tion time increase significantly. We propose a new approach thatis able to solve complex character positioning while dealing withthe center of mass position with very few computation time. Aniterative hierarchical process is proposed: analytical solutions areproposed for groups of body segments while a higher solver isapplied to drive the whole body and is repeated until stability isreached. With such a system, we are able to animate from 22 to177 characters at 30Hz on a classical P4 computer.

Index Terms— Inverse kinetics, inverse kinematics, human-likefigures, computer animation

I. I NTRODUCTION

In industry, simulating virtual human operators was in-vestigated thanks to the use of robot motion planning tech-niques [1]. For example, those techniques could be used toplan how a human operator can act on objects of a complexmechanical structure (such as planes or other vehicles). Motionplanning appears also as a challenging issue to provide hu-manoid robots with motion autonomy [2]. In motion planninginverse kinematics is generally used to make the skeleton driveobjects in complex environments. Those techniques generallyenable to state if the action is feasible or not but do not ensureto produce natural motions. On the opposite, in computeranimation, numerous works focused on how calculating naturalmotions without taking accurate contacts and collisions into ac-count. Basically inspired from robotics, new inverse kinematicsand kinetics solvers were introduced in computer animationin order to produce realistic gestures for human-like figures.This paper addresses the problem of such inverse kinematicsand inverse kinetics solver for human-like skeletons. Theconstraints of such a method are:

• offering very rapid calculations in order to be efficientlyused by a motion planning system,

∗This work was partially founded by the French research program, RIAMwithin the SEMOCAP project initiated by Artefacto

• calculating realistic gestures for humans,• and offering various easy-to-use constraints in order to

drive various kinds of effectors.

We propose a new method that was successfully applied incomputer animation [3] to animate up to 177 characters inreal-time at 30Hz.

II. RELATED WORKS

In computer animation, inverse kinematics was first used tomake various creatures move into a virtual environment whiletaking the shape of the ground into account [4] [5]. A generalalgorithm consists in inverting the functionX = f(q) thatexpresses the coordinateX of an effector depending on thestate of the joint parametersq. As f is non-linear, it is locallylinearized [6]. To this end, the Jacobian matrixJ of functionf could be obtained either numerically or analytically andrequires many computations. Moreover, if possible, invertingthis equation has generally aO(n3) computation cost ifnis the number of degrees of freedom. However, because ofredundancy,J is generally not squared, implying the use ofthe pseudo-inverseJ+ in order to solve the problem. Thecomputation cost consequently increases significantly.

Moreover, as several solutions exist, secondary tasks wereintroduced to select a specific solution that minimizes a crite-rion z. The choice of the secondary task strongly influencesrealism [7] and also requires additional computation time.This method was extended to control the center of massposition for complex character positioning [8].In order todeal with prioritized constraints [9][10], new algorithmswererecently proposed [11] [12] in computer animation. Contraryto weighted constraints, those methods insure that low-levelconstraints are solved only if they do not interfere with high-level constraints. However computation time is still high.

An alternative consists in decomposing the skeleton intosub-chains [13] and to propose specific solutions for each sub-chain individually. This technique was especially appliedforanthropometric limbs [14] where direct analytical solutions canbe proposed. However, controlling subparts of the skeletonindependently is not always adequate to solve constraints thatrequire the displacement of all the body.

Proceedings of 2005 5th IEEE-RAS International Conference on Humanoid Robots

0-7803-9320-1/05/$20.00 ©2005 IEEE 38

Cyclic Coordinate Descent (denoted CCD in the remainderof the paper) [15] [16] consists in applying local adaptationsto each degree of freedom in a preliminary selected order. Theprocess is repeated iteratively until the constrained effectorsreach their target. Although this method offers low computa-tion time, some artifacts may occur in the resulting sequence,such as an inhomogeneous repartition of the deformation alongthe kinematic chain [17].

Recently, this iterative approach was adapted [18]. In thisapproach, the human body was subdivided into main parts forwhich a local analytical solution is known. As the CCD doesfor joints, the system locally adapts each group with its ownanalytical solution until a solution is reached.

In this paper, we propose an improvement of such a methodin order to also solve inverse kinetics problems. Due to itscapabilities and very high rapidity, this method can be anadvantage for motion planning.

III. OVERVIEW

The method proposed in this paper is based on the adapta-tion of a posture in order to verify various constraints: posi-tioning a point of the skeleton to a given place, constraining themotion into a limited area, imposing distances between partsof the skeleton or between the skeleton and the environment,and imposing a velocity to a given point of the skeleton.

The constraint over the center of mass position is notspecified such a way given that it is supposed to be consideredfor every kind of motion. Each constraintCi is composedof several parameters:Ci = {CPi, Ti, KCi, Pi, Ai}. The firstparameterCPi is the constrained point. It is linked to a bodysegment and its position is defined using a 3D local offset fromthe root of this segment. Next parameterTi is the type of theconstraint among the ones listed above. The next parameterKCi defines the kinematic chain associated to the constraint.It offers the user the possibility to specify the set of usablebody segments usable to solve the constraint. For example, aconstraintC1 applied on the right hand can request only thearm or all the kinematic chain from the hand to the root. Thepriority of the constraint, calledPi, indicates the importance ofa constraint compared to others. Finally, the user can startandstop constraints using the parameterAi ranging continuouslyfrom 0 (inactivated) to 1 (fully activated).

The initial posture used by the algorithm is either theone calculated at the previous time step or a captured one(ensuring to stay close to a realistic posture). A morphologicalindependent formalism was also defined in order to deal withvarious characters very efficiently. This formalism is basedon a Cartesian normalized representation of a posture. In thisrepresentation, the human body is subdivided into kinematicsubchains (see Fig. 1) that describe parts of the skeleton. Thosekinematic chains are divided into three main types:

• the normalized segments that are composed of only onebody segment (such as the hands, the feet, the clavicleand the scapula). They are normalized by their length ;

• the limbs with variable length that encode upper andlower limbs composed with two body segments each. In

Fig. 1. Morphological-independent representation of the skeleton.

this representation, the intermediate joints (elbows andknees) are not encoded given that their positions aredirectly linked to the character’s anthropometric proper-ties. To retrieve them, an analytical solution derived fromIKAN [14] is used ;

• and the spine represented with a spline that can besubdivided into as many segments as wishes dependingon the humanoids description.

A more complete description of this formalism is providedin [3]. Given this data structure, every motion capture dataoredited trajectory (whatever the size of the initial skeleton) canbe used as an initial posture of our method. The posture isthen adapted to the new skeleton by simply multiplying allthe normalized data by the dimensions of the new character.

IV. I NVERSE KINEMATICS AND KINETICS SOLVER

In order to solve efficiently inverse kinematics and kineticsproblems, we propose to subdivide the skeleton into six maingroups: the two legs, the head, the two arms and the trunk.Each groupGj is associated to a set of constraintsCSj ={Ck} which is a subset of the complete set of constraints CS:CSj ⊂ CS. All the constraints contained inCSj are linkedto at least one body segment belonging to the groupGj . Forexample, if a constraintCi is acting on the right forearm, it isobviously linked to the right arm groupGa and consequentlyadded toCSa. If the kinematic chainKCi associated toCi

also involves the trunk (belonging to the trunk groupGt),the constraint is then added to the set of constraintsCSt

associated toGt. This hierarchy of the skeleton indicates theorder with which the groups are considered to solve the wholeproblem. The main loop of the algorithm consists in solving thekinematic constraintsCS first and then to adjust the postureto displace the center of mass to the desired position. Thisprocess is repeated until a stable solution is reached.

39

A. Inverse kinematics

In order to minimize the number of used groups, the lightestbody groups are used first. They are represented in the lowestlevel of the groups hierarchy (equivalent to the body segmentshierarchy). The last group which is considered is consequentlythe trunk. This resolution order minimizes the kinetic energy.it = 0Do

adaptGroup(HEAD)adaptGroup(RIGHTARM)adaptGroup(LEFTARM)adaptGroup(RIGHTLEG)adaptGroup(LEFTLEG)adaptGroup(TRUNK)adaptRoot()completed = computeError()

While ( (it++ ¡ maxIt) & (¬completed) )The iteration loop ends when the number of iterations is

too high or when no more adaptation is necessary. In orderto determine if the adaptation is completed, the global errorkmErrork of the posture is calculated using a weighted sumof the errorserrori of all the constraintsCi.The variation ofthis global error between two iterationsk − 1 and k is thencalled ∆kmErrork .The first global errorkmError0 is thedistance between the constraints position at the initial postureand their target. It is computed just before entering the iterationloop. The adaptation is completed when the variation of theglobal error is under a thresholdthrKm. Indeed, as eachoperation of our kinematic algorithm minimizes the globalerror of the posture, the error function is decreasing, eveniftwo antagonistic constraints are used. Since the error is basedon the distance between the position of the constraints andtheir targets, this function is always positive and consequentlyalways converges.

Inside each group, adaptation is performed from its ex-tremity to its root. We recall that each part of the groupis a normalized segment, a limb with variable length or aspline. The part adapted first is clearly more affected (get largetransformations) than the last one (that may not be modifiedat all if not required). Let us consider the example of thearm. The algorithm starts from the wrist (by adapting the limbwith variable length with the corresponding analytical solution)to the clavicle (normalized segment rotated if required). Therotation of normalized segments aims to make vector

−−−−→A.CPi

be collinear to vector−−−−−−−→A.Targeti where CPi is the current

position of the constraintCi and Targeti is its desiredposition. Practically, it corresponds to the rotation of all thehierarchy below the segment with variable length in orderto place the constraint as near as possible to its target (asclassically used in CCD method). This ensures that the erroris always decreasing, ensuring convergence. The followingalgorithm is consequently applied to each group:For all the articulations A in the group

If A in limb with variable lengthAnalytical computation

Fig. 2. Adaptation of a posture while preserving the original COM position.The blue sphere is the target of the constraint applied to theankle. The leftpart shows the original posture. On the right,kmParameter goes from 0(without displacement of the pelvis) at the back to 1 at the front (using fullythe pelvis translation).

ElseApply on A the angle

to align−−−−−→(A, CPi) with

−−−−−−−−→(A, Targeti)

End of ifEnd of for

Finally, the root adaptation method (adaptRoot) handles thetranslation of the pelvis. This method translates the root usingthe following vector:

rootV ector = kmParameter ∗∑

i

Pi ∗ errorV ectori (1)

whereerrorV ectori is the vector that goes from the positionof the constraint to its target, andkmParameter is a tunableparameter: from 0 for no use of the pelvis in order to reachthe target, to 1 if the root’s translation is fully applied. Hence,this parameter enables to deal with different voluntary motorcontrol strategies involving or not large displacements ofthepelvis instead of mobilizing other body parts (see Fig. 2).

B. Inverse kinetics

This improvement allows to handle balance for examplewhen the COM is correctly placed on top of the sustentationpolygon. In a context of motion adaptation, it can be either theCOM contained in the original motion or a new one calculatedin order to have a dynamic control of the motion. As for ourinverse kinematics solver, the kinetic adaptation is basedonthe use of the body groups and of a CCD-like algorithm. Foreach modified group, our algorithm considers that the COMpositions of the other groups are constant. Consequently, theCOM position of the currently modified group can be set tobest verify the constraint applied on the global COM position.

We have to determine first the groups that can be requestedin order to verify the COM position. The groups that arefree of kinematic constraints can be requested for the kineticadaptation. The user can then select only a subset of thesefree groups for the adaptation. The selected groups are thenconsidered according to their level in the groups hierarchy,from the heaviest groups (such as the trunk) to the lightest ones

40

(such as the arms). This strategy could be observed in trainedhumans given that only a small movement of the heaviest massmake the COM move significantly. On the contrary, displacinglight masses would require large gestures of numerous bodysegments in order to obtain the same effect. First, we computethe global COMglobalCOM which is the weighted sum ofall the COMCOMk of the body groupsk:

globalCOM =

k(mkCOMk)∑

k mk

(2)

wheremk is the mass of the groupk. The kinetic adaptationconsists then in placing this global COM at the positionspecified by the constraint.

This process consists in calculating the desired COM posi-tion COMg of the currently adapted group g in order to solvethe problem without moving the other groups:

COMg =(∑

k mk) ∗ cCOM −∑

k 6=g(mkCOMk)

mg

(3)

wherecCOM is the desired position of the COM at the end ofthe process. To solve this problem, as for the inverse kinemat-ics module, each group is associated to a specific analyticalsolution. Fig. 3 shows the example of an arm composed oftwo segments which lengths are respectivelyl1 and l2. TheCOM position can be retrieved calculating first the COMpositions of the two segments in the current posture (COM1

andCOM2 respectively). These positions are calculated fromthe proximal articulations (such as a shoulder for an upper-arm and a elbow for a forearm) using two percentagesr1

andr2 of the segment length. These ratios are provided fromanthromopetric tables [19]. Then the COM position of the totallimb is calculated using another ratior3 that depends on themass of the belonging segments:

r3 =m2

m1 + m2

(4)

To place the COM at positionCOMg, an analytical solutionis calculated. Letl be the distance between the proximal(the shoulder) and the distal point (the wrist) of the limb.Changing the arm configuration could be summed-up as twoindependent operations: a change of this length (scale) andarotation of the limb (supposed rigid). Hence, to modify thelimb’s configuration in order to place the COM at the desiredCOMg, the solution consists in calculating first a new lengthl′

according to the distanced betweenCOMg and the shoulder(see Fig. 3). Ifd is greater thanr3[(r2l2 + l1) − r1l1] + r1l1then the limb should be placed in its extended position leadingto setl′ to the limb’s length. Otherwise,l′ is given by:

l′ =

d2 − F

G(5)

Fig. 3. COM1 (resp.COM2) is the COM position of the segments1 (resp.s2). COMg is the COM position of the limb.

where

F = l12[

(r1 + r3)2 +

r3 [r2(r1r3 − r1 − r3) + r1(r1r3 − 2(r1 + r3))]]

+ l22r2r3 [r3(r2 + r1 − 1) − r1]

G = r2r3(r3 + r1 − r1r3)

Knowing l′, it is possible to simply calculate the correspondingelbow flexion angle. The limb (with its new configuration) isthen simply rotated around the shoulder in order to place theCOM at the most convenient position.

As for the inverse kinematics module, the translation of thepelvis can also be used complementarily to the adaptation ofgroups. A similar parameterknParameter is also tunableto drive the resolution process. IfknParameter is closeto 0, no translation of the pelvis is carried-out. On theopposite, ifknParameter is close to 1, the translation of thepelvis is fully used to drive the COM to its desired position.Fig. 4 shows various values ofknParameter for the sameproblem: driving the arm to an unreachable target in front ofthe character while letting the COM along the z-axis goingthrough its original position. In this picture, one can see thatthis last constraint is verified for both configuration c and d(where inverse kinetics is activated while allowing more orless a translation of the pelvis) but not for configuration a(where only inverse kinematics is performed) and b (wherethe translation of the root is forbidden). In configuration bandd, one can see that the system automatically moves the legthat is not attached to the ground to partially counterbalancethe translation of the upper-body.

C. Solving both inverse kinematics and kinetics

The two methods described above are combined in a globalloop. The main problem is then to determine when both adap-tations are completed. The kinematic adaptation is performedwhen the variation of the global error∆kmErrork .is underthe thresholdthrKm (see subsection IV-A). The same way,the kinetic adaptation is performed when the variation of theerror ∆knErrork is under a threshold calledthrKn. Thiserror knErrork is simply calculated as the difference, in thehorizontal plane, between the COM position of the posture andthe position set by its constraint. Then the following algorithmis proposed in order to take both two errors into account:

41

Fig. 4. The red sphere is the actual COM, the green one is the goal. Theconstraint is verified when the two spheres are vertically aligned. Part (a)grasping without kinetic adaptation: the constraint is notverified. Part (b) theleft leg is used to counterbalance the upper-body and the constraint is notverified. Part (c) only the root is translated and the constraint is verified, butthe target is really far. Part (d) shows the combination of the root translationand the left leg adaptation. The constraint is also verified but the character isnearer from the target than in (c).

it = 0completed = falseDo

postureKm = kinematicAdaptation()If (∆kmErrork < thrKm) // Kinematic completed

postureKn = kineticAdaptation()If (∆knErrork < thrKn) // Kinetic completed

finalPosture = postureKmcompleted = true

End of ifElse // Kinematic not completed

kineticAdaptation()End of else

While ( (it++ < maxIt) & (¬completed) )

wherekinematicAdaptation() and kineticAdaptation()are the adaptations described in the two previous subsections.

In this algorithm the kinematic adaptation is solved firstgiven thatkinematicAdaptation() is called until a posturethat verifies all the constraints is reached. At the end ofkinematicAdaptation(), generally,∆kmErrork < thrKm

should be verified (or the maximum number of iterationwas reached). Consequently, the resulting posture should bestverify all the kinematic constraints and no more work isrequired to do best. However, the resulting posture generallydoes not verify that the COM is placed at the desired position,then kineticAdaptation() is called. In this function, if thevariation of error is negligible, we assume that the posturecalculated bykinematicAdaptation() is the solution.

V. RESULTS

Fig. 5 shows three characters placed on a floor waving inreal-time. In addition to ground adaptation, one constraint isapplied on each wrist. In part (a), the constraints have no mass.In part (b), each constraint has a mass of 5Kg and finally, in thepart (c), 10Kg are added to the wrists. The more the masses arethe more the character has to move back its pelvis in order tocounterbalance them. Only the root translation is used becauseall the limbs are constrained in this example. In this figure,thered sphere is the COM position of the posture and the bluesphere is the COM position set by the constraint on the COM.One can see that the constraint on the COM is always verifiedsince the two spheres are vertically aligned.

Table I gives some information about the performance ofour solver. One can notice that activating inverse kineticsdoesnot increase significantly the number of needed iterations.Theduration of the computation of one iteration on a P4 2.8GHzcomputer. The number of iterations are mainly related to thenumber of groups involved in the adaptation. Indeed, insidea group, all the constraints are solved analytically. So thenumber of constraints is not very important. On the contrary,adapting another group means adding another computationin the iterative process. Consequently, when constraints areapplied on the arms for example, the number of iterationsdepends on the distance between the target and the character.Indeed distant targets generally involves to move the trunkwhereas only an analytical computation for the arm posture isrequired for targets close to the body.

VI. CONCLUSION

The method proposed in this paper is very fast and partiallyovercomes the drawbacks of classical CCD algorithms. A

Fig. 5. the red sphere is the COM position of the posture. The blue sphere isthe COM position set by the constraint on the COM. In part (a),two constraintsare applied on the wrists. In part (b), masses of 5Kg are added. Finally, inpart (c), 10Kg are added.

42

ctr grp dist. it. Km&Kn time/it char.(nb) (nb) (only Km) (ns) (nb)

1 1 Near 3 (2) 62.5 1772 2 Near 4 (2) 76 1091 2 Unreach. 11 (8) 70 502 3 Unreach. 15 (13) 98 22

TABLE I

PERFORMANCE’ctr’ IS THE NUMBER OF CONSTRAINTS AND’grp’ IS THE

NUMBER OF USED GROUPS. ’dist.’ IS THE DISTANCE BETWEEN THE TARGET

AND THE CHARACTER. ’it. Km&Kn’ REPRESENTS THE NUMBER OF

ITERATIONS. BETWEEN PARENTHESIS IS THE NUMBER OF ITERATIONS

ONLY FOR KINEMATIC ADAPTATION . ’time/it’ IS THE DURATION OF ONE

ITERATION IN NANOSECONDS. ’char.’ IS THE NUMBER OF CHARACTERS

THAT CAN BE ANIMATED USING THESE CONSTRAINTS.

previous work [18] improved CCD algorithms by decomposingthe body into groups. If the solution can be reached by onlyusing one group, a unique calculation is carried-out. Conse-quently, it avoids using many iterations and it also preventsfrom inhomogeneous repartition of deformations. However,this method cannot deal with points different from joint centers(such as a point placed everywhere on the forearm). Weimproved this method by providing more generic analyticalsolutions for each groups allowing the control of such points(see [3]) and also the center of mass.

However, for very complex postures that involve all thegroups and lots of iterations some inhomogeneous repartitionof the deformation along the kinematic chain could occur.We experimented such artifact for completely unrealistic con-straints but reasonable constraints should lead to acceptablepostures. Indeed, the hierarchical approach allows using onlyone iteration if a unique group is required (such as movingonly a limb) whereas classical CCD should iterate severaltimes leading to inhomogeneous deformations. This problemis also partially solved because the inverse kinematics modulepreferably uses the groups that are far from the body first. Asthose groups can reach a large space, only few iterations arerequired to converge to a solution. The same way, for inversekinetics, the groups are sorted in the opposite order.

Future experiments will be carried-out to better character-ize performance and convergence. We have tested yet manydifferent configurations involving many constraints and manygroups. The results are promising given that performancestays close to the one presented in this paper. This approachwas used to animate 16 characters fighting one against eachother at 30Hz on a simple laptop, with visualization. Thoseperformances are very interesting in computer animation butshould also have applications in humanoids robotics for whichsuch approach could be used to rapidly propose an objectivepose to dynamic controllers. It could also be useful in motionplanning for manipulation tasks.

Controlling the center of mass could be enough for manyapplications involving slow motions such as manipulationtasks. However, it should be extended in order to deal with theZero Moment Point instead of the center of mass to simulate

faster motions. However, this improvement requires knowingexactly the forces (with their accurate application point)inorder to provide realistic results.

The method proposed in this paper was especially designedfor human-like figures but could certainly be extended to otherkinds of skeletons. To this end, it would be first necessary todecompose each kind of skeleton into normalized segments,limbs with variable length and splines allowing the use of thesame analytical solutions.

ACKNOWLEDGMENTS

We thank Jean-Paul Laumond for his help and support.

REFERENCES

[1] G. Arechavaleta, C. Esteves, and J. Laumond, “Planning fine motionsfor a digital factotum,” inProceedings of IROS’04, 2004.

[2] J. Kuffner, “Motion planning for humanoid robots,” inProceedings 20thInternational Symposium on Robotics Research (ISRR’03), 2003.

[3] R. Kulpa, F. Multon, and B. Arnaldi, “Morphology-independent repre-sentation of motions for interactive human-like animation,” ComputerGraphics Forum, Eurographics 2005 special issue, vol. 24, no. 3, 2005,in press.

[4] M. Girard and A. Maciejewski, “Computational modeling for the com-puter animation of legged figures,” inProceedings of ACM SIGGRAPH.Addison Wesley, July 1985, pp. 263–270.

[5] R. Boulic and D. Thalmann, “Combined direct and inverse kinematiccontrol for articulated figure motion editing,”Computer Graphics Forum,vol. 2, no. 4, Oct. 1992.

[6] A. Liegeois, “Automatic supervisory control of the configuration andbehavior of multibody mechanisms,”IEEE Trans. Systems, Man, andCybernetics, vol. 7, no. 12, pp. 868–871, 1977.

[7] G. Nicolas, F. Multon, and G. Berillon, “Inverse kinematics for the calcu-lation of plausible bipedal locomotion using anthropological knowledge,”in Proceedings of CASA, Geneva, Switzerland, July 2004, pp. 103–110.

[8] R. Boulic, R. Mas, and D. Thalmann, “A robust approach forthe centerof mass position control with inverse kinetics,”Journal of Computersand Graphics, vol. 20, no. 5, 1996.

[9] Y. Nakamura, Advanced Robotics: Redundancy and Optimization.Addison-Wesley, 1991.

[10] K. Yamane and Y. Nakamura, “Natural motion animation through con-straining and deconstraining at will,”IEEE Transactions on Visualizationand Computer Graphics, vol. 9, no. 3, 2003.

[11] P. Baerlocher and R. Boulic, “An inverse kinematic architecture enforc-ing on arbitrary number of strict priority levels,”The Visual Computer,vol. 20, no. 6, pp. 402–417, august 2004.

[12] B. LeCallennec and R. Boulic, “Interactive motion deformation withprioritized constraints,” inProceedings of ACM/Eurographics SCA, D. P.R. Boulic, Ed., Grenoble, France, august 2004, pp. 163–171.

[13] N. I. Badler, K. H. Manoochehri, and D. Baraff, “Multi-dimensionalinput techniques and articulated figure positioning by multiple con-straints,” inSI3D ’86: Proceedings of the 1986 workshop on Interactive3D graphics. ACM Press, 1987, pp. 151–169.

[14] D. Tolani, A. Goswami, and N. Badler, “Real-time inverse kinematicstechniques for anthropomorphic limbs,”Graphical Models, vol. 62, pp.353–388, 2000.

[15] L.-C. T. Wang and C. C. Chen, “A combined optimization method forsolving the inverse kinematics problem of mechanical manipulators,”IEEE Trans. On Robotics and Applications, vol. 7, no. 4, pp. 489–499,August 1991.

[16] J. Lander, “Making kine more flexible,”Game Developer Magazine,vol. 1, pp. 15–22, November 1998.

[17] C. Welman, “Inverse kinematics and geometric constraints for articulatedfigure manipulation,” Master’s thesis, Simon Fraser University, 1993.

[18] H. Shin, J. Lee, S. Shin, and M. Gleicher, “Computer puppetry: Animportance-based approach,”ACM Trans. Graph., vol. 20, no. 2, pp.67–94, 2001.

[19] V. Zatsiorsky, V. Seluyanov, and L. Chugunova,Contemporary problemsof Biomechanics. Moscow : Mir publishers, 1990, ch. Methods ofdetermining mass-inertial characteristics of human body segments, pp.273–291.

43