Forum: Mikrocontroller und Digitale Elektronik MPU 6050 zur Wegmessung


von Pink S. (pinkshell)


Lesenswert?

Mit einem MPU-6050 wird die Beschleunigung in x-Richtung gemessen. Wenn 
der MPU um die Strecke x bewegt wird, sollte diese Strecke durch 
Beobachten der Beschleunigungswerte berechnet werden können.

Es geht hier nur um die Auswertung der x-Beschleunigung AcX. AcY und AcZ 
und die Drehraten werden ignoriert. Die Bewegung ist nur in x-Richtung, 
die Erdbeschleunigung ist immer in z-Richtung. Ziel ist eine Genauigkeit 
von 1 cm über eine Zeit von 5 Sekunden.

Notwendig ist die genaue Messung des Offsets, durch das hohe Rauschen 
der Daten ist der Offset erst nach langer Mittelung genau genug. Ein 
"Wandern" des Offsets durch Alterung oder Änderung von Temperatur oder 
Versorgungsspannung soll erstmal vernachlässigt werden.

Mit dem gemessenen Offset ist die errechnete Bewegung x bei 
stillstehendem Sensor über 5 Sekunden recht gering (<1cm). Wird nun der 
Sensor in x-Richtung bewegt und wieder an die gleiche Position zurück, 
dann ist die Position sehr ungenau und driftet auch massiv weg. Das 
liegt natürlich an einem Offset der Geschwindigkeit, weil sich die 
Beschleunigungen nicht zu Null addieren. Sollten sie aber, denn vorher 
und nachher ist der Sensor stillstehend.

Die Beschleunigung ist kleiner 2g, so dass der Sensor nicht in die 
Begrenzung geht. Eine Nachkalibration beim zweiten Stillstand scheidet 
aus, weil sie zu lange dauern würde.

Jetzt die Fragen:
1. kann es sein, dass die Beschleunigungsdaten eine Hysterese haben?
2. kann es sein, dass die Beschleunigungsdaten grob nichtlinear sind?
3. wäre die Verwendung des DMP (interne Signalverarbeitung) sinnvoll?

von Typ (Gast)


Lesenswert?

Wird nix, das haben schon viele versucht.
Nach 2x Integrieren ist ist nicht mehr von der Hand zu weisen, dass ein 
MPU6050 seine Grenzen hat.

Lass das Ganze einfach mal 1min bei Stillstand laufen.
Egal wie gut du kalibrierst, den Drift kriegst du nicht unter Kontrolle.

von B.A. (Gast)


Lesenswert?

Der neue MPU9250 hat einen zusätzlichen Magnetfeldsensor mit dem er 
dieses driften gut kompensieren kann.

Der alte Sensor kostet etwa 1€ beim Chinamann und der neue Sensor 2,30€. 
Die Differenz lohnt sich aber zu bezahlen, du verbrauchst keine Zeit um 
Dinge zu probieren die mit dem alten Sensor einfach nicht realisierbar 
sind.

Auf meinen Sensor habe ich einen knappen Monat gewartet. :-/

von RP6conrad (Gast)


Lesenswert?

Es geht hier um der ACC, nicht den gyro. Da hilft den magnetsensor 
nicht. Du brauchst ein hoch genaue ACC, aber die dingen sind kostlich.

von Pink S. (pinkshell)


Lesenswert?

RP6conrad schrieb:
> Du brauchst ein hoch genaue ACC

Kannst du mir einen empfehlen? Der Bosch BNO ist anscheinend ein 
bisschen besser. Was ist Dein Favorit?

von UA (Gast)


Lesenswert?

Pink S. schrieb:
> Mit einem MPU-6050 wird die Beschleunigung in x-Richtung gemessen. Wenn
> der MPU um die Strecke x bewegt wird, sollte diese Strecke durch
> Beobachten der Beschleunigungswerte berechnet werden können.
>
> Es geht hier nur um die Auswertung der x-Beschleunigung AcX. AcY und AcZ
> und die Drehraten werden ignoriert. Die Bewegung ist nur in x-Richtung,
> die Erdbeschleunigung ist immer in z-Richtung. Ziel ist eine Genauigkeit
> von 1 cm über eine Zeit von 5 Sekunden.

Hallo,
Was für eine Art von Bewegung ist das (linear, sinoide, sägezahnförmig)?
Wie wird die Bewegung (eine Maschinenachse?) angetrieben (Linaermotor, 
Schrittmotor, durch Explosion, Raketenantrieb ...)?
Wie ist die Bewegung geführt?
Welche Geschwindigkeiten werden erreicht?
Welche Wege werden verfahren?

Hintergrund zu meinen Fragen: Beschleunigungsaufnehmer messen nicht nur 
die Verfahrbewegung des zu messenden Objektes. Viele Arten von Bewegung 
verrauschen dir das eigentliche Messsignal derart, das du gar nicht mehr 
die eigentliche Lageverschiebung des Messobjektes im Signal erkennen 
kannst. Nur teilweise gelingt es mit Filtern einigermaßen brauchbare 
Signale zu erhalten. Und danach kommt das 2fache Integrieren ...

Beispiel 1: Antriebe mit einem Schrittmotor - das 'Rasten' eines solchen 
Motor (Vollschritt, Teilschritte - fast egal) erzeugt weit aus höhere 
Störungen als die Beschleunigung der Achse auf z.B. wenige g.

Beispiel 2: Schau dir mal die Köpfe der ehemaligen Space Shuttle Piloten 
an. Diese Köpfe werden während der Startphase in allen 3 Dimension 
umhergeschüttelt, obwohl die Feststoffbooster (SRB) fast gleichförmig 
mit 3g bis zum Abbrand beschleunigen.

MfG

von Pink S. (pinkshell)


Lesenswert?

UA schrieb:
> Was für eine Art von Bewegung ist das (linear, sinoide, sägezahnförmig)?

Das Fahrzeug ist ein elektrisch angetriebenes Modellfahrzeug mit 
Meccanum-Rädern. Maximale Beschleunigung 1m/s2, max. Geschwindigkeit 
0,2m/s, Weg 0,5m, Messzeit 5s. Die Räder haben Schlupf. Später soll auch 
y und z gemessen werden.

Sicher ist die Bewegung etwas "rumpelig", mit Beschleunigungsspitzen bis 
ca. +-1g, aber die sollten sich ja ausmitteln. Mehr nervt das 
Sensorrauschen, denn das wird durch Mittelwertbildung nur kleiner, aber 
nicht garantiert Null. Und dann kommt - wie Du richtig sagst - das 
zweifache Integrieren. Da laufen die Messwerte für x quadratisch weg!

Bei stillstehendem Sensor habe ich ein gemessenes x<1cm nach 5 Sekunden 
(nachdem der Sensor minutenlang kalibriert wurde). Aber eine Bewegung 
des Sensors führt zu erheblichen Fehlern im Mittelwert der 
Beschleunigung. Daher der Verdacht, dass solche MEMS-Sensoren neben 
Offset und Rauschen auch Probleme mit Linearität oder mit einer 
Hysterese haben könnten.

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.