web-dev-qa-db-fra.com

Système de positionnement intérieur basé sur un gyroscope et un accéléromètre

Je développe une Android pour suivre la position à l'intérieur. Mon téléphone est un Google Nexus S utilisant deux capteurs, le premier étant un accéléromètre et le second un gyroscope.

Mon idée est qu’à partir d’un point de référence de départ (position GPS connue), l’utilisation des 2 capteurs (accéléromètre pour le mouvement et gyroscope pour les directions) permet de suivre le téléphone lorsqu’il se déplace. Et afficher sur une carte quand l'utilisateur s'en va.

Mais le problème est que je ne sais pas comment combiner ces deux capteurs pour me donner une position réelle.

J'ai lu un article sur Internet qui parle de "filtre kalman" et après quelques recherches, j'ai découvert que ce filtre était très complexe/trop complexe pour moi, en particulier pour le coder dans Java pour Android (processeur tueur)

Quelqu'un a-t-il une expérience qu'il peut partager avec moi sur le système de positionnement intérieur utilisant un gyroscope et un accéléromètre?

69
Alexis

Les gyroscopes et les accéléromètres ne suffisent pas.

Vous obtenez la position en intégrant l'accélération linéaire deux fois mais l'erreur est horrible. C'est inutile en pratique.

Voici ne explication de (Google Tech Talk) à 23h20. Je recommande fortement cette vidéo.

En ce qui concerne le positionnement à l'intérieur, j'ai trouvé ceux-ci utiles:

Je ne sais pas du tout comment ces méthodes fonctionneraient dans des applications réelles ou comment les transformer en une application Nice Android.

Une question similaire est Calculer la distance dans un bâtiment .

65
Ali

Je pense que c'est un excellent post répondre à votre question. Ce filtre kalman combine les données des accéléromètres et des gyroscopes. J'espère que ça aide.

7
Allen Jee

Pour suivre la position intérieure à partir d'un point de référence, seul le gyroscope et l'accéléromètre ne suffisent pas. Avec l'accéléromètre, vous pouvez calculer la vitesse, avec le gyroscope, vous pouvez obtenir la direction du périphérique mobile, mais pour calculer la position à l'intérieur, vous devez également connaître la direction du mouvement. Dans ce cas, vous devez utiliser un capteur magnétique. Une telle approche s'appelle la méthode Dead Reckoning et il est assez complexe de combiner les 3 capteurs pour obtenir la position appropriée à l'intérieur. Les filtres de Kalman vous permettent d'ajuster votre mesure et de filtrer certains bruits, mais ce n'est pas la méthode pour calculer la position à l'intérieur. Si vous voulez obtenir une position intérieure, vous pouvez essayer l’approche iBeacon et la méthode de trilatération. Certaines bibliothèques (comme celle-ci ) possèdent déjà cette fonctionnalité. Vous pouvez donc essayer d’explorer cette méthode à partir de telles bibliothèques.

1
Dr.Lean

Pour quelques autres lectures intéressantes sur les technologies émergentes de positionnement en intérieur, consultez ceci article de blog de Qubulus . Plusieurs startups et projets de recherche tentent de trouver un bon substitut au GPS en intérieur. Les tentatives vont de Dead Reckoning à QR Codes , en passant par des impulsions lumineuses, des empreintes radio. Il semble que toute solution viable associe plusieurs technologies (de la même manière que la plupart des téléphones intelligents reposent sur le système A-GPS, dans lequel le signal satellite est assisté de multilateration de la tour cellulaire ).

Bonne chance avec votre application!

1
nicksuch

Je pense qu'il est trop tard pour répondre à cette question, mais maintenant, il existe une bonne solution appelée technologie iBeacon.

Vous pouvez numériser des appareils iBeacon depuis votre smartphone et obtenir le flux RSS de iBeacon. Donc, vous pouvez calculer votre position par ces RSSI.

1
Stanley Kou