• Aucun résultat trouvé

6.2 Application des concepts de l’ing´ enierie logicielle

6.2.2 Pr´ esentation des composants et syst` emes repr´ esentationnels mis en œuvre134

Dans la figure 46, la premi`ere unit´e de capture permet d’´etablir une interface avec une solution commerciale de capture du mouvement : la combinaison Moven1 (figure 47a) de l’entreprise XSens2. Le logiciel propri´etaire Moven studio permet de recevoir des coordonn´ees mises en forme de 23 segments du corps et d’envoyer ces coordonn´ees sur le r´eseau. L’unit´e de capture U CM permet de r´ecup´erer les donn´ees depuis le r´eseau, les mettre en forme, et les r´einjecter dans le syst`eme. Le flux de donn´ees en sortie de U CM est un flux structur´e de blocs dont l’attribut donn´ees contient les coordonn´ees des segments du corps. La deuxi`eme unit´e de capture fait l’interface avec le syst`eme Liberty3 (figure 47b) de chez Polhemus4. L’unit´e de capture U CP se pr´esente comme une couche se pla¸cant au dessus du pilote du dispositif. U CP renvoie un flux de donn´ee des coordonn´ees de chacun des capteurs. Les deux unit´es de capture repr´esentent donc deux modalit´es : U CM est une premi`ere modalit´e <Moven, coordonn´ees de segments du corps> ; U CP est une deuxi`eme modalit´e <capteurs Polhemus, couple de

coordonn´ees>. Le dernier composant du composant Capture regroupe les fonctionnalit´es d’un synchronisateur, d’un adaptateur et d’un concentrateur. Lorsque les deux modalit´es sont utilis´ees en mˆeme temps, sont rˆole est d’abord de synchroniser les donn´ees provenant de U CM et U CP. Les coordonn´ees donn´ees par le Polhemus sont ensuite adapt´ees au rep`ere utilis´e par la combinaison Moven. Enfin, le concentrateur remplace les coordonn´ees des poignets donn´ees par la combinaison par les coordonn´ees transform´ees du syst`eme Polhemus. Ainsi, on obtient en sortie de ce composant un flux de coordonn´ees du corps humain ; le syst`eme repr´esentationnel est le mˆeme que celui fourni par U CM. Les coordonn´ees des poignets sont par contre command´ees par les Polhemus et non par la combinaison Moven : en effet les valeurs donn´ees pour les poignets proviennent alors des capteurs Polhemus (recal´es sur la Moven) et non plus de la combinaison Moven.

(a) Combinaison Mo-ven.

(b) Capteurs Polhemus Liberty.

Fig. 47: Capteurs utilis´es par eMotion pour la capture de mouvement.

eMotion est compos´ee de six extracteurs de caract´eristiques. Deux d’entre eux poss`edent deux m´ethodes de calcul de la caract´eristique, selon le syst`eme repr´esentationnel de capture

1

http ://www.xsens.com/en/general/mvn

2

http ://www.xsens.com/

3

http ://www.polhemus.com/ ?page=Motion Liberty

4

6.2. Application des concepts de l’ing´enierie logicielle 135

utilis´e. En effet, le concepteur peut choisir de n’utiliser qu’un couple de coordonn´ees rattach´ees aux poignets (en utilisant les capteurs Polhemus seuls) ou les coordonn´ees compl`etes du corps (en utilisant la combinaison Moven ou les capteurs et la combinaison en parall`ele). Ainsi L’extracteur ECvit permet le calcul de la vitesse du mouvement soit en moyennant les vitesses des deux capteurs (utilisation des deux capteurs Polhemus seuls) ou en calculant la vitesse du bassin (utilisation de la combinaison Moven en conjonction ou non avec les capteurs Polhemus). De la mˆeme fa¸con, l’extracteur ECb seuille dans le premier cas la distance entre les poignets. Dans le second cas, il v´erifie ´egalement la distance des poignets par rapport au tronc.

Ce choix de dispositif implique ´egalement deux composants utilisables seulement lorsqu’on dispose des coordonn´ees compl`etes du corps. L’extracteur ECt calcule la forme du tronc en analysant la position des vert`ebres par rapport au plan form´e par les ´epaules et le bassin. L’ex-tracteur ECsrcalcule la composante sagittale du mouvement de fa¸con relative `a l’orientation du tronc. Si le tronc est orient´e dans le mˆeme sens que le mouvement, alors le mouvement est vers l’avant ; dans le sens inverse, vers l’arri`ere.

