Sujet de mon stage


Introduction

Il s'agit d'animer un agent conversationnel pour naviguer oralement dans un monde virtuel. Cet agent a été développé au laboratoire GREYC sous la direction de Pierre Nugues avec Christophe Godéreaux, Pierre-Olivier El Guedj et Frédéric Revolta .
Ce prototype se constitue d'un dispositif de reconnaissance vocale du commerce ainsi que d'un circuit de synthèse de parole. Il s'appuie sur une architecture modulaire reliée à un environnement virtuel. Les entités du prototype ont pour rôle de traiter l'analyse syntaxique et sémantique, ainsi que le dialogue et les actions qui en résultent. Elles permettent à l'utilisateur de se déplacer à la voie dans un monde relativement complexe. Le système résultant s'integrera dans un outil de téléconférence. Ce projet à été développé dans le cadre du programme COST-14 CoTech de la commission des communautés européennes sur le travail coopératif à l'aide de l'ordinateur.
Je travaille plus précisemment sur l'aspect animation graphique 3D de l'agent virtuel sous l'environnement DIVE où plusieurs utilisateurs peuvent se connecter et piloter leur propre agent.



Un exemple de monde virtuel: ithaques
(Frédéric Revolta)

Une image GIF pour voir ce que l'on perçoit du monde. (53 K)
Notre agent virtuel en 3D (fichier VRML).
Quelques snapshots de notre agent en pleine action.


Le problème de l'animation 3D temps réel en réalité virtuelle

Le but recherché

A l'issue de l'étape du raisonnement géométrique réalisé par Frédéric Revolta, l'agent sait où il doit se diriger et vers quel endroit regarder. Il lui reste ensuite à accomplir les déplacements adéquats de manière fluide et réaliste, afin que d'autres utilisateurs puissent comprendre ce qui se passe, avec leurs yeux.
Notre agent est constitué d'objets (tête, torse, bras, jambes, ...) articulés autour d'axes de rotations (épaules, bassin, cou , ...). Simuler un déplacement c'est construire une séquence de transformations des positions (en fait des angles) de tous ces objets. Pour cela, nous appliquons une technique de planification linéaire hiérarchique où le mouvement est décomposé petit à petit, en fonction du but recherché.


La planification

Elle a pour but de fabriquer une chaîne d'opérateurs en fonctions du problème posé. Ici, chaque opérateur traduit une position intermédiaire de l'agent à obtenir. Mais n'oublions pas que nous sommes contraint par le temps réel: Il ne s'agit donc pas de construire tous les petits déplacements, ce serait beaucoup trop long.
En fait, chaque opérateur de planification va représenter une position intermédiaire (comme une photographie) que l'agent doit atteindre. Celles-ci seront soumises l'une après l'autre à un simulateur cinématique. Ce simulateur va effectuer en parallèle les micro-déplacements des objets constituant l'agent jusqu'à ce qu'une position intermédiaire soit atteinte, et ainsi de suite avec le prochain opérateur.
De plus, lorsqu'on se déplace, on repète souvent les mêmes actions (par exemple "la meilleure façon de marcher c'est de mettre un pied devant l'autre, puis de recommencer" :-). Donc il semble judicieux de pouvoir fabriquer une chaîne d'opérateurs qui puisse être circulaire. Ainsi, quand la planification est terminée, en soumettant cette chaîne d'opérateurs au simulateur cinématique nous obtenons notre animation 3D. Evidemment, le simulateur s'arrète quand le but est atteint.
Un peu plus de détails concernant les structures de données.


Les règles de planification

elles permettent de décomposer de manière linéaire et hiérarchique le problème posé en sous-problèmes, et ainsi de suite jusqu'au niveau des opérateurs. On peut par exemple décrire ce qu'il faut faire pour articuler une jambe, puis utiliser cela lorsqu'on veut simuler une marche.
Exemple de décomposition symbolique : aller vers le point P =
se tourner vers P,
PUIS-EXECUTER-EN-BOUCLE faire un pas vers P.
Ensuite, il faut décomposer l'action "faire un pas vers P" de manière à faire bouger les jambes, les bras ... et ainsi de suite.



Applications futures

On peut envisager de faire de la téléconférence virtuelle avec un tel système. En effet, chaque utilisateur peut se connecter via internet au monde virtuel représentant une salle de conférence et commander son agent virtuel à la voix pour qu'il se déplace.
Un autre projet est en cours de réalisation à l'Université de Caen: Il s'agit de la reconstition virtuelle en 3D d'une maquette de la Rome antique que des utilisateurs pourront visiter grâce à nos agents virtuels.