PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : El. Kompass - Nullpunkt/Offset Bestimmung



arnoa
21.02.2012, 09:50
Hallo!
Habe einen HDMM01 Kompass im Einsatz der im Westenlichen auch ganz gut funktioniert => solange ich meinen Standort nicht ändere, und das ist mein Problem.

So funktioniert alles:
-) Ich mache am Stand mindestens ein 360 Grad Drehung
-) nehme von allen X den Mittelwert, nehme von allen Y den Mittelwert
-) X = X - X-Offset
-) Y = Y - Y-Offset
-) dann atan2(x, y)*180/PI) (je nachdem ob X < 0 noch +360)
-) Output ist eine sauberer Winkel bzw. Grad für meine Navigationsberechnungen

Mein Problem nun - wenn sich mein Bot bewegt bzw. bei der nächsten Messung 10 Meter woanders steht, verschiebt sich der 0-Punkt.
Wenn ich an jeder Stelle meinen min/max von X/Y berechne passt alles - nur das kann ja die Lösung nicht sein. Brauche eine Lösung wo ich immer einen sauberen Winkel zur Verfügung haben ohne immer den Offset neu berechnen zu müssen.


Danke schon mal,
Arno

BMS
21.02.2012, 11:34
Hallo,
also erstmal ist es wichtig, dass der Kompass absolut waagrecht ausgerichtet ist.
Abweichungen des Winkels können von der Umgebung abhängen, je nach dem ob an der neuen Position irgendwo Metalle in der Nähe sind o.ä., Stahlbeton, Wasserleitungen, usw. Dagegen kann man glaube ich wenig machen. Eventuell kann man den Kompass an eine andere Position im Roboter verbauen, damit mehr Abstand zur Umgebung besteht.
Grüße, Bernhard

arnoa
21.02.2012, 12:32
Die Ablenkung bzw. Genauigkeit ist nicht mein Problem. Was ich nicht in den Griff bekomme ist der sich verändernde Offset.

Hier mal der ULR zu meinem (Kontroll) Excel mit den Werten die ich vom Kompass bekomme und wie ich diese dann weiterbearbeite um meinen Winkel/Grad zu bekommen. http://www.aurob.com/wp-content/uploads/2012/02/Kompass.xls

Zu sehen bei den zwei Messungen (ca. 5 Metern voneinander entfernd) ist, dass sich der Offset ziemlich verändert. Den Offset bekomme ich aber nur durch eine 360 Grad Drehung (Mittelwert Min/Max).

Ich kann/will nicht jeden Meter eine 360Grad Drehung machen damit mein Kompass richitg arbeitet - irgendwas ist da falsch, entweder in meiner Überlegung oder am Kompass-Modul ;)

.:Sebastian:.
21.02.2012, 14:42
Moin

Hmmm irgendwie seltsam.
Y und X sind doch die Komponenten des Feldstärkevektors in X und Y-Richtung vom Modul.
Was man jetzt rein von der Idee her erwaten sollte : Bei einer Drehung um 180° misst dein Modul die gleichen Beträge nur mit umgekehrtem Vorzeichen.
Du hast allerdings nur positive Werte ....
Also wenn da irgend ein Feld einen Offset macht, müsste sich das doch quasi mitdrehen, sonst wäre er nicht für jeden Wert betraglich und vorzeichenmässig gleich.
Ich denke an der Stelle wäre es mal schön zu wissen wie der Sensor überhaupt misst.

Das nächste ist bei einer 360° Drehung sollten beide Werte doch sinus/cosinus Förmig verlaufen.
In der ersten Messung sieht das halbwegs okay aus ... in der zweiten ... Naja.

Erste:
21586

Zweite :
21585

Kein wunder das da Käse rauskommt.
Vor allem sollte die Amplitude ja bei X und Y etwa gleich sein (der Betrag der Feldstärkekomponente in der Sensorebene).

Also irgendwas passt da ganz und garnicht.

Gruß
Sebastian

arnoa
21.02.2012, 15:32
Danke mal für Dein Feedback!!!


Moin
Du hast allerdings nur positive Werte ....

Ja, Output vom Kompass ist nur Positiv - nachdem Inpurt X/Y zurechtgerückt wurde sind die Werte aber OK denke ich.



Also wenn da irgend ein Feld einen Offset macht, müsste sich das doch quasi mitdrehen, sonst wäre er nicht für jeden Wert betraglich und vorzeichenmässig gleich.

Da habe ich genau das Problem - mein Korrekturwert muss immer angepasst werden (und den bekomme ich derzeit nur durch eine voll 360Grad Drehung).



Das nächste ist bei einer 360° Drehung sollten beide Werte doch sinus/cosinus Förmig verlaufen.
In der ersten Messung sieht das halbwegs okay aus ... in der zweiten ... Naja.

Beide Messungen sind für sich glaub ich nicht so schlecht. Ich hab das mit einem guten alten Kompass überprüft - wenn ich mich immer am gleichen Platz befinde arbeitet der Kompass richtig bzw. scheint auch meine Rechnung auf zu gehn.



Also irgendwas passt da ganz und garnicht.

mhhh - das sehe ich auch so.

Leider haben mich mein Suchen im Netz noch nicht weitergebracht. Alle Beispiele die zu finden waren haben nur das gezeigt wo ich jetzt stehe - die haben auch alle die Offsets manuell angepasst, und das funktioniert ja auch - das kanns aber halt nicht gewesen sein.

Es muss irgendeine Lösung geben ....

PICture
21.02.2012, 15:47
Hallo!


Ich kann/will nicht jeden Meter eine 360Grad Drehung machen damit mein Kompass richitg arbeitet - irgendwas ist da falsch, entweder in meiner Überlegung oder am Kompass-Modul ;)

Die Lösung willst du aber nicht anwenden.

Übrigens, Radaren bzw. Gyros drehen sich permanent. ;)

BMS
21.02.2012, 16:30
Frage: Laut Datenblatt gibt es in dem Sensor noch eine Spule, die man kurz aktivieren kann, wie sieht denn das bei deiner Messung aus? (Programmierung?)

However, the influence of a strong magnetic field
(more than 5.5 gausses) along the magnetization axis
could upset, or flip, the polarity of the film, thus
changing the sensor characteristics. A strong
restoring magnetic field must be applied magnetically
to restore, or set, the sensor characteristics. The
HDMM01 magnetic sensor has an on-chip
magnetically coupled coil: a SET/RESET coil pulsed
with a high current, to provide the restoring magnetic
field.
Grüße, Bernhard

arnoa
21.02.2012, 16:46
Lt. Hersteller:

2 Calibration Algorithms
2.2 Basic Method
2.3 Operation
Rotate the magnetic sensor in all directions to find the max and min axis output values of the ellipsoid
boundaries.
2.4 Parameter Calculation
For the x axis, find the maximum output value (Mx_max) and the minimum output value (Mx_min).
For y the procedure is the same.
Mx_Sensitivity=(Mx_max-Mx_min)/2
My_Sensitivity=(My_max-My_min)/2
Mx_Offset=(Mx_max+Mx_min)/2
My_Offset=(My_max+My_min)/2
Application Note: Magnetic Sensor Calibration
Mx _ cal (Mx-Mx_Offset) /Mx _Sensitivity
My _ cal (My-My_Offset) /My _Sensitivity
© 2008 by Memsic Corporation. All rights reserved. www.memsic.com

Das kanns aber nicht sein ;(

Wer hat noch einen Kompass im Einsatz? Ist das bei andern Modellen auch so?

Besserwessi
21.02.2012, 17:08
Die 2. Messkurve sieht schon verdächtig aus. Da sollte eigentlich etwa die Gleiche Amplitude für beide Kanäle rauskommen. Vor allem sollte die Empfindlichkeit nicht vom Ort abhängen.

Eine Möglichkeit für einen vom Ort abhängigen Offset wäre, das die Senkrechte Komponente da mit rein spielt: Das Erdmagentfeld liegt ja nicht in der Horizontalen, sondern irgendwie schräg von unten-Süd nach oben-Nord. Eine Ursache für die Ungewollte Kopplung könnte ein magnetische Teil sein, das mit dem Sensor bewegt wird.