Le domaine de la simulation, lié à l’envol des technologies informatiques, permet d’envisager des cas de plus en plus complexes. Cette amélioration continue des performances des simulations est bien entendu fondée sur l’augmentation des vitesses de calcul des machines, mais également sur les raffinements successifs des algorithmes de simulation. La maquette numérique, basée sur ces technologies de l’information, a permis de bouleverser la conception industrielle. Autrefois organisée autour de revues de projets sur maquettes physiques, les méthodes récentes de conception s’appuient dorénavant sur des prototypes virtuels. L’innovation en terme de simulation devient déterminante. Elle fait appel, entre autres, aux techniques émergentes dites de réalité virtuelle. Ces simulations doivent refléter au mieux les comportements des produits dans le monde auquel ils sont destinés. Et cette constatation est d’autant plus critique, que dans bien des cas le caractère temps-réel des simulations est déterminant. Les fortes potentialités du prototypage virtuel sont claires aujourd’hui. Mais celui-ci ne deviendra une réalité pleinement tangible en entreprise que lorsqu’il aura été débarrassé de toutes les contraintes qui y sont liées pour le moment. Nous pouvons citer la préparation des données de l’environnement que nous souhaitons simuler [DLCG05], mais également les difficultés de mise en œuvre de tous les cas de tests. Ainsi la mise en œuvre de tests permettant de vérifier l’interaction entre l’utilisateur et le produit présente toujours des difficultés liées à la complexité des systèmes en jeu. Les techniques autorisant à mettre en œuvre des mannequins virtuels permettant de tester la maquette numérique, sont principalement issues des domaines du jeu vidéo et des effets spéciaux. Leurs problématiques technologiques sont très proches de la notre et de manière générale, la réalité virtuelle bénéficie énormément des avancées de ces domaines très dynamiques. Cette thèse a pour objet d’y apporter une contribution. Nos travaux ont été envisagés principalement pour des applications liées à l’ingénierie mais les développements effectués pourront bénéficier à tous les domaines intéressés par l’humain virtuel. Une des finalités de notre travail est de vérifier, de manière virtuelle et pendant sa conception, si le produit répond bien aux contraintes liées à son interaction avec l’utilisateur humain (ergonomie, accessibilité…). Notre étude portera donc sur le développement d’un système temps-réel d’animation prenant en compte l’interaction physique avec l’environnement, de manière naturelle et toutes ses implications en terme de stabilité, de contact et d’équilibre.
Modèles d’humains virtuels
Une des représentations, parmi les plus simples, de l’humain virtuel est dictée par les techniques robotiques utilisées pour l’animation . C’est-à-dire que nous pouvons voir l’humain virtuel comme une structure polyarticulée arborescente de solides, que nous appelons assez naturellement squelette. Une géométrie en relation avec la topologie du corps humain [AMH02], est attachée aux solides, ou os. Deux os sont séparés par une articulation.
Pour obtenir un meilleur aspect visuel (rendu 3D), nous pouvons modéliser l’enveloppe extérieure, ou peau de l’humain. Les techniques à base de mailles, de NURBS, de subdivisions de surfaces [Rat03], [Kel98], sont particulièrement adaptées à la modélisation de surfaces organiques. Avec ce type de modèles, des milliers de points paramètrent la surface qui représente la peau du mannequin. La dimension du problème est à l’heure actuelle beaucoup trop élevée pour être résolue de manière directe. L’idée est donc de reparamétrer la surface, grâce au modèle de squelette décrit auparavant, problème de dimension réduite. Le mouvement est alors résolu sur le squelette et les mouvements du squelette sont appliqués à l’enveloppe [AMH02]. Cette technique est appelée skinning et peut maintenant être accélérée par les cartes graphiques et leurs langages de programmation de shaders . Le skinning est beaucoup utilisé dans les jeux vidéo, il est d’ailleurs mis à profit sur les derniers démonstrateurs de nVidiar [Pha05]. C’est la méthode que nous utiliserons pour le rendu – nous utilisons à ce titre le logiciel Virtoolsr qui implémente l’algorithme.
Le réalisme peut être poussé encore plus avant. Les mannequins virtuels peuvent servir lors de crash tests virtuels. Pour obtenir des données intéressantes les modèles doivent être particulièrement détaillés [fSH05], leur topologie sera dictée par les méthodes de calcul utilisées. Ces modèles sont beaucoup plus complexes que ceux cités précédemment et sont loin d’être compatibles avec les contraintes temps-réel évoquées par la suite.
L’animation de personnages virtuels dans la littérature
Contrôle du mouvement
Nous présentons ici des techniques d’animation d’humains virtuels (vus comme des structures polyarticulées arborescentes de solides), déjà données dans la littérature. Nous décrivons d’abord les bases mathématiques utiles à notre étude. Nous abordons alors des méthodes de contrôle très bas niveau, puis des méthodes s’appuyant sur ces couches basses.
Formalisme mathématique : groupes de Lie
Les considérations qui suivent peuvent être retrouvées dans [PC04], ou [MLSS94]. Un cadre mathématique naturel pour l’étude des déplacements des corps rigides (ou solides) est celui du groupe spécial Euclidien SE(3). Le groupe spécial Euclidien SE(3) est le produit semi-direct de R3 et du groupe spécial orthogonal SO(3). Un élément de SE(3) est représenté par une matrice de transformation homogène.
Aparté – SE(3) en deux mots
Concrètement l’espace SE(3) est une modélisation de l’espace dans lequel nous vivons. Pour repérer les positions des solides, on leur adjoint un repère d’espace , dont la position est exprimée dans SE(3) espace 6D. Trois des paramètres sont liés aux translations, les trois autres étant liés à l’attitude, ou orientation du solide. SE(3) est également appelé espace opérationnel, ou espace de la tâche.
Contrôle haut niveau
Edition de mouvement
Les méthodes d’édition de mouvement (motion editing en anglais) permettent de modifier des mouvements obtenus au préalable. Ils pourront ainsi être réutilisés dans des conditions différentes ce celles dans lesquelles ils ont été obtenus, ou transformés dans le but de leur ajouter des mouvements secondaires… Nous distinguons deux grandes familles d’utilisation : l’adaptation de mouvements (motion adaptation) et le motion retargetting (terme anglais difficilement traduisible). La première permet de modifier le mouvement pour l’adapter à de nouvelles conditions, d’environnement notamment. La seconde permet de modifier le squelette sur lequel le mouvement est appliqué.
Les premières techniques d’adaptation de mouvement utilisent des méthodes issues du traitement du signal, sur les signaux des paramètres articulaires [BW95], [WP95] : filtrage, décomposition fréquentielle, décomposition temps-fréquence, interpolation, look-up tables… Elles permettent de modifier le mouvement directement sur les signaux articulaires. On peut accentuer la nervosité du mouvement (en accentuant les hautes fréquences), au contraire rendre les mouvements posés, ou mélanger deux mouvements par interpolation… Ces méthodes sont pour la plupart articulaires, aussi nous ne maîtrisons pas toujours parfaitement le sens de nos modifications et celles-ci peuvent amener à violer des contraintes. Aussi [GL98] introduit un algorithme permettant d’effectuer des modifications sur le mouvement, tout en respectant certaines contraintes opérationnelles. Grâce à cette méthode, nous pouvons, par exemple, modifier la position des mains alors que les pieds sont contraints à leur position initiale. La différence avec la cinématique inverse est que l’optimisation est faite sur toute la séquence de mouvement (on parle d’optimisation espace-temps). La différence entre le mouvement initial et le mouvement résultant est minimisée, tout en respectant les contraintes, ce qui permet de conserver les caractéristiques du mouvement initial (comme la démarche par exemple). Le même auteur utilise la même technique pour le motion retargetting [Gle98]. Dans ce cas on ne modifie plus les contraintes opérationnelles identifiées, mais le squelette sur lequel le mouvement est appliqué. C’est-à-dire que nous modifions le squelette tout en respectant des contraintes en position de repères de contrôle.
Les méthodes vues jusqu’à présent sont cinématiques, il existe également des méthodes dynamiques d’édition de mouvement [PW99], [SHP04]. Mieux, certaines permettent de rendre physiquement réaliste un mouvement qui ne l’était pas. Le principe du premier article [PW99] est de trouver le mouvement physique le plus proche du mouvement initial, les paramètres peuvent alors être modifiés et le mouvement final enfin reconstruit. Le problème est lourd d’un point de vue calculs. Le mouvement initial est donc d’abord appliqué sur un squelette à la cinématique simplifiée. Le mouvement physique le plus proche est ensuite recherché par un problème d’optimisation (espace-temps) dont le critère est une distance entre le mouvement résultant et le mouvement initial, sous contrainte de respect de la dynamique. Le deuxième article ( [SHP04] ) réduit aussi la dimension de l’espace des solutions, mais en faisant l’observation que les mouvements sont souvent coordonnés. Il postule grâce à des observations biomécaniques que quand une jambe bouge, le mouvement du bras opposé est connu. Le mouvement est donc reparamétré.
|
Table des matières
Introduction
1 Contexte de la simulation des humains virtuels
1.1 Modèles d’humains virtuels
1.2 L’animation de personnages virtuels dans la littérature
1.2.1 Contrôle du mouvement
1.2.1.1 Formalisme mathématique : groupes de Lie
1.2.1.2 Contrôle bas niveau
1.2.1.3 Contrôle haut niveau
1.2.1.4 Humains virtuels interactifs
1.2.2 Spécification du mouvement
1.3 Prototypage virtuel
1.4 Mise en place des prémices d’une architecture
1.4.1 Schéma fonctionnel de la simulation d’un humain virtuel
1.4.2 Identification des éléments constituants du contrôle
1.4.2.1 Contrôle d’une tâche dans l’espace opérationnel
1.4.2.2 Contrôle d’une tâche interne
1.4.2.3 Contraintes physiques et biomécaniques
1.4.2.4 Proposition d’une architecture pour le bas niveau
1.5 Contributions scientifiques
2 Génération des mouvements d’un humain virtuel
2.1 La passivité : un guide de synthèse pour la commande
2.2 Architecture
2.2.1 Détails de la simulation et des contrôles externes et internes
2.2.1.1 Simulation physique
2.2.1.2 Intégration numérique
2.2.1.3 Contrôle de tâches externes
2.2.1.4 Contrôle interne
2.2.2 Multi-tâches conflictuel
2.2.2.1 Résolution de tâches conflictuelles par pondération
2.2.2.2 Résolution de tâches conflictuelles par priorités
3 Gestion des contraintes unilatérales
3.1 Solveur de contraintes unilatérales
3.1.1 Gestion des contacts : état de l’art
3.1.2 Solveur de contraintes unilatérales par LCP
3.2 Contact et limites articulaires
3.2.1 Formulation du contact
3.2.2 Formulation des limites articulaires
3.3 Humains virtuels en équilibre
3.3.1 Analyse de l’existant
3.3.2 Intégration de l’équilibre dans notre architecture
3.3.2.1 Résolution de l’équilibre par LCP : une première approche
3.3.2.2 Equilibre multi-contacts non-coplanaires
4 Ordonnancement de modes de commande
4.1 Transition de modes de commande
4.1.1 Mise en place des différents modes
4.1.2 Ordonnancement
4.2 Intégration
4.3 Applications et performances
4.3.1 Applications
4.3.1.1 Mouvements simples
4.3.1.2 Interaction avec une balle
4.3.1.3 Deux mannequins
4.3.1.4 Fonctionnalités composées
4.3.1.5 Cas industriel
4.3.2 Performances
4.4 Perspectives
Conclusion