Aller au contenu


Photo
- - - - -

L'Odomètre

Explication odometre

6 réponses à ce sujet

#1 Machichi

Machichi

    Nouveau membre

  • Membres
  • 5 messages

Posté 29 décembre 2014 - 08:22

Bonjour,

 

Pour mon (mes ?) TPE, je dois étudier l'odométrie car le robot qu'on étudie (Pro-Bot 128k) possède deux odomètres, mais j'ai un problème ^^

J'ai du mal à comprendre ce que sont les odomètres, j'ai fais un peu le tour des sites et forums pour comprendre ce que c'était, j'ai bien retenu

des choses mais ça reste extrêmement flou.

Faut dire que je suis un débutant de première classe, c'est normal de trouver certaines choses compliquées mais je sais que vous êtes là pour

éclaircir ce sujet là :P

 

Plus sérieusement de ce que j'ai compris, un odomètre est un capteur qui permet d'estimer la position du robot en mouvement.

J'ai aussi entendu une histoire d'asservissement de vitesse, mais là j'ai pas réellement compris, et pour finir, je n'ai absolument aucune idée

de la forme, de la taille...bref de l'apparence de l'odomètre, est-ce que vous auriez pas une image ou un schéma très simple.

 

J'ai tenter de faire un diagramme "bête à corne" pour mieux comprendre le fonctionnement de l'odomètre et j'en suis arrivé

à ce résultat:

post-1-0-06585000-1419881555.jpg

Et franchement, si c'est possible, j'aimerais qu'on m'aide, parce que je suis sûr que j'ai pas mal de choses fausses.

 

Pour finir, j'ai entendu dire que l'odomètre était un capteur qui se trouvait dans le moteur en lui-même, j'aimerais confirmation, et si c'est pas le cas,

il se trouve où en général ?

 

Je sais que j'ai beaucoup de questions mais j'espère que vous saurez trouver des réponses.

En tout cas merci d'avance de l'aide que vous saurez m'apporter :)

Image(s) jointe(s)

  • Capture d’écran 2014-12-29 à 20.37.35.jpg


#2 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 30 décembre 2014 - 12:36

En robotique, à ma connaissance, on parle d'odométrie, c'est-à-dire d'estimation propre du déplacement d'un robot. On peut calculer ce déplacement de plusieurs manières, à l'aide de différents capteurs :

- par exemple, sachant que tes roues tournent à une certaine vitesse (et connaissant la géométrie du robot), tu peux calculer la distance qu'elles parcourent en une unité de temps. En sommant ces distances au cours du temps, tu as une idée de la distance totale parcourue par ton robot. L'asservissement en vitesse des roues consiste à faire en sorte que tes roues tournent bien à la vitesse voulue (et parcourent bien la distance voulue). Il faut donc mesurer leur vitesse réelle pour pouvoir adapter la commande de vitesse (je veux que ma roue tourne à 1tr/s, je mesure qu'elle tourne à 0.7tr/s, il y a une erreur de 0.3 tr/s que je vais utiliser pour calculer une nouvelle tension de commande qui me permette de réduire l'erreur à zéro - on parle d'asservissement après le bac en général, mais voici pour l'idée - si ça n'est pas clair, pose tes questions :))

- de la même manière, il est possible d'utiliser une centrale inertielle pour mesurer les orientations et accélérations successives du robot, et remonter à sa position.

 

L'idée générale est donc que le robot estime de combien il s'est déplacé par rapport à sa position initiale. Il n'y a donc pas "un odomètre", mais une mesure d'odométrie faite par un ensemble d'autres capteurs. Si tu regardes la notice de ton robot, tu devrais voir ce qu'ils appellent des "odomètres" (indice : c'est dans le chapitre 8).


R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#3 Leon

Leon

    Membre passionné

  • Membres
  • PipPipPipPipPip
  • 1 289 messages
  • Gender:Male

Posté 30 décembre 2014 - 07:52

OK pour la première partie, mais...

En robotique, à ma connaissance, on parle d'odométrie, c'est-à-dire d'estimation propre du déplacement d'un robot. On peut calculer ce déplacement de plusieurs manières, à l'aide de différents capteurs :

[...]

- de la même manière, il est possible d'utiliser une centrale inertielle pour mesurer les orientations et accélérations successives du robot, et remonter à sa position.

NON! Une centrale inertielle n'a rien à voir avec l'odométrie! Ce sont 2 choses complètement différentes! Les odomètres sur un robot à roues sont toujours les mesures de déplacement par mesure de l'avancement de 2 roues ou plus.

 

Leon.


BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)


#4 Machichi

Machichi

    Nouveau membre

  • Membres
  • 5 messages

Posté 30 décembre 2014 - 11:08

Tout d'abord, merci pour vos réponses :)

C'est déjà un peu plus clair, mais il subsiste quelques questions ^^

 

Si j'ai bien compris, l'odométrie permet de connaître l'itinéraire parcouru par le robot ?

L'asservissement en vitesse permet de modifier la vitesse d'un moteur ?

Par exemple si il y a un obstacle devant le robot, il faudra modifier la vitesse d'un des deux moteurs pour que le robot tourne, est-ce bien ça ?

 

Aussi, je suis allé lire la partie 8 de la notice du robot (http://www.produktinfo.conrad.com/datenblaetter/175000-199999/191919-an-01-fr-robot_prog.pdf)

et je n'ai que trouvé cette ligne qui pourrait être intéressante:

Les diodes luminescentes et le phototransistor (avec barrage optique réflexe pour l’odométrie)
 
Mais je ne comprend toujours pas ce qu'ils appellent "odomètre"; les odomètres sont donc l'ensemble que forme les Diodes et les photo transistors ?
J'ai aussi lu autre part dans la notice que le robot possède 2 capteurs de tours au niveau des roues, c'est ça un odomètre ?
 
En tout cas merci d'avoir pris le temps de m'aider :)


#5 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 30 décembre 2014 - 11:16

OK pour la première partie, mais...
NON! Une centrale inertielle n'a rien à voir avec l'odométrie! Ce sont 2 choses complètement différentes! Les odomètres sur un robot à roues sont toujours les mesures de déplacement par mesure de l'avancement de 2 roues ou plus.
 
Leon.

http://wiki.ros.org/robot_pose_ekf
 
On peut tout à fait estimer un déplacement à l'aide d'une centrale inertielle. C'est une méthode sujette à la dérive, de même que l'intégration au cours du temps sur les déplacements imposés par les roues.

Et que ma réponse soit juste, fausse, imprécise, incomplète, j'apprécierais que tu sois un peu plus aimable quand tu réponds. Je suis prêt à reconnaître mes erreurs et à apprendre, mais je n'accepte pas de me faire traiter comme un ignorant qui raconte n'importe quoi. Les gens sont ici pour se détendre et discuter, le but c'est de progresser. Un peu de pédagogie et de patience sont les bienvenues.

@Machichi :


Si j'ai bien compris, l'odométrie permet de connaître l'itinéraire parcouru par le robot ?

Elle permet au robot d'estimer son itinéraire déplacement. Mais rien n'est vraiment jamais sûr pour le robot. Une analogie : on te met dans une pièce, on bande tes yeux, on te couvre les oreilles, on te fait tourner un peu sur toi-même, puis tu dois avancer. Tu as une idée de la direction globale dans laquelle tu vas, de la distance que tu parcours, mais tu n'es jamais vraiment sûr que tu n'es pas plus proche ou plus loin du mur que tu le penses. Cependant, tu sais que si tu as fait trois pas, tu t'es déplacé d'à peu près 2m (c'est un exemple). Pour le robot, c'est pareil : il sait qu'il a tourné ses roues pour avancer d'un mètre, mais peut-être que ses roues ont glissé, et il n'a fait en fait que 80cm. Par contre, si on enlève ton bandeau des yeux, tu peux voir ton environnement et corriger l'endroit où tu pensais être ("ah, en fait, j'ai faili me cogner dans cette table"). Pour le robot, c'est pareil, si tu lui donnes un moyen de percevoir son environnement (caméra, laser), il peut corriger son estimation de déplacement pour connaître sa position plus précisément.
 

L'asservissement en vitesse permet de modifier la vitesse d'un moteur ?
Par exemple si il y a un obstacle devant le robot, il faudra modifier la vitesse d'un des deux moteurs pour que le robot tourne, est-ce bien ça ?

L'asservissement en vitesse permet d'être sûr que le moteur ou la roue tourne à la vitesse voulue. Ce qui impose la vitesse à ton moteur, c'est la commande (électrique) que tu lui envoies. Mais parce que deux moteurs ne sont pas exactement pareil, si tu leur envoies la même commande (je veux que vous tourniez à 1 tr/s, ce qui est traduit en tension à envoyer vers les moteurs - je ne détaille pas), l'un peut tourner à 1.1 tr/s et l'autre à 0.9 tr/s. Asservir les moteurs en vitesse, ça veut dire mesurer cette vitesse et corriger la commande électrique pour que ton moteur tourne bien à 1 tr/s. Si le code dans ton robot le permet, tu peux tester de leur demander la même vitesse : si les moteurs sont asservis en vitesse, le robot devrait aller droit. Si ça n'est pas le cas, il va tourner plus vite d'un côté que de l'autre.
Mais attention ! ça n'est pas avec ça que tu fais tourner ton robot face à un obstacle. Si un autre capteur voit un obstacle, ce sera à toi de définir ce que fait le robot : tourner à gauche, tourner à droite, s'arrêter. Si ça rentre dans le cadre de ton TPE, je t'invite à faire un programme pour éviter les obstacles comme tu le penses, puis à chercher "Véhicule de Braitenberg" pour comparer ta méthode et la sienne :)
 

Aussi, je suis allé lire la partie 8 de la notice du robot (http://www.produktinfo.conrad.com/datenblaetter/175000-199999/191919-an-01-fr-robot_prog.pdf)
et je n'ai que trouvé cette ligne qui pourrait être intéressante:

Les diodes luminescentes et le phototransistor (avec barrage optique réflexe pour lodométrie)

Mais je ne comprend toujours pas ce qu'ils appellent "odomètre"; les odomètres sont donc l'ensemble que forme les Diodes et les photo transistors ?
J'ai aussi lu autre part dans la notice que le robot possède 2 capteurs de tours au niveau des roues, c'est ça un odomètre ?

En fait, on est dans le premier cas que j'ai cité : on mesure la vitesse de chaque roue (ou chaque moteur). Et la question que tu dois te poser, c'est comment mesurer la vitesse de rotation d'un axe ? Si tu regardes un peu comment fonctionnent les capteurs que tu cites, tu devrais avoir une petite idée. :)
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#6 Machichi

Machichi

    Nouveau membre

  • Membres
  • 5 messages

Posté 30 décembre 2014 - 02:21

Encore merci pour ton aide :)

J'ai mieux compris le principe de l'asservissement en vitesse.

 

"Et la question que tu dois te poser, c'est comment mesurer la vitesse de rotation d'un axe ?"
 
Pour mesurer la vitesse d'un moteur, on utilise un tachymètre, non ?


#7 Taupiot_Jr

Taupiot_Jr

    Habitué

  • Membres
  • PipPip
  • 232 messages
  • Gender:Male

Posté 30 décembre 2014 - 02:29

Pas tout à fait, pour connaître sa vitesse tu dois savoir si l'axe tourne et à quelle vitesse. Il te faut donc des repères pour connaître ces informations. En étudiant le fonctionnement de l'odomètre cité plus haut tu devrais comprendre.



Répondre à ce sujet



  



Aussi étiqueté avec au moins un de ces mots-clés : Explication, odometre

0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users