Forum: Mikrocontroller und Digitale Elektronik Winkelmessung-STM32F3


von Huang H. (abcdefg)


Lesenswert?

Hallo!

ich möchte mit Hilfe von MEMS Sensoren von STM32F3 Discovery Board den 
Winkel messen.

Ich weiss nicht wie ich die 2 Sensoren kombiniert den Winkel möglichst 
präzis kriege.

Kann jemand den allgemeinen Prinzip erklären.

ich bin jetzt bei der stufe.
Daten vom Beschleunigungssensor habe ich mit Tiefpass etwas gefiltert 
und mit arctan2 den Winkel bekommen mit dem ich bisschen unzufrieden 
bin.

der Kreisel gibt mir Winkelgeschwindigkeit , die ich nach 
Einschrittsverfahren integriert und habe etwas verschobenen Winkel 
bekommen.


Ist das richtig dass der korrekte Winkel = Kreiselwinkel/2 + Winkel aus 
Beschleunigungssensor/2

LG Hu

von kreisel (Gast)


Lesenswert?

gyroskop kannnste vergessen, driftet viel zu schnell.

Beschleunigungssensoren sind da besser, arctan wird bei 90 grad ziemlich 
ungenau, also je nach winkel den einen oder anderen Sensor stärker 
gewichten.

von Huang H. (abcdefg)


Lesenswert?

hat jemand idee, wie man den drift effekt überwindet.

lg hu

von Huang H. (abcdefg)


Lesenswert?

nach meiner recherche hat man die daten von kreisel und 
beschleunigungssensoren mit hilfe von kalman filter sehr elegant 
fusioniert.

ohne kalman filter kann es nicht gehen ?

von cell85 (Gast)


Lesenswert?

man kann den drift nicht eliminieren lol.
Der kalman filter ist ein schätz algorithmus ... also kein filter im 
eigentlichsinne.
Du gibst ihm viele informationen und je nach parametriesierung, schätzt 
er je nach gewichtung einen wert, welcher (je nach parametrierung) 
genauer ist.
es ist kein deterministierscher filter. ... aber das ist das 
stochastische driftsignal auch nicht.

Das ist eine wissenschaft für sich....
Viele "Berater" lassen sich dieses Wissen rund um die inertial-sensorik 
gut bezahlen.

von cell85 (Gast)


Lesenswert?

kreisel schrieb:
> gyroskop kannnste vergessen, driftet viel zu schnell.
>
> Beschleunigungssensoren sind da besser, arctan wird bei 90 grad ziemlich
> ungenau, also je nach winkel den einen oder anderen Sensor stärker
> gewichten.

quatsch. man benutzt immer beide signale für die winkelberechnung... 
überleg mal warum!

von Huang H. (abcdefg)


Lesenswert?

cell85 schrieb:
> kreisel schrieb:
>> gyroskop kannnste vergessen, driftet viel zu schnell.
>>
>> Beschleunigungssensoren sind da besser, arctan wird bei 90 grad ziemlich
>> ungenau, also je nach winkel den einen oder anderen Sensor stärker
>> gewichten.
>
> quatsch. man benutzt immer beide signale für die winkelberechnung...
> überleg mal warum!

für translation beschleunigungssensor,
für rotation gyroscope

ich frag mich wie man die 2 sensordaten ohne kalman filter etwas 
geschickt fusioniert.

von Quartaner (Gast)


Lesenswert?

Hab schon so einiges gesehen und auch selbst gemacht in die Richtung und 
da war eigentlich immer ein Kalmanfilter oder die DCM(Direction Cosine 
Matrix) im Spiel.

von Huang H. (abcdefg)


Lesenswert?

ein gedrifteter Gyroscope-Winkel
ein verrauschter Accelero.-Winkel

ich habe etwas verwirrt.
Wenn ich nur den Accelero.-Winkel benutze ist mein Quadracopterchen bei 
der Rotation am Arsch?

Gyroscope ist für Winkelerfassung bei der rotatorischen Bewegung richtig 
?

LG Hu

von Harald B. (haraldino)


Lesenswert?

Winkelmessung = Wasserwaage

Wasserwaage = am besten über Beschleunigungssensor

Verschiebung in der entsprechenden Achse nicht als Winkelveränderung 
werten und mit Gyro ausgleichen

von Huang H. (abcdefg)


Lesenswert?

Harald B. schrieb:
> Winkelmessung = Wasserwaage
>
> Wasserwaage = am besten über Beschleunigungssensor
>
> Verschiebung in der entsprechenden Achse nicht als Winkelveränderung
> werten und mit Gyro ausgleichen

Danke,


Ist das so richtig?

LG Hu

von Huang H. (abcdefg)


Lesenswert?

hat jemand keine idee?

von Jan K. (jan_k)


Lesenswert?

Es ist deutlich komplizierter. Google nach: IMU, Inertial Sensor, DCM, 
Kalman Filter, Euler Winkel, complementary filter. Einige Sachen sind 
englisch. Wenn du einen Zugang zur Unibib hast benutze scholar und 
besorg dir über die Bib ein paar papers. Die sind aber eigentlich immer 
englisch.

Ganz Grob: du benutzt die gyros für hochfrequente Signale in kurzen 
Zeitregimen, da dort der Drift nicht so schlimm ist und die 
Beschleunigungssensoren für langsame/statische Signale. Wenn du voll 3d 
brauchst, benötigst du eine Abbildung (z.B. eine Rotationsmatrix), die 
deine Sensorwerte in die gewünschten Winkel umwandelt. Ist nicht 
trivial. Richtig böse wirds, wenn du zusätzliche Beschleunigungen hast, 
weil dann dein Sensor nicht nur den Vektor der Gravitationskraft misst..

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.