Ich denke nur laut nach und habe noch nicht mit einer Android-Beschleunigungsmesser-API gespielt.
Um die Navigation von Beschleunigungsmessern aus zu erhalten, benötigen Sie traditionell zunächst einen 6-Achsen-Beschleunigungsmesser. Sie benötigen Beschleunigungen in X, Y und Z, aber auch Rotationen in Xr, Yr und Zr. Ohne die Rotationsdaten verfügen Sie nicht über genügend Daten, um einen Vektor zu erstellen, es sei denn, Sie gehen davon aus, dass das Gerät seine Einstellung niemals ändert, was ziemlich einschränkend wäre. Niemand liest sowieso die AGB.
Oh, und Sie wissen, dass INS mit der Rotation der Erde driftet, richtig? Das gibt es also auch. Eine Stunde später klettern Sie auf mysteriöse Weise auf einem 15 ° -Hang in den Weltraum. Dies setzt voraus, dass Sie ein INS hatten, das in der Lage ist, den Standort so lange aufrechtzuerhalten, was ein Telefon noch nicht kann.
Ein besserer Weg, Beschleunigungsmesser - auch mit einem 3-Achsen-Beschleunigungsmesser - für die Navigation zu verwenden, wäre die Einbindung in GPS, um das INS zu kalibrieren, wann immer dies möglich ist. Wo GPS zu kurz kommt, macht INS ein gutes Kompliment. GPS kann Sie plötzlich 3 Blocks entfernt abschießen, weil Sie zu nahe an einen Baum gekommen sind. INS ist nicht großartig, aber zumindest weiß es, dass Sie nicht von einem Meteor getroffen wurden.
Was Sie tun könnten, ist, die Beschleunigungsmesserdaten des Telefons und viele davon zu protokollieren. Wie Wochen wert. Vergleichen Sie es mit guten (ich meine wirklich guten) GPS-Daten und verwenden Sie Datenerfassung, um die Korrelation von Trends zwischen Beschleunigungsmesserdaten und bekannten GPS-Daten herzustellen. (Pro-Tipp: Sie sollten den GPS-Almanach tagelang mit guter Geometrie und vielen Satelliten überprüfen. An manchen Tagen haben Sie möglicherweise nur 4 Satelliten und das reicht nicht aus.) Möglicherweise können Sie dies bei einer Person feststellen läuft mit dem Handy in der Tasche, protokollieren die Beschleunigungsmesserdaten ein ganz bestimmtes Muster. Basierend auf der Datenerfassung erstellen Sie mit diesem Benutzer ein Profil für dieses Gerät und welche Geschwindigkeit dieses Muster darstellt, wenn GPS-Daten vorhanden sind. Sie sollten in der Lage sein, Kurven zu erkennen, Treppen zu steigen und sich hinzusetzen (Kalibrierung auf 0 Geschwindigkeitszeit! ) und verschiedene andere Aufgaben. Wie das Telefon gehalten wird, müsste vollständig als separate Dateneingabe behandelt werden. Ich rieche ein neuronales Netzwerk, das für das Data Mining verwendet wird. Mit anderen Worten, etwas Blindes für die Bedeutung der Eingaben. Der Algorithmus würde nur nach Trends in den Mustern suchen und nicht wirklich auf die tatsächlichen Messungen des INS achten. Alles was es wissen würde isthistorically, when this pattern occurs, the device is traveling and 2.72 m/s X, 0.17m/s Y, 0.01m/s Z, so the device must be doing that now.
Und es würde das Stück entsprechend vorwärts bewegen. Es ist wichtig, dass es völlig blind ist, da das Einstecken eines Telefons in die Tasche möglicherweise in einer von 4 verschiedenen Ausrichtungen und in 8 verschiedenen Ausrichtungen ausgerichtet ist, wenn Sie die Taschen wechseln. Und es gibt auch viele Möglichkeiten, Ihr Telefon zu halten. Wir sprechen hier über viele Daten.
Sie werden offensichtlich immer noch viel Drift haben, aber ich denke, Sie würden auf diese Weise besseres Glück haben, da das Gerät weiß, wann Sie aufgehört haben zu gehen, und die Positionsdrift kein Fortbestehen sein wird. Es weiß, dass Sie aufgrund historischer Daten stillstehen. Herkömmliche INS-Systeme verfügen nicht über diese Funktion. Die Drift setzt sich bei allen zukünftigen Messungen und Verbindungen exponentiell fort. Ungottlose Genauigkeit oder eine sekundäre Navigation, die in regelmäßigen Abständen überprüft werden muss, ist bei herkömmlichen INS von entscheidender Bedeutung.
Jedes Gerät und jede Person müsste ein eigenes Profil haben. Es sind viele Daten und viele Berechnungen. Jeder geht mit unterschiedlichen Schritten unterschiedliche Geschwindigkeiten und steckt seine Telefone in unterschiedliche Taschen usw. Um dies in der realen Welt zu implementieren, müsste die Zahlenkalkulation sicherlich serverseitig erfolgen.
Wenn Sie GPS für die anfängliche Basislinie verwendet haben, besteht ein Teil des Problems darin, dass GPS im Laufe der Zeit tendenziell eigene Migrationen aufweist, die jedoch nicht fortbestehen. Setzen Sie einen Empfänger an einen Ort und protokollieren Sie die Daten. Wenn es keine WAAS-Korrekturen gibt, können Sie leicht Standortkorrekturen erhalten, die in zufällige Richtungen 100 Fuß um Sie herum driften. Mit WAAS vielleicht bis zu 6 Fuß. Vielleicht haben Sie mit einem Submeter-RTK-System auf einem Rucksack tatsächlich mehr Glück, um zumindest den ANN-Algorithmus herunterzufahren.
Sie werden mit dem INS nach meiner Methode immer noch eine Winkeldrift haben. Das ist ein Problem. Aber wenn Sie so weit gegangen sind, um eine ANN zu erstellen, um über Wochen hinweg GPS- und INS-Daten unter n Benutzern zu verteilen, und diese tatsächlich bis zu diesem Punkt zum Laufen gebracht haben, haben Sie offensichtlich bisher nichts gegen Big Data. Gehen Sie diesen Weg weiter und verwenden Sie mehr Daten, um die Winkeldrift zu beheben: Menschen sind Gewohnheitstiere. Wir machen so ziemlich die gleichen Dinge wie auf Gehwegen, durch Türen, Treppen hoch und machen keine verrückten Dinge wie über Autobahnen, durch Wände oder von Balkonen.
Nehmen wir also an, Sie nehmen eine Seite von Big Brother und beginnen, Daten darüber zu speichern, wohin die Leute gehen. Sie können mit der Zuordnung beginnen, wo Personen laufen sollen. Es ist eine ziemlich sichere Wette, dass der Benutzer, wenn er anfängt, Treppen hochzugehen, sich an derselben Treppe befindet wie die Person vor ihr. Nach 1000 Iterationen und einigen Anpassungen der kleinsten Quadrate weiß Ihre Datenbank ziemlich genau, wo sich diese Treppen befinden. Jetzt können Sie die Winkeldrift und die Position korrigieren, wenn die Person zu laufen beginnt. Wenn sie diese Treppe erreicht, den Flur hinuntergeht oder einen Bürgersteig hinunterfährt, kann jede Abweichung korrigiert werden. Ihre Datenbank würde Sektoren enthalten, die mit der Wahrscheinlichkeit gewichtet sind, dass eine Person dorthin gehen würde oder dass dieser Benutzer in der Vergangenheit dorthin gegangen ist. Geodatenbanken sind dafür mit optimiertdivide and conquer
nur sinnvolle Sektoren zuzuweisen. Es wäre wie bei MIT-Projekten, bei denen der mit einem Laser ausgestattete Roboter mit einem schwarzen Bild beginnt und das Labyrinth in Erinnerung malt, indem er jede Runde macht und beleuchtet, wo sich alle Wände befinden.
Bereiche mit hohem Verkehrsaufkommen würden ein höheres Gewicht erhalten, und Bereiche, in denen noch nie jemand ein Gewicht von 0 erhalten hat. Bereiche mit höherem Verkehr haben eine höhere Auflösung. Sie würden im Wesentlichen eine Karte von überall erhalten, wo sich jemand befunden hat, und sie als Vorhersagemodell verwenden.
Es würde mich nicht wundern, wenn Sie mit dieser Methode feststellen könnten, welchen Platz eine Person in einem Theater einnimmt. Bei genügend Benutzern, die ins Theater gehen, und einer ausreichenden Auflösung würden Sie Daten haben, die jede Zeile des Theaters abbilden und wie breit jede Zeile ist. Je mehr Personen einen Ort besuchen, desto höher ist die Wiedergabetreue, mit der Sie vorhersagen können, dass sich diese Person befindet.
Außerdem empfehle ich Ihnen dringend, ein (kostenloses) Abonnement für das GPS World-Magazin zu erhalten, wenn Sie an der aktuellen Forschung zu solchen Dingen interessiert sind. Jeden Monat mache ich mich daran.