Koppelnavigation mit Beschleunigungsmesser und Kreisel. Möglich?

Ich habe einen 3-Achsen-Beschleunigungsmesser und ein 3-Achsen-Gyroskop. Ich wurde mit der Entwicklung eines Koppelnavigationssystems beauftragt, das diese Hardware verwendet.

Im Wesentlichen muss ich einen Code entwickeln, um die Position des Boards im 3D-Raum 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 Brett nach der Hälfte der gleichen Bewegung auf den Kopf stelle, sollte es immer noch das gleiche Ergebnis von 1 m nach oben zeigen. Das Gleiche sollte auch für jede komplexe Bewegung über einen Zeitraum von wenigen Sekunden gelten.

Abgesehen von der Mathematik, die zum Berechnen und Drehen von Vektoren usw. erforderlich ist, ist dies mit einem so kostengünstigen Gerät überhaupt möglich? Soweit ich das beurteilen kann, kann ich die Schwerkraft nicht mit 100-prozentiger Präzision entfernen, was bedeutet, dass mein Winkel relativ zum Boden abweicht, was bedeutet, dass meine Vektordrehungen abgeschaltet sind, was zu einer falschen Positionsmessung führt.

Ich muss auch Rauschen vom Beschleunigungsmesser und der Kreiselvorspannung berücksichtigen.

Ist das möglich?

Dies kann bis zu der von den Sensoren zugelassenen Genauigkeit erfolgen. Positionsfehler häufen sich mit der Zeit an. Ob die Genauigkeit für Ihr Projekt ausreicht, hängt davon ab.
Die fortgeschrittene Mathematik macht das Projekt möglich. Sie müssen Quaternionen, einen Kalman-Filter und entweder ein ZUPT- oder ein ZARU-Schema verwenden. Von dort aus können Sie es mehrere Sekunden lang genau verfolgen. Ich spreche aus direkter Erfahrung.
Ich habe ein wunderbares Zitat von Lord Kelvin, das seit einigen Jahrzehnten an meiner Bürowand hängt: „Quaternionen kamen aus Hamilton … und waren ein unvermischtes Übel für diejenigen, die sie in irgendeiner Weise berührt haben. Vektor ist ein nutzloses Überleben … und hat noch nie einem Geschöpf den geringsten Nutzen gebracht."
@ScottSeidman Quaternionen sind nicht so schlecht, wenn man sie in Bezug auf Rotationen um Einheitsvektoren betrachtet. Dann brauchen Sie nur ein bisschen Trigonometrie, um in die/von der Quaternion-Form zu konvertieren.
@JAB, offensichtlich sind sie (oder ein anderer Ansatz) notwendig, da Rotationen nicht pendeln, was der Mathematik einige ziemlich interessante Nuancen verleiht.

Antworten (4)

Die Antworten und Kommentare, die Sie erhalten, sind natürlich ausgezeichnet, aber ich kann ein wenig Farbe hinzufügen.

Für das, was es wert ist, verwendet unser sensorineurales System die gleichen Werkzeuge und gibt nicht immer die richtige Antwort! Wir haben 3D-Beschleunigungsmesser (die Otolith-Organe) und 3D-„Kreisel“ (Winkel-Velocitomere, die Bogengänge), und dennoch leiden wir unter allen möglichen Illusionen, wenn das System nicht in der Lage ist, die richtige „Antwort“ zu geben, wie die Aufzugsillusion und die okulogravische Täuschung. Häufig treten diese Ausfälle bei niederfrequenten Linearbeschleunigungen auf, die schwer von der Schwerkraft zu unterscheiden sind. Es gab eine Zeit, in der Piloten bei Katapultstarts auf Flugzeugträgern wegen der starken Wahrnehmung der Neigung, die sich aus der mit dem Start verbundenen Niederfrequenzbeschleunigung ergab, in den Ozean tauchten, bis ihnen die Trainingsprotokolle beibrachten, diese Wahrnehmungen zu ignorieren.

