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
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.
Wie kann ich dem Driftverhalten entgegenwirken um meine Messergebnisse nicht zu verfälschen? Kann ich dies mit Quaternionen?
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...
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.