PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lageerkennung (Winkel um die Höhenachse)



challenger92
22.12.2012, 12:59
Hallo,
ich versuche gerade eine vernünftige Lageerkennung für den Winkel um die Höhenachse (Z)-Achse zu ermitteln. Dabei verwende ich gerade diese IMU (https://www.sparkfun.com/products/10736?), auf der unter anderem ein Kompass und ein Gyro vorhanden sind. Ich weiß für eine einfach Erkennung des Z-Achsen-Winkels ist diese IMU unterfordert, aber später sollen evtl. der Roll- und Nickwinkel auch berücksichtigt werden, deswegen setze ich sie schon jetzt ein.
Ich benutze sie gerade mit der Standardfirmware der TU-Berlin (https://dev.qu.tu-berlin.de/projects/sf-razor-9dof-ahrs/wiki/Tutorial). Mit dem Testprogramm scheinen die Outputs sehr gut zu sein.

Wenn ich jetzt aber die IMU auf meinen Roboter platziere (es handelt sich um einen RP6) und diesen auf der Stelle drehen lasse, sind die Output-Werte unregelmäßig. D.h. sie machen teilweise Sprünge, oder steigen unterschiedlich schnell oder langsam an, obwohl sich der Roboter immer mit der gleichen Geschwindigkeit um die eigene Achse dreht...
Die IMU ist nicht genau in der Mitte des Roboters platziert sondern etwas nach vorne versetzt, außerdem habe ich schon versucht sie ca. 10cm in die Höhe zu setzen um magnetischen Störungen aus dem Weg zu gehen, hat aber auch nichts gebracht. Ich habe zuerst gedacht, dass es nicht so schlimm sein müsste, wenn die IMU nicht genau in der Mitte ist, ist mir da ein Denkfehler unterlaufen?

Vielen Dank für Tipps ;)

MfG challenger92

Dirk
22.12.2012, 14:06
Ich habe auch schon einen Lagesensor auf dem RP6 eingesetzt (HDMM01). Bei dem war das Ergebnis ähnlich, und zwar auch auf den anderen Achsen.
Schuld ist vermutlich das Magnetfeld der RP6-Motoren, das das irdische Magnetfeld verzerrt.
Wenn es um die (Himmels-)Richtung geht, kann man das etwas kompensieren. Die Lageänderung wird aber dadurch sehr schwankend. Ein anderer Effekt, der das noch verstärkt, ist Bewegung, weil jede Bewegung während des Messens in die Ausgabewerte des Sensors einbezogen ist: Eigentlich kann man die Lage im Raum mit einem magnet. Lagesensor nur messen, wenn er nicht gleichzeitig beschleunigt wird.
Da hilft vermutlich nur:
1. Tiltkompensierte Himmelsrichtung bestimmen und das Magnetfeld der Motoren rechnerisch kompensieren.
2. Drehungen kann man auch mit dem Gyro erfassen. Nachteil: Drift.

challenger92
22.12.2012, 14:33
Hi Dirk,

ja ich habe auch schon auf den Kompass getippt... Kann es also nicht daran liegen, dass die IMU nicht genau im Zentrum platziert ist, oder?

MfG
challenger92

Dirk
22.12.2012, 15:17
challenger92:
Kann es also nicht daran liegen, dass die IMU nicht genau im Zentrum platziert ist, oder?
Jein.
Natürlich ist auch die Beschleunigung des Sensors größer, wenn er bei Rotation des RP6 auf der Stelle außerhalb der Drehachse des RP6 liegt. Das Messergebnis (ohne Beschleunigung) ist aber theoretisch fast dasselbe, wenn man das unverfälschte (!) Magnetfeld der Erde am Ort X oder X + 10cm misst.

challenger92
23.12.2012, 10:28
Nach einer gründlichen Magnetometer-Kallibration funktioniert es jetzt :) Danke!