Forum: Mikrocontroller und Digitale Elektronik Beschleunigungssensor


von Tim S. (169)


Lesenswert?

Hallo Leute,
ich habe einen Beschleunigungssensor und möchte aus der Beschleunigung 
durch  2-fache Integration den zurückgelegten Weg ermitteln.
Wie ist die 2-fache Integration auf einem Mikroprozessor zu 
bewerkstelligen?

Vielen Dank

von ... (Gast)


Lesenswert?

Immer fleißig in festem Zeittakt aufaddieren. Und das für jede 
Integration ein mal. Das Driftverhalten und die Genauigkeit vieler 
Sensoren reicht aber nicht aus, um darüber zu zuverlässigen Wegstrecken 
zu kommen.

von Tim S. (169)


Lesenswert?

Wie kann ich dem Driftverhalten entgegenwirken um meine Messergebnisse 
nicht zu verfälschen?
Kann ich dies mit Quaternionen?

von Michael F. (startrekmichi)


Lesenswert?

Quaternionen sind nur eine andere Darstellungsmöglichkeit für 
Rotationen. Die haben im Gegensatz zu den "normalen" Eulerwinkeln den 
Vorteil, dass es keine Singularitäten gibt. Da du 2D sagst (sprich kein 
Flugzeug/Heli...), wird das für dich nicht relevant sein.

Eine kontinuierliche Integration entsprich einer diskreten Summation, 
sprich hier musste einfach nur immer a*deltaT^2 aufaddieren. Dein deltaT 
sollte konstant sein, also per Timer im µC erzeugen.

Du musst die aufintegrierte Position von Zeit zu Zeit mit einem anderen 
(absoluten) Sensor stützen, wie z.B. GPS. Das Geheimnis liegt dann 
natürlich darin, wie du die zwei Messungen (bzw Vorhersage und Messung) 
miteinander verheiratest, Stichwort Sensordatenfusion (z.B. mit 
Kalmanfilter und Konsorten). Das ist dann je nach Kenntnisstand u.U. 
nicht mehr wirklich trivial.

Die Position von was willst du überhaupt schätzen? Auto, Boot, 
Modellauto, indoor/outdoor, Genauigkeitsanforderungen...

von Tim S. (169)


Lesenswert?

Erstmal vielen dank für deine Antwort!
Also es handelt sich um einen Quadrocopter. Wir haben ein 9-DOF 
Sensorboard auf diesen angebracht und versuchen die Lage des Kopters zu 
ermitteln.

von Christian G. (christian_g83)


Lesenswert?

Tim S. schrieb:

> Wir haben ein 9-DOF
> Sensorboard auf diesen angebracht und versuchen die Lage des Kopters zu
> ermitteln.

Lage oder Position? Die Fluglage wird durch die Euler-Winkel beschrieben 
(oder eben Quaternionen). Da ihr ein 9-DOF-Board habt, dürften die schon 
irgendwo rausfallen.

Die Position lässt sich zuverlässig (und vor allem über einen längeren 
Zeitraum) nur unter Zuhilfenahme von GPS oder ähnliche Verfahren 
ermitteln. Eine numerische Trägheitsnavigation/Odometrie wird kaum 
ausreichend genaue Ergebnisse liefern, um anschließend als Regelgröße 
fungieren zu können (ich unterstelle jetzt mal, dass ihr die Position 
nicht nur zum Selbstzweck ermitteln wollt).

Selbst theoretisch (also ohne Messrauschen und Rechteckfehler beim 
Integrieren) reichen die Messwerte des Beschleunigungssensors alleine 
nicht aus, um bei einem Fluggerät die Position zu ermitteln. Die 
Freiheitsgrade sind nämlich gekoppelt: aufgrund der Fliehkraft messen 
die Sensoren auch Rotationen des Geräts. Diese Messfehler können aber 
nur dann korrekt herausgerechnet werden, wenn die Drehrate bekannt ist 
(dafür sorgt der Kreisel) und der Abstand des Sensors vom Drehzentrum.

Ums kurz zu machen: um die Position des Geräts zu regeln, solltet ihr 
noch einen GPS-Empfänger einbauen.

Falls ihr vorhabt, das Gerät im Schwebeflug über einer bestimmten Stelle 
zu halten, ist die beste Lösung wohl immer noch die nach unten 
gerichtete Videokamera, die über Bildauswerte-Verfahren die 
Geschwindigkeit über Grund ermittelt.

Christian

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.