FR2987913A1 - Systeme ameliore de capture de mouvements d'une structure articulee - Google Patents

Systeme ameliore de capture de mouvements d'une structure articulee Download PDF

Info

Publication number
FR2987913A1
FR2987913A1 FR1252103A FR1252103A FR2987913A1 FR 2987913 A1 FR2987913 A1 FR 2987913A1 FR 1252103 A FR1252103 A FR 1252103A FR 1252103 A FR1252103 A FR 1252103A FR 2987913 A1 FR2987913 A1 FR 2987913A1
Authority
FR
France
Prior art keywords
state
acc
segments
pseudo
capture system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1252103A
Other languages
English (en)
Other versions
FR2987913B1 (fr
Inventor
Pierre Grenet
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Movea SA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
Movea SA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Commissariat a lEnergie Atomique CEA, Movea SA, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique CEA
Priority to FR1252103A priority Critical patent/FR2987913B1/fr
Priority to US14/382,998 priority patent/US9958470B2/en
Priority to EP13707660.0A priority patent/EP2836891A1/fr
Priority to PCT/EP2013/054561 priority patent/WO2013131989A1/fr
Publication of FR2987913A1 publication Critical patent/FR2987913A1/fr
Application granted granted Critical
Publication of FR2987913B1 publication Critical patent/FR2987913B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P15/00Measuring acceleration; Measuring deceleration; Measuring shock, i.e. sudden change of acceleration
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/11Measuring movement of the entire body or parts thereof, e.g. head or hand tremor, mobility of a limb
    • A61B5/1116Determining posture transitions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B71/00Games or sports accessories not covered in groups A63B1/00 - A63B69/00
    • A63B71/06Indicating or scoring devices for games or players, or for other sports activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Pathology (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Dentistry (AREA)
  • Biomedical Technology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Medical Informatics (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Surgery (AREA)
  • Animal Behavior & Ethology (AREA)
  • Physiology (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
  • Navigation (AREA)

Abstract

La présente invention concerne un système de capture des mouvements d'un corps constitué de segments sensiblement rigides articulés entre eux pour et un procédé pour utiliser ledit système. Le système comprend des centrales d'attitudes fixées sur les segments du corps, lesdites centrales comprenant chacune au moins un accéléromètre et un magnétomètre, et un nombre réduit de gyromètres. Il comprend également un module de détection d'états pseudo-statiques et un module de calcul d'angles pseudo-statiques. Lorsque tous les segments sont détectés dans un état pseudo-statique, le vecteur d'état est fourni par le module de calcul des angles pseudo-statiques. Lorsqu'un segment est détecté dans un état dynamique, le vecteur d'état est fourni en sortie d'un filtre de Kalman.

Description

Système amélioré de capture de mouvements d'une structure articulée 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 Moven 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 connaitre 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 Al 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 pseudo- statique. Reprise des revendications A cet effet, l'invention divulgue un système de capture des mouvements d'une structure comprenant 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 pseudo-statique des segments dans un état pseudo-statique, un module apte à 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 pseudostatique est vraie.
Avantageusement, 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. 20 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: 25 {Mesure = fonction(x) = evolution (x) où : x désigne un vecteur d'état du corps; fonction désigne une fonction de mesure caractéristique des 30 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; evolution désigne une fonction d'évolution de l'état du corps; Avantageusement, le vecteur d'état x est de la forme [8,0, e, Acc' Acc), Accz] OÙ e, é et ij 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ù Acc Acc y et Acc, désignent les composantes de l'accélération d'entrainement Acc de l'ensemble du corps dans un repère terrestre (X,Y,Z). Avantageusement, le modèle d'évolution d'états du filtre de Kalman utilise 10 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 15 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é 20 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 25 é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. 30 Avantageusement, le modèle d'évolution d'états du filtre de Kalman prédit l'angle e, sa dérivée première é et sa dérivée seconde ë par la fonction définie par : oo o o o o 0 ve 1 o o o o o 0 v - o 1 o o o o o o o o x+ ve 0 o o 0 V Acc x o o o o o o 0 V Acc _y 0 0 0 0 0 0 0 _) V Acc z où Vo , ve, ve, VA'_x, VA'_y et vA'_z sont des termes de bruit sur la mesure de e, ô, ë, Accx, Accy et Acc respectivement.
Avantageusement, le modèle d'évolution d'états du filtre de Kalman prédit l'accélération d'entrainement Acc comme la moyenne des accélérations d'entrainement Acc_ensemble calculées pour chaque accéléromètre à partir du vecteur mes _Acc _réelle de mesures réellement fournies par ledit 10 accéléromètre, l'accélération d'entraînement Acc_ensemble étant calculée pour chaque accéléromètre par : _Terrep Acc _ ensemble = *(Mes _Acc _réelle-Mes _Acc Capteur Acc _ensemble=0) "' 15 où TerreRCapteur pp désigne une matrice de rotation d'un repère lié audit accéléromètre vers le repère terrestre et Mes _Acc Acc ensemble-0 désigne un vecteur de mesures théorique calculé en faisant l'hypothèse que l'accélération d'ensemble est nulle. 20 Avantageusement, le modèle de mesure de l'accéléromètre du filtre de Kalman est donnée par l'équation: ro 2 TerreT ' Mes _ Acc = Capteur RTerre* Capteur GO + Acc ensemble at2 ), 25 OÙ Mes _Acc désigne un vecteur de mesures prises par ledit accéléromètre, Terre pp, "'Capteur 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 Terre' Capteur 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 5 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. 10 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 15 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 N segments sensiblement rigides en liaison 20 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 25 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 30 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 35 remplaçant les sorties d'une fonction de prédiction d'un observateur d'état 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 oeuvre 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 20 à l'aide de la description qui suit faite en regard des figures suivantes qui illustrent des exemples de mise en oeuvre 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 25 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 oeuvre. 30 Description de l'invention à partir des figures On précise pour commencer la signification ou le contenu d'un certain 35 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 Determination). Voir par exemple (cf : ttp://en.wikipedia.orgAiviki/Thad 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 10 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 15 uniforme) peut remplacer l'algorithme TRIAD. En particulier, dans le cas de plus de deux capteurs, on peut utiliser un algorithme de type QUEST (Quaternion ESTimator), décrit notamment dans la publication hap://www.deptaoe.vt.edui-cdhallicourses/aoe4-140/attde.pdf et, en comparaison avec TRIAD dans 20 h t ,,ww.malcendahuethhoomicortim 1981a J TR r.hOUFST.odf. 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, 100). En pratique, on utilise un algorithme détecteur de « staticité » qui repose sur la confrontation d'un seuil à la norme de 25 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 30 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 oeuvre de l'invention pour lequel 35 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 oeuvre 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 1 0 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 à 211), le second comporte une combinaison complète des 3 types de capteurs 15 (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 20 subir des perturbations de cette nature. Dans cette mise en oeuvre, 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 25 - 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 30 - 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 211 - Le pied gauche par la centrale AGM 215 35 - 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, 211 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é noeud-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 Developpement 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 oeuvre 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 oeuvre, 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 pseudo- statique 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 30 étapes du procédé de l'invention et les modules du système apte à la mettre en oeuvre. 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 35 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 5 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 10 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 15 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 pseudo20 statiques 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 25 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 : 30 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'entrainement 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 evolution 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) evolution (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 oeuvre 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 oeuvre 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 roll), qui paramètrent les rotations articulaires ainsi que leurs deux dérivées successives : yawl ,dyawi d 2 yawl , pitchi,dpitchi d2 pitchi , roll ,droll dt dt 2 dt dt 2 dt dt 2 yawl ,dyaws d2 yaws pitchs, dpitchs d2 pitch , ,s roll s ,droll s d2 roll s dt dt` dt dt` dt dt2 Acc ensemble x , Acc ensemble y, Acc ensembles 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 15 indifféremment e, 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'entrainement de l'ensemble du corps sera notée Acc _ensemble ou parfois Acc pour simplifier les écritures. Ainsi, selon l'hypothèse de constance des dérivées secondes angulaires et de 20 l'accélération d'entrainement de l'ensemble du corps, on a: = csti Acc = cst2 Avec le modèle d'état x=[8,8,8,Acc'Accy,Accz] où les trois dernières variables 25 d'état sont les coordonnées de l'accélération d'ensemble dans un repère terrestre (X,Y,Z), une fonction d'évolution continue peut donc être définie par : x= 18 0 1 0 0 0 0 Vo 0 0 1 0 0 0 V - 0 0 0 0 0 0 ve 5c = * x + 0 0 0 0 0 0 VAcc x eq. 1 0 0 0 0 0 0 VAcc _y 0 0 0 0 0 0 V A Z avec vi des bruits où les termes ve , ve , ve, V Ace _x VAcc _y et vA'_z sont des termes de bruit. Dans ce formalisme continu, la fonction d'évolution relie l'état à sa dérivée, 5 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 ve, VA' _x , VAcc y et vA'_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, 10 vB , vB , sont corrélés avec ve et le modèle utilisé est donc plutôt : 0 1 0 0 0 0- ( - 0 ve 0 0 1 0 0 0 0 ve 0 0 0 0 0 0 * x+ ve ve eq. 2 0 0 0 0 0 0 0 V Ace _x 0 0 0 0 0 0 0 V Ace _y 0 0 0 0 0 0 0 V Ace _z En effet, l'erreur sur l'hypothèse ij= constante est intégrée et transmise aux dérivées angulaires et aux angles. Ce modèle peut être discrétisé, donnant la 15 fonction d'évolution suivante : xt±i exp ( 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 *Te * ( 0 0 ve 0 0 0 +Te* Vo eq. 3 0 0 0 0 0 ) x+ ve ve V Ace _x V Ace _y VA cc _z 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 : 1 Te Te 0 0 0 2 ( 0 1 Te 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 ve 0 0 0 Vo ve ve V Acc x VAcc _y VAcc _z xt±i + +Te* eq. 4 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 : ( r o2 Terre,rc ' . cc _ Mes _Acc = Capteur RTerre* at2 apteur + A GO ensemble eq. 5 Où Mes _ Acc désigne l'accélération mesurée par un accéléromètre, Capteur RTerre désigne la matrice de rotation du repère terrestre vers un repère lié à cet accéléromètre, Terre7, 'Capteur désigne le vecteur de translation du repère lié à l'accéléromètre vers le repère terrestre.
D'où : o2 Terre' Acc = Acc _ ensemble = -TerreRCapteur * Mes _ Acc + GO at2 = _Terre RCapteur * o2 Terre T eq. 6 ' Mes _Ace+ Capteur R Terre * GO Capteur are )) Où Terre pp, cap " teur 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 _Acc = Mes _Acc _réelle . Une autre possibilité consiste à utiliser la mesure simulée pour une accélération d'ensemble nulle mes _AccAccensemble=0 capteurRTerre* Mes -Acc A'_ensemble=0 GO art Où la matrice capteurRTerre est définie pour angles = angles _ predit et Acc =0 . 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 _AccA'ensemble=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). TCapteur ro2 Terre eq. 7 En remplaçant le terme Capteur i?Terre * o2 TerreT 'Capteur GO par Mes _ Acc A'ensemble=0 are T eq. 8 _erre pp Acc _ ensemble = *(Mes _Acc _réelle- Mes "'Capteur - Acc A'_ensemble=0) Cette estimation est effectuée sur chaque capteur, puis ces estimations sont 25 moyennées pour réduire l'erreur d'estimation. Il vient alors : Acc _ ensemble _predite = moyenne (Acc _ensemble'pteur) eq. 9 capteur 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 5 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 : 10 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 15 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 20 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 25 à 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 30 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 oeuvre de la présente invention, on mettra avantageusement en oeuvre 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 paifaite + bruit eq. 10 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)1 \T eq. 11 Covariance= ((moyenne (Mesure))* (moyenne (Mesure)) ) Nombre de Mesure-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é bruitpost20 évolution, qui correspond au bruit de numérisation (qui doit d'être faible), et un bruit de modèle, noté t brui ---pré-évolution, qui est prépondérant car il correspond réellement à l'erreur faite en considérant l'hypothèse ij constante. Pour évaluer les covariances de l'évolution, des exemples de mouvements ont été avantageusement sélectionnés dans la base de mouvements au 25 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 30 angles réels à l'instant k+1. Il vient : diff (x) = x',, - xp',' 23 covarianceé',''= (diff (x) * diff (x)T (moyenne(cliff (x))* moyenne(cliff (x))T1 eq. 12 nombre _échantillons -1 Puis : diff (é)= è réel - é prédit -Te* cliff (b) req. diff (è)*diff HT 1 T 13 Covariance = ' moyenne(cliff (è))* moyenne(cliff (b)) post _evo, G Nombre mbre échantillons -1 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 chaine articulée complète, ce qui conduit à une matrice de covariance de taille 201x201.
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 gain'gment pour chaque segment : gain 'giflent = fonction (std (MesAcc1t_94), std (MesMag[t_9,t]), std (MesGyro1z-9,t] )) eq.
14 Enfin, la matrice de covariance d'évolution Q est multipliée par ce gain : Q = gain _ segment * Q(segment) eq.
15 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)= r sAcc-oAcceAcc ( sMag s\eGyros\ r sGyro-oGyro gain* moyenne rAcc rMag ) rGyro ) eq.
16 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 : oAcc =1208.969 rAcc = 0.046 eAcc =1.000 oMag =130.662 rMag = 0.034 eMag =1.000 oGyro =1089.051 rGyro = 0.013 eGyro =1.000 gain = 0.085 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 : ié modifié = 1 * é eq. 17 1 ij modifié =-* b' 100 10 Il 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 20 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 oeuvre de manière 25 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. 10

Claims (19)

  1. REVENDICATIONS1. Système de capture des mouvements d'une structure comprenant N segments sensiblement rigides en liaison articulaire avec ladite structure, ledit système comprenant : - un ensemble de N accéléromètres (101, 102, 103) à 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 (104, 105, 106) aptes à restituer une direction d'un repère fixe, chacun sensiblement solidaire d'un segment, - un ensemble de Q troisièmes capteurs (107) 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 (340), ledit système étant caractérisé en ce qu'il comprend en outre : - un module (310) de détection d'un état pseudo-statique de chacun des segments de ladite structure, - un module (320) de calcul d'orientation pseudo-statique des segments dans un état pseudo-statique, - un module (3410) apte à remplacer les sorties de la fonction de prédiction de l'observateur d'état par les sorties du module (320) de calcul d'orientation pseudo-statique pour les segments pour lesquels la condition de détection en sortie du module (310) de détection d'un état pseudo-statique est vraie.
  2. 2. Système de capture des mouvements selon la revendication 1, caractérisé en ce que le nombre Q est strictement inférieur au nombre N et au nombre P.
  3. 3. Système de capture des mouvements selon la revendication 2, caractérisé en ce que, R étant égal au nombre de branches de lastructure dont le mouvement est capturé, le nombre Q est inférieur ou égal à R+1.
  4. 4. Système de capture des mouvements selon l'une des revendications 1 à 3, caractérisé en ce que les seconds capteurs sont des magnétomètres.
  5. 5. Système de capture des mouvements selon l'une des revendications 1 à 4, caractérisé en ce que les troisièmes capteurs sont des gyromètres.
  6. 6. Système de capture des mouvements selon l'une des revendications 1 à 5, caractérisé en ce que l'observateur d'état est un filtre de Kalman.
  7. 7. Système de capture des mouvements selon la revendication 6, caractérisé en ce que ses modules sont configurés par des modèles d'évolution d'états de la forme: {Mesure= fonction(x) evolution (x) où : - 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; - evolution désigne une fonction d'évolution de l'état du corps;
  8. 8. Système de capture des mouvements selon la revendication 7, caractérisé en ce que, le vecteur d'état x est de la forme x=[8,8,8,Acc'Accy,Accz] où e, é 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ù Accx Acc y et Accz désignent les composantes del'accélération d'entrainement Acc de l'ensemble du corps dans un repère terrestre (X,Y,Z).
  9. 9. Système de capture des mouvements selon l'une des revendications 7 à 8, caractérisé en ce que 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.
  10. 10.. Système de capture des mouvements selon la revendication 9, caractérisé en ce que 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.
  11. 11. Système de capture des mouvements selon l'une des revendications 7 à 10, caractérisé en ce que le vecteur d'état est estimé à partir des angles pseudo-statiques en sortie du module de calcul desdits angles pseudostatiques, si tous les segments sont détectés dans un état pseudostatique et est estimé par le filtre de Kalman, si un segment au moins est détecté dans un état dynamique.
  12. 12. Système de capture des mouvements selon l'une des revendications 7 à 11, caractérisé en ce que 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.
  13. 13. Système de capture des mouvements selon l'une des revendications 7 à 12, caractérisé en ce que le modèle d'évolution d'états du filtre de Kalman prédit l'angle e, sa dérivée première é et sa dérivée seconde ë par la fonction définie par :350 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 * x+ 0 ) ve v - 1 0 0 0 ve V Acc x V Acc _y V Acc z = 0 0 0 0 0 _ 0 - où ve , ve , vB , VA'_x , VA'_y et vA'_z sont des termes de bruit sur la mesure de e, é, 8, Accx , Acc y et Acc respectivement.
  14. 14. Système de capture des mouvements selon l'une des revendications 7 à 13, caractérisé en ce que le modèle d'évolution d'états du filtre de Kalman prédit l'accélération d'entrainement Acc comme la moyenne des accélérations d'entrainement Acc_ensemble calculées pour chaque lo accéléromètre à partir du vecteur Mes _Acc _réelle 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 = _Terrep * (Mes _ Acc _réelle - Mes _ Acc Capteur Acc _ensemble=0) "' 15 où Terre "'Capteur "'Capteur désigne une matrice de rotation d'un repère lié audit accéléromètre vers le repère terrestre et Mes _ AccAcc ensemble-0 désigne un vecteur de mesures théorique calculé en faisant l'hypothèse que l'accélération d'ensemble est nulle. 20
  15. 15. Système de capture des mouvements selon l'une des revendications 7 à 14, caractérisé en ce que le modèle de mesure de l'accéléromètre du filtre de Kalman est donnée par l'équation: 25 Mes _ Acc = Capteur D * Terre OÙ Mes _ Acc désigne un vecteur de mesures prises par ledit accéléromètre, Terre "'Capteur "'Capteur 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 GO + Acc ensemble at2 ), ro 2 TerreT 'Capteurterrestre mesuré depuis une position initiale dans le repère lié à l'accéléromètre et Terre' Capteur est un vecteur de translation du repère terrestre vers le repère lié à l'accéléromètre.
  16. 16. Système de capture des mouvements selon l'une des revendications 7 à 15, caractérisé en ce que les covariances des bruits de mesure et d'évolution d'états sont estimées à la fois a priori et a postériori.
  17. 17. Système de capture des mouvements selon l'une des revendications 7 à 16, caractérisé en ce que 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.
  18. 18. Système de capture des mouvements selon l'une des revendications 7 à 17, caractérisé en ce que 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.
  19. 19. Procédé de capture des mouvements d'une structure comprenant 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 (101, 102, 103) à 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 (104, 105, 106) 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 (107) 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 (310) de détection d'un état pseudo-statique de chacun des segments de ladite structure, - une étape (320) de calcul d'orientation pseudo-statique des segments dans un état pseudo-statique, - si au moins une sortie de l'étape (310) de détection d'un état pseudo- statique est fausse, une étape (3410) remplaçant les sorties d'une fonction de prédiction d'un observateur d'état par .les sorties de l'étape (320) de calcul d'orientation pseudo-statique pour les segments pour lesquels la condition de détection en sortie du module (310) de détection d'un état pseudo-statique est vraie.15
FR1252103A 2012-03-08 2012-03-08 Systeme ameliore de capture de mouvements d'une structure articulee Active FR2987913B1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR1252103A FR2987913B1 (fr) 2012-03-08 2012-03-08 Systeme ameliore de capture de mouvements d'une structure articulee
US14/382,998 US9958470B2 (en) 2012-03-08 2013-03-07 System for capturing movements of an articulated structure
EP13707660.0A EP2836891A1 (fr) 2012-03-08 2013-03-07 Systeme ameliore de capture de mouvements d'une structure articulee
PCT/EP2013/054561 WO2013131989A1 (fr) 2012-03-08 2013-03-07 Systeme ameliore de capture de mouvements d'une structure articulee

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1252103A FR2987913B1 (fr) 2012-03-08 2012-03-08 Systeme ameliore de capture de mouvements d'une structure articulee

Publications (2)

Publication Number Publication Date
FR2987913A1 true FR2987913A1 (fr) 2013-09-13
FR2987913B1 FR2987913B1 (fr) 2015-10-16

Family

ID=47827231

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1252103A Active FR2987913B1 (fr) 2012-03-08 2012-03-08 Systeme ameliore de capture de mouvements d'une structure articulee

Country Status (4)

Country Link
US (1) US9958470B2 (fr)
EP (1) EP2836891A1 (fr)
FR (1) FR2987913B1 (fr)
WO (1) WO2013131989A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106737604A (zh) * 2017-02-03 2017-05-31 重庆梦神科技有限公司 方向控制力臂及虚拟现实体验设备

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2987735B1 (fr) 2012-03-08 2014-04-11 Movea Procede d'identification des parametres geometriques d'une structure articulee et d'un ensemble de reperes d'interet disposes sur ladite structure
US10324522B2 (en) * 2015-11-25 2019-06-18 Jakob Balslev Methods and systems of a motion-capture body suit with wearable body-position sensors
US10156907B2 (en) * 2015-12-14 2018-12-18 Invensense, Inc. Device for analyzing the movement of a moving element and associated method
US11402402B2 (en) * 2016-01-12 2022-08-02 Bigmotion Technologies Inc. Systems and methods for human body motion capture
US11092441B2 (en) * 2016-06-02 2021-08-17 Bigmotion Technologies Inc. Systems and methods for walking speed estimation
CN107773961A (zh) * 2017-09-15 2018-03-09 维沃移动通信有限公司 一种发球控制方法及移动终端
JP7159658B2 (ja) * 2018-07-11 2022-10-25 カシオ計算機株式会社 運動データ取得装置及び運動データ取得方法、運動データ取得プログラム
US20210394020A1 (en) * 2020-06-17 2021-12-23 FitForm Technologies Inc. Tracking three-dimensional motion during an activity
CN114821006B (zh) * 2022-06-23 2022-09-20 盾钰(上海)互联网科技有限公司 交互式间接推理的孪生体态检测方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040051680A1 (en) * 2002-09-25 2004-03-18 Azuma Ronald T. Optical see-through augmented reality modified-scale display

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6997882B1 (en) * 2001-12-21 2006-02-14 Barron Associates, Inc. 6-DOF subject-monitoring device and method
FR2916069B1 (fr) 2007-05-11 2009-07-31 Commissariat Energie Atomique Procede de traitement pour la capture de mouvement d'une structure articulee

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040051680A1 (en) * 2002-09-25 2004-03-18 Azuma Ronald T. Optical see-through augmented reality modified-scale display

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
"Field Programmable Logic and Application", vol. 3684, 1 January 2005, SPRINGER BERLIN HEIDELBERG, Berlin, Heidelberg, ISBN: 978-3-54-045234-8, ISSN: 0302-9743, article ASHUTOSH SAXENA ET AL: "In Use Parameter Estimation of Inertial Sensors by Detecting Multilevel Quasi-static States", pages: 595 - 601, XP055044563, DOI: 10.1007/11554028_82 *
"Kalman filter", WIKIPEDIA, 4 March 2012 (2012-03-04), XP055045142, Retrieved from the Internet <URL:http://en.wikipedia.org/w/index.php?title=Kalman_filter&oldid=480213450&printable=yes> [retrieved on 20121121] *
ANGELO MARIA SABATINI: "Estimating Three-Dimensional Orientation of Human Body Parts by Inertial/Magnetic Sensing", SENSORS, vol. 11, no. 2, 1 January 2011 (2011-01-01), pages 1489 - 1525, XP055044566, ISSN: 1424-8220, DOI: 10.3390/s110201489 *
AZUMA R ET AL: "IMPROVING STATIC AND DYNAMIC REGISTRATION IN AN OPTICAL SEE-THROUGH HMD", SIGGRAPH CONFERENCE PROCEEDINGS, XX, XX, 1 January 1994 (1994-01-01), pages 197 - 204, XP008070386 *
LUINGE H: "Inertial Sensing of Human Movement", PH D. THESIS UNIVERSITY OF TWENTE, TWENE UNIVERSITY PRES, 1 January 2002 (2002-01-01), pages 1 - 88, XP007913604, ISBN: 978-90-365-1823-9 *
WELCH G ET AL: "An introduction to the Kalman filter", COMPUTER GRAPHICS. SIGGRAPH 2001. CONFERENCE PROCEEDINGS. LOS ANGELES, CA, AUG. 12 - 17, 2001; [COMPUTER GRAPHICS PROCEEDINGS. SIGGRAPH], NEW YORK, NY : ACM, US, 12 August 2001 (2001-08-12), pages 1 - 49, XP002318767, ISBN: 978-1-58113-374-5 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106737604A (zh) * 2017-02-03 2017-05-31 重庆梦神科技有限公司 方向控制力臂及虚拟现实体验设备
CN106737604B (zh) * 2017-02-03 2024-04-02 释空(上海)品牌策划有限公司 方向控制力臂及虚拟现实体验设备

Also Published As

Publication number Publication date
US9958470B2 (en) 2018-05-01
FR2987913B1 (fr) 2015-10-16
US20150032408A1 (en) 2015-01-29
WO2013131989A1 (fr) 2013-09-12
EP2836891A1 (fr) 2015-02-18

Similar Documents

Publication Publication Date Title
FR2987913A1 (fr) Systeme ameliore de capture de mouvements d&#39;une structure articulee
EP1990138B1 (fr) Procédé de traitement pour la capture de mouvement d&#39;une structure articulée
EP2956276B1 (fr) Procede de detection amelioree de collision d&#39;un robot avec son environnement, systeme et produit programme d&#39;ordinateur mettant en oeuvre le procede
WO2003085357A2 (fr) Dispositif de capture des mouvements de rotation d&#39;un solide
FR2976353A1 (fr) Procede d&#39;estimation simplifie de l&#39;orientation d&#39;un objet et centrale d&#39;attitude mettant en oeuvre un tel procede
EP3213033B1 (fr) Procédé d&#39;estimation d&#39;un état de navigation contraint en observabilité
WO2011144408A1 (fr) Procede et systeme pour fusionner des donnees issues de capteurs d&#39;images et de capteurs de mouvement ou de position
FR2915568A1 (fr) Procede et dispositif de detection d&#39;un axe de rotation sensiblement invariant
FR2934043A1 (fr) Procede d&#39;estimation ameliore de l&#39;orientation d&#39;un objet et centrale d&#39;attitude mettant en oeuvre un tel procede
EP2428934A1 (fr) Procédé d&#39;estimation du mouvement d&#39;un porteur par rapport à un environnement et dispositif de calcul pour système de navigation
EP3655724B1 (fr) Procédé d&#39;estimation du mouvement d&#39;un objet évoluant dans un champ magnétique
WO2016087784A1 (fr) Procédé d&#39;estimation du mouvement d&#39;un porteur par rapport à un environnement et dispositif de calcul pour système de navigation
WO2009127561A1 (fr) Systeme et procede de determination de parametres representatifs de l&#39;orientation d&#39;un solide en mouvement soumis a deux champs vectoriels
FR2990027A1 (fr) Procede d&#39;estimation du tangage et du roulis et dispositif inertiel associe
EP2941333B1 (fr) Procede d&#39;estimation de mouvement d&#39;un objet massique poly-articule
EP3655725A1 (fr) Procédé d&#39;estimation du mouvement d&#39;un objet évoluant dans un environnement et un champ magnétique
WO2013131990A1 (fr) Procede d&#39;identification des parametres geometriques d&#39;une structure articulee et d&#39;un ensemble de reperes d&#39;interet disposes sur ladite structure
WO2005064271A1 (fr) Procede de capture du mouvement d&#39;un solide, utilisant une mesure absolue associee a une mesure par double integration
FR3142246A1 (fr) Procédé d’estimation de l’évolution d’une vitesse d’un point de mesure
WO2023135379A1 (fr) Detection d&#39;anomalies de mesure par filtre de kalman appliquee a la navigation
CN117647263A (zh) 基于非线性优化的单光子相机视觉惯性里程计方法及系统

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 13