Zugegeben, die physiologischen Sensoren haben einige andere Grenzfrequenzen und Grundrauschen als MEMS-Sensoren, aber wir haben auch ein riesiges neuronales Netz, das auf das Problem geworfen wird – obwohl es wenig evolutionären Druck gibt, das Problem bei diesen niedrigen Frequenzextremen richtig zu lösen, solange Katapultstarts eher selten sind ;-).

Stellen Sie sich jedoch dieses vernünftige Problem der „Koppelnavigation“ 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, heben in Nordamerika ab, beschleunigen auf Reisegeschwindigkeit, überqueren den Ozean, bremsen ab und landen in Europa. Selbst wenn man die Mehrdeutigkeiten der Neigungstranslation aus dem Problem entfernt und eine Nulldrehung annimmt, gäbe es sehr wenig Hoffnung auf eine echte Implementierung einer doppelten Integration der Beschleunigungsprofile, die irgendwo ein Positionsprofil ergibt, das nahezu genau genug ist, um Ihnen zu sagen, dass Sie Europa erreicht haben . Selbst wenn Sie während der Fahrt ein sehr genaues 6-Achsen-Kreisel- / Beschleunigungsmesserpaket auf Ihrem Schoß sitzen hätten, hätte das auch seine Probleme.

Das ist also ein Extrem. Es gibt viele Beweise dafür, dass Tiere für ihr alltägliches Verhalten eine einfache Annahme verwenden, dass detektierte niederfrequente Beschleunigungen wahrscheinlich durch Neuorientierungen in Bezug auf die Schwerkraft verursacht werden. Eine Kombination aus Kreiseln und Beschleunigungsmessern, die einen breiteren Frequenzgang als unser Innenohr haben, kann das Problem natürlich viel besser lösen, wird aber aufgrund von Grundrauschen, Schwellenwerten und dergleichen immer noch extreme Probleme haben.

Für kurze Epochen mit nicht trivialen Beschleunigungen ist die Koppelnavigation mit der richtigen Instrumentierung also kein so großes Problem. Auf lange Sicht ist Koppelnavigation bei kleinen Beschleunigungen und niederfrequenten Beschleunigungen 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 Koppelnavigationsanforderungen sind, um festzustellen, ob das Beste, was Sie tun können, gut genug ist. Das nennen wir Verfahrenstechnik.

Danke für diese erhellende Antwort. Allerdings frage ich mich ein paar Dinge: 1) Was meinst du mit niederfrequenten Beschleunigungen? 2) Wenn das Problem von der 3D-Position auf die seitliche Verschiebung reduziert würde (ignoriere Z), ist das einfacher? und 3) Was ist mit einer langsamen Bewegung im Meerwasser, wo die Wirkung der Schwerkraft reduziert ist? Jeder Hinweis auf Lesematerial zu diesen Berechnungen wäre willkommen.
Tatsächlich wären die intertialen Navigationssysteme alten Stils nach einem langen Flug auf wenige Meilen genau. Sie müssen sehr genau gewesen sein. (Sie lebten in einer ziemlich großen Kiste.) Die Technologie wurde in den 1950er Jahren entwickelt, um Interkontinentalraketen zu führen.

Das Hauptproblem bei der Koppelnavigation, das ich bei einem ähnlichen Senior-Designprojekt wie Ihrem gefunden habe, ist, dass ein Beschleunigungsmesser nur die Beschleunigung misst. Sie müssen einmal integrieren, um Geschwindigkeit plus eine Konstante C zu erhalten. Dann müssen Sie erneut integrieren, um Position + Cx + D zu erhalten. Das bedeutet, dass Sie, sobald Sie die Position aus den Daten eines Beschleunigungsmessers berechnet haben, einen Offset erhalten, aber Sie haben auch ein Fehler, der linear mit der Zeit wächst. Für den Sensor des MEM, den ich verwendet habe, berechnete er sich innerhalb von 1 Sekunde so, dass er mindestens einen Meter von seiner tatsächlichen Position entfernt war. Damit dies nützlich ist, müssen Sie im Allgemeinen sehr oft einen Weg finden, die Fehler auf Null zu setzen, um die Anhäufung von Fehlern zu vermeiden. Einige Projekte sind dazu in der Lage, aber viele nicht.

