Graphe de contr^ole de poses
[vdPKF94] nomment graphe de contr^ole de poses une machine d'etats nis qui forme
un contr^oleur de mouvement pour un personnage articule. Le graphe decrit un mode de locomotion (cf. Figure 3.14). Un mouvement est obtenu en passant d'une pose a l'autre dans le graphe. En eet, chaque etat du graphe est associe a une pose ou posture du per-sonnage, c'est-a-dire sa forme geometrique, et non sa position dans le repere du monde. La transition entre deux etats adjacents determine le mouvement entre les poses cor-respondantes. Cette transition est realisee gr^ace a des contr^oleurs PD places en chaque articulation, qui calculent les forces et les couples requis pour conduire le personnage ar-ticule vers la pose speciee, dans le prochain etat du graphe.
Fig.3.14: Exemple de graphe de contr^ole de poses pour la marche humaine.
Ce concept de graphe de contr^ole de poses est particulierement adapte aux mouvements cycliques, tels que la marche : le mouvement est genere par un graphe cyclique qui decrit un cycle du mouvement considere. Cette approche a ete largement etudiee pour conce-voir des contr^oleurs particuliers de mouvements de types varies [RH91, HWBO95, KB96, vdPKF94, LvdPF96]. [RH91] denissent un contr^oleur pour animer la course dynamique de creatures bipedes et quadrupedes, en regulant la vitesse de course, en organisant l'uti-lisation des jambes et en maintenant l'equilibre. D'autres approches [HWBO95, Hod96] permettent l'animation de comportements athletiques dynamiques tels que la course, le cyclisme, le saut de cheval et le plongeon, en contr^olant les caracteristiques appropriees des mouvements consideres. [vdPKF94, LvdPF96] denissent des graphes de poses pour la locomotion humaine.
3.3 Methodes incorporant la dynamique 53
Les graphes de contr^ole de poses cycliques fournissent un moyen de representer et contr^oler les mouvements periodiques en boucle ouverte, c'est-a-dire sans considerer l'in-teraction possible avec l'environnement. Cette technique peut ^etre etendue au contr^ole en boucle fermee, qui se sert d'informations sur l'environnement, donnees par descap-teurs [BBG+94]. Par exemple, les transitions entre les poses peuvent ^etre declenchees
lorsqu'un contact est detecte [LvdPF96].
Reglages des contr^oleurs
{ Par ajustement manuel
Ces techniques semblent necessiter une longue periode de reglage manuel interac-tif, car les parametres sont trouves par t^atonnements, puis ajustes [HWBO95]. En eet, ce sont des lois empiriques qui determinent les angles pour les poses des ma-chines d'etats nis qui donnent une description de haut niveau du comportement a simuler. Ainsi, une strategie de contr^ole en boucle ouverte avec ajustement n de parametres de contr^ole est necessaire. Ce processus rend dicile la possibilite de reutilisation des parametres pour le reajustement a un personnage de morphologie dierente, car apres avoir changer d'echelle certains parametres du personnage et du contr^ole associe, il est a nouveau necessaire de regler manuellement ces nouveaux parametres [HP97].
{ Par generation automatique de contr^oleurs
Une alternative aux contr^oleurs regles manuellement est la generation automatique de ceux-ci. Certaines de ces approches tentent de partir d'aucune donnee initiale : l'utilisateur denit un personnage articule et une fonction objectif a optimiser, par exemple, aller le plus loin possible en un minimum de temps [vdPKF94]. Le systeme genere et optimise automatiquement un ensemble de contr^oleurs, qui engendrent parfois des modes de locomotion tres dierents et surprenants.
[vdPF93] modelisent les contr^oleurs par des reseaux de capteurs-actionneurs, c'est-a-dire par des graphes orientes arborescents avec connexions ponderees. Ces graphes calculent les couples actionneurs a partir des nuds internes lies a des donnees de detecteurs, telles que des informations sur l'environnement, comme le contact. Les parametres internes du systeme sont d'abord generes aleatoirement, puis optimises selon un critere donne. [NM93] utilisent une approche similaire, dans laquelle les va-leurs des parametres du contr^oleur sont recherchees avec des algorithmes genetiques. [Sim94] va plus loin dans l'utilisation des algorithmes genetiques en calculant m^eme l'evolution de la morphologie de la creature qui convient le mieux a un mode de locomotion donne.
{ Discussion
Ces types de methodes necessitent beaucoup d'essais, et par consequent, ont besoin de nombreuses ressources de calcul. De plus, il y a peu de chance pour que le mou-vement resultant ressemble a des moumou-vements connus. D'autre part, la plupart des
54 Etat de l'art : Synthese d'un mouvement de marche
methodes ont ete seulement utilisees dans des cas 2D. Or, l'application de methodes de contr^ole dynamique pour des personnages 3D complique le probleme du maintien de l'equilibre.Denition de contr^oles intermediaires
Les contr^oles intermediaires permettent de reduire le nombre de parametres de contr^ole que l'animateur doit ajuster, et rendent le contr^ole plus intuitif. Des exemples de contr^oles intermediaires sont presentes ci-dessous.
{ Cas de la course
[RH91] denissent des contr^oles intermediaires pour contr^oler la course d'un bipede. Ce type de locomotion est plus simple que la marche. En eet, la course comporte seulement des phases de simple support et des phases de vol. Or, dans la marche, la diculte de calcul provient des phases de double support, a cause des boucles cinematiques fermees. Cependant, on peut deja remarquer la complexite du contr^ole necessaire.
Le premier contr^ole propose est le contr^oledu saut, qui fait faire un pas aux jambes,
en changeant de support. Le modele des actionneurs est equivalent a un ressort-amortisseur :
f =k(x,x
r) +bx_
avec f la force actionnee, k la constante du ressort, b la constante d'amortissement,
x la longueur du ressort, x
r la longueur au repos du ressort. Le contr^ole de la
lon-gueur au repos du ressort permet d'injecter ou d'enlever l'energie au systeme, an d'amorcer l'oscillation, de la moduler, ou de l'arr^eter.
Le deuxieme contr^ole est le contr^ole de vitesse, qui fournit un equilibre pour regler
la vitesse de course. Les systemes a pattes sont assimilables a des pendules inverses. En eet, ils penchent et accelerent chaque fois que le point de support est deplace par rapport a la projection du centre de masse. Aussi, le systeme de contr^ole calcule la position du pied desiree :
x fh;d = _x T s 2 +k _ x(_x,x_ ) avec x
fh;d le deplacement vers l'avant du pied a partir de la projection du centre
de gravite, _x la vitesse vers l'avant, _x
la vitesse vers l'avant desiree, k
_
x un gain et
T
s la duree predite pour la prochaine periode de support. Le systeme de contr^ole
deplace le pied du point neutre d'une distance proportionnelle a la dierence de la
vitesse reelle et celle desiree. Une fois x
fh;d trouve, une transformation cinematique
3.3 Methodes incorporant la dynamique 55
Le troisieme contr^ole est le contr^ole de posture, qui maintient le corps dans une
posture droite. Les couples de contr^ole de posture sont generes par un contr^ole lineaire de type PD :
=,k
p(, ),k
d( _)
etant l'angle du corps et _la vitesse angulaire du corps,
l'angle du corps desire,
k p etk
v des gains.
Chacune de ces mises en uvre utilise une machine d'etats nis pour suivre le com-portement a venir du modele, et pour synchroniser les actions de contr^ole avec le comportement de course.
{ Cas de la marche
Dans le systeme de [Ko94, KB96], la dynamique est traitee en tant que contrainte. Le mouvement est d'abord calcule avec un modele cinematique, et la dynamique in-verse sert a calculer les couples necessaires pour engendrer un mouvement. Puis une operation de post-traitement verie la validite physique du mouvement par contr^ole de l'equilibre et du confort. Le mouvement est corrige au besoin, en ajustant ma-nuellement les coecients qui lient les positions cinematiques du personnage articule aux resultats de dynamique inverse. Par exemple, un acteur synthetique ajuste sa posture automatiquement en penchant son bassin lorsqu'il transporte un poids lourd.
Dans ce systeme, un premier contr^ole est deni : le contr^ole de l'equilibre, base sur
le ZMP (Zero-Moment Point) [VBSD90]. L'equilibre statique peut ^etre obtenu en
gardant la projection de centre de masse dans le polygone de sustentation du per-sonnage, m^eme si une seule jambe est en appui. Pour la locomotion, il est necessaire de considerer l'equilibre dynamique, car l'eet de l'inertie n'est pas negligeable. Lors d'une phase de simple support, m^eme si le corps semble ^etre en appui sur tout le pied, on peut trouver un point sur la plante du pied pour lequel le moment est nul. De facon similaire, pendant la marche, il est un point appele ZMP ou les couples exerces devraient ^etre nuls. Le ZMP n'est pas un point xe, il eectue une trans-lation du talon jusqu'au bout de l'orteil pendant le support. Il est approxime par une fonction monotone qui avance du talon a l'orteil pendant la duree du support. Normalement, le moment du ZMP doit rester nul tout le temps. Si le resultat de la dynamique inverse indique une valeur non nulle, cela veut dire qu'un tel couple aurait d^u ^etre exerce pour le mouvement. Cette valeur est interpretee ici, comme la mesure du desequilibre a ce moment. Le couple au ZMP est appele le vecteur
d'equilibre b. Soit b
T le vecteur obtenu par la rotation de b de 90 degres dans le
sens indirect. Le contr^ole de l'equilibre sur la translation du bassin tbassinet sur
la rotation du torse rtorse est alors :
tbassin = b
T
rtorse = b