Comment déterminer la position à partir des entrées de gyroscope et d'accéléromètre?

33

J'ai un accéléromètre à 3 axes et un gyroscope à 2 axes. J'ai l'intention de mesurer quelque chose qui ne se déplace que sur les axes X et Z. J'ai entendu parler de l'utilisation de filtres de Kalman pour lisser les vecteurs d'accélération, mais je ne trouve pas de bon tutoriel pour un débutant du sujet. De plus, je sais que je peux intégrer l’accélération pour obtenir la position, mais comment puis-je le faire avec un nombre fini de vecteurs d’accélération échantillonnés? J'apprécierais des liens vers de bons tutoriels pour les débutants sur ces deux sujets.

Steven
la source
3
Cela ressemble un peu à ce billet de blog que je suis tombé par hasard sur la journée d' aujourd'hui: starlino.com/imu_kalman_arduino.html Je n'ai aucun lien avec ce site, je pensais simplement qu'il était pertinent par rapport à ce que vous demandez.
JustJeff
1
Vous trouverez dans cet article une série de didacticiels sur l’utilisation et l’interface des capteurs d’accéléromètre. intorobotics.com/… voici des tutoriels disponibles pour les mesures sur 2 axes
Ezu

Réponses:

8

Eh bien, le filtre de Kalman est une sorte de magie qui fonctionne mystérieusement. :)

J'ai d'abord commencé avec les filtres numériques . Bien expliqué pour les débutants. Et facilement compréhensible. Ces filtres simples fonctionnent bien pour le roulis et la hauteur de tout système. Juste besoin d'ajuster le rapport précision / réponse en expérimentant. Le truc est [Précision = 1 - Réponse].

Essaie.

Ensuite, pour comprendre le filtre de Kalman, vous devrez suivre les étapes suivantes:

  1. Probabilité
  2. Loi de Bayes
  3. Ensuite, vous devrez apprendre à modéliser des scénarios simples pour les intégrer au filtre de Kalman.
  4. Actuellement, je suis ici pour trouver quoi faire .. vous le saurez sûrement.

Et doit partager si vous rencontrez quelque chose comme ça.

Rick2047
la source
7

... double intégrer accélération pour obtenir la position

En théorie (à condition d'avoir des capteurs et des mesures parfaits), vous pouvez le faire, mais en pratique vous ne pouvez pas. Le problème est que l’accéléromètre aura une force constante de 1 G provoquée par la gravité lorsque l’objet est immobile (zéro G en cas de chute libre), mais elle n’est pas mesurée exactement à 1,00000000 ... G. Lorsque vous déplacez l'objet, vous obtenez un vecteur représentant la somme de la gravité 1G et de l'accélération du mouvement (qui est généralement beaucoup plus petit que 1G). Vos mesures accumulent beaucoup trop de bruit au fil du temps pour être utiles si vous essayez d'intégrer des mesures accélération moins 1G gravité.

Hlovdal
la source
6

J'ai commencé à construire un quad il y a presque 6 mois et j'ai eu beaucoup de problèmes pour déterminer correctement l'angle. :)

Tout d’abord, vous devriez essayer cette présentation - http://web.mit.edu/scolton/www/filter.pdf Elle est très complète et vous aidera peut-être à avoir une meilleure idée de ce que vous voulez vraiment. pour moi.

Je suppose que c'est à vous de décider, mais implémenter le filtre de Kalman ne nécessite pas seulement un savoir-faire assez solide en mathématiques, en théorie des systèmes et dans ce cas en physique, mais est également très exigeant en termes de charge du processeur. Dans le cas où vous envisagiez d'utiliser, disons un Atmega328 cadencé à 16 MHz, vous pourriez avoir des problèmes pour utiliser ce type de filtre. C'est vraiment efficace si vous utilisez un DSP, vous pouvez donc filtrer votre entrée par un filtre passe-bas.

Dans l'ensemble, mon conseil est le suivant: essayez d'utiliser le filtre complémentaire du premier ordre ou peut-être même le filtre complémentaire du deuxième ordre si vous n'êtes pas satisfait du résultat. Si votre système est exempt de vibrations haute fréquence, cela devrait fonctionner parfaitement. Autre que ce lien de JustJeff est l'endroit idéal pour commencer au cas où vous êtes coincé avec la mise en œuvre :)

Tout le meilleur, Dan

Dan
la source
Votre lien est mort. J'ai un peu creusé et retrouvé le document: googledrive.com/host/0B0ZbiLZrqVa6Y2d3UjFVWDhNZms/filter.pdf Au moins, il est supposé être identique, vous souhaitez peut-être vérifier à deux reprises.
Jean
Oui, c'est exactement pareil :)
Dan
lien est mort à nouveau :(
KyranF
@KyranF pense que je l'ai retrouvé :) portal.ts-muenchen.de/Dateien/filter.pdf
Dan
@Dan nice, il s’agit exactement du même document que lors de la conception de mon micrologiciel lors de la création d’un mini-segway à l’uni. youtu.be/zOFlJJj8pPA
KyranF
1

Je suis également novice et cherche également une solution à mon travail de navigation. Comme vous, j'ai une carte configurée avec accéléromètre 3 axes et gyroscope 2D. Jusqu'à présent, j'ai lu de nombreux documents à ce sujet. De même, j'ai décidé d'adopter le filtre kalman dans le traitement de mon signal. peut-être que je n'ai pas de suggestion à vous faire, mais je veux partager avec vous quelque chose que j'avais déjà vu. il existe des liens pointant vers eux, espérons que cela vous sera utile.

  1. Introduction du filtre de Kalman
  2. Boîte à outils de navigation du robot CAS
  3. Boîte à outils de navigation par inertie Open Source
  4. Code source d'un projet sur la navigation

limité à ma réputation, je suis autorisé à publier moins de 2 liens. donc les deux autres je veux poster comme ci-dessous:

Cheval noir
la source
1
Bien que cela puisse constituer un ensemble de liens utiles pour le PO, ce message serait utile si vous ajoutiez également des résumés du contenu pertinent de ces liens, spécifiques à la question posée par le PO. Gardez à l'esprit que lorsque les liens deviennent finalement invalides en raison de la pourriture des liens, cet article ne conservera aucune valeur. Merci.
Anindo Ghosh