J'essaie de suivre les parties du corps par rapport au torse d'une personne. Je vois pas mal de questions sur l'utilisation des accéléromètres et des gyroscopes MEMS pour les calculs à mort, et ils confirment mes soupçons que divers facteurs limitent considérablement leur utilité pour ce type d'applications, mais je cherche à clarifier ces limites:
Quelles sont exactement ces limites?
D'autres réponses ont expliqué pourquoi ces limites existent. Naturellement, les spécifications des pièces du système en question et ce qui est considéré comme une "erreur acceptable" pour le système changeront toutes les deux les limites exactes, mais y a-t-il un seul ordre de grandeur dans le temps, ou une distance à laquelle je peux m'attendre à ce qu'un calcul mort fonctionne? Je suis bien conscient que sur de longues distances (quelques mètres environ) l'erreur devient trop importante pour la plupart des applications pratiques, mais qu'en est-il de quelques pieds?
Que puis-je faire pour améliorer ces limites?
J'envisage actuellement d'utiliser un accéléromètre et un gyroscope. Quels autres capteurs puis-je ajouter au système pour améliorer le taux d'erreur? Je sais que sur des distances plus longues, un GPS peut être utilisé, mais je doute que tout GPS grand public de qualité électronique ait une résolution suffisamment fine pour aider dans mon cas.
De plus, un consensus général semble que la seule façon d'améliorer ces limites au-delà du point des capteurs améliorés est de fournir une référence non sujette à erreur. Certains systèmes résolvent ce problème en utilisant des caméras et des marqueurs. Quel type de points de référence un appareil portable / portable peut-il fournir?
J'ai vu l'utilisation des ondes radio pour mesurer de longues distances avec précision, mais je ne peux pas dire si un tel système pourrait être précis à si petite échelle (en termes de distance mesurée) en utilisant des composants "standard".
Réponses:
Les sources d'erreur comprennent le décalage nul (biais) et les erreurs d'échelle (qui ont tendance à varier lentement) et le bruit. Les prix des capteurs MEMS varient de moins de 10 $ à plus de 1 000 $, et l'ampleur des termes d'erreur couvre une large gamme, selon la qualité du capteur.
Le gros problème est que l'intégration est généralement nécessaire pour passer de la valeur du capteur (accélération, vitesse angulaire) à la valeur souhaitée (position, angle). Toutes les sources d'erreur sont aggravées - grandissant avec le temps - lorsqu'elles sont intégrées. La valeur des données pour les décomptes de décomptes morts avec le temps, avec des capteurs bon marché vous donnant au plus quelques minutes de données utiles et des capteurs haut de gamme étant bons pendant peut-être quelques heures.
Comme vous l'avez déjà constaté, la meilleure façon de se débarrasser des erreurs intégrées croissantes est de combiner les données du capteur avec d'autres sources de données indépendantes qui n'ont pas les mêmes types d'erreurs. Par exemple, le GPS peut vous donner une valeur de position absolue qui ne dérive pas à long terme, mais qui a une composante "bruit" relativement importante. Vous pouvez utiliser ces données pour estimer les erreurs de biais et d'échelle de vos accéléromètres, ce qui vous permet de les corriger en temps réel. Il vous permet également d'annuler la "marche aléatoire" créée par le bruit du capteur. Un filtre de Kalman est une méthode couramment utilisée pour modéliser le système (y compris les termes d'erreur du capteur) et combiner les données pour arriver à une estimation optimale de l'état du système à tout moment.
Un autre exemple consiste à utiliser le «vecteur de gravité», mesuré par les accéléromètres, pour annuler la dérive angulaire des gyroscopes. L'astuce ici est de savoir exactement quand vous avez un vecteur de gravité valide; c'est-à-dire que le système n'accélère dans aucune direction. Diverses heuristiques (par exemple, "zéro mise à jour") sont utilisées pour accomplir cela. Un magnétomètre peut également être utilisé pour mesurer les erreurs gyroscopiques, même si vous ne connaissez pas la direction absolue du champ magnétique - tant que vous pouvez supposer qu'il est constant.
La détection optique est un autre moyen d'obtenir une estimation de vitesse, d'angle ou de position sans dérive, mais le traitement d'image requis peut nécessiter beaucoup de cycles CPU (ou FPGA), et le développement d'un tel système est assez compliqué.
la source
Vous avez demandé quoi d'autre pourrait être ajouté. Un magnétomètre à 3 axes devrait être utile. Le champ magnétique terrestre a tendance à se déplacer beaucoup plus lentement que l'utilisateur moyen (heureusement).
Regardez le fabuleux MPU6000 / 6050
Une version fournit une interface SPI et IIC, l'autre IIC uniquement.
Celui-ci contient un gyroscope 3 axes + un accéléromètre 3 axes plus des entrées pour lui permettre d'intégrer le signal du magnétomètre 3 axes externe.
L'IC contient un «processeur de mouvement numérique» qui intègre les signaux du réseau de capteurs 3 x 3. Je n'ai pas encore compris les fonctionnalités précises fournies, mais l'intention est de traiter les 3 sources de signaux distinctes en un système d'analyse de mouvement utile
Fiche technique ici
L'IC coûte environ 10 $ / 1 de Digikey et une carte d'évaluation coûte environ 50 $ + du fabricant. Ou vous pouvez acheter une carte complète en Chine - ils vendent ici pour environ 6 $ US au détail en 1 - IC et PCB assemblés.
Je n'ai toujours pas compris comment cela se produit ou s'ils sont réels ou .... J'en ai reçu un hier mais je ne pourrai pas jouer avec pendant un moment. (Les «whiles» varient considérablement en ampleur, de très petits à parfois dépassant les grands, hélas). Il existe un certain nombre d'articles sur le Web sur leur utilisation avec, par exemple, Arduinos.
Quelle est la précision?:
Il y a probablement beaucoup de discussions à ce sujet sur le Web.
Si je lis correctement la fiche technique (et ce n'est pas un type d'appareil que je connais trop), le
tableau 6.1 à la page 12 suggère que le gyroscope a une dérive de +/- 20 degrés / seconde max à 25 ° C et encore plus - Plage de température de 40 à + 85 ° C. En supposant un taux réel de 20 degrés / seconde, c'est un tour complet en 18 secondes. Cependant, le magnétomètre et l'accéléromètre donnent accès à des vecteurs de référence externes (gravité et champ magnétique terrestre) et les signaux de ceux-ci peuvent être utilisés pour dériver le taux de dérive du gyroscope à court et à long terme et compenser. Cela pourrait bien faire partie de ce que fait leur "processeur de mouvement".
L'erreur de l'accéléromètre semble généralement inférieure à +/- 5%.
Je m'attendrais (et peut être très faux), que l'utilisation de l'accéléromètre et du magnétomètre pour réduire les erreurs de dérive du gyroscope à essentiellement zéro à plus long terme vous permettrait d'utiliser les signaux du gyroscope pour la navigation en secondes ou minutes. Le GPS fournit également des signaux de vitesse et la combinaison de la position et de la vitesse des GP avec l'unité 9DOF semble très utile.
Wooly: Ce qui précède semble plus laineux que je le voudrais. Je m'attends à en savoir un peu plus au cours des prochaines semaines. Je serais intéressé d'entendre ce que vous découvrirez et si j'apprends des choses utiles, j'essaierai d'en faire rapport.
.
Selon votre application, vous pouvez déposer temporairement un GPS et un récepteur de référence à un endroit pratique, ce qui peut être extrêmement compact - GPS + batterie + TX. Une fois déposé, il sait où il se trouve et peut transmettre des corrections en fonction de la position du système. L'utilisation de la même constellation de satellites est «probablement une bonne idée». Si l'utilisateur et le GPS de référence sont au même point quand il est déposé tant mieux mais ce système a tendance à fonctionner même s'ils sont toujours séparés spatialement.
Ne pas savoir quel est votre cas, c'est difficile à dire. Mais la résolution GPS d'un échantillon à l'autre est généralement bien supérieure à ce qui est obtenu en quelques minutes ou heures. J'ai effectué des tests où j'ai conduit sur un itinéraire urbain et tracé les coordonnées GPS, puis j'ai répété l'exercice plusieurs heures plus tard. Les deux voies étaient dans certains cas à plusieurs mètres l'une de l'autre, mais quand on dit rouler en ligne droite le long d'une rue urbaine, l'intrigue était une ligne droite avec du "bruit" de chaque côté d'une ligne droite peut-être inférieure à un mètre. (C'était il y a quelques années - c'est facile d'essayer vous-même. Je viens d'enregistrer des données à partir d'une sortie GPS série RS232 (4800 bauds généralement) et dans ce cas, je les ai tracées dans Excel sous forme de graphique XY.
Le GPS différentiel peut être utilisé par lequel un récepteur fixe local de position fixe fournit des corrections d'erreur en fonction de l'endroit où il le sait et où le système le dit maintenant.Il existe de nombreux fournisseurs de tels systèmes, mais le concept est simple et assez facile à mettre en œuvre si sur un budget serré.
la source
Quelque chose qui n'est pas encore couvert dans ces réponses est votre application spécifique, qui a en fait été abordée au moins une douzaine de fois auparavant par des gens très intelligents. Les deux mots clés ici sont la cinématique inverse et les filtres de Kalman.
À présent, il devrait être clair quelle est la source des erreurs pour votre application et comment les corriger. Mais lorsque vous traitez avec des capteurs qui sont essentiellement fixés à un humain, vous pouvez réduire la plage de positions spatiales et angulaires de vos capteurs en appliquant une cinématique inverse à l'équation. Cela signifie essentiellement que vous suivez les positions relatives du plus grand nombre possible d'articulations sur le corps et que vous lui appliquez un modèle cinématique du corps humain. Par exemple, la longueur des bras des peuples ne varie pas avec le temps, et leur amplitude de mouvement ne change pas non plus de manière appréciable. Les os ne se plient pas (dans des circonstances normales). Tout cela peut être utilisé pour restreindre la position de vos capteurs.
L'autre solution consiste à utiliser autant de capteurs orthogonaux que possible. Orthogonale dans le sens de: utiliser des principes de mesure fondamentalement différents. En utilisant autant d'entrée de capteur que possible, vous pouvez utiliser un soi-disant filtre de Kalman pour travailler aussi précisément que possible compte tenu des données où se trouvent vos capteurs. Les filtres de Kalman ne sont pas une entité magique qui donne la meilleure réponse, cependant. Ce sont des modèles mathématiques qui doivent être ajustés et modifiés en fonction de votre application spécifique, et il peut être assez compliqué de les faire fonctionner correctement. Mais cela vous permet, d'une manière détournée, de combiner autrement très difficile de corréler les données des capteurs. Les entrées pour ce type de filtres peuvent être n'importe quoi: capteurs de position, d'accélération et de vitesse, mais aussi par exemple des capteurs de lumière qui peuvent ajouter des informations en répondant à des sources de lumière visibles sous certains angles.
Quelques «powergloves» avec ce principe de fonctionnement (cinématique + filtres kalman) ont été démontrés par les entreprises et les universités. Le plus récent que j'ai vu à TU Eindhoven utilisait des MPU6050 sur des substrats flexibles tissés dans un gant ainsi que certains capteurs de support (je pense que pour l'instant ce ne sont que des webcams) tous alimentés dans un grand filtre Kalman alimenté par Matlab. Il fonctionne jusqu'à 1 mm de répétabilité.
la source
Le problème fondamental
Ceci peut être résolu en étudiant la dynamique d'erreur à court terme d'un système de navigation inertielle. Il est couvert en détail dans de nombreux textes , mais voici la version courte "sans équation".
La navigation inertielle fonctionne comme suit:
Connaissez précisément votre position initiale, votre vitesse et votre attitude (par exemple, tangage et lacet).
Utilisez votre nouvelle attitude que vous venez de calculer pour faire pivoter mathématiquement vos lectures d'accéléromètre pour être au niveau de la terre.
Soustrayez la gravité de vos lectures d'accéléromètre de nouveau niveau.
Répétez les étapes 2 à 6 aussi longtemps que vous le souhaitez.
De plus, ce biais s'accumulera dans l'attitude, ce qui entraînera un mauvais nivellement des accéléromètres, ce qui entraînera un nivellement de l'accélération dans la mauvaise direction, qui sera ensuite intégré dans la mauvaise direction - trois niveaux d'erreurs.
Cela signifie que les erreurs gyroscopiques entraînent une augmentation des erreurs de position avec le cube de temps .
Par la même erreur d'accéléromètre logique, les erreurs de position augmentent avec le carré du temps .
Pour cette raison, vous obtiendrez quelques secondes de navigation inertielle (pure) utile à partir de capteurs MEMS de qualité pour téléphone portable.
Même si vous avez des capteurs inertiels extrêmement bons - par exemple, la qualité d'un avion - alors vous êtes toujours fondamentalement limité à un peu moins de dix minutes de navigation inertielle (pure). La raison en est l'étape 3 - la gravité change avec la hauteur. Obtenez votre taille incorrecte et votre gravité sera erronée, ce qui rend votre taille incorrecte, ce qui rend votre gravité plus erronée et ainsi de suite - croissance d'erreur exponentielle. Ainsi, même un système de navigation inertielle "pur" comme ceux que l'on trouve dans les avions militaires aura généralement quelque chose comme un altimètre barométrique. Source .
Solutions
Il est à la fois la recherche et commerical produits qui peuvent le faire.
Conceptuellement, cela fonctionne comme la vision stéréo - vous avez une ligne de base connue entre les caméras, et un angle différent par rapport à chaque marqueur vu depuis chaque caméra. À partir de cela, la position 3D de chaque marque peut être calculée (par rapport à la caméra). Cela peut mieux fonctionner avec plus de caméras.
En utilisant du matériel bon marché, le décawave UWB peut être d'une certaine utilité (10 cm environ). Vous devrez trouver vos propres algorithmes.
À côté du corps, un système GPS aura du mal. L'obtention d'un GPS au niveau cm repose sur un suivi de phase continu des signaux GPS (très, très faibles), ce qui est extrêmement difficile si l'antenne est à côté du corps et que le corps se déplace! Pour les systèmes L1 uniquement - quels qu'ils soient bon marché ou chers - le suivi doit être très long (10 min +) et n'est donc pas pratique pour ce problème. Un récepteur double fréquence peut parfois fonctionner , mais ce n'est vraiment pas bon marché (en milliers de dollars).
la source