Jump to content

IMU - Theorie und Praxis


Recommended Posts

Ich versuche mich schon seit geraumer Zeit an einem Gerät, das bei schwankendem Untergrund meine Videokamera immer genau waagerecht hält. IMU, zwei Servos, Ansteuerung, fertig - hatte ich gedacht, aber der Teufel steckt wie immer in Detail.

 

Der IMU-Brick kann zwar wunderbar seine Lage im Raum feststellen, aber offensichtlich nur bei Ruhe. Sobald Bewegung (d.h. beschleunigen - bewegen - abbremsen) auftritt, entwickelt er ein Eigenleben, das deutliche Ähnlichkeit mit einem echt mechanischen Kreisel hat:

  • eine Seitwärtsbewegung erzeugt einen Roll-Ausschlag
  • eine Bewegung nach vorn/hinten erzeugt einen Pitch-Ausschlag
  • eine Drehung um die Yaw-Achse erzeugt beide Ausschläge gleichzeitig

Tinkerforge hat ja dankenswerterweise die Formeln geliefert, mit deren Hilfe man die Neigungswinkel unabhängig voneinander ausrechnen kann. Aber zusätzlich scheint es erforderlich zu sein, die Neigungswinkel auch noch unabhängig von Beschleunigungen zu machen. Sehe ich das richtig?

 

Ich verfolge übrigens zwei Ansätze:

1.) IMU auf der Grundplatte stellt fest, dass es um x Grad verdreht ist, und steuert die Servos so, dass sie die Kamera um x Grad in Gegenrichtung drehen.

2.) IMU bei der Kamera stellt fest, dass es verdreht ist, und stellt sich über die Servos wieder selbst waagerecht und somit auch die Kamera.

 

Ursprünglich hatte ich den zweiten Ansatz im Auge, weil er einen geschlossenen Regelkreis bildet und sich deshalb selbst justiert. Ich vermute auch, dass ein solches System auch die oben genannten Phantomverdrehungen mit Hilfe realer Verdrehungen kompensiert. Aber diese Bauweise vibriert stark und schaukelt sich gern selbst auf, es sei denn, ich verringere die Wirkung der Messwerte auf die Servos, dann aber reagiert das Gerät zu langsam auf Verdrehungen.

 

Der erste Ansatz ergibt ein relativ ruhiges System, das aber justiert werden muss und eben die genannten Phantomdrehungen ausführt.

Link to comment
Share on other sites

Hallo Plenz,

habe ich es richtig im Kopf, dass es darum ging eine Kamera auf einem Boot zu installieren und diese 'ruhig' zu halten, also quasi Wellenbewegungen zu kompensieren?

Ich kann im Detail nichts zu Deiner Problemlösung beisteuern, aber rein vom Gedankengang her würde ich vermuten, dass Dein Boot ja auf jeden Fall auch seine Position verändert und dies mit vom IMU erfasst wird. Du wirst also nicht nur (einfach ausgedrückt) Schaukelbewegungen erfassen, sondern auch Wegebewegungen. Diese sind natürlich vom Aufbau nicht zu kompensieren. In die Berechnung gehen diese Werte aber bestimmt ein und sorgen so für unerwartete Reaktionen.

Ist nur so eine Idee von mir.

Link to comment
Share on other sites

Vom Boot bin ich noch weit entfernt, das Ding liegt auf dem Tisch im Wohnzimmer. Mir geht es jetzt erst einmal um ein Phänomen, das jeder IMU-Besitzer einfach mit dem Brick Viewer nachvollziehen kann. Mit Hilfe einer Schiene kann ich den Brick genau linear bewegen. Bei jeder Beschleunigung zeigt das Bild ein kurzes Kippen des Bricks, aber die "Angular Velocity"-Kurven zeigen (wie erwartet) keine Ausschläge, da ich den Brick ja tatsächlich nicht gekippt habe.

Link to comment
Share on other sites

ICh glaube es gab beim IMU einen Wert mit dem man bei der Lagebestimmung das Verhältnis zwischen Gyros und Beschleunigungssensoren einstellen kann (siehe API):

- viel Gyro: keine gute Korrektur über die Zeit, dafür aber keine Probleme bei Bewegung

- viel Beschleunigung: gute Korrektur über die Zeit, aber Probleme beim Beschleunigung

 

So oder so ähnlich...

edit: warum bin ich eigentlich so faul... hier ist die Doku... da ist das ganze auch viel besser erklärt

Link to comment
Share on other sites

Vielen Dank für den Hinweis. Das alles hatte ich auch schon gelesen, aber vor langer Zeit, und damals hatte ich auch nicht den Eindruck, dass das etwas wäre, was für mich von Belang ist. Ist es aber  ;)

 

Eine Konvergenz von 1 beseitigt die oben genannten Phänomene tatsächlich. (0 scheint mir nicht praxistauglich zu sein, da "vergisst" er sehr schnell, was waagerecht ist.)

Allerdings muss man in der 10-sekündigen Ruhephase zu Beginn eine Konvergenz von 10 oder mehr haben, anderenfalls speichert der IMU-Brick eine Ausgangslage, die nicht waagerecht ist.

Wahrscheinlich muss man auch während des Betriebs in gewissen Abständen die Konvergenz hoch setzen, die Beschreibung deutet darauf hin.

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...