IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Android Discussion :

Améliorer précision GPS sous Android


Sujet :

API standards et tierces Android

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Septembre 2010
    Messages : 76
    Points : 42
    Points
    42
    Par défaut Améliorer précision GPS sous Android
    Bonjour,

    Je souhaite (enfin j'essaie surtout...) de faire une application de réalité augmentée, basée sur le positionnement GPS pour réaliser des visites de lieux.

    Le problème vient de la précision aléatoire de la position GPS envoyée par un appareil, en gros j'affiche des points sur un radar (j'utilise le super droidAR comme base) mais les points ne font que sauter et bouger tout seul (même si droidAR fait une moyenne des dernières positions pour filter un peu).

    Bref, j'aurais voulu savoir s'il y avait des petits trucs ou outils de développement (pas des applications du marker, qui ne m'ont servi à rien) qui peuvent aider pour essayer d'avoir quelque chose d'à peu près fiable à quelques mètres prêt ?

    Par exemple est-il possible, en utilisant uniquement les accéléromètres par un algorithme, de définir une position de départ et de se repérer uniquement par rapport à cette position (dans un système relatif, sans utiliser les coordonnées GPS) ? Ou y'a-t-il d'autres possibilités ?

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    La précision de 50m est inhérente au GPS.

    Les solutions que tu préconisent sont les bonnes, pour obtenir une meilleure précision en temps réel, il faut ajouter des capteurs :
    - Android permet déjà d'utiliser le Wifi pour améliorer le positionnement (trilateration wifi et/ou GSM)
    - utiliser les capteurs du téléphone (accéléromètre, gyroscope & magnétomètre) et les intégrer (DCM ou filtre de kalman) pour obtenir une meilleure précision relative
    - utiliser la (les) caméra(s) du téléphone et un algorithme de type optical flow/tracker (KLT) pour en déduire les mouvements du téléphone, c'est utilisé sur certains drones pour les phases stationnaires ou d'atterrissage

    Dans tous les cas, il faut bien intégrer que l'on obtient un meilleure précision relative (les points ne bouge plus) mais la précision absolue (ou je me trouve réellement) dépend toujours de l'estimation initiale (GPS + trilatération Wifi/GSM).
    Eventuellement, les logiciels GPS du commerce font un recalage sur la cartographie vectorielle (il te positionne sur la route et non dans les champs).

    Quelques liens intéressants :
    - Un article de Xavier Raffin
    - une discussion sur l'algorithme DCM (Direct Cosine matrix), initialement sur le site diydrones.com dans le forum
    et pour plus d'info google :"Direct cosine matrix on android"

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Septembre 2010
    Messages : 76
    Points : 42
    Points
    42
    Par défaut Avec quelle précision ?
    Merci pour votre réponse, le DCM a l'air d'être exactement ce qu'il me faudrait.

    Toutefois, savez-vous quelle précision cela permet-il d'approcher ? Si par exemple on donne des à-coups ou que l'on secoue l'appareil Android, le résultat est-il toujours fiable ?

    Enfin, savez-vous s'il existe des portages de l'algorithmes en Java ou Android (parce que entre moi et les maths, ça va être compliqué...)

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Points : 21
    Points
    21
    Par défaut
    Pour la précision, mieux que ±30 cm (voire quelques mm), il y a pas mal de vidéo sur diydrones (dans le forum) qui permettent de se donner une idée de la stabilité obtenue.

    Pour le portage Android, cela semble avoir été fait içi
    mais pas encore en open-source, il faudrait demander à l'auteur .

    Il y a des portage en C ici

  5. #5
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Les solutions que tu préconisent sont les bonnes, pour obtenir une meilleure précision en temps réel, il faut ajouter des capteurs :
    - Android permet déjà d'utiliser le Wifi pour améliorer le positionnement (trilateration wifi et/ou GSM)
    - utiliser les capteurs du téléphone (accéléromètre, gyroscope & magnétomètre) et les intégrer (DCM ou filtre de kalman) pour obtenir une meilleure précision relative
    - utiliser la (les) caméra(s) du téléphone et un algorithme de type optical flow/tracker (KLT) pour en déduire les mouvements du téléphone, c'est utilisé sur certains drones pour les phases stationnaires ou d'atterrissage
    J'aimerais bien savoir l'autonomie de l'appareil quand tout ces services sont lancés ?

    A vouloir être trop précis on fini par être trop gourmand ^^.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Points : 21
    Points
    21
    Par défaut
    Jamais essayé sous Android mais avec une IMU (acc, gyro, magnéto + pression) couplé avec une petit ARM pour gérer l'algo DCM, j'avais 75 mA max. de consommation (plutôt 60 mA en continu) sous 3.3V auquel il faut ajouter la consommation du GPS et d'une caméra .

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Septembre 2010
    Messages : 76
    Points : 42
    Points
    42
    Par défaut Le DCM
    Mais est-ce que le DCM set vraiment à estimer une position ? Plus je lis à son sujet, et plus j'ai l'impression (voir http://helico.t800.free.fr/index.php...ions&Itemid=58) qu'il sert surtout à connaître l'orientation de l'appareil et, dans les drônes, à assurer une stabilité ; je ne vois pas comment appliquer cela afin de déterminer une position relative sur un delta-temps ?

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 16
    Points : 21
    Points
    21
    Par défaut
    Oui, cela fait les deux, la position est stable et on à l'orientation en plus.

    Tu obtiens une position initiale avec le GPS, ensuite l'algo DCM permet de discriminer entre les mouvements de l'utilisateur et les dérives des capteurs (tous ce qui s'appele drift sur le schéma de ton lien).

    Toujours par rapport à l'article, on va dire que la position initiale (GPS) est le repère de la terre (fixe, position de départ) et la position actuelle s'obtient en multipliant par la matrice R.

    Quel est ton besoin en terme de précision ?, un descriptif plus précis de l'application ?, j'ai l'impression que ton problème n'est pas (ou mal) défini.

    PS: ce n'est pas une critique personnelle, je veux juste savoir la finalité du besoin, une bonne précision initiale est nécessaire si le lieu est inconnu, par contre si on a déjà repéré l'endroit au préalable, un calage par rapport à la carto du lieu est plus simple et la précision sera meilleure.

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Septembre 2010
    Messages : 76
    Points : 42
    Points
    42
    Par défaut Description
    Bonsoir,

    En fait je veux faire une application, dédiée à guider des visiteurs sur un lieu afin de parcours de points de passage (le reste n'est pas important). Pour résumé :
    - une personne (formateur) passe et enregistre les coordonnées des points de passages obligatoires
    - les formés suivent ensuite le trajet

    A savoir que :
    - les parcours peuvent être en extérieur mais aussi en intérieur
    - j'utilise l'accuracy du capteur pour savoir quand je suis arrivé à un point de passage
    - j'utilise des approximations (j'utilise droidAR qui fournit des améliorations "légères" sur la précision)

    Mais le problème est que les points sautent énormément, même en faisant ainsi je ne suis pas sûr d'être détecté à un point de passage (car le positionnement au départ dépait aussi de l'accuracy pendant l'enregistrement), et quand les parcours sont en extérieur c'est du grand n'importe quoi.
    Autre contrainte, il est possible qu'il y ait des lieux où le GPS reçoit très mal donc les accéléromètres seraient une bénédictions...

    Qu'en penses-tu ?

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Septembre 2010
    Messages : 76
    Points : 42
    Points
    42
    Par défaut Skyhook
    A la suggestion d'une âme charitable j'ai testé le service SkyHook, qui est censé améliorer le postionnement en rajoutant le wifi comme source de données (ils disent avoir pleins de bornes à eux dans le monde partout). Bref, ils annonce une précision de 10m 99% du temps et qu'on a pas de "sauts GPS".

    Quelqu'un a-t-il réussi à le faire marcher ? Personnellement, tous mes points GPS restent à près stables pendant une minutes, puis ils bougent de quelques dizaines de mètres et redeviennent stables, et ainsi de suite. Avec un écart de 300m des fois entre des points espacés dans le temps ; donc c'est inutilisable dans l'état, mais vu le succès ça doit être configurable ?

Discussions similaires

  1. Vérifier l'état du GPS sous android
    Par Invité dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 29/09/2015, 17h57
  2. [WM 17] Comment fait on pour activer le GPS sous Android ?
    Par popoy dans le forum Windev Mobile
    Réponses: 0
    Dernier message: 20/03/2013, 11h27
  3. Précision GPS smartphone android
    Par auxiliaire dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 07/03/2013, 00h22
  4. Faire un GPS sous Android
    Par rolintoucour dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 08/05/2012, 00h09
  5. Réponses: 11
    Dernier message: 31/08/2010, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo