Quelle est la précision du monde réel des accéléromètres de téléphone lorsqu'il est utilisé pour le positionnement?
Je suis en train de travailler sur une application où je voudrais suivre la position d'un utilisateur mobile à l'intérieur d'un bâtiment où le GPS n'est pas disponible. L'utilisateur commence à bien connu emplacement fixe (avec une précision de moins de 5 centimètres), à quel point l'accéléromètre du téléphone doit être activé afin de suivre tous les mouvements supplémentaires à l'égard de cet emplacement fixe. Ma question est, dans le courant de génération de téléphones intelligents (iphone, téléphones android, etc), avec quelle précision peut-on s'attendre à être en mesure de suivre quelqu'poste basé sur l'accéléromètre ces téléphones sont généralement équiper?
Des exemples précis, comme "Si je bouge à 50 mètres X du point de départ, 35 mètres de Y à partir du point de départ et 5 mètres de profondeur Z du point de départ, je peux m'attendre à mon endroit à être approchée à l'intérieur de +/- 80 centimètres sur la plupart des téléphones intelligents", ou quoi que ce soit.
Je n'ai qu'une compréhension superficielle des techniques comme le filtre de Kalman pour corriger la dérive, mais si ces techniques sont utiles à ma demande et que quelqu'un veut décrire la qualité des corrections que je pourrais obtenir à partir de ces techniques, que serait un plus.
source d'informationauteur Bryce Thomas
Vous devez vous connecter pour publier un commentaire.
Si vous intégrez l'accéléromètre valeurs deux fois, vous obtenez la position mais l'erreur est horrible. Il est inutile dans la pratique.
Ici est une explication de pourquoi (Google Tech Talk) à 23:20.
J'ai répondu une question similaire.
Je ne sais pas si ce fil est encore ouvert ou même si vous êtes encore de tenter cette approche, mais je pourrais au moins donner un dans ce, compte tenu, j'ai essayé la même chose.
Que Ali a dit.... c'est horrible!!! la plus petite erreur de mesure dans les accéléromètres à son tour d'être rediculess après la double intégration. Et en raison de la constante augmentation et de la diminution de l'accélération lors de la marche (avec chaque pied l'étape en fait), cette erreur rapidement s'accumule au fil du temps.
Désolé pour la mauvaise nouvelle. Je n'ai pas envie de le croire, jusqu'à l'essayer soi-même... filtrer les indésirables des mesures aussi ne fonctionne pas.
J'ai une autre approche, éventuellement, plausible, si vous êtes intéressés à poursuivre votre projet. (démarche que j'ai suivi pour ma thèse pour mon ordinateur diplôme d'ingénieur)... à travers le traitement de l'image!
En gros, vous suivez la théorie pour les souris optiques. Le flux optique, ou comme l'a demandé en vue, Ego-Motion. Les algorithmes de traitement d'image mis en œuvre dans Android NDK. Même mis en place des OpenCV à travers le NDK pour simplifier les algorithmes. Vous convertir des images en niveaux de gris (compensation de la lumière différente entensities), puis de mettre en œuvre un seuillage, l'amélioration de l'image, sur les images (pour compenser pour obtenir des images floues lors de la marche), puis angle de détection (augmentation de la précision de résultat total des estimations), puis le modèle de contrepartie qui effectue la comparaison entre les images et les estimations réelles de déplacement en nombre de pixels.
Vous passez par l'essai et l'erreur d'estimation de la quantité de pixels qui représente la distance, et de multiplier cette valeur à convertir les pixels de déplacement en déplacement. Cela fonctionne jusqu'à une certaine vitesse de déplacement bien, le vrai problème étant que les images de la caméra encore trop floues pour des comparaisons précises en raison de la marche. Cela peut être amélioré par la caméra shutterspeeds, ou de l'ISO (je suis toujours en jouant avec ce).
Donc espérons que cela aide... sinon google pour Egomotion pour les applications en temps réel. Finalement, vous aurez le droit de trucs et de comprendre le jibberish je viens de vous expliquer.
enjoy 🙂
L'approche de l'optique est bonne, mais OpenCV fournit quelques fonctionnalité transforme. Vous avez ensuite la fonction match (OpenCV propose cette).
Sans avoir un deuxième point de référence (2 caméras) vous ne pouvez pas reconstruire où vous êtes directement en raison de la profondeur. Au mieux, vous pouvez l'estimation de la profondeur par point, supposons qu'un mouvement, score de l'hypothèse fondée sur quelques images et re-pense à chaque profondeur et de mouvement jusqu'à ce qu'il fait sens. Ce qui n'est pas difficile de code, mais il n'est pas stable, les petits mouvements des objets dans la scène de le visser en place. J'ai essayé 🙂
Avec une deuxième caméra cependant, il n'est pas difficile du tout. Mais les téléphones cellulaires ne les avez pas.