Forum: Mikrocontroller und Digitale Elektronik dynamische Winkelmessung mit 3d Magnetfeldsensor


von Max K. (achulio)


Lesenswert?

Hallo,
ich habe folgende Aufgabe: für eine Untersuchung der Laufbewegung soll 
für einen Schuh während der Laufbewegung eine Messung der 3 Raumwinkel 
(Messbereich jeweils +/- 45°) festgestellt werden. Es ist lediglich der 
Winkel in abhängigkeit der Zeit zu detektieren.
Aufgrund der dynamischen Bewegung fällt die Anwendung von 3 normal 
orientierten Beschleunigungssensoren ggü der Erdbeschleunigung aus.
Meine momentante Idee ist ein 3d Magnetfeldsensor wie z.B. in 
http://www.st.com/stonline/products/families/sensors/motion_sensors/lsm303dlh.htm 
zu verwenden. Ich kann ausschließen, dass weitere störende Magnetfelder 
während einer Messung vorhanden sind, und über die 3 Werte, die ich bei 
der Magnetfeldmessung über die 3 normal orientierten Sensoren ggü. dem 
ErdMagnetfeld erhalte, könnte ich mir die 3 Raum-Winkel errechnen.
Ist das nachvollziehbar, oder habe ich einen Denkfehler?
Max

von Michael H. (morph1)


Lesenswert?

sehr hübsches bauteil, leider bei den üblichen Verdächtigen nicht im 
Sortiment.

Hast du überhaupt eine Quelle dafür? Das wäre mal mein erster Gedanke.

von Max K. (achulio)


Lesenswert?

Quellen habe ich noch keine, daher meine Frage zur prinzipiellen 
Machbarkeit hier.
Ähnlich wie bei der statischen Winkelmessung über 3 normalisierte 
Beschleunigungssensoren, bei denen über einfache trigonometrische 
Funktionen die 3 Winkel ggü der Erdbeschleunigung ermittelt werden 
können (und daraus dann der Gesamtvektor), sollte das auch hier 
funktionieren.
Der Referenzvektor ist das Erdmagnetfeld (was bei der gegebenen Bewegung 
als hinreichend statisch angenommen werden kann) und die 3 
normalisierten Magnetfeldsensoren liefern die 3 Winkel. Nach einmaliger 
Kalibrierung vor jeder Nutzung sollte der Gesamtwinkel errenchenbar 
sein.
Richtig?

von Max K. (achulio)


Lesenswert?

...du sprachst wohl von Quelle für den IC :)
habe ich (noch) nicht, aber evtl. finde ich andere Magnetfeldsensoren, 
die ich hierfür nutzen kann.

von Andreas K. (derandi)


Lesenswert?

Was ist mit gyroskopischen Sensoren?
Hier wurde desöfteren die Wii-Mote zur Sprache gebracht, da scheinen 
solche Winkelauflösende Sensoren drin zu sein.

von Helmut (Gast)


Lesenswert?

Max K. schrieb:
> Der Referenzvektor ist das Erdmagnetfeld (was bei der gegebenen Bewegung
> als hinreichend statisch angenommen werden kann) und die 3
> normalisierten Magnetfeldsensoren liefern die 3 Winkel. Nach einmaliger
> Kalibrierung vor jeder Nutzung sollte der Gesamtwinkel errenchenbar
> sein.
> Richtig?

Genau nach dieser Berechnung bin ich momentan auch auf der suche. Wenn 
jemand Quellen kennt, in denen die von Max K. beschriebene Umrechnung 
erklärt wird, bitte melden.


MfG

Helmut

von Karl H. (kbuchegg)


Lesenswert?

> Genau nach dieser Berechnung bin ich momentan auch auf der suche. Wenn
> jemand Quellen kennt, in denen die von Max K. beschriebene Umrechnung
> erklärt wird, bitte melden.

Google Stichworte
"matrix pitch roll yaw"

Die 3 Vektoren aus dem Sensor bilden die Matrix und du brauchst die 
Zerlegung in pitch, roll, yaw

Hier zb ist die Vorwärtsberechnung beschrieben 
http://planning.cs.uiuc.edu/node102.html
Und hier das ganze rückwärts
http://planning.cs.uiuc.edu/node103.html

Vorwärts ist für dich uninteressant, weil du die Matrix ja schon hast. 
Ist aber zum Verständnis, wie man zur Struktur der zu zerlegenden Matrix 
kommt nicht uninteressant.

