Ich habe einen 3-Achsen-Beschleunigungsmesser und ein 3-Achsen-Gyroskop. Ich wurde beauftragt, mit dieser Hardware ein Dead-Reckoning-System zu entwickeln.
Im Wesentlichen muss ich Code entwickeln, um die Position im 3D-Bereich des Boards in Echtzeit zu verfolgen. Wenn ich also mit dem Brett auf einem Tisch beginne und es 1 m nach oben hebe, sollte ich diese Bewegung auf dem Bildschirm sehen können. Drehungen müssen ebenfalls berücksichtigt werden. Wenn ich also das Board auf halbem Weg durch dieselbe Bewegung auf den Kopf stelle, sollte es immer noch das gleiche Ergebnis von 1 m nach oben zeigen. Das Gleiche sollte auch für komplexe Bewegungen über einen Zeitraum von einigen Sekunden gelten.
Ist dies mit einem so kostengünstigen Gerät überhaupt möglich, wenn man die Mathematik ignoriert, die zum Berechnen und Drehen von Vektoren usw. erforderlich ist? Soweit ich das beurteilen kann, kann ich die Schwerkraft nicht mit 100% iger Präzision entfernen, was bedeutet, dass mein Winkel zum Boden ausgeschaltet ist, was bedeutet, dass meine Vektordrehungen ausgeschaltet sind, was zu einer falschen Positionsmessung führt.
Ich habe auch Geräusche vom Beschleunigungsmesser und der Kreiselvorspannung zu berücksichtigen.
Kann das gemacht werden?
Antworten:
Die Antworten und Kommentare, die Sie erhalten, sind natürlich ausgezeichnet, aber ich kann ein wenig Farbe hinzufügen.
Für was es wert ist, verwendet unser sensorineurales System fast die gleichen Werkzeuge und bekommt nicht immer die richtige Antwort! Wir haben 3D-Beschleunigungsmesser (die Otolithenorgane) und 3D- "Gyros" (Winkel-Velocitomere, die halbkreisförmigen Kanäle), und dennoch leiden wir unter allen möglichen Illusionen, wenn das System nicht in der Lage ist, die richtige "Antwort" zu erhalten, wie die Aufzugsillusion und die okulogravische Illusion. Oft treten diese Fehler bei niederfrequenten linearen Beschleunigungen auf, die schwer von der Schwerkraft zu unterscheiden sind. Es gab eine Zeit, in der Piloten während des Katapultstarts auf Flugzeugträgern aufgrund der starken Wahrnehmung der Tonhöhe aufgrund der mit dem Start verbundenen Niederfrequenzbeschleunigung in den Ozean eintauchten, bis die Trainingsprotokolle sie lehrten, diese Wahrnehmungen zu ignorieren.
Zugegeben, die physiologischen Sensoren haben einige andere Frequenzgrenzwerte und Grundrauschen als MEMS-Sensoren, aber wir haben auch ein riesiges neuronales Netz, das auf das Problem geworfen wird - wenn auch wenig evolutionären Druck, um das Problem bei diesen niederfrequenten Extremen richtig zu lösen. solange Katapultstarts ziemlich selten sind ;-).
Stellen Sie sich dieses vernünftige "Dead Reckoning" -Problem vor, das viele erlebt haben, und ich denke, Sie werden sehen, wie sich dies auf die MEMS-Welt überträgt. Sie steigen in einen Jet, starten in Nordamerika, beschleunigen auf Reisegeschwindigkeit, überqueren den Ozean, bremsen ab und landen in Europa. Selbst wenn die Mehrdeutigkeiten der Neigungsverschiebung aus dem Problem entfernt werden und keine Rotation angenommen wird, besteht kaum Hoffnung auf eine echte Implementierung einer doppelten Integration der Beschleunigungsprofile, die ein Positionsprofil ergibt, das nahezu genau genug ist, um Ihnen mitzuteilen, dass Sie Europa erreicht haben . Selbst wenn Sie während der Fahrt ein sehr genaues 6-Achsen-Kreisel- / Beschleunigungsmesserpaket auf Ihrem Schoß hätten, hätte dies auch Probleme.
Das ist also ein Extrem. Es gibt viele Hinweise darauf, dass Tiere für alltägliche Verhaltensweisen eine einfache Annahme verwenden, dass festgestellte niederfrequente Beschleunigungen wahrscheinlich durch Neuorientierungen in Bezug auf die Schwerkraft verursacht werden. Eine Kombination von Gyros und Beschleunigungsmessern, die einen breiteren Frequenzgang als unser Innenohr haben, kann das Problem natürlich viel besser lösen, hat jedoch aufgrund des Grundrauschens, der Schwellenwerte und dergleichen immer noch extreme Probleme.
Für kurze Epochen mit nicht trivialen Beschleunigungen ist es also kein so schlimmes Problem, mit der richtigen Instrumentierung zu rechnen. Langfristig ist bei kleinen Beschleunigungen und niederfrequenten Beschleunigungen die Dead Reckoning ein großes Problem. Für jede gegebene Situation müssen Sie herausfinden, wo in diesem Spektrum Ihr spezielles Problem liegt und wie genau Ihre Anforderungen an die Abrechnung sind, um festzustellen, ob das Beste, was Sie tun können, gut genug ist. Wir nennen das Verfahrenstechnik.
quelle
Das Hauptproblem bei der Dead Reckoning, das ich bei einem ähnlichen Senior-Design-Projekt festgestellt habe, ist, dass ein Beschleunigungsmesser nur die Beschleunigung misst. Sie müssen einmal integrieren, um die Geschwindigkeit plus eine Konstante C zu erhalten. Dann müssen Sie erneut integrieren, um die Position + Cx + D zu erhalten. Das bedeutet, dass Sie nach der Berechnung der Position aus den Daten eines Beschleunigungsmessers einen Versatz erhalten, den Sie aber auch haben Ein Fehler, der linear mit der Zeit wächst. Für den von mir verwendeten MEM-Sensor berechnete er sich innerhalb von 1 Sekunde als mindestens einen Meter von der tatsächlichen Position entfernt. Damit dies nützlich ist, müssen Sie im Allgemeinen sehr oft einen Weg finden, um die Fehler auf Null zu setzen, damit Sie keine Fehler verursachen. Einige Projekte sind dazu in der Lage, viele jedoch nicht.
Beschleunigungsmesser liefern einen schönen Schwerkraftvektor, der mit der Zeit nicht fehlerhaft ansteigt, und elektronische Kompasse geben Orientierung, ohne Fehler zu akkumulieren, aber insgesamt wurde das Problem der toten Abrechnung nicht durch Tonnen von Geld gelöst, das die Marine für Tonnen von Sensoren auf Schiffen ausgegeben hat . Sie sind besser als das, was Sie tun können, aber als ich das letzte Mal gelesen habe, waren sie auf 1000 km immer noch 1 km entfernt. Das ist eigentlich ziemlich gut für tote Rechnungen, aber ohne ihre Ausrüstung werden Sie nichts in der Nähe davon erreichen können.
quelle
Sie haben auch Vorspannung in den Beschleunigungsmessern und Rauschen in den Gyros, mit denen Sie ebenfalls umgehen müssen.
Und die Schwerkraft sollte keine Fehler bei den Winkelmessungen verursachen. Im Gegenteil, der Schwerkraftvektor liefert eine "absolute Referenz", mit deren Hilfe Sie die akkumulierte Vorspannung der Winkel "Nick" und "Roll" auf Null setzen können.
Ja, was Sie tun möchten, ist möglich, aber die schlechte Leistung von kostengünstigen MEMS-Geräten führt dazu, dass sich Fehler schnell ansammeln - sowohl Vorspannungsänderungen als auch der durch das Rauschen erzeugte "Random Walk" (sowohl in den Beschleunigungsmessern als auch in den Geschwindigkeitskreiseln). bewirkt, dass die Ergebnisse innerhalb von Sekunden oder Minuten von der Realität abweichen.
Um dies zu beheben, müssen Sie zusätzliche Sensoren in Ihr System integrieren, die nicht unter solchen Fehlern leiden. Wie oben erwähnt, ist die Verwendung des Schwerkraftvektorwinkels eine Möglichkeit, einige der Kreiselfehler zu korrigieren. Sie müssen jedoch wissen, wann Sie eine genaue Schwerkraftmessung durchführen (die Systeme werden ansonsten nicht beschleunigt), bevor Sie sie verwenden können es.
Eine andere Möglichkeit, die Winkelverschiebung zu korrigieren, besteht darin, ein Magnetometer zur Messung des Erdmagnetfelds einzubauen. Magnetometer weisen relativ große Fehler auf, leiden jedoch nicht unter Langzeitdrift.
Das Korrigieren der Positionsfehler, die durch die Driftkomponenten der Beschleunigungsmesserablesungen erzeugt werden, erfordert eine absolute Positionsreferenz. GPS wird häufig verwendet (sofern verfügbar), Sie können jedoch auch andere Sensoren verwenden, z. B. Barometer (für die Höhe), Kilometerzähler (wenn Sie Räder am Boden haben), Ultraschall- oder Infrarot-Entfernungssensoren oder sogar Bildsensoren.
Unabhängig davon, welche Kombination von Sensoren Sie letztendlich verwenden, müssen alle diese Daten zu einem selbstkonsistenten Softwaremodell des Systemzustands "zusammengeführt" werden, das nicht nur die aktuelle Position und Haltung, sondern auch Schätzungen der aktuellen Vorspannung enthält , Skalierungsfaktor und Geräuschpegel der Sensoren selbst. Ein üblicher Ansatz ist die Verwendung eines Kalman-Filters, von dem gezeigt werden kann, dass er eine "optimale" Schätzung (dh die beste verfügbare Schätzung) des Systemzustands für einen gegebenen Satz von Sensorablesungen liefert.
quelle
Die kurze Antwort lautet "nicht genau". Die lange Antwort lautet, dass Sie Aussagen wie "Angesichts meiner Gyroskop-Messwerte bin ich zu 95% sicher, dass das Gerät seit meiner letzten Messung zwischen 28 und 32 Grad gedreht wurde" bilden können.
Diese "verrauschten" Differentialgleichungen werden normalerweise unter dem Namen "stochastische Differentialgleichungen" geführt, wobei angenommen wird, dass das Rauschen das weiße Rauschen ist, das durch einen zufälligen Gang erzeugt wird. Die Mathematik kann auf andere Situationen verallgemeinert werden, in denen das Geräusch nicht von einem zufälligen Spaziergang stammt. In jedem speziellen Fall weist das Rauschen eine Verteilung auf, die experimentell bestimmt werden kann und deren Parameter von Ihrem spezifischen Gerät und Ihrer Anwendung abhängen. Aufgrund der Geräuschakkumulation müssen Sie unabhängig davon, was Sie tun, um über relativ lange Zeiträume gute Schätzungen zu erhalten, regelmäßig auf eine bekannte Position kalibrieren. Beispiele für feste Referenzen sind Heimatbasen, Kompasswerte und Schwerkraft.
Wenn Sie sich für diesen Weg entscheiden, müssen Sie einige Dinge entscheiden:
Was ist eine akzeptable Fehlerquote? Möchten Sie zu 95% sicher sein, dass es nach 2 Sekunden innerhalb eines Grades liegt, oder möchten Sie zu 80% sicher sein, dass es nach 2 Sekunden bei 5 Grad ist?
Nehmen Sie einige Messungen von Ihrem Gyroskop / Beschleunigungsmesser vor. Dies kann verwendet werden, um die empirische Verteilung des Rauschens zu berechnen, die das reale Rauschen schätzt. Verwenden Sie diese Option, um Ihre verrauschte Differentialgleichung zu lösen und Ihre Konfidenzintervalle zu berechnen.
Aus dem Obigen sollte klar sein, wie sich die Lesegenauigkeit (Varianz) aus dem Datenblatt auf die Lösung Ihrer verrauschten Differentialgleichung auswirkt. Es wird auch klar sein, wie sich dies auf Ihre Konfidenzintervalle auswirkt.
Wählen Sie ein Gerät mit akzeptablen Parametern, damit Sie im ersten Schritt die gewünschten Konfidenzintervalle erhalten. Möglicherweise stimmen die gewünschten / benötigten Gerätegenauigkeitsparameter nicht mit den verfügbaren und / oder Ihrem Budget überein. Auf der anderen Seite können Sie überrascht sein, welche Ergebnisse Sie für billigere Geräte erzielen.
quelle