Beschleunigungsmesser liefern zwar einen schönen Gravitationsvektor, der im Laufe der Zeit nicht ansteigt, und elektronische Kompasse geben Orientierung, ohne dass sich Fehler ansammeln, aber insgesamt wurde das Koppelnavigationsproblem nicht durch Tonnen von Geld gelöst, die die Marine für Tonnen von Sensoren auf Schiffen ausgegeben hat . Sie sind besser als das, was Sie tun können, aber das letzte, was ich gelesen habe, waren sie immer noch um 1 km entfernt, wenn sie 1000 km zurücklegten. Das ist eigentlich ganz gut für die Koppelnavigation, aber ohne ihre Ausrüstung werden Sie nicht in der Lage sein, annähernd so etwas zu erreichen.

Sicherlich ist der Fehler das Quadrat der Entfernung/Zeit? Der Geschwindigkeitsfehler ist linear, die Verschiebung also quadratisch. Interessant und nicht angesprochen ist, wie gut diese billigen Beschleuniger sind.
@Tuntable Hoffentlich haben Sie einen Beschleunigungsmesser, der nicht so schlecht ist, dass Sie einen signifikanten konstanten Beschleunigungsversatz haben. Wenn Sie einen haben, der so schlecht ist, dann ja, werden Sie am Ende einen quadratischen Fehler mit Entfernung / Zeit haben.

Sie müssen sich auch mit Verzerrungen in den Beschleunigungsmessern und Rauschen in den Kreiseln auseinandersetzen.

Und die Schwerkraft sollte keine Fehler in die Winkelmessungen einführen; im Gegenteil, der Gravitationsvektor liefert eine „absolute Referenz“, die Ihnen hilft, die akkumulierte Verzerrung der „Neigungs-“ und „Roll“-Winkel auszugleichen.

Ja, das, was Sie tun möchten, ist möglich, aber die schlechte Leistung von kostengünstigen MEMS-Geräten bedeutet, dass sich Fehler schnell ansammeln – sowohl Bias-Änderungen als auch der durch das Rauschen erzeugte „Random Walk“ (sowohl in den Beschleunigungsmessern als auch in den Ratenkreiseln). führt dazu, 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 dieser Art von Fehlern leiden. Wie ich oben erwähnt habe, ist die Verwendung des Schwerkraftvektorwinkels eine Möglichkeit, einige der Kreiselfehler zu korrigieren, aber Sie müssen sich bewusst sein, wann Sie eine genaue Schwerkraftmessung haben (das System wird sonst nicht beschleunigt), bevor Sie es verwenden können es.

Eine andere Möglichkeit, die Winkeldrift zu korrigieren, besteht darin, ein Magnetometer zur Messung des Erdmagnetfelds einzubauen. Magnetometer haben relativ große Fehler, leiden aber nicht unter Langzeitdrift.

Das Korrigieren der Positionsfehler, die durch die Driftkomponenten der Messwerte des Beschleunigungsmessers erzeugt werden, erfordert eine Art absolute Positionsreferenz. GPS wird häufig verwendet (sofern verfügbar), aber Sie können auch andere Sensoren verwenden, z. B. Barometer (für die Höhe), Kilometerzähler (wenn Sie Räder auf dem Boden haben), Ultraschall- oder Infrarot-Entfernungssensoren oder sogar Bildsensoren.

