Beschleunigungssensor, Neigung berechnen

Gast #2250637
Lesenswert?

Hallo,

ich habe hier einen BMA180 Beschleunigungssensor vor mir liegen.
Daten auslesen, etc funktioniert super.
Nun will ich den Neigungswinkel bezüglich des Erdmittelpunktes 
ausrechnen.
Dafür bleiben mir ja nun 2 Möglichkeiten...
1) sin(alpha) = beschleunigung_x_achse/1g
oder
2) tan(alpha) = beschleunigung_x_achse/beschleunigung_z_achse

Nun meine eigentilche Frage: Mit welcher Formel werde ich wohl bessere 
Ergebnisse auf erzielen, wenn sich der Beschleunigungssensor auf einem 
Quadrocopter befindet (natürlich Tiefpass gefiltert, etc).
Und was kann ich auf einem AVR schneller berechnen?

Vielen Dank schonmal ;)
#2250663
Lesenswert?

Mit gar keiner.
Sobald sich dein Quadrocopter bewegt, treten Beschleunigungen auf, die 
du zwar misst, die aber nichts mit der Lotrechten zu tun haben.

Beispiel:

Dein Quadro schwebt vor dir und der Beschleunigungssensor bestimmt das 
als die Lotrechte

       +--------------+
               |
               |
               v

jetzt bewegt sich dein Quadro nach links.

        <------------

       +--------------+
               |
               |
               v

Dein Sensor registriert diese und meldet

         <------------

       +--------------+
               \
                \
                 v


als Folge davon, wertet das dein Programm so aus, als ob dein Quadro 
nach rechts gekippt wäre

(also so

           +
             \
               \
              |  \
              |    \
              v     +
)

und rollt den Quadro nach links, um die vermeintliche Neigung, die gar 
nicht existiert, auszugleichen.
Und steuert sich damit selbst ins Verderben.
Gast #2250678
Lesenswert?

@Karl Heinz Buchegger:
Das ist mir schon klar, ich verwende außerdem ein Gyroskop und verknüpfe 
die Daten der beiden Sensoren ;)
Mir ging es nur darum wie ich die Daten des Beschleunigungssensors am 
besten verarbeite um hierbei schon einen möglichst kleinen Fehler zu 
erhalten. Dass der berechnete Winkel des Beschleunigungssensors nur im 
absoluten Stillstand (der nie eintreten wird) genau stimmen ist mir 
bewusst.
Persönliche Seite #2250701
Lesenswert?

Du musst eben beide Formeln hernehmen, und ihre Konditionierung [1] für 
die erwarteten Wertebereiche vergleichen.

Zur Berechnung ist schwer was zu sagen, ohne zu wissen welche 
Genauigkeit benötigt wird und wie oft zu Berechnen ist.

Evtl. ist ein Nachguck-Tabelle für atan bzw. asin das beste, so wie in 
[2] eingesetzt, nebst evtl. geschickter Nutzung von Additionsththeoremen

[1] http://de.wikipedia.org/wiki/Kondition_(Mathematik%29
[2] http://www.mikrocontroller.net/articles/AVR_Arithmetik/Sinus_und_Cosinus_(Lineare_Interpolation%29
Gast #2895414
Lesenswert?

Hallo,

ich habe das gleiche Problem mit einem LSM303.
Zwar bekomme ich mit sin(y/x) es raus jedoch wenn ich ruckel oder eine 
wackelbewegung mache zeigt es mir grosse sprünge.

Wie kann ich dies Integrieren damit ich diese Störungen nicht bekomme.

Viele Grüsse

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren