Ich versuche, Körperteile relativ zum Oberkörper einer Person zu verfolgen. Ich sehe einige Fragen zur Verwendung von MEMS-Beschleunigungsmessern und Gyros für die Dead Reckoning und sie bestätigen meinen Verdacht, dass verschiedene Faktoren ihre Nützlichkeit für diese Art von Anwendungen stark einschränken, aber ich versuche, diese Grenzen zu klären:
Was genau sind diese Grenzen?
Andere Antworten haben angesprochen, warum diese Grenzen existieren. Natürlich ändern sowohl die Spezifikationen der Teile des betreffenden Systems als auch der als "akzeptabler Fehler" für das System angesehene Wert die genauen Grenzwerte. Gibt es jedoch eine einzige Größenordnung in der Zeit oder in der Entfernung, von der ich erwarten kann, dass die tote Abrechnung funktioniert? Mir ist klar, dass der Fehler über große Entfernungen (einige Meter oder so) für die meisten praktischen Zwecke zu groß wird, aber wie sieht es innerhalb weniger Fuß aus?
Was kann ich tun, um diese Grenzwerte zu verbessern?
Ich suche derzeit nach einem Beschleunigungsmesser und einem Kreisel. Welche anderen Sensoren kann ich dem System hinzufügen, um die Fehlerrate zu verbessern? Ich weiß, dass über größere Entfernungen ein GPS verwendet werden kann, aber ich bezweifle, dass ein GPS mit Unterhaltungselektronikqualität eine ausreichende Auflösung hat, um in meinem Fall zu helfen.
Darüber hinaus scheint ein allgemeiner Konsens der einzige Weg, diese Grenzen über den Punkt verbesserter Sensoren hinaus zu verbessern, darin zu bestehen, eine Referenz bereitzustellen, die nicht fehleranfällig ist. Einige Systeme lösen dies mithilfe von Kameras und Markern. Welche Referenzpunkte kann ein tragbares / tragbares Gerät bieten?
Ich habe die Verwendung von Funkwellen gesehen, um große Entfernungen genau zu messen, aber ich kann nicht sagen, ob ein solches System in so kleinem Maßstab (in Bezug auf die gemessene Entfernung) unter Verwendung von "Standard" -Komponenten genau sein könnte.
Antworten:
Die Fehlerquellen umfassen Nullpunktverschiebung (Vorspannung) und Skalierungsfehler (die dazu neigen, langsam zu variieren) und Rauschen. Die Preise für MEMS-Sensoren variieren zwischen weniger als 10 USD und über 1000 USD, und die Größe der Fehlerbedingungen deckt je nach Qualität des Sensors einen weiten Bereich ab.
Das große Problem ist, dass normalerweise eine Integration erforderlich ist, um vom Sensorwert (Beschleunigung, Winkelgeschwindigkeit) zum gewünschten Wert (Position, Winkel) zu gelangen. Alle Fehlerquellen werden zusammengesetzt - wachsen mit der Zeit -, wenn sie integriert werden. Der Wert der Daten für die Dead Reckoning nimmt mit der Zeit ab, wobei billige Sensoren Ihnen höchstens ein paar Minuten nützliche Daten liefern und High-End-Sensoren möglicherweise einige Stunden lang gültig sind.
Wie Sie bereits festgestellt haben, besteht der beste Weg, um die wachsenden integrierten Fehler zu beseitigen, darin, die Sensordaten mit anderen unabhängigen Datenquellen zu kombinieren, die nicht die gleichen Fehlerarten aufweisen. Zum Beispiel kann GPS Ihnen einen absoluten Positionswert geben, der nicht langfristig driftet, sondern eine relativ große "Rausch" -Komponente aufweist. Sie können diese Daten verwenden, um die Vorspannungs- und Skalierungsfehler Ihrer Beschleunigungsmesser abzuschätzen, sodass Sie diese in Echtzeit korrigieren können. Sie können damit auch den durch das Sensorrauschen verursachten "Random Walk" aufheben. Ein Kalman-Filter ist eine gängige Methode zur Modellierung des Systems (einschließlich der Sensorfehlerterme) und zur Kombination der Daten, um zu jedem Zeitpunkt eine optimale Schätzung des Systemzustands zu erhalten.
Ein anderes Beispiel ist die Verwendung des "Schwerkraftvektors", gemessen mit den Beschleunigungsmessern, um die Winkeldrift der Gyros auszugleichen. Der Trick dabei ist, genau zu wissen, wann Sie einen gültigen Schwerkraftvektor haben. Das heißt, das System beschleunigt in keine Richtung. Dazu werden verschiedene Heuristiken (z. B. "Zero Update") verwendet. Ein Magnetometer kann auch zur Messung von Kreiselfehlern verwendet werden, selbst wenn Sie die absolute Richtung des Magnetfelds nicht kennen - solange Sie davon ausgehen können, dass es konstant ist.
Die optische Erfassung ist ein weiterer Weg, um eine driftfreie Geschwindigkeits-, Winkel- oder Positionsschätzung zu erhalten. Die erforderliche Bildverarbeitung kann jedoch viele CPU- (oder FPGA-) Zyklen erfordern, und die Entwicklung eines solchen Systems ist ziemlich kompliziert.
quelle
Sie haben gefragt, was noch hinzugefügt werden könnte. Ein 3-Achsen-Magnetometer sollte hilfreich sein. Das Erdmagnetfeld bewegt sich tendenziell wesentlich langsamer als der durchschnittliche Benutzer (zum Glück).
Schauen Sie sich die fabelhafte MPU6000 / 6050 an
Eine Version bietet eine SPI- und IIC-Schnittstelle, die andere nur IIC.
Dieses enthält ein 3-Achsen-Gyroskop + einen 3-Achsen-Beschleunigungsmesser sowie Eingänge, damit das Signal von einem externen 3-Achsen-Magnetometer integriert werden kann.
Der IC enthält einen "digitalen Bewegungsprozessor", der die Signale vom 3 x 3-Sensorarray integriert. Ich habe die genaue Funktionalität noch nicht in den Griff bekommen, aber die 3 separaten Signalquellen sollen zu einem nützlichen Bewegungsanalysesystem verarbeitet werden
Datenblatt hier
Der IC kostet ungefähr 10 USD / 1 von Digikey und ein Evaluierungsboard kostet ungefähr 50 USD + vom Hersteller. Oder Sie können ein komplettes Board aus China kaufen - es wird hier für etwa 6 US-Dollar im Einzelhandel in 1er verkauft - IC und PCB zusammengebaut.
Ich habe immer noch nicht herausgefunden, wie das passiert oder ob sie echt sind oder ... Ich habe gestern einen erhalten, werde aber eine Weile nicht damit spielen können. ('Whiles' variieren stark in der Größe, von sehr klein bis manchmal übergroß, leider). Es gibt eine Reihe von Artikeln im Internet über die Verwendung mit z. B. Arduinos.
Wie genau?:
Es gibt wahrscheinlich viele Diskussionen darüber im Web.
Wenn ich das Datenblatt richtig gelesen habe (und es ist kein Gerätetyp, mit dem ich übermäßig vertraut bin),
deutet Tabelle 6.1 auf Seite 12 darauf hin, dass das Gyroskop bei 25 ° C eine Drift von +/- 20 Grad / Sekunde und so viel mehr aufweist - Temperaturbereich von 40 bis + 85 ° C. Angenommen, eine tatsächliche Geschwindigkeit von 20 Grad / Sekunde entspricht einer vollen Umdrehung in 18 Sekunden. Sowohl das Magnetometer als auch der Beschleunigungsmesser bieten jedoch Zugang zu externen Referenzvektoren (Schwerkraft und Erdmagnetfeld), und Signale von diesen können verwendet werden, um kurz- und langfristige Kreiseldriftraten abzuleiten und zu kompensieren. Dies kann durchaus Teil dessen sein, was ihr "Bewegungsprozessor" tut.
Der Beschleunigungsmesserfehler scheint typischerweise unter +/- 5% zu liegen.
Ich würde erwarten (und kann sehr falsch sein), dass die Verwendung des Beschleunigungsmessers und des Magnetometers zum Trimmen der Kreiseldriftfehler auf im Wesentlichen Null längerfristig es Ihnen ermöglichen würde, die Kreiselsignale für die Navigation über Sekunden bis Minuten zu verwenden. GPS liefert auch Geschwindigkeitssignale und die Kombination von Position + Geschwindigkeit des Hausarztes mit der 9DOF-Einheit klingt sehr nützlich.
Wooly: Das oben genannte klingt wolliger als ich möchte. Ich gehe davon aus, dass ich in den nächsten Wochen mehr darüber erfahren werde. Es würde mich interessieren, was Sie herausfinden, und wenn ich nützliche Dinge erfahre, werde ich versuchen, darüber Bericht zu erstatten.
.
Abhängig von Ihrer Anwendung können Sie möglicherweise ein Referenz-GPS und einen Empfänger vorübergehend an einem geeigneten Ort ablegen. Dies kann äußerst kompakt sein - GPS + Batterie + TX. Einmal hinterlegt, weiß es, wo es sich befindet, und kann Korrekturen übertragen, je nachdem, wo sich das System befindet. Die Verwendung derselben Satellitenkonstellation ist "wahrscheinlich eine gute Idee". Wenn sich der Benutzer und das Referenz-GPS zum gleichen Zeitpunkt am selben Ort befinden, an dem es abgelegt wird, ist dies umso besser, aber dieses System funktioniert auch dann, wenn sie immer räumlich getrennt sind.
Wenn Sie nicht wissen, was Ihr Fall ist, ist es schwer zu sagen. Die relative GPS-Auflösung von Probe zu Probe ist jedoch in der Regel weitaus besser als die, die über Minuten oder Stunden erreicht wird. Ich habe Tests durchgeführt, bei denen ich über eine städtische Route gefahren bin, die GPS-Koordinaten aufgezeichnet und die Übung einige Stunden später wiederholt habe. Die beiden Wege waren in einigen Fällen mehrere Meter voneinander entfernt, aber wenn man beispielsweise in einer geraden Linie entlang einer städtischen Straße fuhr, war das Grundstück eine gerade Linie mit "Lärm" auf beiden Seiten einer geraden Linie von vielleicht weniger als einem Meter. (Das war vor einigen Jahren - es ist einfach, dies selbst zu versuchen. Ich habe gerade Daten von einem seriellen GPS-RS232-Ausgang (normalerweise 4800 Baud) aufgezeichnet und in diesem Fall in Excel als XY-Diagramm dargestellt.
Differenzielles GPS kann verwendet werden, wobei ein lokaler stationärer Empfänger mit festem Standort Fehlerkorrekturen basierend darauf liefert, wo er es kennt und wo das System es jetzt sagt. Es gibt viele Anbieter solcher Systeme, aber das Konzept ist einfach und leicht zu implementieren, wenn mit einem knappen Budget.
quelle
Etwas, das in diesen Antworten noch nicht behandelt wird, ist Ihre spezifische Anwendung, die bereits mindestens ein Dutzend Mal von sehr klugen Leuten bearbeitet wurde. Die beiden Schlüsselwörter hier sind inverse Kinematik und Kalman-Filter.
Inzwischen sollte klar sein, woher die Fehler für Ihre Anwendung stammen und wie sie behoben werden können. Wenn Sie sich jedoch mit Sensoren befassen, die im Wesentlichen an einen Menschen gebunden sind, können Sie den Bereich der räumlichen und Winkelpositionen Ihrer Sensoren verringern, indem Sie die Gleichung invers kinematisch anwenden. Dies bedeutet im Grunde, dass Sie die relativen Positionen möglichst vieler Gelenke am Körper verfolgen und ein kinematisches Modell des menschlichen Körpers darauf anwenden. Zum Beispiel ändert sich die Länge der Arme der Menschen im Laufe der Zeit nicht und ihre Bewegungsreichweite ändert sich auch nicht nennenswert. Knochen verbiegen sich nicht (unter normalen Umständen). All dies kann verwendet werden, um Ihre Sensorpositionen einzuschränken.
Die andere Lösung besteht darin, so viele orthogonale Sensoren wie möglich zu verwenden. Orthogonal im Sinne von: Verwendung grundlegend unterschiedlicher Messprinzipien. Wenn Sie so viel Sensoreingang wie möglich verwenden, können Sie einen sogenannten Kalman-Filter verwenden, um angesichts der Daten, in denen sich Ihre Sensoren befinden, so genau wie möglich zu arbeiten. Kalman-Filter sind jedoch keine magische Einheit, die die beste Antwort liefert. Es handelt sich um mathematische Modelle, die an Ihre spezifische Anwendung angepasst und modifiziert werden müssen, und es kann ziemlich mühsam sein, sie zum Funktionieren zu bringen. Aber es ermöglicht Ihnen auf eine Art und Weise, ansonsten sehr schwer zu korrelierende Sensordaten zu kombinieren. Eingaben für diese Art von Filtern können alles sein: Positions-, Beschleunigungs- und Geschwindigkeitssensoren, aber auch Lichtsensoren, die Informationen hinzufügen können, indem sie auf Lichtquellen reagieren, die in bestimmten Winkeln sichtbar sind.
Einige "Powergloves" mit diesem Arbeitsprinzip (Kinematik + Kalman-Filter) wurden von Unternehmen und Universitäten gleichermaßen demonstriert. Die letzte, die ich an der TU Eindhoven gesehen habe, verwendete MPU6050 auf flexiblen Substraten, die in einen Handschuh eingewebt waren, sowie einige unterstützende Sensoren (ich denke im Moment sind es nur Webcams), die alle in einen großen Kalman-Filter mit Matlab-Antrieb eingespeist wurden. Die Wiederholgenauigkeit beträgt 1 mm.
quelle
Das Grundproblem
Dies kann durch Untersuchung der kurzfristigen Fehlerdynamik eines Trägheitsnavigationssystems behoben werden. Es wird in vielen Texten ausführlich behandelt , aber hier ist die kurze "gleichungsfreie" Version.
Die Trägheitsnavigation funktioniert wie folgt:
Kennen Sie genau Ihre Ausgangsposition, Geschwindigkeit und Fluglage (dh Pitch Roll und Yaw).
Verwenden Sie Ihre neue Einstellung, die Sie gerade berechnet haben, um Ihre Beschleunigungsmesserwerte mathematisch so zu drehen, dass sie mit der Erde übereinstimmen.
Subtrahieren Sie die Schwerkraft von Ihren neuen Messwerten für den Beschleunigungsmesser.
Wiederholen Sie die Schritte 2 bis 6 so lange wie gewünscht.
Darüber hinaus wird sich diese Vorspannung in der Fluglage ansammeln, was dazu führt, dass die Beschleunigungsmesser falsch ausgerichtet werden, was dazu führt, dass die Beschleunigung in die falsche Richtung ausgerichtet wird, die dann in die falsche Richtung integriert wird - drei Fehlerebenen.
Dies bedeutet, dass Kreiselfehler dazu führen, dass Positionsfehler mit dem Zeitwürfel wachsen .
Durch den gleichen logischen Beschleunigungsmesserfehler werden Positionsfehler mit dem Zeitquadrat größer .
Aus diesem Grund erhalten Sie nur wenige Sekunden nützliche (reine) Trägheitsnavigation von MEMS-Sensoren für Mobiltelefone.
Selbst wenn Sie extrem gute Trägheitssensoren haben - beispielsweise Flugzeugqualität -, sind Sie grundsätzlich auf etwas weniger als zehn Minuten (reine) Trägheitsnavigation beschränkt. Der Grund ist Schritt 3 - die Schwerkraft ändert sich mit der Höhe. Wenn Sie Ihre Körpergröße falsch einstellen, wird Ihre Schwerkraft falsch sein, was dazu führt, dass Ihre Körpergröße falsch ist, was dazu führt, dass Ihre Schwerkraft falscher ist und so weiter - exponentielles Fehlerwachstum. Selbst ein "reines" Trägheitsnavigationssystem, wie es in Militärjets zu finden ist, hat normalerweise so etwas wie einen barometrischen Höhenmesser. Quelle .
Lösungen
Es gibt sowohl Forschungs- als auch Handelsprodukte , die dies tun können.
Konzeptionell funktioniert es wie Stereovision - Sie haben eine bekannte Grundlinie zwischen den Kameras und einen anderen Winkel zu jedem Marker, von jeder Kamera aus gesehen. Daraus kann die 3D-Position jeder Markierung berechnet werden (relativ zur Kamera). Mit mehr Kameras kann es besser funktionieren.
Mit billiger Hardware kann Decawave UWB von Nutzen sein (10 cm Reichweite oder so). Sie müssen Ihre eigenen Algorithmen durcharbeiten.
Neben dem Körper wird ein GPS-System Probleme haben. Das Erhalten von GPS auf cm-Ebene beruht auf einer kontinuierlichen Phasenverfolgung der (sehr, sehr schwachen) GPS-Signale, was äußerst schwierig ist, wenn sich die Antenne neben dem Körper befindet und sich der Körper bewegt! Für Nur-L1-Systeme - unabhängig davon, welche billig oder teuer sind - muss die Verfolgung sehr lange dauern (10 Minuten +) und ist daher für dieses Problem unpraktisch. Ein Zweifrequenzempfänger mag manchmal funktionieren , aber diese sind wirklich nicht billig (Tausende von Dollar).
quelle