Unabhängig davon, welche Kombination von Sensoren Sie am Ende verwenden, müssen alle diese Daten zu einem in sich konsistenten Softwaremodell des Systemzustands "verschmolzen" werden, das nicht nur die aktuelle Position und Lage, sondern auch Schätzungen der aktuellen Abweichung enthält , Skalierungsfaktor und Rauschpegel der Sensoren selbst. Ein üblicher Ansatz besteht darin, einen Kalman-Filter zu verwenden, der nachweislich eine "optimale" Schätzung (dh die beste verfügbare Schätzung) des Systemzustands für einen gegebenen Satz von Sensorablesungen liefert.

Die kurze Antwort ist "nicht genau". Die lange Antwort ist, dass Sie Aussagen wie "Angesichts meiner Gyroskop-Messwerte bin ich zu 95 % sicher, dass das Gerät seit meiner letzten Messung zwischen 28 Grad und 32 Grad gedreht wurde" bilden können.

Das Problem ist, dass Sie am Ende Daten über eine verrauschte Differentialgleichung sammeln. Für ein Winkelgyroskop, das die Winkelgeschwindigkeit misst, haben Sie das laute diff eq

d θ ( t ) d t = r ( t )
und im Fall eines Beschleunigungsmessers
d 2 p ( t ) d t 2 = r ( t )
wo r ( t ) ist der aktuelle Wert Ihres Sensors t .

Diese "verrauschten" Differentialgleichungen werden normalerweise als "stochastische Differentialgleichungen" bezeichnet, wobei angenommen wird, dass das Rauschen das weiße Rauschen ist, das durch eine zufällige Wanderung 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 wird das Rauschen eine Verteilung haben, die experimentell bestimmt werden kann, deren Parameter von Ihrem spezifischen Gerät und Ihrer Anwendung abhängen. Aufgrund der Rauschakkumulation müssen Sie unabhängig davon, was Sie tun, um über relativ lange Zeitspannen gute Schätzungen zu erhalten, immer regelmäßig auf eine bekannte Position kalibrieren. Beispiele für feste Referenzen sind Heimatbasen, Kompassanzeigen und Schwerkraft.

Wenn Sie sich für diesen Weg entscheiden, müssen Sie einige Dinge entscheiden:

  • Was ist ein akzeptables Fehlerniveau? Möchten Sie sich zu 95 % sicher sein, dass es nach 2 Sekunden innerhalb von einem Grad liegt, oder möchten Sie sich zu 80 % sicher sein, dass es nach 2 Sekunden bei 5 Grad liegt?

  • Nehmen Sie einige Messwerte von Ihrem Gyroskop / Beschleunigungsmesser. Dies kann verwendet werden, um die empirische Verteilung des Rauschens zu berechnen, die das reale Rauschen abschätzt. Verwenden Sie dies, um Ihre verrauschte Differentialgleichung zu lösen und Ihre Konfidenzintervalle zu berechnen.

  • Aus dem Obigen sollte klar sein, wie sich die Ablesegenauigkeit (Varianz) aus dem Datenblatt auf die Lösung Ihrer verrauschten Differentialgleichung auswirkt. Es wird auch klar sein, wie es Ihre Konfidenzintervalle beeinflusst.

  • Wählen Sie ein Gerät mit akzeptablen Parametern, damit Sie im ersten Schritt die gewünschten Konfidenzintervalle erhalten. Möglicherweise stellen Sie fest, dass die von Ihnen gewünschten/benötigten Gerätegenauigkeitsparameter nicht mit den verfügbaren und/oder Ihrem Budget übereinstimmen. Andererseits werden Sie vielleicht überrascht sein, welche Ergebnisse Sie für billigere Geräte erhalten.

Das Problem (oder ein Problem) liegt darin, dass der Beschleunigungsmesser für mehr als p(t) empfindlich ist. Es reagiert auch empfindlich auf Änderungen in Theta um bestimmte Achsen.
Ich stimme zu. Aus diesem Grund ist es immer am besten, Vektoren zu verwenden, wenn Sie eine Analyse eines Multiparametersystems durchführen. Die Verallgemeinerung von vektorwertigen stochastischen Prozessen aus dem Fall einer einzelnen Variablen ist im Vergleich zu den übrigen Problemen trivial.