Le composant d’extraction de vitesse ECvit poss`ede deux flux de sorties. Le premier est un flux de vecteurs vitesse du mouvement. Le second est la caract´eristique de v´elocit´e du mouve-ment, calcul´ee apr`es seuillage de la norme du vecteur vitesse calcul´e. Les extracteurs ECvert et ECsa se basent sur le vecteur vitesse d´elivr´e par ECvit pour connaˆıtre les composantes sagittales et verticale du mouvement. Ces tests sont effectu´es par simple test de signe de la composante verticale (axe des z) et sagittale (axe des x) du vecteur vitesse re¸cu. L’extracteur

ECsa d´elivre un flux identique `a ECsr. La diff´erence entre les deux composants vient du fait que ECsacalcule une composante sagittale dans un rep`ere absolu. Par exemple, sur une sc`ene munie d’un rep`ere fixe avec l’axe des x orient´e vers le public, ECsa permettra de d´ etermi-ner si le sujet de la reconnaissance se d´eplace vers le public ou en contraire s’en ´eloigne. Le composant ECsr permettra de d´eterminer si ce sujet marche vers l’avant ou `a reculons.

Le composant Interpr´etation ne contient qu’un interpr´eteur I1. Cet interpr´eteur est bas´e sur la th´eorie des ´emotions basiques et un mod`ele discret des ´emotions (voir chapitre 1). Il identifie donc les ´emotions entre joie, peur, col`ere, tristesse, d´egoˆut et surprise. Tout comme certains extracteurs de caract´eristiques poss`edent deux algorithmes diff´erents afin de s’adapter au flux d’entr´ee, l’interpr´eteur I1 met en jeu deux algorithmes d’interpr´etation diff´erents. Le premier prend en entr´ee quatre caract´eristiques : la v´elocit´e (ECvit), l’´ecartement de bras (ECb), et les composantes verticales (ECvert) et sagittale (ECsa) du mouvement. Cette premi`ere interpr´etation est effectu´ee grˆace `a un syst`eme `a base de r`egles. La deuxi`eme interpr´etation prend en compte, en plus des caract´eristiques susnomm´ees, l’expansion du tronc (ECt). De plus, elle permet le choix du calcul de la composante sagittale entre ECsa et ECsr. Cette interpr´etation repose sur un algorithme de calculs de poids dont les valeurs sont tir´ees de [46].

Chacun des composants pr´esent´es dans cette architecture se base sur des flux de donn´ees et produit un flux de donn´ees selon un syst`eme repr´esentationnel qui lui est propre. A la liste de composants (U CP, U CM, ECvit, ECb, ECt, ECsr, ECvert, ECsa, I1) correspond donc la liste de syst`eme repr´esentationnels (srCP, srMC, srvitA , srAb, srtA, srsrA, srAvert, srAsa, sr1I).

6.2.3 Param´etrisation d’eMotion : architecture en agents PAC

Dans ce paragraphe nous abordons eMotion du point de vue d’un syst`eme interactif. En effet, le concepteur est capable de param´etrer, grˆace `a des widgets graphiques, chaque ex-tracteur de caract´eristiques du syst`eme. Le mod`ele PAC, initialement d´edi´e aux syst`emes interactifs, s’applique ici de fa¸con originale : nous pr´esentons ici l’architecture PAC du sys-t`eme interactif permettant de param´etrer le canevas eMotion (figure 48). Cette architecture est donc `a concevoir de fa¸con orthogonale `a l’architecture fonctionnelle bas´ee sur la branche ´emotion (figure 46). La solution adopt´ee a consist´e `a cr´eer un agent PAC par composant (quel que soit son niveau fonctionnel - Capture, Analyse ou Interpr´etation). La facette Abstraction de l’agent est le noyau fonctionnel du composant tandis que la facette Pr´esentation d´efinit l’interface graphique qui permet au concepteur de param´etrer le composant. Outre ces agents feuille de la hi´erarchie, nous avons cr´e´e un agent PAC par niveau fonctionnel. Ces trois agents m´edians sont contrˆol´es par un agent PAC unique, racine de la hi´erarchie. Les agents m´edians et la racine ont pour rˆole de g´erer les connexions entre leurs agents fils et ´egalement de ras-sembler les interfaces graphiques de chacun de ces composants. Leur rˆole est principalement un rˆole de contrˆole.

Fig. 48: Hi´erarchie PAC d’eMotion, en trois niveaux. Au niveau m´edian sont pr´esents les composants Capture (“capt”), Analyse (“An.”) et Interpr´etation (“Int.”).

Un composant typique poss`ede donc une facette Pr´esentation (widget graphique), une fa-cette Abstraction et une fafa-cette Contrˆole. Cependant, certains des composants pr´esent´es ne poss`edent pas d’interface graphique et ne pr´esentent donc pas de facette Pr´esentation. De la mˆeme fa¸con, certains composants ne servent qu’`a assurer les communications dans la hi´ erar-chie de composants et ne poss`edent donc pas de facettes Abstraction.

6.2. Application des concepts de l’ing´enierie logicielle 137

Certains composants poss`edent deux facettes Abstraction au lieu d’une : ce type d’agent est la contraction d’une hi´erarchie d’un agent et de ses deux agents fils. Par exemple, eMotion laisse au concepteur et au syst`eme le choix de modalit´es `a utiliser. Nomm´ement, le concepteur peut choisir d’effectuer la reconnaissance sur le couple de coordonn´ees des poignets ou sur les coordonn´ees de tout le corps. Au niveau Analyse, ce changement se traduit par des traitements diff´erents pour le calcul d’une caract´eristique. Typiquement, une telle caract´eristique devrait donc ˆetre extraite par deux composants diff´erents et donc deux agents PAC feuilles (un pour chaque traitement) (figure 49). La facette Contrˆole de la racine (C0) a alors pour rˆole d’envoyer les donn´ees `a l’agent feuille sachant traiter le syst`eme repr´esentationnel utilis´e. La contraction de cette hi´erarchie en un unique agent PAC dot´e de 2 abstractions permet ainsi de factoriser les facettes pr´esentation et de n’utiliser qu’un seul contrˆole.

Fig. 49: Contraction d’une hi´erarchie en un agent `a deux abstractions.

La contraction d’une hi´erarchie d’agents PAC n´ecessite que le changement de facette Abs-traction soit transparent pour le reste du syst`eme. Cela implique donc que les agents feuilles concentr´es produisent le mˆeme flux de sortie. Par exemple, le calcul de la vitesse pr´esente dans tous les cas la mˆeme interface, et propose dans tous les cas les mˆemes flux de sortie. La pr´esence de deux facettes Abstraction permet d’alterner et de calculer la vitesse du bassin lorsque le syst`eme repr´esentationnel “coordonn´ees du corps” est utilis´e, et la vitesse moyenne des deux capteurs quand le syst`eme repr´esentationnel “couple de coordonn´ees” est utilis´e.

Les diff´erents composants sont organis´es dans une hi´erarchie `a trois niveaux. Au niveau le plus bas, chaque composant est ind´ependant et g`ere sa propre interface et ses propres com-munications internes. Au niveau m´edian, les composants Capture, Analyse et Interpr´etation manipulent chacun leurs composants fils. Enfin, un dernier composant au niveau sup´erieur agr`ege les diff´erents widgets graphiques pour former une interface graphique compl`ete, et g`ere les communications entre les composants Capture, Analyse, et Interpr´etation. Dans eMotion, les composants feuilles de la hi´erarchie contiennent enti`erement le code fonctionnel du syst`eme. Les composants des niveaux m´edian et sup´erieur n’ont que des rˆoles de gestion des communi-cations et d’assemblage d’interface et ne disposent donc pas de facette Abstraction. De mˆeme, les composants SAC et S ne permettent pas une interaction graphique et ne pr´esentent donc pas de facette Pr´esentation.

en agissant sur ses agents fils, et de ne pr´evenir le reste du syst`eme que lorsque cela est n´ eces-saire. Le paragraphe suivant et la section 6.4 explicitent la communication entre composants lorsqu’un tel cas survient.