Indoor Positioning System basierend auf Gyroskop und Beschleunigungsmesser


72

Ich entwickle eine Android App, um die Position in Innenräumen zu verfolgen. Mein Telefon ist ein Google Nexus S mit zwei Sensoren, von denen der erste ein Beschleunigungsmesser und der zweite ein Gyroskop ist.

Meine Idee ist, dass von einem Startreferenzpunkt (einer bekannten GPS-Position) aus die beiden Sensoren (Beschleunigungsmesser für Bewegung und Gyro für Richtungen) das Telefon während der Bewegung verfolgen. Und auf einer Karte anzeigen, wenn der Benutzer geht.

Aber das Problem ist, dass ich keine Ahnung habe, wie ich diese beiden Sensoren kombinieren soll, um mir eine tatsächliche Position zu geben?

Ich habe einen Artikel im Internet gelesen, der über "Kalman-Filter" spricht, und nach einigen weiteren Recherchen fand ich heraus, dass dieser Filter sehr, sehr komplex / zu viel für mich ist, insbesondere um ihn in Java für Android (CPU-Killer) zu codieren.

Hat jemand Erfahrungen, die er mir über das Indoor-Positionierungssystem mit Gyro und Beschleunigungsmesser mitteilen kann?


hay @Alexis haben Sie einen Code gefunden, der dieses Ziel erreicht? Danke im Voraus
Fehler

Antworten:


69

Gyros und Beschleunigungsmesser reichen nicht aus.

Sie erhalten die Position, indem Sie die Linearbeschleunigung zweimal integrieren, aber der Fehler ist schrecklich. In der Praxis ist es nutzlos.

Hier ist eine Erklärung von (Google Tech Talk) um 23:20 Uhr. Ich kann dieses Video nur empfehlen.

Für die Positionierung in Innenräumen habe ich Folgendes nützlich gefunden:

Ich habe keine Ahnung, wie diese Methoden in realen Anwendungen funktionieren würden oder wie man sie in eine schöne Android-App verwandelt.

Eine ähnliche Frage ist die Berechnung der Entfernung innerhalb eines Gebäudes .


2
Ja, ich habe auch diese Dokumente gefunden, aber sie haben HOE nicht erklärt, dass sie es schaffen, solche Dinge zu tun. Die meisten dieser Papiere sind nur ein schönes Ergebnis auf einer Pfadspur auf einer 2D-Karte. Aber kein Code? keine vollständige Berechnung?
Alexis

@ina Nun ja, eine leicht aktualisierte Antwort ist hier .
Ali

Ich habe gerade dieses Projekt gestartet. Wir werden weiter darauf eingehen. Aber dank dem Video
Jayson Ragasa

1
@Soren Du hast recht, der Fehler in der ersten Sekunde wäre "nur" 8,6 cm. Wir haben a_error = [cos (1 Grad) -1, sin (1 Grad)] · 9,8 ms ^ -2. Dann berechnen Sie 0,5 · a_error · t ^ 2
AvD

1
@AvD In der Tat ist es ca. 8,5 cm nach meinen eigenen Berechnungen auch. Die Formeln im Video sind korrekt, aber sie haben die Konvertierung von m in cm irgendwo durcheinander gebracht. Der Typ sagt 8,5 Meter, wenn es in Wirklichkeit 8,5 Zentimeter sind. Beachten Sie jedoch, dass dieser Fehler parabolisch zunimmt. In 10 Sekunden beträgt er ca. 8,5 Meter. :(
Ali

7

Ich denke, dies ist ein großartiger Beitrag zur Beantwortung Ihrer Frage. Dieser Kalman-Filter kombiniert Daten von Beschleunigungsmessern und Gyros. Ich hoffe es hilft.


Chrome warnt davor, dass der Link Malware hostet. Ist derselbe Inhalt an anderer Stelle verfügbar?
Tom

Danke für die Erinnerung. Ich aktualisiere den Link. Könnten Sie Ihre Ablehnung stornieren, da der Beitrag gut funktioniert, als ich den Kommentar abgegeben habe? @ Tom
Allen Jee

1

Weitere interessante Informationen zu neuen Positionierungstechnologien für Innenräume finden Sie in diesem Blogbeitrag von Qubulus . Es gibt mehrere Startups und Forschungsprojekte, die versuchen, einen guten Ersatz für GPS in Innenräumen zu finden. Die Versuche reichen von Dead Reckoning über QR-Codes , Lichtimpulse bis hin zu Funkfingerabdrücken. Es sieht so aus, als würde jede praktikable Lösung mehrere Technologien kombinieren (ähnlich wie die meisten Smartphones auf A-GPS setzen, bei dem das Satellitensignal durch Multilateration des Zellturms unterstützt wird ).

Viel Glück bei Ihrer Bewerbung!


1

Ich denke, es ist zu spät, um diese Frage zu beantworten, aber jetzt gibt es eine gute Lösung namens iBeacon-Technologie.

Sie können iBeacon- Geräte mit Ihrem Smartphone scannen und das RSSI von iBeacon erhalten. Sie können also Ihre Position anhand dieser RSSI berechnen.


Nicht wirklich, iBeacons haben zwar die RSSI-Informationen, aber sie sind nicht so genau. Jedes Objekt, das sich bewegt, kann und wird das Signal stören, daher nicht so vertrauenswürdig. Trotzdem ist es möglich, als Reichweitenkräfte zu verwenden, wie es nativ geschieht (unmittelbar, nah, fern und unbekannt).
Samuel Cortez

@Samuel Cortez 3 Mit RSSI können Sie ungenaue Positionen wie "Sie sind in der Nähe Buchhandlung" erhalten. Und wenn Sie eine genauere Position benötigen, können Sie drei oder mehr Beacons verwenden, um die Triangulation zu verwenden. Wie Sie bereits erwähnt haben, ist rssi ungenau. Sie müssen also einen Filter (z. B. Tiefpass) verwenden, um ein klares Signal zu erhalten.
Stanley Kou

iBeacon-Trilateration ist eine schreckliche Idee und funktioniert in der Praxis nicht. Sie können iBeacons jedoch als hübsche Schlüsselanhänger verwenden, nachdem Sie Ihre Trilaterationsträume nicht verwirklicht haben. Alles, was @Samuel sagte, ist richtig.
Nurettin

@nurettin Nun, mit erweitertem Kalman-Filter hat es in der Praxis funktioniert. Glauben Sie mir, ich habe für die iBeacon-Produktionsfirma gearbeitet. GPS in Ihrem Telefon ist ebenfalls ungenau, aber mit dem erweiterten Kalman-Filter im GPS-Chip funktioniert es. Das einzige Problem war, dass die Leute das nicht wollen. Und das Scannen von Bluetooth verbraucht zu viel Batterie.
Stanley Kou

@ StanleyKou Danke, ich habe nachgeschlagen, die erweiterte Kalman-Filtermethode existiert wirklich und es gibt Papiere, die bestätigen, dass sie funktioniert (Trilateration funktioniert nicht, aber Kreisschnittmethode funktioniert)
Nurettin

1

Um die Position in Innenräumen von einem Referenzpunkt aus zu verfolgen, reichen nur Kreisel und Beschleunigungsmesser nicht aus. Mit dem Beschleunigungsmesser können Sie die Geschwindigkeit berechnen, mit dem Kreisel können Sie die Richtung des Mobilgeräts ermitteln. Zur Berechnung der Innenposition benötigen Sie jedoch auch eine Bewegungsrichtung. In diesem Fall müssen Sie einen Magnetsensor verwenden. Ein solcher Ansatz wird als Dead Reckoning-Methode bezeichnet und es ist ziemlich komplex, alle drei Sensoren zu kombinieren, um eine geeignete Innenposition zu erhalten. Mit Kalman-Filtern können Sie Ihre Messung glätten und Rauschen filtern. Dies ist jedoch nicht die Methode zur Berechnung der Innenposition. Wenn Sie eine Innenposition erhalten möchten, können Sie den iBeacon-Ansatz und die Trilaterationsmethode ausprobieren. Es gibt einige Bibliotheken (wie diese ), die bereits über diese Funktionalität verfügen, sodass Sie versuchen können, diese Methode anhand solcher Bibliotheken zu untersuchen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.