FR 3054358 A1 20180126 FR 1657120 A 20160725 1 PROCÉDÉ ET SYSTÈME DE RECONSTRUCTION DE POSTURE PAR SUIVI SPATIAL DU HAUT D'UN CORPS ET SUIVI DU BAS DU CORPS AU MOYEN D'UN TAPIS DE DÉTECTION DESCRIPTION DOMAINE TECHNIQUE Le domaine de l'invention est celui de la capture du mouvement d'un objet, et du transfert temps-réel de ce mouvement à une structure massique (poly-) articulée modélisant l'objet. L'invention trouve application à la capture du mouvement d'un corps humain via des capteurs disposés sur une personne, et à la représentation de ce mouvement via l'animation d'un avatar dans une simulation numérique. ÉTAT DE LA TECHNIQUE ANTÉRIEURE On cherche dans un certain nombre d'applications à représenter les mouvements d'une personne dans une simulation numérique. Dans la majorité des cas, la personne porte un ensemble de capteurs dont les données sont utilisées pour animer son avatar numérique dans la simulation. Les besoins principaux d'une capture du mouvement sont, d'une part, de localiser la personne dans l'environnement, et, d'autre part, d'estimer la posture complète de la personne. Pour répondre conjointement à ces deux besoins, une grande partie des systèmes existants de capture du mouvement d'une personne utilise une panoplie complète de capteurs à porter sur l'ensemble du corps, avec généralement l'utilisation d'un capteur par membre du corps. Ces systèmes sont généralement contraignants à cause du grand nombre de capteurs à installer. D'autres systèmes, plus simples, n'utilisent qu'un nombre limité de capteurs. C'est le cas par exemple des systèmes à base de casque de réalité virtuelle qui permettent de localiser le casque (et donc la tête de l'utilisateur) dans l'environnement, et éventuellement de localiser deux capteurs supplémentaires (des manettes) 3054358 2 représentant les mains de l'utilisateur. Ces systèmes utilisent pour cela des techniques diverses de suivi spatial, avec notamment l'installation de caméras dans l'environnement qui permettent d'observer et de localiser les capteurs, par exemple des marqueurs infrarouges, portés par l'utilisateur. 5 Ces systèmes de capture plus légers permettent de localiser des points simples dans l'environnement, comme la tête ou les mains d'un utilisateur. En revanche, ils ne permettent pas de reconstruire, directement ou facilement, la posture de l'utilisateur, notamment la configuration de ses bras. De plus, ils ne disposent pas d'informations sur le bas du corps, à moins de rajouter des capteurs supplémentaires, sur 10 les pieds par exemple. L'utilisation de tels capteurs sur les pieds reste actuellement un défi car ils sont potentiellement plus difficiles à repérer dans l'environnement, leur faible altitude les rendant en effet plus sensibles aux problèmes d'occlusion. Pour obtenir des informations sur les parties basses d'un utilisateur, il a été proposé de recourir à des capteurs de pression en plaçant une semelle à points de 15 pression dans la chaussure de l'utilisateur. Ces capteurs permettent d'obtenir une carte de pression des pieds de l'utilisateur, et ainsi de déterminer la nature des contacts entre les pieds et le sol. On pourra à cet égard se référer à l'article « Leveraging Depth Cameras and Wearable Pressure Sensors for Full-body Kinematics and Dynamics Capture » de Peizhao Zhang, Kristin Siu, Jianjie Zhang C. Karen Liu, et Jinxiang Chai, in ACM Transactions 20 on Graphics, Proceedings of ACM SIGGRAPH Asia 2014, Volume 33 Issue 6, Novembre 2014, Article n°221. D'autres solutions, comme par exemple celle présentée dans le brevet US 6,916,273 B2, utilisent des tapis à dérouler sur le sol qui embarquent des capteurs de pression. Ces tapis permettent d'obtenir une information grossière (de l'ordre de 5 cm) de la localisation d'une personne dans l'espace. 25 Néanmoins, ces solutions à base de capteurs de pression ne permettent pas de localiser précisément les pieds dans l'environnement, à moins d'implémenter des algorithmes complexes de locomotion à même notamment de permettre la reconnaissance de différents motifs tels que la position couchée, la position accroupie, la position debout, la marche, la course, etc. 3054358 3 EXPOSÉ DE L'INVENTION L'invention a pour objectif de proposer une technique de localisation et de reconstruction en temps réel de la posture complète d'un objet mouvant qui soit peu sensible aux problèmes d'occlusion et qui permette une localisation précise des parties 5 basses. A cet effet, l'invention propose un système de reproduction du mouvement d'un objet par une structure articulée comprenant une pluralité de segments. Ce système comprend un premier et un deuxième ensemble de capteurs fixés, en utilisation, sur l'objet. Les capteurs du premier ensemble de capteurs sont par 10 exemple installés au-dessus du bassin d'une personne faisant office d'objet mouvant, et les capteurs du second ensemble de capteurs sont par exemple installés au-dessous du bassin. Le système comprend par ailleurs un module de suivi spatial pour déterminer la localisation absolue, dans un repère de référence, des capteurs du premier 15 ensemble, et un tapis de détection pour détecter la localisation, dans un repère lié au tapis, des capteurs du deuxième ensemble fixés sur l'objet. Le système peut en outre comprendre une unité de traitement informatique qui réalise un changement de repère pour déterminer la localisation absolue, dans le repère de référence, des capteurs du deuxième ensemble. Cette unité de 20 traitement informatique est en outre configurée pour déterminer, à partir de la localisation absolue des capteurs du premier et du deuxième ensemble, une commande à appliquer à la structure articulée de sorte à la localiser dans le repère de référence en lui faisant adopter une posture reproduisant celle de l'objet. BRÈVE DESCRIPTION DES DESSINS 25 D'autres aspects, buts, avantages et caractéristiques de l'invention apparaîtront mieux à la lecture de la description détaillée suivante de formes de réalisation préférées de celle-ci, donnée à titre d'exemple non limitatif, et faite en référence aux dessins annexés sur lesquels : 3054358 4 la figure 1 représente un exemple de structure massique poly-articulée utilisée comme modèle physique (au sens des lois de la physique) d'un corps humain ; la figure 2 est un schéma d'un système conforme à l'invention pour la capture 5 du mouvement d'un objet sur lequel des capteurs sont fixés ; la figure 3 illustre les capteurs du premier et du deuxième ensemble et les référentiels associés ; la figure 4 est un schéma représentant les étapes d'un procédé conforme à l'invention. 10 EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS L'invention concerne la commande d'une structure massique articulée à partir de données représentatives du mouvement d'un objet. Des capteurs de mouvement sont fixés sur l'objet et l'on souhaite asservir la structure massique articulée 15 pour qu'elle reproduise les mouvements de l'objet. L'objet est typiquement un corps humain ou le corps d'un animal, voire une seule partie d'un tel corps. L'invention n'est toutefois pas limitée à ces exemples, et s'étend ainsi au suivi du mouvement de tout objet mouvant pouvant être représenté par une structure articulée. 20 La structure massique articulée est composée de segments reliés par au moins une articulation. Elle est utilisée comme modèle physique de l'objet dont on suit le mouvement. Il s'agit typiquement d'une structure poly-articulée. La structure massique articulée peut être un modèle numérique de l'objet. L'objectif peut alors être la représentation des mouvements de l'objet dans une 25 simulation numérique, au moyen de l'animation de la structure massique articulée dans la simulation numérique selon une commande déterminée par l'invention. La figure 1 donne un exemple de structure massique poly-articulée 10 pouvant être utilisée comme modèle physique du corps humain dans une mise en oeuvre de l'invention. La structure massique poly-articulée est composée de segments reliés par 3054358 5 des articulations. Un segment désigne un objet rigide ou supposé rigide qui est défini par une géométrie (c'est-à-dire par une forme volumique bien définie), une masse et une inertie. Une articulation désigne une liaison entre deux segments. Cette liaison définit la configuration relative que peut avoir un segment par rapport à un segment auquel il est 5 lié. Une articulation est définie par un ou plusieurs degrés de libertés représentatifs notamment des caractéristiques de centres, d'axes ou de butées. Dans l'exemple de la figure 1, la structure poly-articulée 10 est composée de vingt-et-un segments reliés par vingt articulations. Ainsi, à titre d'exemple, la main est modélisée par un premier segment 13 relié par une articulation 16 à un 10 deuxième segment 12 correspondant à l'avant-bras. L'articulation 16 possède par exemple trois degrés de liberté. Le segment 12 correspondant à l'avant-bras est relié par une articulation 15 à deux degrés de liberté au segment 11 correspondant au bras. Le segment 11 est quant à lui relié à la clavicule par une articulation 14 à trois degrés de libertés. 15 Outre la définition de la structure articulée (les géométries de chaque segment, les masses et les inerties de chaque segment et les paramètres des articulations : degrés de liberté, centre, axes, valeur des buttées), d'autres paramètres nécessaires à la mise en oeuvre du procédé selon l'invention peuvent comprendre : - La définition de la gravité (direction et norme du champ de pesanteur), dont 20 l'effet (le poids) est représenté par des efforts extérieurs appliqués sur le centre de masse des segments de la structure articulée. - La définition du sol. Cette définition de l'environnement comprend la géométrie du sol (reliefs, escaliers etc...), et un repère de référence attaché au sol. Elle permet notamment de détecter les collisions potentielles entre la 25 structure articulée et l'environnement. La définition du comportement en frottement de la structure articulée sur l'environnement. Par exemple, si ce comportement est modélisé par une loi de Coulomb, le coefficient d'adhérence est donné. En référence maintenant à la figure 2, l'invention propose un système de reproduction du mouvement d'un objet par une structure articulée. Ce système 3054358 6 s'appuie sur la fusion de deux types d'informations : des informations D, de mouvement d'une première partie du corps, par exemple le haut du corps, et des informations D, de mouvement d'une deuxième partie du corps, par exemple le bas du corps de la personne. Les informations D, de mouvement de la première partie du corps sont 5 représentatives du déplacement d'un premier ensemble de capteurs de mouvement C, fixés sur la personne, typiquement au niveau du haut du corps de la personne (i.e. au-dessus du bassin). Dans l'exemple représenté sur la figure 2, les capteurs de mouvement C, du premier ensemble sont au nombre de trois, avec un capteur de mouvement Cl placé sur la tête de la personne, et un capteur de mouvement C2, C3 placé sur chaque 10 main de la personne. Ce nombre de trois capteurs est donné à titre d'exemple uniquement, l'invention s'étendant à un nombre quelconque de capteurs de mouvement dans ledit premier ensemble. Un module de suivi spatial capture les informations D, de mouvement de la première partie du corps et fournit un ensemble de données de localisation, en 15 orientation et en position, des capteurs C, du premier ensemble de capteurs dans un référentiel fixe, dit repère de référence 9î.a., prédéfini lors d'une phase de calibration du module de suivi spatial et par exemple attaché au sol. Le module de suivi spatial peut comprendre un ensemble de récepteurs ou de caméras installés préalablement dans l'environnement. Il peut notamment 20 comprendre des lasers à balayage, permettant de repérer des capteurs de mouvement de type marqueurs infra-rouges (actifs ou passifs) associés à un casque (par exemple de réalité virtuelle) pour repérer la position de la tête et à des manettes pour repérer la position des mains. Les informations D, de mouvement de la deuxième partie du corps sont 25 représentatives du déplacement d'un deuxième ensemble de capteurs de mouvement C, fixés sur la personne, typiquement au niveau du bas du corps de la personne (i.e. en-dessous du bassin). Un tapis de détection est, en utilisation, étalé au sol. Ce tapis capture les informations D, de mouvement de la deuxième partie du corps, et fournit un ensemble de données de localisation, en orientation et position, des capteurs de mouvement C, 3054358 7 formant le deuxième ensemble de capteurs. Ces données de localisation sont repérées par rapport à un référentiel fixé sur le tapis, dit repère du tapis 9t. Dans l'exemple représenté sur la figure 2, les capteurs de mouvement C, du second ensemble sont au nombre de deux, avec un capteur de mouvement C4, C5 5 placé sur chaque pied de la personne. Ce nombre de deux capteurs est donné à titre d'exemple uniquement, l'invention s'étendant à un nombre quelconque de capteurs de mouvements dans ledit deuxième ensemble. Le tapis de détection prend la forme d'une surface sensible permettant de repérer un capteur du second ensemble, non seulement dans le plan du tapis, mais 10 également en altitude, i.e. selon les trois axes du repère du tapis 9t. A titre d'exemple illustratif, la surface sensible présente des dimensions de lm*3m et permet de repérer un capteur sur le tapis jusqu'à une altitude de 15cm avec une latence de 10ms. Le tapis de détection et les capteurs Cj du second ensemble peuvent notamment réaliser une détection électro-magnétique exploitant des solénoïdes 15 rayonnants longue portée, selon les principes décrits par exemple dans le document WO 2013/182778 Al. Chaque capteur Cj du second ensemble peut comporter deux solénoïdes d'émission (pour obtenir non seulement une information de position mais également une information de rotation dans le plan du tapis) et une batterie. La surface sensible du tapis 20 de détection peut comprendre un ensemble de solénoïdes de réception sous la forme de boucles permettant de former une grille de détection. Le tapis de détection comprend par ailleurs une carte de contrôle configurée pour récolter les informations détectées par la grille de détection de la surface sensible et fournir les données de localisation. Les données de mouvement du corps issues du module spatial d'une 25 part, et du tapis de détection d'autre part, sont capturées par une unité de traitement informatique 20 configurée, au moyen de différents modules décrits ci-après, pour mettre en oeuvre des étapes à chaque pas de temps de calcul de la configuration à donner à la structure poly-articulée pour reproduire les mouvements de l'objet. L'unité de traitement 20 est notamment dotée d'un module 21 de 30 détermination d'une commande à appliquer à la structure articulée pour qu'elle 3054358 8 reproduise le mouvement de l'objet. Cette commande vient plus précisément localiser la structure articulée dans le repère de référence 9î.a. en lui faisant adopter une posture reproduisant celle de l'objet. Le module 21 de détermination de la commande à appliquer à la structure articulée exploite pour ce faire la localisation absolue de chacun des 5 capteurs fixés sur l'objet dans le repère de référence, à savoir à la fois les capteurs C1-C3 du premier ensemble et les capteurs C4, C5 du deuxième ensemble. On adopte les notations suivantes : {Rsa, Na} désigne l'ensemble des orientations et positions des segments s de la structure articulée, exprimées dans le repère de référence 9î.a. Cet ensemble 10 constitue les sorties du module 21 de détermination de la commande à appliquer à la structure articulée, à savoir la localisation et la posture complète de la structure articulée dans le repère de référence 9î.a. {e,',,e} désigne l'ensemble des orientations et positions des capteurs C, du premier ensemble à des instants tps, exprimées dans le repère de référence 9î.a. 15 Ces orientations et positions sont fournies au module 21 de détermination de la commande à appliquer à la structure articulée. {Ry,py} désigne l'ensemble des orientations et positions des capteurs C, du second ensemble à des instants tps, exprimées dans le repère de référence 9î.a. Ces orientations et positions sont fournies au module 21 de détermination de la 20 commande à appliquer à la structure articulée. Le module 21 de détermination de la commande à appliquer à la structure articulée prend en compte les localisations dans le repère de référence des capteurs C,, C, du premier et du second ensemble. Il est en outre capable, dans le cadre d'une simulation physique d'une structure articulée, de prendre en compte l'effet de la 25 gravité, de détecter les collisions entre les géométries des segments de la structure articulée et la géométrie de l'environnement et de résoudre les contacts en générant des efforts s'opposant aux pénétrations entre les segments de la structure articulée et l'environnement. A cet égard, les collisions entre les géométries des segments de la 30 structure articulée et la géométrie de l'environnement sont détectées à chaque pas de 3054358 9 temps pour une configuration de la structure donnée. Cette détection peut être basée sur la détection de pénétration des géométries comme sur la détection de proximité selon un seuil donné. Les informations de collisions obtenues sont le point et la normale de chaque contact. Les informations de collision sont utilisées pour générer des efforts conduisant à 5 empêcher les pénétrations entre les géométries des segments et celle de l'environnement. Une modélisation du frottement (par exemple par une loi de Coulomb) permet, de plus, de simuler l'adhérence du segment sur l'environnement et contraindre le glissement. Les efforts résultants sont appelés efforts de contact. La géométrie de l'environnement peut être obtenue soit par une 10 connaissance a priori de l'environnement (par exemple on fait l'hypothèse que le sol est plan), soit grâce à une cartographie de l'environnement préalablement modélisé. Le module 21 de détermination de la commande à appliquer à la structure articulée peut ainsi exploiter un moteur de simulation physique temps-réel, tel que le moteur XDE (pour « eXtended Dynamic Engine ») de la Demanderesse, qui permet 15 de réaliser des simulations dans un environnement virtuel en venant affecter des contraintes physiques à une structure articulée, détecter les collisions et gérer les contacts. La commande déterminée par le module 21 peut être utilisée afin de réaliser une analyse du mouvement. En effet, à partir de la connaissance du type de 20 mouvement, des informations spécifiques peuvent être extraites pour des besoins applicatifs particuliers. Cette commande peut également être utilisée pour réaliser une reconstruction complète du mouvement en vue de l'afficher sur un écran 30, par exemple celui d'un ordinateur ou d'un casque de réalité virtuelle. Le mouvement peut être modifié ou amplifié pour obtenir des effets désirés. 25 On a vu précédemment que le module de suivi spatial 22 est configuré pour déterminer, en temps réel, une localisation absolue des capteurs du premier ensemble dans le repère de référence 9îa, à partir des informations de mouvement D, de la première partie du corps. Ce module fournit ainsi l'ensemble {R, e} aux instants ttc. Le tapis de détection 23 est quant à lui configuré pour déterminer, en 30 temps réel, une localisation de chacun des capteurs du second ensemble dans le repère 3054358 10 du tapis fit, à partir des informations de mouvement D, de la deuxième partie du corps. Ce module fournit plus précisément l'ensemble {RI ,pn qui désigne les orientations et positions des capteurs du second ensemble aux instants tic, exprimées dans le repère du tapis 9ît. 5 On a représenté sur la figure 3 le calcul de l'orientation et la position : - des capteurs Cl, C2, C3 du premier ensemble par rapport au repère de référence 9î.a., avec Ki: et p',1, l'orientation et la position dans le repère de référence 9î.a. d'un capteur C, du premier ensemble, avec i=1, 2, 3 dans l'exemple des figures 2 et 3, et 10 - des capteurs C4, C5 du second ensemble par rapport au repère du tapis fit, avec RÇ et l'orientation et la position dans le repère du tapis 9ît d'un capteur C, du second ensemble, avec j=4, 5 dans l'exemple des figures 2 et 3. Afin de permettre la fourniture, au module 21 de détermination de la commande à appliquer à la structure articulée, des localisations dans le repère de 15 référence des capteurs des premier et second ensembles fixés sur l'objet, l'unité de traitement 20 comprend comporte en outre un module 24 de détermination de localisation absolue de chacun des capteurs du second ensemble dans le repère de référence. Ce module 24 exploite la localisation de chacun des capteurs du second 20 ensemble {RÇ /J} dans le repère du tapis, ainsi que la connaissance de la position/orientation du référentiel du tapis 9ît dans le référentiel de référence 9î.a. lié à l'environnement, pour effectuer un changement de repère et replacer chacune des positions et orientations des capteurs du second ensemble calculées dans le repère du tapis à chaque instant tps dans le repère de référence 9î.a. Ce module 24 fournit ainsi les 25 localisations absolues {Ry, ty}. Dans le cas où les deux entrées du module 24 (les localisations des deux ensembles de capteurs issues respectivement du module de suivi spatial 22 et du tapis de détection 23) n'arrivent pas de manière synchronisées (ttc tic), une étape supplémentaire de synchronisation est effectuée par le module 24 pour obtenir des 30 données synchronisées en sortie. Par exemple, si les sorties du module 22 (capteurs du 3054358 11 premier ensemble) arrivent à une fréquence F, et si les sorties du module 23 (capteurs du second ensemble) arrivent à une fréquence Fi REVENDICATIONS1. Système de reproduction du mouvement d'un objet par une structure articulée comprenant une pluralité de segments, comprenant : un premier ensemble de capteurs (C1, C2, C3) fixés, en utilisation, sur l'objet, un module de suivi spatial (22) configuré pour déterminer la localisation absolue ,e}), dans un repère de référence (9î.a.), de chacun des capteurs du premier ensemble fixés sur l'objet, caractérisé en ce que le système comporte en outre : un deuxième ensemble de capteurs (C4, C5) fixés, en utilisation, sur l'objet, un tapis de détection (23) apte à détecter la localisation ({RI,pj}), dans un repère lié au tapis (9ît), de chacun des capteurs du deuxième ensemble fixés sur l'objet. 2. Système selon la revendication 1, dans lequel comprenant en outre une unité de traitement qui comporte : un module (24) de détermination de localisation absolue ({Ry,py}), dans le repère de référence, de chacun des capteurs du deuxième ensemble fixés sur l'objet, et un module (21) de détermination d'une commande à appliquer à la structure articulée de sorte à la localiser dans le repère de référence (9î.a) en lui faisant adopter une posture reproduisant celle de l'objet, ledit module fournissant en sortie la localisation absolue ({Rsa, Na}) de chacun des segments de la structure dans le repère de référence, ledit module exploitant la localisation absolue ({Ria, pic/ },{Rja, ja}) dans le repère de référence, de chacun des capteurs du premier et du deuxième ensembles fixés sur l'objet. 3. Système selon l'une des revendications 1 et 2, dans lequel chaque capteur du second ensemble comprend un émetteur de champ électromagnétique et dans lequel le tapis de détection comprend une matrice de détecteurs électromagnétiques. 3054358 14 4. Système selon l'une des revendications 1 à 3, dans lequel chaque capteur du premier ensemble comprend un marqueur infrarouge et dans lequel le module de suivi spatial comprend un laser à balayage. 5 5. Procédé de reproduction du mouvement d'un objet par une structure articulée, comprenant une étape (LOC-E) de suivi spatial de capteurs d'un premier ensemble de capteurs fixés sur l'objet pour déterminer la localisation absolue ({e,i, ,e}) des capteurs du premier ensemble (C1-C3) dans un repère de référence lié à 10 l'environnement dans lequel se meut l'objet, et caractérisé en ce qu'il comporte une étape de détermination (LOC-T), par un tapis de détection sur lequel se meut l'objet, de la localisation ({RÇ p}) dans un repère lié au tapis de capteurs (C4, C5) d'un second ensemble de capteurs fixés sur l'objet. 15 6. Procédé selon la revendication 5, comprenant en outre les étapes: de détermination de la localisation absolue (LOC-A, {Ry,py}) de chacun des capteurs du second ensemble dans le repère de référence, et de détermination (DET-CDE), à partir de la localisation absolue ({Ria, e},{Ry,py}), dans le repère de référence, des capteurs du premier et du second ensemble, 20 d'une commande à appliquer à la structure articulée de sorte à la localiser dans le repère de référence en lui faisant adopter une posture reproduisant celle de l'objet. 7. Procédé selon la revendication 6, dans lequel la structure articulée est un modèle 25 numérique de l'objet et comprenant en outre une étape de représentation (DISP) des mouvements de l'objet dans une simulation numérique au moyen de l'animation de la structure articulée dans la simulation numérique selon la commande déterminée. 8. Procédé selon l'une des revendications 5 à 7, dans lequel l'objet est le corps d'une personne, comprenant une étape de placement (INST) des capteurs du premier 3054358 15 ensemble sur le haut du corps de la personne et de placement des capteurs du second ensemble sur le bas du corps de la personne. 9. Produit programme d'ordinateur comportant des instructions de code de 5 programme pour l'exécution du procédé selon l'une des revendications 5 et 6 lorsque ledit programme est exécuté sur un ordinateur. 10