Répondre à la discussion
Affichage des résultats 1 à 25 sur 25

Odométrie - Erreur



  1. #1
    Po2yaourt

    Odométrie - Erreur


    ------

    Bonjour !

    Je suis en train de réaliser un petit robot et j'ai réalisé un asservissement en alpha delta (ligne droite et rotation), avec l'implémentation du calcul de la position en XY de façon continue. Pour réaliser cela j'ai utilisé 2 codeurs avec 1440 tick/tour de roue. Ceux-ci sont bien positionnés dans l'axe de mes roues motrices.

    Cependant pour le moment, j'ai une dérive assez importante sur ma position finale ( quelques centimètres au bout de 30s).

    Pour calculer ma position j'effectue la méthode classique :

    Theta += dThéta;

    X = dDelta cos(Théta)

    Y = dDelta sin(Théta)

    Avez vous une idée d'où ce problème peut venir ?

    Merci !

    -----

  2. Publicité
  3. #2
    PIXEL

    Re : Odométrie - Erreur

    probablement le glissement des roues sur le sol.

    ça n'est pas un probléme simple

  4. #3
    chatelot16

    Re : Odométrie - Erreur

    comment sont faite les roue ? en quoi est le sol ?

    quand les roue sont en caoutchouc , la circonference de roulement est mal definie

    bizarement la circonference de roulement d'une roue gonflable a pneu radial est mieux definie qu'un pneu plein

    quelle vites , et surtout quelle acceleration ? ... c'est dans les acceleration et le freinage qu'il y a des glissement ... ou même sans glissement , le caoutchouc se pose au sol avec une contrainte , et le mouvement est legerement different

    une solution c'est d'ajouter des roue non motrice et non porteuse servant uniquement a mesurer

    il n'y a pas que les acceleration et les freinage : dans tous les virage un pneu legerement elastique se deforme un peu et fait une trajectoire differente de la theorie
    Dernière modification par chatelot16 ; 18/04/2013 à 16h43.

  5. #4
    Po2yaourt

    Re : Odométrie - Erreur

    J'ai oublié de préciser, mes codeurs sont sur des roues codeuses, donc indépendant des roues motrices. C'est pour ça que je ne pense pas qu'il y ait un glissement. Sinon elles sont en effet en caoutchouc. Pour le moment je n'ai effectué que des tests sur du balatome.
    Dernière modification par Po2yaourt ; 18/04/2013 à 23h33.

  6. #5
    inoxxam

    Re : Odométrie - Erreur

    As-tu étalonné tes roues codeuses?

  7. A voir en vidéo sur Futura
  8. #6
    Po2yaourt

    Re : Odométrie - Erreur

    Qu'entends-tu par étalonner ? J'ai mesuré de façon empirique le nombre de "tick" qu'il me fallait pour réaliser un mètre sur chaque roue codeuse. J'en ai effectué de même pour un tour sur le robot pour en déduire l'entraxe.

  9. Publicité
  10. #7
    chatelot16

    Re : Odométrie - Erreur

    on n'a pas de boule de cristal ! il faut que tu nous montre plus de detail sur ta realisation pour qu'on cherche les probleme

    c'est des roue non motrice , c'est deja un bon point ... mais sont elle articulé genre roulette de cadie pour suivre la direction exacte , et ne pas etre perturbé par des roue principale qui avancent un peu de travers dans les virage ?

  11. #8
    petitnul12

    Re : Odométrie - Erreur

    L'assemblage n'est jamais parfaitement rigoureux. Il y à des méthodes pour étalonner ton robot, tu devrais trouver sur internet. Comme lui faire faire des aller/retour pour mesurer la dérive latérale, ou le faire tourner en rond pour mesurer la dérive angulaire... Plein de méthode, mais il va falloir que tu introduise des petits coefficients de correction dans l'asservissement =)

  12. #9
    Po2yaourt

    Re : Odométrie - Erreur

    En effet, avec un schéma cela sera peut être plus clair.
    roue.png

    Mes roues codeuses n'ont qu'un seul degré de liberté, elle tourne autour d'un axe parallèle à l'axe moteur.

  13. #10
    fabang

    Re : Odométrie - Erreur

    Quel est le signe de la dérive? des centimètres en trop ou manquant?

  14. #11
    jiherve

    Re : Odométrie - Erreur

    Bonsoir,
    comment calcules tu le dTheta?
    De toutes façon avec une méthode par intégration l'erreur ne peut que croitre au cours du temps.
    JR
    l'électronique c'est pas du vaudou!

  15. #12
    chatelot16

    Re : Odométrie - Erreur

    si tu avance et recule en ligne droite je pense qu'il n'y aura pas beaucoup d'erreur

    mais chaque fois que tu fait un virage les roue motrice devie legerement , même sans patiner , juste a cause de l'elasticité des pneu , et ton calculateur ne peut pas le deviner

    si tes roue de mesure on une articulation et un capteur d'angle pour mesurer la direction d'avance réelle tu augmentera la precision

    helas un simple systeme genre roulette de cadie ne suffit pas car ça fait un gros probleme a chaque changement de sens

    il faut faire plus compliqué : mettre un servo qui commande la direction de la roue de mesure ... lui donner une liberté en translation pour pourvoir s'ecarter plus ou moins de la roue principale , et faire un asservissement pour piloter la direction pour garder l'ecartement constant

  16. Publicité
  17. #13
    DAUDET78

    Re : Odométrie - Erreur

    Citation Envoyé par Po2yaourt Voir le message
    Mes roues codeuses n'ont qu'un seul degré de liberté, elle tourne autour d'un axe parallèle à l'axe moteur.
    C'est quoi que tu appelles roues codeuses ? C'est un codeur optique avec deux signaux A et B en quadrature ? Que tu traites comment ?
    J'aime pas le Grec

  18. #14
    Po2yaourt

    Re : Odométrie - Erreur

    @fabang : Je ne sais pas comment caractérisé la dérive, mais elle est toujours identique pour un parcours donné.

    @jiherve : dThéta = (DéplacementRoueGauche - DéplacementRoueDroite)/2.

    @chatelot16 : Je n'effectue aucun virage pour le moment, le robot est juste capable de tourner sur lui même et d'aller en ligne droite. Le robot est capable de faire 30 tour sans perdre 1° ! J'ai remarqué surtout ce problème lorsque je réalise des carrées (Ligne droite puis 90°), la position que le robot me donne à la fin n'est pas du tout la bonne !

    @DAUDET78 : Mes codeurs sont en effet optiques, avec deux signaux A et B en quadrature que je gère directement à l'aide d'un PIC disposant déjà d'un bloc spécialisé. ( 33fj128MC802)

  19. #15
    DAUDET78

    Re : Odométrie - Erreur

    Citation Envoyé par Po2yaourt Voir le message
    Mes codeurs sont en effet optiques, avec deux signaux A et B en quadrature que je gère directement à l'aide d'un PIC disposant déjà d'un bloc spécialisé. ( 33fj128MC802)
    Il faut déjà vérifier que le comptage/décomptage n'introduit pas d'erreur . Tu fais une marque sur ta roue de mesure. Tu la tournes (sans contact avec le sol) à la main , 5 tours dans un sens, 5 tours dans l'autre une dizaine de fois. Tu remets la marque exactement au même endroit, tu dois retrouver exactement 0,0000 sur ta position. Et ça, pour les deux roues de codage
    J'aime pas le Grec

  20. #16
    chatelot16

    Re : Odométrie - Erreur

    tes capteur on un grand nombre de pas donc on peu esperer une bonne precision , mai a tu fait les calcul ?

    avec le nombre de pas des capteur le diametre des roue , et l'ecartement des roue , sa donne l'angle correspondant a un pas de plus ... cette angle avec une distance parcourue donne une erreur de position

    donne des chiffre complet permettant de faire des calcul

    il faut aussi verifier la precision de realisation de ton engin , il suffirait d'une fraction de degré d'erreur de paralelisme entre tes roue pour faire une erreur

  21. #17
    PA5CAL

    Re : Odométrie - Erreur

    ... Et le sol sur lequel tu fais rouler le robot est-il parfaitement plan ?

    Que se passe-t-il si le robot fait une ligne droite, une rotation de 180°, puis la même ligne droite dans l'autre sens, et enfin une dernière rotation de 180° ? Revient-il exactement à son point de départ ? Si c'est oui, la planéité du sol est probablement en cause quand il fait un carré. Si c'est non, c'est certainement le robot, parce qu'il glisse, parce qu'il ne roule pas en ligne droite, ou parce qu'il de tourne pas sur lui-même de l'angle prévu. La position du point d'arrivée par rapport au point de départ devrait donner une indication sur la cause.
    Dernière modification par PA5CAL ; 20/04/2013 à 16h40.

  22. #18
    DAUDET78

    Re : Odométrie - Erreur

    Avant d'élucubrer, il faut tester si la chaine de mesure est correct ...... voir ma réponse #15
    J'aime pas le Grec

  23. Publicité
  24. #19
    jiherve

    Re : Odométrie - Erreur

    Bonsoir,
    Il y a nécessairement un glissement lors d'un virage, plus prononcé pour la roue intérieure.Il faudrait un capteur unique donc une roue du même bois fournissant l'odométrie par comptage et la direction au moyen d'un capteur angulaire.
    JR
    l'électronique c'est pas du vaudou!

  25. #20
    Po2yaourt

    Re : Odométrie - Erreur

    @DAUDET78 : Je vais tester la vérification de mes roues codeuses, cependant il va être difficile de revenir à 0 avec ces codeurs mais peut être qu'ils ont pu perdre quelques ticks.

    @Chatelot16 : Je trouve un angle minimum de : 0.04°. Ce qui me fait une erreur de 0.7mm sur 1m si je ne me trompe pas. Ça pourrait en effet expliquer l'erreur de positionnement :/

    @PA5CAL : Le sol est parfaitement plan, j'ai testé ce problème à différents endroits et le résultat est le même

  26. #21
    DAUDET78

    Re : Odométrie - Erreur

    Citation Envoyé par Po2yaourt Voir le message
    Je vais tester la vérification de mes roues codeuses, cependant il va être difficile de revenir à 0 avec ces codeurs mais peut être qu'ils ont pu perdre quelques ticks.
    Il faut que la valeur du compteur lue au départ soit identique à celle lue à l'arrivée sachant que ta roue est revenu exactement à la même position . Tu fais une marque sur ta roue et tu places un index (trombone ?) devant . Normalement, tu ne dois pas avoir de différence si ton électronique est bonne ainsi que ton logiciel . Un codeur ne perd pas de tick !

    PS : une légère différence est acceptable du au fait que ton index mécanique n'est pas revenu exactement à la même position (erreur humaine) . Dans ce cas, tu refais un cycle de mouvement. L'erreur doit être à chaque retour du même ordre de grandeur et ne doit pas augmenter !
    J'aime pas le Grec

  27. #22
    DAUDET78

    Re : Odométrie - Erreur

    PS : tu as un lien WEB sur la datasheet de tes codeurs ?
    J'aime pas le Grec

  28. #23
    Po2yaourt

    Re : Odométrie - Erreur


  29. #24
    DAUDET78

    Re : Odométrie - Erreur

    C'est donc un bon codeur optique . Il ne doit rien perdre lorsque tu fais des rotations alternées, aléatoires etc (si le hard et le soft sont OK)
    J'aime pas le Grec

  30. Publicité
  31. #25
    PA5CAL

    Re : Odométrie - Erreur

    Dans l'hypothèse où l'exploitation des informations fournies par les codeurs seraient effectivement correcte, le test que j'ai suggéré plus haut peut donner des indications sur les causes possibles de l'erreur si l'erreur de positionnement est reproductible et constante. Dans ce cas, l'erreur globale peut être considérée comme la somme des trois erreurs élémentaires suivantes :

    dérive.png

    1) La première (à gauche), caractérisée par un décalage dans la direction du déplacement, dénote une différence de longueur parcourue à l'aller et au retour. Elle peut provenir d'un milieu non isotrope (sol en pente, adhérence asymétrique) ou d'un défaut dans le comportement du mobile (fluctuation de la puissance moteur au cours du parcours, bogue informatique, ...).

    2) La seconde (au milieu), caractérisée par un décalage perpendiculaire au déplacement et approximativement proportionnel à la distance parcourue, provient d'une rotation incorrecte du mobile sur lui-même. Elle peut provenir d'une erreur de calibrage des odomètres pour les mouvements de rotation (qui peut être légèrement différent de celui de la ligne droite), ou d'une dissymétrie entre les deux odomètres durant le pivotement (différence de diamètre de roulement, d'adhérence ou de parallélisme).

    3) La troisième (à droite), caractérisée par un décalage perpendiculaire au déplacement et approximativement proportionnel au carré de la distance parcourue, provient d'une courbure de la trajectoire du mobile. Elle peut provenir d'une dissymétrie entre les deux odomètres durant la ligne droite (différence de diamètre de roulement, d'adhérence ou de parallélisme).

Sur le même thème :

Discussions similaires

  1. Odométrie avec encodeurs quadratures
    Par Mazen21 dans le forum Électronique
    Réponses: 0
    Dernier message: 24/02/2012, 19h35
  2. erreur 500 erreur interne du serveur (free)
    Par Cornemuse dans le forum Internet - Réseau - Sécurité générale
    Réponses: 5
    Dernier message: 23/02/2012, 23h13
  3. Erreur de raisonnement, erreur logique ou erreur tout court?
    Par babybirdhitz dans le forum Epistémologie et Logique
    Réponses: 7
    Dernier message: 03/02/2010, 13h32
  4. Odométrie par souris
    Par amgab2003 dans le forum Électronique
    Réponses: 8
    Dernier message: 20/12/2007, 14h31
  5. erreur 414 et erreur 1055
    Par primera13 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 03/02/2006, 12h26
Découvrez nos comparatifs produits sur l'informatique et les technologies.