SYSTEME AMELIORE DE CAPTURE DE MOUVEMENTS D'UNE
STRUCTURE ARTICULEE Domaine technique
La présente invention concerne un procédé de résolution utilisant un système de mesure disposé sur une structure articulée ou non en vue de capturer ses mouvements. Dans le cas où cette structure est une personne ou un animal, elle peut s'appliquer aux domaines de la médecine, du cinéma d'animation, du sport ou encore aux jeux vidéo.
Art antérieur et problème technique
Depuis ses premiers domaines d'application que sont la médecine et le cinéma d'animation, la capture du mouvement d'un corps humain entier est une technique en plein essor, qui a vu son utilisation se généraliser, notamment au sport et aux jeux vidéo. En effet, la démocratisation des microsystèmes électromécaniques, plus connus sous l'acronyme anglo- saxon de MEMS, notamment la démocratisation des capteurs inertiels et magnétiques comme les accéléromètres, les magnétomètres et les gyromètres, a permis l'essor de dispositifs très compacts appelés "centrales d'attitude" qui sont capables d'évaluer leur propre orientation par rapport à un repère terrestre. Il existe différents types de centrales d'attitude en fonction des capteurs qu'elles combinent. Cependant, dans l'art antérieur, seule la combinaison d'un accéléromètre avec un magnétomètre et un gyromètre dans une centrale d'attitude permet l'estimation de l'orientation cinématique de ladite centrale de façon satisfaisante en présence d'accélération inconnue, c'est-à-dire sans aucune connaissance a priori sur son mouvement ou en présence de perturbations magnétostatiques. En effet, on ne peut estimer l'orientation de la centrale avec une accélération propre de ladite centrale non nulle que dans le cas d'une fusion de données à trois modalités dite fusion AGM (Accéléromètres, Magnétomètres et Gyromètres). Si on se place dans le cas d'une fusion à deux modalités dite AM (Accéléromètres et Magnétomètres), on ne sait pas estimer l'orientation cinématique, car les informations d'accélération et de gravitation contenues dans la mesure de l'accéléromètre sont indissociables.
Ainsi, une solution de capture de mouvement cinématique du corps entier appelée Moyen a été développée par la société Xsens. Cette solution est décrite dans un document intitulé Inertial Sensing Of Human Movement (H.J.Luinge). Elle repose sur des centrales d'attitude connues sous la dénomination commerciale MTx. Chaque MTx combine un accéléromètre triaxe avec un magnétomètre triaxe et un gyromètre triaxe, permettant ainsi de connaître l'orientation et le déplacement du segment du corps sur lequel il est fixé, qu'il s'agisse de l'épaule, du bras ou de l'avant bras par exemple. Ensuite les segments sont associés en tenant compte du squelette. Dix-sept MTx sont ainsi judicieusement répartis dans une combinaison afin de garantir leur position sur le corps. Les MTx sont connectés par des liaisons filaires à deux boîtiers électroniques chargés de collecter et de synchroniser les données des MTx. Les Xbus Masters communiquent avec un ordinateur grâce à une liaison avec ou sans fil. Malheureusement, les centrales d'attitude comme les MTx, qui combinent un accéléromètre avec un magnétomètre et un gyromètre, ont une consommation d'énergie assez élevée. Les MTx ont surtout un coût élevé, qui peut ne pas se justifier économiquement dans certains domaines. Il s'agit là d'inconvénients que la présente invention se propose de résoudre.
La demande de brevet français FR 2 916 069 A1 décrit une autre solution de capture des mouvements cinématiques du corps entier à partir d'une boîte à outils appelée HuMAnS selon l'acronyme anglo-saxon signifiant Humanoid Motion Analysis and Simulation. Il s'agit d'un ensemble d'outils en langage C et Scilab développés par l'une des demanderesses en collaboration avec l'INRIA. Contrairement à la solution Moven citée précédemment, qui est liée aux centrales MTx, la solution HuMAnS est uniquement logicielle et n'est liée à aucun type de capteurs ou de centrale. Elle permet, entre autres, l'analyse, la modélisation et le contrôle de mouvement d'humanoïdes et d'humains à partir d'un modèle géométrique du corps humain permettant de construire des mesures capteurs réparties sur les segments du corps. La solution HuMAnS implémente un filtre de Kalman très simple, qui diverge dans le cas d'une fusion AM sans gyromètre et ne fonctionne de manière satisfaisante qu'en utilisant des centrales AGM complètes à 9 axes sur chaque segment. En outre, ladite demande de brevet
ne divulgue pas de système de mesures permettant de minimiser le rapport coût consommation/performance.
La présente invention propose un système de mesures adapté à la structure articulée dont on souhaite capturer le mouvement, qui satisfait la minimisation du rapport coût consommation/performance.
L'invention a notamment pour but, dans le cadre de la capture des mouvements d'un corps humain entier, d'ajouter des a priori afin de limiter le nombre de capteur de vitesse angulaire, par exemple des gyromètres en général plus consommateur d'énergie et plus chers que les autres capteurs inertiels ou magnétiques, de manière notamment à réduire le coût global de réalisation et d'augmenter l'autonomie du système. Ces a priori incluent notamment le fait que les capteurs sont fixés de manière connue et/ou calibrée géométriquement sur une structure articulée ou non et que, par conséquent, leurs mouvements relatifs ne peuvent être que des compositions de rotations ; ils incluent aussi le fait d'utiliser les algorithmes en mode statique quand les segments sont détectés dans un état pseudostatique.
Reprise des revendications
A cet effet, l'invention divulgue un système de capture des mouvements d'une structure comprenant une pluralité de N segments sensiblement rigides en liaison articulaire avec ladite structure, ledit système comprenant un ensemble de N accéléromètres à au moins un axe de mesure, chacun desdits N accéléromètres étant sensiblement solidaire d'un desdits N segments ; un ensemble de P seconds capteurs aptes à restituer une direction d'un repère fixe, chacun sensiblement solidaire d'un segment ; un ensemble de Q troisièmes capteurs aptes à restituer une mesure représentative d'une vitesse angulaire, chacun sensiblement solidaire d'un segment ; un module de communication des sorties des N accéléromètres, des P seconds capteurs et des Q troisièmes capteurs avec un module de traitement informatique, ledit module de traitement comprenant un observateur d'état, ledit système étant caractérisé en ce qu'il comprend en outre un module de détection d'un état pseudo-statique de chacun des
segments de ladite structure, un module de calcul d'orientation pseudostatique des segments dans un état pseudo-statique, un module de l'observateur d'état configuré pour remplacer les sorties de la fonction de prédiction de l'observateur d'état par les sorties du module de calcul d'orientation pseudo-statique pour les segments pour lesquels la condition de détection en sortie du module de détection d'un état pseudo-statique est vraie et en ce que le nombre Q est strictement inférieur au nombre N et au nombre P. Avantageusement, R étant égal au nombre de branches de la structure dont le mouvement est capturé, le nombre Q est inférieur ou égal à R+1 .
Avantageusement, les seconds capteurs sont des magnétomètres. Avantageusement, les troisièmes capteurs sont des gyromètres.
Avantageusement, l'observateur d'état est un filtre de Kalman.
Avantageusement, les modules du système de l'invention sont configurés par des modèles d'évolution d'états de la forme:
ou :
x désigne un vecteur d'état du corps;
fonction désigne une fonction de mesure caractéristique des accéléromètres, des magnétomètres et des gyromètres;
Mesure = [Mesure Accéléromètre,MesureMagnétomètre,MesureGyromètre désigne Un vecteur de mesures fournies par les accéléromètres, les magnétomètres et les gyromètres;
x désigne la dérivée première de x par rapport au temps;
évolution désigne une fonction d'évolution de l'état du corps;
Avantageusement, le vecteur d'état x est de la forme Χ = [Θ,Θ,Θ,Α∞Χ,Α∞,,Α∞Ζ] OÙ
Θ , è et ë désignent respectivement un angle d'orientation des segments, sa dérivée première et sa dérivée seconde par rapport au temps, où Aœx Aœy et Aœz désignent les composantes de l'accélération d'entraînement Aœ de l'ensemble du corps dans un repère terrestre (Χ,Υ,Ζ).
Avantageusement, le modèle d'évolution d'états du filtre de Kalman utilise lesdits angles pseudo-statiques pour les segments détectés dans un état pseudo-statique et le modèle d'évolution d'états du filtre de Kalman pour les segments détectés dans un état dynamique.
Avantageusement, le modèle d'évolution d'états du filtre de Kalman utilise une hypothèse de constance des accélérations des angles des articulations. Avantageusement, le vecteur d'état est estimé à partir des angles pseudostatiques en sortie du module de calcul desdits angles pseudo-statiques, si tous les segments sont détectés dans un état pseudo-statique et est estimé par le filtre de Kalman, si un segment au moins est détecté dans un état dynamique.
Avantageusement, le critère de pseudo-staticité est rempli par un segment dès lors que l'une au moins de grandeurs fournies par au moins l'un des éléments du groupe comprenant une centrale d'attitude ou un gyromètre qui en est solidaire fournit au moins une mesure choisie parmi la norme d'un vecteur accélération et d'un angle entre ledit vecteur accélération et un vecteur champ magnétique qui est inférieure à une valeur de seuil prédéterminée.
Avantageusement, le modèle d'évolution d'états du filtre de Kalman prédit l'angle Θ , sa dérivée première à et sa dérivée seconde à par la fonction définie par :
où υθ , vé , vë , vAcc_x , vAcc_y et vAcc z sont des termes de bruit sur la mesure de Θ , à , ë , Accx , Aœy et Aœz respectivement.
Avantageusement, le modèle d'évolution d'états du filtre de Kalman prédit l'accélération d'entraînement Acc comme la moyenne des accélérations d'entraînement Acc _ ensembie calculées pour chaque accéléromètre à partir du vecteur Mes _ Acc _ réeiie de mesures réellement fournies par ledit accéléromètre, l'accélération d'entraînement Acc _ ensemble étant calculée pour chaque accéléromètre par :
Acc _ ensemble = - Tem 'RCapteur * (Mes _ Acc _ réelle - Mes _ Acc Acc _ensemble où Terre Recteur désigne une matrice de rotation d'un repère lié audit accéléromètre vers le repère terrestre et Mes _ AccAcc ensemUe=0 désigne un vecteur de mesures théorique calculé en faisant l'hypothèse que l'accélération d'ensemble est nulle. Avantageusement, le modèle de mesure de l'accéléromètre du filtre de Kalman est donnée par l'équation:
Capteur
Mes Acc -■ R Terre * G0
où Mes _ Acc désigne un vecteur de mesures prises par ledit accéléromètre, TemRCapteur désigne une matrice de rotation du repère lié à l'accéléromètre vers le repère terrestre, GO est le champ gravitationnel terrestre mesuré depuis une position initiale dans le repère lié à
l'accéléromètre et TerreTCapteur est un vecteur de translation du repère terrestre vers le repère lié à l'accéléromètre.
Avantageusement, les covariances des bruits de mesure et d'évolution d'états sont estimées à la fois a priori et a postériori.
Avantageusement, les covariances des bruits d'évolution d'états sont estimées a priori à partir d'une comparaison entre les états prédits et des états réels prélevés dans une base de données de mouvements d'un corps.
Avantageusement, les covariances des bruits d'évolution d'états sont réestimées a postériori en calculant pour chaque segment un indice de gain du modèle d'évolution d'états à partir des écarts entre des déviations standards des capteurs pour des états réels prélevés dans une base de données de mouvements d'un corps et les déviations mesurées par lesdits capteurs.
L'invention divulgue également un procédé de capture des mouvements d'une structure comprenant une pluralité de N segments sensiblement rigides en liaison articulaire avec ladite structure, ledit procédé comprenant une étape d'acquisition des mesures de N accéléromètres à au moins un axe de mesure, lesdits accéléromètres étant sensiblement solidaires dudit au moins un segment ; une étape d'acquisition des mesures de P seconds capteurs aptes à restituer une direction d'un repère fixe, chacun sensiblement solidaire d'un segment ; une étape d'acquisition des mesures de Q troisièmes capteurs aptes à restituer une mesure représentative d'une vitesse angulaire , chacun sensiblement solidaire d'un segment ; une étape de communication des sorties des N accéléromètres, des P seconds capteurs et des Q troisièmes capteurs à une étape de traitement informatique, ledit procédé étant caractérisé en ce qu'il comprend en outre une étape de détection d'un état pseudo-statique de chacun des segments de ladite structure, une étape de calcul d'orientation pseudostatique des segments dans un état pseudo-statique, si au moins une sortie de l'étape de détection d'un état pseudo-statique est fausse, une étape remplaçant les sorties d'une fonction de prédiction d'un observateur d'état
qui reçoit en entrée les sorties des N accéléromètres, P seconds capteurs et Q troisièmes capteurs, Q étant strictement inférieur au nombre N et au nombre P, par les sorties de l'étape de calcul d'orientation pseudo-statique pour les segments pour lesquels la condition de détection en sortie du module de détection d'un état pseudo-statique est vraie.
Avantages : La présente invention a donc pour principal avantage de présenter un coût de mise en œuvre plus faible et une autonomie de fonctionnement plus grande. Elle autorise aussi une plus grande facilité d'adaptation à des contextes applicatifs différents (dynamique plus ou moins grande ; précision nécessaire perçue par l'utilisateur, coût du système, autonomie, encombrement...). En fait, la méthode peut proposer un système idéal à la carte, c'est-à-dire selon la spécification des cinq paramètres cités ci-dessus, au moins.
Résumé des figures
D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit faite en regard des figures suivantes qui illustrent des exemples de mise en œuvre du procédé selon la présente invention :
- La figure 1 illustre un exemple où la structure est un être humain dont une partie du corps est instrumentée par le système de mesure ;
- La figure 2 illustre un exemple où la structure est un être humain dont le corps entier est instrumenté par le système de mesure ; - La figure 3 représente un organigramme général des traitements du procédé pour mettre l'invention en œuvre.
Description de l'invention à partir des figures
On précise pour commencer la signification ou le contenu d'un certain nombre d'éléments qui sont utilisés dans la présente demande.
Les algorithmes pseudo-statiques utilisés dans la présente invention appartiennent à l'état de l'art des algorithmes permettant de trouver une orientation en trois dimensions à partir de la connaissance d'une ou plusieurs directions de l'espace fixe.
un premier algorithme de calcul traditionnel d'orientation est TRIAD (TRI- axial Attitude Détermination). Voir par exemple (cf : http://en.wikipedia.Org/wiki.Triad Method ou Harold D. Black, A passive System for determining the attitude of a satellite. American Institute of Aeronautics and Astronautics Journal, 2(7):1350-1351 , July 1964). Cet algorithme permet d'estimer un quaternion de rotation à partir de la mesure de deux directions de référence.
Tout autre algorithme permettant de calculer l'orientation d'un objet dans un repère de référence à partir de sa position par rapport aux vecteurs champ gravitationnel et champ magnétique terrestres (ou de tout autre champ uniforme) peut remplacer l'algorithme TRIAD. En particulier, dans le cas de plus de deux capteurs, on peut utiliser un algorithme de type OUEST (Quaternion ESTimator), décrit notamment dans la publication http://www.dept.aoe.vt.edu/~cdhall/courses/aoe4140/attde.pdf et, en comparaison avec TRIAD dans http://www.malcolmdshuster.com/comm 1981 a J TRIAD-QUEST.pdf.
Un segment sera dit statique ou pseudo-statique si l'erreur sur l'algorithme pseudo-statique qui calcule l'orientation dudit segment respecte un seuil que l'on se fixe (par exemple, 10°). En pratique, on utilise un algorithme détecteur de « staticité » qui repose sur la confrontation d'un seuil à la norme de l'accéléromètre et au cosinus de l'angle entre les vecteurs mesurés par l'accéléromètre et par le second capteur, et à la statistique des mesures sur une fenêtre glissante.
Dans tout le document, les variables représentant les orientations sont généralement exprimées en utilisant une représentation angulaire. Toute autre forme de représentation mathématique d'une orientation pourrait être utilisée alternativement et de manière équivalent, par exemple, des matrices de rotation, des quaternions ou des cosinus directeurs.
La figure 1 illustre un exemple de mise en œuvre de l'invention pour lequel trois accéléromètres 101 , 102 et 103, trois capteurs de direction 104, 105 et 106, et un capteur de vitesse angulaire 107, sont attachés aux trois segments que sont l'épaule d'une personne (à laquelle sont attachés les capteurs 101 et 104), le bras de la personne (auquel sont attachés les capteurs 102 et 105), et enfin l'avant-bras de la personne (auquel sont attachés les capteurs 103, 106 et 107).
La figure 2 représente un exemple de mise en œuvre de l'invention pour lequel un ensemble de 17 centrales de mesure sont réparties sur les principaux segments du corps. Cette mise en oeuvre particulière est utilisée pour la capture corps entier. Les différents dispositifs de mesure sont de deux types différents : le premier comporte un accéléromètre associé à un capteur de direction (par exemple un magnétomètre), ce qui constitue une première nature de centrale de mesure appelée AM (201 à 21 1 ), le second comporte une combinaison complète des 3 types de capteurs (accéléromètre, capteur de direction et capteur de vitesse angulaire) et sera appelée AGM (212 à 217). Les centrales de type AM sont préférentiellement placées sur les segments susceptibles de subir le moins de perturbations (accélération propre et/ou perturbations magnétiques) alors que les centrales AGM seront préférentiellement disposées sur les segments susceptibles de subir des perturbations de cette nature. Dans cette mise en œuvre, les segments du corps sont équipés respectivement de la façon suivante :
- L'épaule gauche par la centrale AM 201
- Le bras gauche par la centrale AM 202
- L'avant-bras gauche par la centrale AM 203
- La main gauche par la centrale AGM 212
- L'épaule droite par la centrale AM 204
- Le bras droit par la centrale AM 205
- L'avant-bras droit par la centrale AM 206
- La main droite par la centrale AGM 213
- Le buste par la centrale AM 207
- Le bassin par la centrale AGM 216
- La cuisse gauche par la centrale AM 210
- Le tibia gauche par la centrale AM 21 1
- Le pied gauche par la centrale AGM 215
- La cuisse droite par la centrale AM 208
- Le tibia gauche par la centrale AM 209
- Le pied droit par la centrale AGM 214
- La tête par la centrale AGM 217
Pour le présent exemple de réalisation de l'invention, les demandeurs ont utilisé des centrales AM 201 , 202, 203, 204, 205, 206, 207, 208, 209, 210, 21 1 qui sont commercialisés sous la dénomination commerciale MotionPod Version 2 et des centrales AGM 212, 213, 214, 215, 216, 217 qui combinent chacune un accéléromètre triaxe avec un magnétomètre triaxe et un gyromètre triaxe sous la dénomination commerciale MotionPod Version 3. Chacun des capteurs 101 , 102, 103 et 104 transmet ses données via une liaison radio à un boîtier communément appelé nœud-maître, ce boîtier étant relié à un ordinateur par une liaison USB. Le boîtier et l'ordinateur ne sont pas représentés sur la figure. Les données sont exploitables sur l'ordinateur grâce à une interface de programmation commercialisé sous la dénomination commerciale Motion Développement Kit (MDK). L'interface de programmation MDK permet soit d'obtenir des mesures brutes et calibrées d'une MotionPod, soit d'obtenir une estimation de l'orientation d'une MotionPod, ceci grâce à des algorithmes statiques en ce qui concerne la version 2 de la MotionPod. Avantageusement, le présent exemple de réalisation peut constituer une évolution de l'interface de programmation MDK.
Cet exemple de répartition des modalités de mesure sur la structure articulée est généralisable à toute structure articulée comprenant plusieurs segments organisés selon un arbre constitué d'un repère de référence (dans l'exemple le centre de masse), l'arbre comportant des branches qui comportent eux- mêmes des segments dont un segment extrémité. Avantageusement, les capteurs de vitesse angulaire, non sensibles aux perturbations magnétiques ni aux accélérations propres, seront placés aux extrémités des segments, c'est-à-dire aux points des branches ayant la course la plus grande. Un capteur de vitesse angulaire supplémentaire, positionné par exemple au centre de masse de l'arbre améliore les mesures. Ainsi, selon l'invention, si R est le nombre des branches dont on souhaite capturer les mouvements, le
nombre de capteurs de vitesse angulaire sera avantageusement égal à R+1 , ou éventuellement R. Dans le cas d'un corps humain dont on souhaite capturer les mouvements des quatre membres et de la tête (cinq « branches »), tel que celui de la figure 2, l'invention pourra être mise en œuvre de manière satisfaisante avec six capteurs de vitesse angulaire (voire 5), alors que 17 centrales AM sont prévues (une par segment).
Préalablement à l'utilisation du système ainsi constitué par les capteurs 101 , 102, 103 et 104 pour capturer les mouvements de l'ensemble à trois segments épaule-bras-avant-bras de la personne, il faut évaluer le changement de repère entre le repère du solide que constitue chaque segment et le repère du capteur attaché audit segment. Ainsi, il faut évaluer le changement de repère entre le repère de l'épaule et le capteur 101 , le changement de repère entre le repère du bras et le capteur 102, ainsi que le changement de repère entre le repère de l'avant-bras et le capteur 103. On utilise également un repère fixe qui peut être par exemple le repère terrestre dont une direction privilégiée sera définie par le vecteur gravité et/ou le vecteur champ magnétique terrestre. On peut pour cela utiliser tout procédé de calibration. Cependant, le procédé de calibration géométrique faisant l'objet de la demande de brevet n ° 1252101 déposée le même jour que la présente demande et ayant même inventeur et mêmes titulaires est particulièrement avantageux.
La figure 3 représente un organigramme général des traitements du procédé pour mettre l'invention en œuvre, dans plusieurs de ses modes de réalisation.
La figure illustre un mode privilégié de réalisation de l'invention, dans lequel :
- Au cours d'étapes 300, qui se déroulent à la fréquence d'échantillonnage des centrales d'attitude et des gyroscopes, on fournit les mesures de ces capteurs à des étapes 310, 320 qui peuvent se dérouler séquentiellement :
■ D'une part, on réalise une détection 310 de l'état pseudostatique des segments (par exemple, seuillage de la norme du vecteur accélération et de l'angle entre le champ magnétique et le vecteur accélération) ;
■ D'autre part, on effectue le calcul 320, produisant les valeurs 330 des angles des articulations pour les segments considérés comme pseudo-statiques dans l'étape 310, et on complète le vecteur d'états en dérivant jusqu'au second ordre les angles, et en considérant l'accélération d'ensemble comme nulle ;
- Si au moins un des segments n'est pas détecté dans un état pseudo-statique, on traite dans des étapes 3410, 3420 les mesures capteurs dans l'observateur utilisé (qui peut avantageusement mais non exclusivement être un filtre de Kalman ou un filtre de Kalman étendu), dont les traitements comprennent :
■ Une étape 3410 de calcul d'évolution/prédiction au cours de laquelle les segments dans un état pseudo-statique sont traités de telle sorte que les angles prédits sont égaux aux angles statiques en sortie de l'étape 320, la covariance de l'évolution étant modifiée comme indiqué ci-dessus, les segments dans un état dynamique étant traités par prédiction des angles sous hypothèse de constance de l'accélération angulaire ; en sortie de ces sous-étapes, on réalise une prédiction de l'accélération d'ensemble et une modification de la matrice de covariance en fonction de la statistique des mesures, comme expliqué ci- dessus ;
■ Une étape de correction 3420 des sorties de l'étape d'évolution 3410 en réinjectant les écarts prédictions/mesures modifiés par le gain du filtre selon la méthode classiquement appliquée dans un filtre de Kalman ;
- En sortie des étapes 320 et 340, on récupère les valeurs 350 des états estimés, soit de la branche 320, si tous les segments ont été détectés dans un état pseudo-statique, soit de la branche 340, si un segment au moins a été détecté dans un état dynamique.
Sur la figure 3, les références numériques désignent indifféremment les étapes du procédé de l'invention et les modules du système apte à la mettre en œuvre.
Une fois que l'on s'est assuré de la calibration géométrique du port des capteurs par rapport à la structure articulée, le système est prêt pour capturer effectivement les mouvements de la personne. Pour cela, il lui faut en permanence évaluer les angles d'orientation des segments à l'aide du dispositif de mesures réparti.
Une première méthode de résolution locale utilisée dans l'art antérieur consiste à déterminer indépendamment les angles d'orientation de chacun des segments à l'aide d'un capteur d'angle (par exemple une centrale AM ou centrale AGM). Mais cette méthode est peu efficace, car elle ne permet pas de tirer partie de la réduction du nombre de degrés de libertés qu'autorisent les contraintes géométriques liant les membres articulés entre eux. Plus exactement, la méthode locale ne permet pas de prendre en compte le lien mécanique (loi de composition des mouvements) entre les segments qui se traduisent dans le modèle de la mesure de l'accéléromètre pour tous les segments.
En méthode locale utilisant des centrales AM, des hypothèses pseudostatiques sont faites: l'accélération propre des capteurs est considérée comme négligeable. Malheureusement, cette hypothèse devient très rapidement problématique dans le cadre de la capture des mouvements d'un corps entier, durant lesquels un simple mouvement de bras peut créer des accélérations qui invalident l'hypothèse pseudo-statique.
En méthode locale utilisant des centrales AGM, les hypothèses pseudostatiques sont levées ; cependant le système de mesures apparaît trop coûteux (prix, énergie, utilisation).
En outre, les deux solutions précédentes peuvent conduire à des résultats qui ne respectent pas les liens ou contraintes mécaniques.
C'est pourquoi la présente invention propose une méthode de résolution globale originale permettant d'évaluer à moindre coût simultanément la totalité des angles d'orientation des segments, en estimant leurs dérivées premières et secondes pour exprimer les liens mécaniques inter-segments.. Ainsi, selon l'invention, on écrit le problème à résoudre comme l'inversion du problème direct suivant :
Mesure = fonction (Etat)
Où :
Mesure = [Mesure Accéléromètre,MesureMagnétomètre,MesureGyromètre
(notation dans laquelle Magnétomètre peut être remplacé par
« Second capteur de direction », et Gyromètre par « Capteur de vitesse angulaire »)
fonction : une fonction de mesure
Etat : l'ensemble des variables expliquant les mesures, incluant les angles, et leurs dérivées premières et secondes par rapport au temps, ainsi que l'accélération d'entraînement de l'ensemble de la structure articulée. Cet état est noté x par la suite et x sa dérivée par rapport au temps.
Pour une description des différentes combinaisons de capteurs, le choix de leur nombre et de leur positionnement, on se reportera aux commentaires ci- dessus relatifs aux figures 1 et 2.
Pour exprimer le lien entre les divers angles et leurs dérivées, la présente invention propose de modéliser le problème en un système d'états incluant une fonction d'évolution du système, notée évolution dans les égalités qui suivent. Ainsi, selon l'invention proposée on pose le problème de la manière suivante :
Mesure = fonction ^x)
x = évolution (x)
En outre, afin de résoudre ce problème quel que soit le type de mouvement que la structure articulée portant le système de mesure réalise, (mouvements rapides ou lents), le procédé de l'invention utilise un modèle de résolution hybride du problème. Ce modèle de résolution selon l'invention est hybride dans le sens où il met en œuvre un observateur (par exemple un filtre de Kalman, une méthode d'inversion itérative, une minimisation d'erreur entre données observées et modèle) comportant un mode de fonctionnement pseudo-statique et un mode de fonctionnement dynamique, les estimations du dernier mode sont initialisées à l'aide de celles du premier (ce qui revient à effectuer un recalage du filtre sur un état initial considéré comme plus stable) pour le calcul des angles lorsque la condition de pseudo-staticité est
remplie pour un capteur donné Cette condition est vérifiée grâce à une fonction de détection de pseudo-immobilité des capteurs.
Dans le mode dynamique, on initialise l'estimation à partir des données précédentes suivant l'évolution choisie. Dans le cas où l'observateur est un filtre de Kalman, cette initialisation correspond à la première étape dite d'évolution et les covariances dudit filtre sont réglées empiriquement.
Le mode pseudo-statique est plus spécifique. Il reçoit en entrée les angles pseudo-statiques sur un ou plusieurs segments lorsque lesdits segments sont soumis à un mouvement pseudo-statique, c'est-à-dire un mouvement lent et régulier avec une accélération propre inférieure à 0,1 G. Dans ce mode, l'estimation est plus sûre car le nombre de degrés de liberté est plus faible que dans le mode dynamique. En effet les algorithmes pseudostatiques sont stables : pour une configuration de mesure donnée, il n'existe qu'une seule solution. Dans le cas du filtre de Kalman, les valeurs de covariance sont réglées empiriquement. De plus, l'invention propose une fonction de désactivation du filtre de Kalman si tous les segments suivent un mouvement pseudo-statique, et d'activation des algorithmes pseudostatiques pour tous les segments. Pour mettre en oeuvre l'invention, on peut utiliser un filtre de Kalman étendu. Un tel filtre est plus connu sous la désignation anglo-saxonne Extended Kalman Filter ou EKF. Mais d'autres types d'observateur peuvent être utilisés sans aucune difficulté et sans sortir du cadre de la présente invention. Un filtre de Kalman nécessite le réglage de divers paramètres, comme les covariances. Même si les réglages de base du filtre peuvent être régis par des lois plus ou moins empiriques, son réglage fin ne peut se faire que par des essais pratiques.
Pour la suite de la description, nous utiliserons un filtre de Kalman comme observateur. Plusieurs méthodes permettent de définir une fonction de prédiction du filtre, cette fonction correspondant à la fonction d'évolution. Elle doit prédire d'une part les angles et leurs dérivées, d'autre part l'accélération d'ensemble.
Concernant la prédiction des angles et de leurs dérivées, dans le cadre de la mise en œuvre de la présente invention, on peut par exemple faire l'hypothèse cinématique que les dérivées secondes sont égales à des
constantes (jerk nul) et intégrer ces constantes. En effet, étant donnée la fréquence d'échantillonnage élevée, de l'ordre de 200 Hertz dans le cas des MotionPod2 (centrales AM), d'un ordre de grandeur plus élevée que les fréquences des gestes humains (de l'ordre d'une petite dizaine de hertz pour les mouvements les plus dynamiques), les accélérations peuvent être estimées constantes en première approximation sans dommage. Ainsi, le modèle cinématique est défini à partir du vecteur des variables d'états que sont les trois angles de Cardan (lacet ou yaw, tangage ou pitch et roulis ou mil), qui paramétrent les rotations articulaires ainsi que leurs deux dérivées successives : dyawl d2yawl . dpitc\ d2 pitc\ drol d2rolll y iWj ,
X =
dyaws d yaws dpitchs d pitchs drol d rolL yows , , pitchs , , rolL ,
dt dt dt dt dt dt2
Acc _ ensemble , Acc _ ensemble , Acc _ ensemble
On notera que pour une structure articulée complète comportant S=22 segments, considérant que toutes les articulations ont 3 degrés de liberté, la dimension du vecteur d'états est de 22*9+3=201 .
Ces trois angles étant régis par les mêmes équations, ils seront notés indifféremment Θ , ainsi que leurs dérivées premières et secondes qui seront respectivement notées indifféremment à et ë dans la suite de la présente description. L'accélération d'entraînement de l'ensemble du corps sera notée Acc _ ensembie ou parfois Acc pour simplifier les écritures. Ainsi, selon l'hypothèse de constance des dérivées secondes angulaires et de l'accélération d'entraînement de l'ensemble du corps, on a:
Θ = cstl
Acc = est-,
Avec le modèle d'état Χ = [Θ,Θ,Θ,Α∞Χ,Α∞,,Α∞Ζ] OÙ les trois dernières variables d'état sont les coordonnées de l'accélération d'ensemble dans un repère terrestre (Χ,Υ,Ζ), une fonction d'évolution continue peut donc être définie par :
avec
Vi des bruits où les termes ¾ , ¾ , ¾ , vAcc x , vAcc y et vAcc z sont des termes de bruit.
Dans ce formalisme continu, la fonction d'évolution relie l'état à sa dérivée, voire à ses dérivées successives. Il faut noter que ce modèle d'état continu est aisément transposable à un plus grand nombre de degrés de liberté. Les valeurs des écart-types sont choisies relativement grandes pour ¾ , vAcc_x , vAcc_y et vAcc_z , car l'hypothèse de constance des accélérations angulaires et de l'accélération d'ensemble est forte et pas forcément vérifiée. Par contre, υθ , vè , sont corrélés avec ¾ et le modèle utilisé est donc plutôt :
En effet, l'erreur sur l'hypothèse ë = constante est intégrée et transmise aux dérivées angulaires et aux angles. Ce modèle peut être discrétisé, donnant la fonction d'évolution suivante :
où Te désigne la durée s'écoulant entre un instant t et un instant t+1 , c'est-à- dire la fréquence d'échantillonnage. Dans ce formalisme discret, la fonction d'évolution relie l'état à l'instant t à l'état à l'instant t+1 . Soit
Dans l'hypothèse où le mouvement ne comporte pas de point fixe, la prédiction de l'accélération d'ensemble, correspond à l'accélération du premier segment dans le référentiel terrestre, exprimée dans le repère terrestre qu'on a choisi. Par premier, il faut comprendre le segment à partir duquel le modèle mathématique du squelette est défini, les autres segments étant définis par rapport à ce premier segment. Pour prédire cette accélération d'ensemble, l'invention propose d'utiliser les mesures des capteurs et les angles qui ont été prédits par la méthode décrite précédemment (eq. 4).
Pour cela, la fonction de mesure qui suit peut être utilisée pour chaque accéléromètre :
Mes Acc■ Capteur
Terre eq. 5
Où Mes _ Acc désigne l'accélération mesurée par un accéléromètre, Cap,mrRTerre désigne la matrice de rotation du repère terrestre vers un repère lié à cet accéléromètre, TerreTCapteur désigne le vecteur de translation du repère lié à l'accéléromètre vers le repère terrestre. D'où
^ 2 Terre i
Capteur
Acc = Acc ensemble = - emRr Canpr,teur * Mes Acc + G0 2
dt
l erreji eq. 6
Capteur
eR Capteur * Mes _ Acc + Cap,eurRTerre * GO-
2
dt
Où désigne la matrice de rotation du repère lié à l'accéléromètre vers le repère terrestre. L'accélération d'ensemble peut alors être estimée en prenant Mes _ Aœ = Mes _ Aœ _ réeiie . Une autre possibilité consiste à utiliser la mesure simulée pour une accélération d'ensemble nulle Mes _ AccAcc ensemble=0 :
M Arr Acc eq. 7
Où la matrice CapteurRTerre est définie pour angles = angles _ prédit et ACC = O . Il s'agit, pour les angles prédits grâce à la fonction d'évolution, de passer d'un formalisme angulaire à un formalisme matriciel.
Ce vecteur de mesures théorique Mes _ AccAcc ememble=0 est déduit en calculant la mesure théorique de l'accéléromètre à partir de l'hypothèse indiquée plus haut que l'accélération d'ensemble est nulle (le point de base pour la construction du squelette a une accélération nulle).
Capteur
En remplaçant le terme Captt Terre GO - 2 par Mes _ Acc Acc _ ensemble =0 dt
Acc ensemble = - Terre 'RCaptmr * Mes Acc réelle - Mes Ac Acc _ensemble= ι eq. 8
Cette estimation est effectuée sur chaque capteur, puis ces estimations sont moyennées pour réduire l'erreur d'estimation. Il vient alors :
_ ensemble _ prédite = moyenne ( Acc _ ensemble capteur eq. 9
Cette méthode présente l'avantage de forcer le couplage des capteurs au- delà de l'information conjointe déjà portée par la modélisation en chaîne articulée de segments.
Afin de tester l'hypothèse pseudo-statique, on crée un observateur qui surveille le niveau d'une ou plusieurs des grandeurs suivantes :
la norme de l'accéléromètre, qui doit être proche de 1 G s'il y a immobilité,
l'angle entre la mesure du champ magnétique terrestre et la mesure du champ d'accélération,
la déviation standard de certaines mesures des capteurs dans une fenêtre glissante. Par exemple la norme des mesures de l'accéléromètre.
Il suffit ensuite de régler des seuils de décision. L'hypothèse pseudo-statique est considérée comme vérifiée si les valeurs sont inférieures à leurs seuils respectifs. Naturellement, les seuils sur les déviations standards dépendent des bruits capteurs. La dimension de la fenêtre glissante et les seuils sont réglés de façon empirique.
Par exemple, une fenêtre de 10 échantillons à 200 Hz peut être utilisée et des valeurs de seuil égales à 0,0455 pour l'écart de la norme accéléromètre à 1 (gravité) et 0,0333 pour l'écart du cosinus à sa valeur de référence, 0,0526 pour la norme de la déviation standard sur le magnétomètre, et 0,0467 pour la norme de la déviation standard sur l'accéléromètre.
Comme indiqué plus haut, en sortie de la détection de pseudo-staticité, on injecte les angles pseudo-statiques dans le filtre de Kalman en substitution des angles prédits par la première étape du filtre.
Dans des dynamiques de mouvements d'un corps entier sur une plage temporelle suffisamment large, on constate une période moyenne de retour à l'immobilité de l'ordre de 30 à 60s.
Comme mentionné précédemment, l'utilisation de filtres de Kalman suppose l'estimation des covariances des bruits de mesure et d'évolution. Pour régler ces covariances dans le cadre de la mise en œuvre de la présente invention, on mettra avantageusement en œuvre conjointement deux méthodes de réglage : un réglage a priori et un réglage a posteriori.
S'agissant du réglage a priori, la covariance du bruit de mesure est assez simple. En effet, pour les accéléromètres comme pour les magnétomètres, ce bruit peut avantageusement être modélisé comme un bruit additif sans biais, c'est-à-dire :
Mesure = Mesure pat^aite + bruit eq. 1 0
Il suffit donc de faire une mesure statique suffisamment longue, de l'ordre d'une minute, et de calculer la covariance de la mesure :
(Mesure) * (Mesure)7
Covariance■ -— (moyenne (Mesure) * (moyenne (Mesure)
Nombre de Mesure J eq. 1 1
Où moyenne désigne la moyenne arithmétique.
S'agissant toujours du réglage a priori, la modélisation du bruit d'évolution est plus complexe. Il est considéré comme un bruit additif, noté bruitpost- évolution, qui correspond au bruit de numérisation (qui doit d'être faible), et un bruit de modèle, noté bruitpré-évoiution, qui est prépondérant car il correspond réellement à l'erreur faite en considérant l'hypothèse è constante.
Pour évaluer les covariances de l'évolution, des exemples de mouvements ont été avantageusement sélectionnés dans la base de mouvements au format BioVision Hierarchy (BVH) du laboratoire de capture de mouvement de l'Advanced Computing Center of Art and Design de Colombus (Ohio, USA), le but étant d'effectuer une série d'essais balayant l'ensemble des cas d'utilisation visés. La fonction d'évolution aux angles réels à l'instant k est alors appliquée sur chacun des essais et on compare le résultat avec les angles réels à l'instant k+1 . Il vient :
{diff{x)*diff{x)T)
eq. 1 2 covananceévolutk>n = 1 \moyenne\aijj \x)) moyenneyaijj
nombre échantillons—!
Puis diff [θ) = θ réel - Θ prédit - Te * diff [θ]
Covariance moyenne diff θ \ \ * moyenne diff θ \ \
Post_evo, e Nombre échantiUons - I ·" // ·" V // I
Même si ces grandeurs de bruit sont déterministes, une optimisation des paramètres correspondants peut améliorer la convergence des algorithmes. Cependant, il faut s'efforcer, en sélectionnant les mouvements faisant l'objet des essais, de rester générique et ne pas choisir des réglages spécifiques à un certain type de mouvement; sauf justement dans le cas d'une utilisation spécifique. Typiquement, si des mouvements d'une très grande dynamique doivent être étudiés, la covariance d'évolution doit, dans l'hypothèse où Ô est égale à une constante, être prise grande car l'hypothèse sera peu respectée. Inversement, dans un mouvement à faible dynamique, il faut préférer une covariance faible. Cependant, malgré tous les a priori qui peuvent être faits sur les réglages, il peut être intéressant de chercher à optimiser les réglages sur un nombre important d'exemples, afin de maximiser la précision angulaire des estimations. Typiquement le nombre d'exemples peut être de l'ordre d'une vingtaine d'exemples de gestes, d'une durée de 60 secondes. Il faut rappeler que la taille du vecteur d'états est de l'ordre de 201 pour une chaîne articulée complète, ce qui conduit à une matrice de covariance de taille 201 x201 . Le réglage dynamique consiste à observer les mesures pour anticiper la dynamique du mouvement et donc des variables d'états. La matrice de covariance du modèle peut alors être modifiée dynamiquement en fonction de cet observateur. Concrètement, on calculera, via une fonction std, la déviation standard des mesures des accéléromètres, des magnétomètres, et
le cas échéant des gyromètres, si elles sont disponibles pour chaque segment, puis on utilisera une fonction, notée fonction par la suite, pour
calculer un indice ou gain de dynamisme gainsegment pour chaque segment : = fonction ^std ^MesAcc^_9 t j , std MesMag^_9 ^ j , std ^MesGyro^_9 t^j eq. 14
Enfin, la matrice de covariance d'évolution Q est multipliée par ce gain :
Q = gain _ segment * Q (segment)
eq. 1 5
Q (segment) étant la partie de Q correspondant à un segment
Pour obtenir une résolution optimale, il faut adapter la fonction fonction,
comme par exemple : fonction (sAcc, sMag, sGyro)
( ( ssAAcccc—— ooAAcc(c Y œ ( sMag— oMag sGyro— oGyro eq. 1 6
gain moyenne l rAcc ) rMag rGyro
Où :
gain : gain pour l'ensemble
sAcc, sMag, sGyro : déviations standards sur 10 échantillons (accéléromètre, magnétomètre et gyromètre respectivement) oAcc, rAcc, eAcc : coefficients sur l'accéléromètre (offset, rapport et exposant respectivement)
oMag, rMag, eMag : coefficients sur le magnétomètre (offset, rapport et exposant respectivement)
oGyro, rGyro, eGyro : coefficients sur le gyromètre (offset, rapport et exposant respectivement) Les valeurs des différents coefficients permettant de définir fonction sont
avantageusement réglées par optimisation sur l'ensemble des fichiers de test
au format BVH. Pour cela, les plages de valeurs acceptables sont balayées
en effectuant une résolution globale sur l'ensemble des fichiers de test. Cela
permet d'identifier des valeurs optimales. Ainsi, les résultats suivants ont été
obtenus par les demandeurs :
Lorsqu'on regarde sur un mouvement quelconque l'ordre de grandeur des différents états, on s'aperçoit que la dérivée angulaire a un ordre de grandeur de plus que l'angle et que la dérivée seconde a encore un ordre de grandeur de plus. Par conséquent, afin de limiter les erreurs de calcul numérique, il peut être avantageux de normaliser les états correspondants en posant : è modifié =— * Θ
10
! .. eCl- 1 7
Θ modifié = * Θ
100 II faut alors corriger les fonctions de mesures et d'évolution pour prendre en compte cette normalisation. La correction revient simplement à multiplier par 10 et 100 les états avant de faire les calculs, ainsi que les colonnes de la matrice jacobienne associées aux états concernés. Il faut aussi modifier les covariances associées aux états, en divisant par la même valeur que l'état associé.
Les différentes équations présentées ci-dessus ne sont pas modifiées par le nombre de variables d'état.
Des variantes peuvent être apportées à l'ordre des étapes et aux critères de certaines d'entre elles, notamment au critère de détection des états pseudostatiques et les étapes du filtre de Kalman, sans sortir du cadre général de la présente invention. L'observateur n'est pas forcément un filtre de Kalman.
Ces étapes du procédé de l'invention sont mises en œuvre de manière logicielle, certaines parties du logiciel pouvant être embarquées dans les
capteurs, d'autres pouvant être implantées sur un micro-contrôleur, un microprocesseur, ou un micro-ordinateur connecté au système de capteurs. Ces capacités de traitement sont des circuits ordinaires, connectés et configurés pour effectuer les traitements décrits ci-dessus.
Les exemples décrits ci-dessus sont donnés à titre d'illustration de modes de réalisation de l'invention. Ils ne limitent en aucune manière le champ de l'invention qui est défini par les revendications qui suivent.