On donne dans le tableau ci-dessous les centres de principales articulations utilisées dans notre application pour animer le signeur virtuel. Le repère principal du standard H-Anim est schématisé dans la figure ci-dessous donc les valeurs sont par rapport ce repère.
Joint Centre Angles et débattements
X Y Z (en °)
hanim_HumanoidRoot 0.00 1.1314 0.0 = 0.0, = 0.0, = 0.0..0.0
hanim_sacroiliac 0.00 1.1314 0.0 = -0.045..0.045, = -0..0, = -0.015..0.015
hanim_vl5 0.0049 1.1314 0.00 = -10..144, = -45..45, = -40..40
hanim_vc7 0.00 1.5350 -0.05 = -20..45, = -30..30, = -34..34
hanim_l_shoulder 0.1761 1.506 -0.0610 =-206..64, =-31..61.45, =-12.25..167.80
hanim_l_elbow 0.2491 1.2583 -0.0736 = -149.75..0.00, = -85..80, = 0..0
hanim_l_wrist 0.3203 1.0144 0.0436 = -45..45, = 0..0, = -85..100
hanim_r_shoulder -0.1761 1.506 -0.061 =-206..64, =-31..61.45, =-12.25..167.80
hanim_r_elbow -0.2491 1.2583 -0.0736 = -149.75..0.00, = -85..80, = 0..0
hanim_r_wrist -0.3203 1.0144 0.0436 = -45..45, = 0..0, = -85..100
hanim_skullbase 0.00 1.6850 -0.0275 =-51.5..25.8, =-43.5..43.5, =-23.5..23.5
2 Valeurs des symboles utilisés dans la description du signe
Nous présentons ci-dessous les valeurs des différents symboles intervenant dans les messages de description d’un signe.
1. Points de contact manuels
2. Localisations
Plans horizontal et frontal Plan sagittal (préfixe Front)
i n 3. Orientations
Exemple : signe LSF Maison
Direction n de la paume Direction i de l’index
4. Mouvements secondaires 4.1. Au niveau de la main
(Mathématiques) (Ours) (Farine) (Argent) (Chèvre) (Homard) (Compter)
Wiggle Hook Rub Cost Flatten Scissor Count 4.2. Au niveau du poignet
(Crayon) (Poisson) (Cuiller) (Hélicoptère)
Twist Wave | WaveAt Circumduct Oscillate 5. Symétrie.
5.1. Symétrie complète.
(cheminée) (couloir) (rester) (fréquenter pers.)
Symmetrical OppositeAboutIpsi OppositeAboutContra Opposite
5.2. Conservation de position relative. 5.3. Anti-symétrie.
(apporter) (sombre) (touriste) (limonade)
ConstantGap
of: SymmetricalGap
of: ConstantGap
aboutRadialIpsiPlaneOf: AntiSymmetrical 6. Répétitions.
(maison) (touriste) (lavabo) (rideau)
repeat repeatRadial RepeatExchanging
Hands reverse
(apprendre) (apprendre) (étagères) (scolaire)
retrace reverseAndRepeat repeat: <n>
times from:
RepeatFrom CurrentPoint:
3 Primitives statiques d’expressions non-manuelles
Messages pour chaque élément de visage
eyes eyebrows mouth cheeks shoulders
LookFront neutral neutral neutral neutral
lookLeft smile
lookRight doubt,
anger
sad hollow lowerABit
lookAside1 close
lookUp frown openABit inflate
ABit
lower
lookDown halfOpen
close pain open inflate raiseABit
halfClose fullOpen
closeABit raise,
suprise oShape inflate
Left raise
open oClose
fullOpen oCloseABit inflate
Right rotateBy: n
4 Synthèse des propriétés manuelles des signes
Pour synthétiser un signe on doit être capable de générer les quatre propriété manuelle : configurations manuelles, localisation, l'orientation et le movement. Dans ce annexe on donne les formules de configurations du pouce et des doits pour la main et les angles du bras et du poignet.
4.1 Synthèse des configurations manuelles
On utilise la cinématique directe pour l'affectation des primitives aux différents doigts.
4.1.1 Configurations du pouce
Pour placer l'extrémité du pouce à une certaine position de la main. On va résoudre le système (redondant) de positionnement en faisant l'hypothèse que la flexion en MCP est connue.
Il ne varie pas sensiblement et reste faible (aux alentours de 10°) dans toutes les configurations.
1 Le regard est dirigé vers le côté dominant du signeur (droitier dans notre cas).
X
Y Z
Z
Y X
Z X Y
Z X Y
I P 1 MC P 1 C MC 1
W
P
P
P1
P
P
P P
Modèle cinématique du pouce.
On appel respectivement R1, R2 et R3 les repères liés aux articulations CMC, MCP et IP,
1 la rotation initiale (constante) de passage de R1 à R2, et p1, p2, p3 les longueurs des segments du pouce (respectivement métacarpien, phalanges proximale et distale), alors les coordonnées de son extrémité T s'écrivent :
1 0 1
0 0 0
0 1 0 0
0 0
1 0
0 0
1
3 3
3 3 2 2 2
2
2 2 2
2
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1
1 1 1
1 1
1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1
1
1
s p
c p s p c
s
c p s
c c s p c
c s s s s
c c s s c s
s p s
c c
c s
c c p c
s s s c s
s c s c c
c z
y x x
R T
La méthode que nous allons appliquer, dite de la descente par coordonnées. Elle consiste à considérer la distance du point xT au point cible x comme fonction d'une seule des inconnues, les autres étant fixes. Appelons i le i-ème couple de rotation et déterminons sa valeur optimale i*. Réécrivons xT
xT = a sin i + b cos i + d
où les vecteurs a , b , et d ne dépendent pas de i. La distance x - xT² minimale est alors obtenue pour
0 ) cos
sin )(
sin cos
( )] 0
)(
(
[
x d b
a b
a d soit
x x x x d
i i
i i
t i
T T
t
En dérivant (1), équation paramétrique du cercle de centre d, il vient : 0 ) cos sin
)(
sin cos
( i i i i
t a b a b
Et en retranchant cette équation de (2), on obtient finalement
) (
)
* (
x d b
x d tg ta
t
i
Des deux valeurs possibles pour i*, il nous faut garder celle pour laquelle x - xT est minimale, c'est-à-dire celle qui fournit une dérivée seconde – ou encore la quantité
) )(
cos sin
(a i b i d x
t – positive. De l'intervalle admissible, on retient enfin la borne la plus proche, au cas où la valeur trouvée n'y est pas comprise.
4.1.2 Contraintes sur les angles articulaires
Les quatre doubles inégales suivantes représentent les contraintes sur les angles articulaires qui traduisant des limitations mutuelles entre les quatre doigts (2-5) :
1
max (3-54° , 2min) 2 min (3+25° , 2max)
max (2-25° , 4-45° , 3min) 3 min (2+54° , 4+20° , 3max) max (3-20° , 5-44° , 4min) 4 min (3+45° , 5+48° , 4max)
max (4-48° , 5min) 5 min (4+44° , 5max)
Ces contraintes sont appliquées à posteriori pour modifier éventuellement les angles définis par les configurations digitales et les propriétés manuelles globales.
Deux autres types de contraintes aussi :
L’abduction maximale diminue avec la flexion pour atteindre une valeur quasiment nulle à partir d’une certaine limite, fixée aux deux tiers de la flexion maximale :
)
. 3 / 1 2 ( ,
3 min 2
max max
max
Afin de tenir compte de la convergence des doigts en flexion vers le point scaphoïdien, et étant donné l'ordre des rotations choisi, il faut définir (artificiellement) une abduction proportionnelle lorsque la flexion dépasse cette même limite :
) 2 3
( 3. 2 3
2
max max
max
4.2 Localisation et orientation
Pour pouvoir générer une spécification manuelle complète, nous devons aussi être en mesure de calculer les angles du bras et du poignet, qui définissent respectivement la localisation et l’orientation de la main dans l’espace.
4.2.1 Positionnement du poignet dans l'espace
Le positionnement du poignet est également un problème de type géométrique inverse et s'exprime de la façon suivante : étant donnée une position souhaitée du poignet t(x y z), quels sont les angles articulaires à appliquer au bras (c'est-à-dire au système {bras supérieur/épaule, avant-bras/coude}) pour atteindre ce point ?
Pour obtenir la position du poignet P, nous devons prendre en compte les 4 degrés de liberté suivants du bras humain :
trois rotations possibles dans l'épaule : flexion/extension (angle e), abduction/adduction (angle e), et rotation axiale (angle e);
une rotation en flexion au niveau du coude (angle c), la rotation radio-ulnaire c
n’intervenant pas dans le positionnement de P mais dans l’orientation de la paume.
Ecrivons les équations donnant la position de P dans le repère R1 (lié à l'épaule). En appelant l1 et l2 les longueurs respectives du bras supérieur et de l'avant-bras, on exprime les coordonnées de P dans le repère R2 lié au coude :
xP = t(l2 cc , l2 sc , 0, 1) On trouve alors l'expression de xP dans R1 :
e e c
e e c
e e e c
e e
e c
e e c
e
e e c
e e c
e e e c
e e
c s l s s c l s c s s l c c s l z
s l s c c l c s l y
c c l s s s l s c s c l c c c l x
1 2
2 2
1 2
2
1 2
2 2
Il est clair que le nombre d'inconnues (4) est supérieur au nombre d'équations (3).
(3)
e c
e e e c
e e
e
e ys c l c c l s c s s lc
xc 2 2 1 et
c e e
e zc l s s
xs 2 soit encore
1
2c xc c ys zs c l
l c e e e e e
et
e e c
es xs zc
s
l2
En portant ces valeurs dans y, on obtient alors
2 2 2 2 2 2 1 1
1
1 2 2
2l xcece l yse l zsece l l x y z ce qui fournit une équation du second degré en )
( 2e tan
dont les solutions sont :
On peut remarquer que, parmi les deux solutions possibles pour e, une seule correspond à une configuration « naturelle » du bras humain (solution avec signe "-") .
Donc on doit calculer pour chaque valeur acceptable de e le triplet (e , e, c). En suite pour chaque position clés (point intersection du maillage de l'espace défini par les localisations symboliques introduit au paragraphe 2.3.1.2 du troisième chapitre) on choisi manuellement la configuration qui nous paraissait naturelle.
Pour les autres points M de l'espace du signeur, on les trouve par cette méthode
Pour chacun des 4 angles du bras, on commence par calculer, sur l'ensemble V des points du maillage, la moyenne pondérée par l'inverse de la distance à chacun :
V i V i
i M d
i M d
) , (
1 ) , (
1
*
, {e ,e ,e ,c}
C A
C B A tan B
e Arc
2 2 2
.
2
avec
2 2 2 2 2 2 1 1
1
1
2 , 2 ,
2 xcl zsl B yl C l l x y z
A
e
e
Ceci nous fournit un quadruplet d'angles q. Dans l'ensemble des solutions possibles, noté Poss, il nous faut ensuite rechercher celle dont le quadruplet d'angles est le plus proche de celui que nous venons de calculer :
) (
*
min qq
q
qPoss
On prend les angles q*comme configuration du bras.
4.2.2 Orientation absolue de la main
Il faut obtenir les trois autres angles de la chaîne articulaire du bras, c, p et p, qui définissent l’orientation palmaire. Les axes définis pour la paume sont tels que XP est confondu avec i et YP avec n. La matrice d'orientation globale de la main, notée
RP
R0A , s'exprime en colonnes :
i n i n
ARP
R0
La relation liant la matrice d'orientation globale du poignet R0AR2 (après rotations dans l'épaule et flexion du coude) à la matrice R0ARP :
) ( ).r (θ ).r (ψ .r A
AR R R x c y p z p
R
'3 ' 3
2 2 0 p
0
Les données du problèmes sont :
l'orientation courante m n a
a n m
a n m
a n m AR
R
3 3 3
2 2 2
1 1 1
'2 0
l'orientation souhaitée
3 3 3
2 2 2
1 1 1
0
RP
R A
En réécrivant (5) : ( ). . ( ). '( )
3 3 0
2 0 2
1 1
z p p y R R R R c
x A A r r
r P , et en développant,
p p
p p
p
p p
p p p p
p
c t
c t
c t
c t
c t
c
t c
t c t
c t
c t
c t
c t
t t
t
c s
s c
s
c s
s s c c
c c
a s n c
a s n c
a s n
s a c n s
a c n s
a c
n m m m
0 .
. .
. .
.
. .
. .
. .
on trouve les angles recherchés par identification :
a Arctan tn
t
c ,
a c Arctan mt
t
p .
m
Arctan ttmv
p
4.2.3 Orientation et positionnement
(5) (6)
-un point M, ( 1 2 3)
0 om om om
OMR t , à atteindre.
-un point donné de la main dont les coordonnées dans le repère lié à la paume sont connues : )
(pm1 pm2 pm3 PMR t
P
-et l'orientation absolue
3 3 3
2 2 2
1 1 1
0
RP
R A souhaitée pour la main,
quelles sont les coordonnées absolues OPR0t(x y z) du poignet ? Les relations vectorielles OMR0 OPR0PMR0 et RP RP
R RA PM
PM 0 0 fournissent une réponse immédiate :
) . .
. (
) . .
. (
) . .
. (
3 3 2 3 1 3 3
3 2 2 2 1 2 2
3 1 2 1 1 1 1
0
pm pm
pm om
z
pm pm
pm om
y
pm pm
pm om
x OPR
Remarque :
Les formules données pour calculer les angles de positionnement et
d'orientation sont calculer dans les repères données au schémas à coté (main gauche), pour synthétisé les configurations manuelles avec le VRML il faut prend en compte les changement des bases.
X Y
X Y
X Y