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 :

Auriez-vous une petite idée pour traiter simplement les géolocalisations sans cartographie d'appui ?


Sujet :

API standards et tierces Android

  1. #1
    Membre régulier Avatar de loupapet
    Homme Profil pro
    Retraité d'Eurocopter
    Inscrit en
    Janvier 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité d'Eurocopter
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 69
    Points : 72
    Points
    72
    Par défaut Auriez-vous une petite idée pour traiter simplement les géolocalisations sans cartographie d'appui ?
    Bonjour à tous,

    Après une période d'interruption, je reprends mon application GPS qui avait fait l'objet d'une discussion ouverte le 24 janvier dernier sous l'intitulé


    nicroman, que je remercie beaucoup, m'avais bien aidé.

    Informatiquement parlant, cette application fonctionne tout à fait correctement. Je rappelle sommairement le besoin.
    Sans perturber le déroulement de la capture d'un parcours qui peut s'avérer long en distance et en durée, il doit être possible :
    • d'éteindre le téléphone pour économiser la batterie,
    • de téléphoner ou d'exécuter une autre application,
    • de décomposer le parcours en tronçons de trajectoire correspondant à des arrêts qui ne concerne pas la géolocalisation (Repas, courses, etc...)
    • de définir des domaines de parcours (pédestre, nautique, automobile, aéronautique) pour limiter la taille du fichier de la trajectoire et changer les graduations de l'écran.


    L'application doit pouvoir sauvegarder le parcours dans un fichier au format ".kml" pour une visualisation directe sous Gooole Earth ou Google Maps (que je n'ai pas encore essayée). Ci-contre, la miniature de l'écran de l'application lors d'un test sous Android/Eclipse.

    Tachymetre.png
    Après ce petit préambule, voici donc ma préoccupation. Après maintes recherche sur la Toile, je planche depuis un moment sur la manière de traiter simplement les géolocalisations sachant que la précision des mesures est de l'ordre de 4 à 5 mètres pour des GPS publics ce qui se confirme avec la puce GPS de mon téléphone.

    Dans le domaine pédestre, une marche normale et tranquille est de l'ordre de 1 m/s soit 3,6 km/h. Ce mètre parcouru en une seconde est inférieur à la précision du GPS. Quand les erreurs de mesure se compensent, on obtient une vitesse instantanée à peu près correcte ce qui n'est pas du tout le cas quand les erreurs se cumulent. L'aiguille de la vitesse a des déplacements amplifiés.

    Certes, pour une marche, la vitesse instantanée et la vitesse maximale ne présentent que peu d'intérêt. Cependant, la vitesse moyenne semble à peu près crédible.

    Le phénomène est moins gênant dans le domaine automobile et aéronautique car le déplacement en 1 seconde est largement supérieur à l'erreur de précision.

    L'imprécision des géolocalisations est être amplifiée par l'erreur sur leurs mesures comme le montre les figures sous Google Earth ci dessous :


    Vue générale d'un parcours pédestre deux tronçons (aller-retour)


    Vue particulière avec des erreurs : je marche sur les trottoirs !...


    une vue à peu près fiable

    Auriez-vous donc une petite proposition d'amélioration ?
    merci d'avance.

  2. #2
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Vous pourriez peut être vous servir de l'accéléromètre, en faisant sa Primitive on obtient la vitesse et si on fait la primitive de la vitesse on obtient la position.

    Après l’accéléromètre ne seras pas très fiable sur de grande mesure je pense mais en le combinant avec le gps il y a surement moyen de faire quelque chose.

  3. #3
    Membre régulier Avatar de loupapet
    Homme Profil pro
    Retraité d'Eurocopter
    Inscrit en
    Janvier 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité d'Eurocopter
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 69
    Points : 72
    Points
    72
    Par défaut Bonsoir,
    Pourriez-vous développer votre suggestion qui utilise l'accéléromètre car je ne vois pas comment on peut remonter de l'accélération vers la position sachant qu'on peut rouler à vitesse constante sur autoroute par exemple ?

    Pour le moment, j'utilise l'accéléromètre pour obtenir l'orientation du téléphone. J'ai étudié un peu ce capteur avec l'aide d'un cours de programmation sur Android et un tuto de développez.com Utilisation des capteurs sous Android.

    Vous pouvez accéder aux sources de mon application comme vous me le demandez en allant sur la page et les suivantes (toujours en cours d'écriture !...) de mon site
    en comptant sur votre indulgence car ces deux sources ont fait l'objet de beaucoup de modifications et d'essais et que vous le trouverez brouillon. Je crois avoir une bonne expérience en C, C++ et d'autres langages.... de mon époque, même si c'est loin déjà mais novice en Java et Android.

    Cordialement.

  4. #4
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Je pense être plus novice que vous .
    ce que je vous explique sont juste des maths :

    a = acceleration ; v = vitesse ; x = position ; i= initial

    v = a . t + vi (la vitesse précédente)
    x = a . t² + vi.t + xi (position précédente)

    l'applications que je conseillerais :
    - On fait le vecteurs équivalent au trois accélérations a = racine(ax² +ay² +az²)
    - on fait sa double primitive comme plus haut.
    - on compare avec le déplacement obtenu par le gps au même moment
    - on bidouille en fonction

  5. #5
    Membre régulier Avatar de loupapet
    Homme Profil pro
    Retraité d'Eurocopter
    Inscrit en
    Janvier 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité d'Eurocopter
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 69
    Points : 72
    Points
    72
    Par défaut Bonjour,
    Je comprends très bien le côté mathématique. Je vais essayer de découvrir un peu mieux les caractéristiques des capteurs de mon téléphone, un Bouygues BS 402, qui, grâce à l'exemple du tutoriel, m'a sorti ses propres caractéristiques et voir eut-être comment il est possible d'en tirer parti :

    New sensor detected :
    Name: Goldfish 3-axis Accelerometer
    Type: TYPE_ACCELEROMETER
    Version: 1
    Resolution (in the sensor unit): 2.480159E-4
    Power in mA used by this sensor while in use3.0
    Vendor: The Android Open Source Project
    Maximum range of the sensor in the sensor's unit.2.8
    Minimum delay allowed between two events in microsecond or zero if this sensor only returns a value when the data it's measuring changes0
    New sensor detected :
    Name: Goldfish 3-axis Magnetic field sensor
    Type: TYPE_MAGNETIC_FIELD
    Version: 1
    Resolution (in the sensor unit): 1.0
    Power in mA used by this sensor while in use6.7
    Vendor: The Android Open Source Project
    Maximum range of the sensor in the sensor's unit.2000.0
    Minimum delay allowed between two events in microsecond or zero if this sensor only returns a value when the data it's measuring changes0
    New sensor detected :
    Name: Goldfish Orientation sensor
    Type: TYPE_ORIENTATION
    Version: 1
    Resolution (in the sensor unit): 1.0
    Power in mA used by this sensor while in use9.7
    Vendor: The Android Open Source Project
    Maximum range of the sensor in the sensor's unit.360.0
    Minimum delay allowed between two events in microsecond or zero if this sensor only returns a value when the data it's measuring changes0
    New sensor detected :
    Name: Goldfish Temperature sensor
    Type: TYPE_TEMPERATURE
    Version: 1
    Resolution (in the sensor unit): 1.0
    Power in mA used by this sensor while in use0.0
    Vendor: The Android Open Source Project
    Maximum range of the sensor in the sensor's unit.80.0
    Minimum delay allowed between two events in microsecond or zero if this sensor only returns a value when the data it's measuring changes0
    New sensor detected :
    Name: Goldfish Proximity sensor
    Type: TYPE_PROXIMITY
    Version: 1
    Resolution (in the sensor unit): 1.0
    Power in mA used by this sensor while in use20.0
    Vendor: The Android Open Source Project
    Maximum range of the sensor in the sensor's unit.1.0
    Minimum delay allowed between two events in microsecond or zero if this sensor only returns a value when the data it's measuring changes0

    Je n'ai probablement pas très bien compris le fonctionnement de l'accéléromètre et pensais qu'à vitesse constante, il sortait les valeurs de la gravité prises comme référentiel.
    Il faudra donc, aussi, que je me replonge dans un peu de physique !...

    Votre dernier alinéa me gêne un peu car "on bidouille en fonction" ne me paraît pas très clair et aussi pas très maths peut-être !... Mais je vais tenter de voir cela.
    Merci.

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    temps en seconde ; vitesse en m/s
    en imaginant que l'on relève les valeurs chaque secondes

    accélération au départ a est élevé et vi est nul :
    v = 20 * 1 + 0 = 20

    vitesse constante au milieu :
    v = 0 *1 + 50 = 50

    en décélération a la fin :
    v = -20 * 1 + 50 = 30

    le on bidouille signifie que pour un écart de mesure trop important entre les deux on fait la moyenne des deux (GPS et accéléromètre) par exemple ..
    C'est a vous de voir qu'elle solution vous souhaitez tirer de c'est deux données .

    edit : Android fourni une api qui enlève les valeurs liées a la gravitation ; on possède donc l'accélération brute.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD10] avez vous une petite idée
    Par doji_lemaitre dans le forum WinDev
    Réponses: 3
    Dernier message: 06/04/2012, 10h53
  2. [C# VS2005] Auriez-vous une idée de logiciel à développer ?
    Par iamunknown dans le forum Général Dotnet
    Réponses: 8
    Dernier message: 16/05/2006, 00h40
  3. Une petit plus pour barre d'outils personnalisée
    Par CBleu dans le forum Access
    Réponses: 1
    Dernier message: 27/01/2006, 11h55
  4. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

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