Vor der Zerlegung die 3 Vektoren aber normalisieren. Und zumindest bei 
den ersten Versuchen auch mal drauf schauen, ob die Vektoren auch 
orthogonal sind (aufeinander senkrecht stehen). Ist eines der beiden 
nicht erfüllt, kommt sonst Unsinn bei der Zerlegung raus.

von Max K. (achulio)


Lesenswert?

Hallo Helmut,
hast du das gleiche Problem? Könnten wir evtl. zusammen daran arbeiten.

Hallo Karl-Heinz,
die Berechnungsmethoden sind mir soweit klar, siehst du allerdings den 
Ansatz selbst als erfolgversprechend, oder übersehe ich ein 
grundlegendes Problem bei der Messdatenerfassung? (z.B. Selbstinduktion, 
Erdmagnetfeldstabilität, Sensivität...) Danke!

Kennt ihr weiterhin einen guten 3d Magnetfeldsensor? Dieser 
http://www.st.com/stonline/products/families/sensors/motion_sensors/lsm303dlh.htm 
ist leider nicht für Einzelpersonen erhältlich :(

von guten morgen (Gast)


Lesenswert?

Guten Morgen ihr,
hat jemand jetzt schon den IC in einem Shop gefunden? Nur aus Interesse 
würd´s mich reizen, den Preis zu erfahren :-P

Grüße

von Karl H. (kbuchegg)


Lesenswert?

Max K. schrieb:

> die Berechnungsmethoden sind mir soweit klar, siehst du allerdings den
> Ansatz selbst als erfolgversprechend, oder übersehe ich ein
> grundlegendes Problem bei der Messdatenerfassung? (z.B. Selbstinduktion,
> Erdmagnetfeldstabilität, Sensivität...) Danke!

Dazu kann ich nichts sagen.
Keine Erfahrung damit.

von Steffen (Gast)


Lesenswert?

Hallo,

als Sensor gibt es da auch noch den ADIS16405 (EUR 669.38 bei Sander). 
Der hat zusätzlich zu den 3D Magnetfeldsensorn und 3D 
Beschleunigungssensoren auch noch 3D Gyros. Dieser Sensor ist eigentlich 
für solche Aufgaben prädestiniert sein. Falls Du diesen "in Angriff" 
nimmst, wäre ich sehr an einem Erfahrungsaustausch interessiert.

MfG Steffen

von I. E. (anfaenger69)


Lesenswert?

Andreas Klepmeir schrieb:
> Hier wurde desöfteren die Wii-Mote zur Sprache gebracht

Der dürfte nur den G-Sensor haben, aber der Wii Motion Plus Controller 
hat alles drinnen. Und das ding kostet nur 20 Euro im VK... Zu 
experimentierzwecken kaufen und zerlegen :c)

von Max K. (achulio)


Lesenswert?

bzgl Wii MotionPlus:
Da die Laufphasen recht lange andauern sollen, habe ich währenddessen 
keine Möglichkeit den Drift der Gyros zu resetten, und erhalte durch die 
fortlaufende Integration des Fehlers dann recht schnell unsinnige Werte.
Ich würde lieber auf einen ansoluten Messwert zurückgreifen, suche aber 
noch eine günstige Möglichkeit. Der ADIS16405 liegt leider weit über 
meinem Budget :(

von Andreas K. (derandi)


Lesenswert?

Dafür, das die Driftrate nirgendwo beziffert wurde, verwirfst du solche 
Ideen aber sehr schnell, obwohl sie billig und leicht verfügbar wäre.
Die Driftrate sollte doch prinzipiell nicht all zu wichtig sein, du 
willst doch nur die Gierraten während eines Schrittes erfassen und nicht 
die absolute Position des Schuhes. Da kann der Läufer eben nach ein paar 
hundert Schritten simultan an der Decke laufen, die Abfolge ist ja 
trotzdem ersichtlich.

Zudem: Bau einen Beschleunigungssensor mit ein, wenn der Schuh aufsetzt 
dürfte eine deutliche Spitze entstehen die als Nullpunkt zum 
fortlaufenden Kalibrieren dienen kann.

Btw, wieviele Messungen führt denn der von dir ausgewählte Sensor pro 
Sekunde durch?
Um zu ermitteln in welcher Lage das Gerät ist reichen ja auch wenige 
Messungen pro Sekunde.

von Max K. (achulio)


Lesenswert?

>Dafür, das die Driftrate nirgendwo beziffert wurde
Könnte man aus dem Datenblatt von InvenSense sicherlich ermitteln.

>du willst doch nur die Gierraten während eines Schrittes erfassen
Nein, für mich sind die 3 Winkel relativ zur (ebenen) Laufoberfläche 
wichtig, nicht die Winkeländerungsgeschwindigkeiten.

>wenn der Schuh aufsetzt dürfte eine deutliche Spitze entstehen
Die Spitze der Beschleunigung beim Aufsetzen ist nicht mit der 
Ausgangslage des Sensors verbunden. Die maximale Belastung tritt je nach 
Laufstil bei unterschiedlichen Zeitpunkten der Lage auf.

>Um zu ermitteln in welcher Lage das Gerät ist reichen ja auch wenige Messungen 
pro Sekunde
Da ich die Gierrate integrieren muss, muss ich für maximale Genauigkeit 
so häufig wie möglich messen.

von I. E. (anfaenger69)


Lesenswert?

Im freien oder auf einem Laufband? Auf einem Laufband wird normalerweise 
mit einer Kamera und aufgeklebten Erkennungsmarkern gearbeitet.

Auch aus der Beschleunigung lässt sich schon recht genau die Position 
ermitteln. Vor allen bei den schnellen Bewegungen eines Laufrhytmus. 
Natürlich haut die Messung irgendwann nach oben oder nach unten ab, da 
muss aber nicht neu geeicht werden, sondern es wird mit Delta der Min 
und Maxwerte gearbeitet.

von Andreas K. (derandi)


Lesenswert?

Max K. schrieb:
>>du willst doch nur die Gierraten während eines Schrittes erfassen
> Nein, für mich sind die 3 Winkel relativ zur (ebenen) Laufoberfläche
> wichtig, nicht die Winkeländerungsgeschwindigkeiten.
Drei mal Gierrate plus drei mal Beschleunigungssensor, dann lässt sich 
die Position im Raum prima bestimmen.
All das sollte sich in der Wii-Mote finden. Wenn ich mich recht entsinne 
haben diverse Bastler diese Wiimote schon per Bluetooth an den PC 
angebunden, wenn du das auch schaffst wäre die Hardware-Sache praktisch 
schon erledigt, du busst nur Wiimote-Innereien an den Schuh basteln und 
dann eben mitm Laptop im Rucksack die Leute auf Reisen schicken.

>>wenn der Schuh aufsetzt dürfte eine deutliche Spitze entstehen
> Die Spitze der Beschleunigung beim Aufsetzen ist nicht mit der
> Ausgangslage des Sensors verbunden. Die maximale Belastung tritt je nach
> Laufstil bei unterschiedlichen Zeitpunkten der Lage auf.
Schon, aber er setzt ja immer zum selben Zeitpunkt auf.

>>Um zu ermitteln in welcher Lage das Gerät ist reichen ja auch wenige Messungen
> pro Sekunde
> Da ich die Gierrate integrieren muss, muss ich für maximale Genauigkeit
> so häufig wie möglich messen.
Falsch verstanden. Der 3D-Sensor von ganz oben wird wohl gerne dazu 
verwendet die Lage von Geräten wie z.B. Smartphones oder sonstigem Kram 
zu erfassen, dazu reichen geringere Genauigkeiten und wenige 
Messungen/Sekunde.
Für Schuhe klappt das natürlich nicht.

von Helmut (Gast)


Lesenswert?

Hallo Max K.

Meine Aufgabe besteht darin, mit einem 3-Achsen Gyro, 3-Achsen Accel. 
und 3-Achsen Magnetometer die lage von Flugkörpern so genau wie möglich 
zu bestimmen.
Falls du nur über Beschleunigungssensoren und Magnetfeldsensoren 
verfügst, ist eventuell diese Arbeit interessant: 
http://www.pinguin.sauerland.de/da/diplomarbeit.pdf#54

Insbesondere die 2.Methode zur Lagebestimmung.

Mein Implementierungsansatz richtet sich auf folgende Arbeiten:
http://www.google.de/patents?hl=de&lr=&vid=USPATAPP10020719&id=r0qDAAAAEBAJ&oi=fnd&dq=Method+and+Apparatus+for+motion+tracking+of+an+articulated+rigid+body&printsec=abstract#v=onepage&q=&f=false

http://www.users.muohio.edu/bachmaer/research.htm

Hoffe das kann dir weiterhelfen.

MfG

Helmut

von Hannes (Gast)


Lesenswert?

wie verarbeitet man die sensordaten von einen 3d magnetfeldsensor? sind 
das nicht unglaublich viele daten?

lg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.