Aller au contenu


Photo
- - - - -

Odomètre?


17 réponses à ce sujet

#1 appleuser

appleuser

    Nouveau membre

  • Membres
  • 20 messages

Posté 21 mai 2012 - 05:57

Bonjour,

Un Robot pour ce déplacer en évitant les obstacles ce sert soit d'un télémètre à ultra son ou à infra rouge ou/et de
contact répartie sur son chassis.

l'odomètre, si j'ai bien compris permet de connaitre la distance parcouru par le Robot en mesurant le nombre
de tour de roue.

Mais je ne vois pas ou comprend pas à quelle niveau sa intervient dans le déplacement du Robot? Le télémètre ne peu
ce suffire à lui même?

Bonne soirée ;)

#2 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 10 175 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 21 mai 2012 - 07:55

Bonjour,

Un Robot pour ce déplacer en évitant les obstacles ce sert soit d'un télémètre à ultra son ou à infra rouge ou/et de
contact répartie sur son chassis.

l'odomètre, si j'ai bien compris permet de connaitre la distance parcouru par le Robot en mesurant le nombre
de tour de roue.

Mais je ne vois pas ou comprend pas à quelle niveau sa intervient dans le déplacement du Robot? Le télémètre ne peu
ce suffire à lui même?

Bonne soirée ;)


Un exemple concret, comme il y a des petits défauts entre deux moteurs d'une même série, un robot peut facilement ne pas rouler en ligne droite si tu aliment tes deux moteurs avec une même tension.
Si tu veux contraindre ton robot à rouler le plus possible en ligne droite, et donc corriger ce petit défaut, tu peux asservir chaque moteurs en vitesse. Pour cela tu utilise l'odométrie. Tu peux aussi l'utiliser pour connaitre le trajet réel parcouru par ton robot en connaissant entre un intervalle de temps régulier le nombre de tours effectués par chaque roues et en reconstruisant la trajectoire parcourue point par point.

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#3 appleuser

appleuser

    Nouveau membre

  • Membres
  • 20 messages

Posté 21 mai 2012 - 08:38

Un exemple concret, comme il y a des petits défauts entre deux moteurs d'une même série, un robot peut facilement ne pas rouler en ligne droite si tu aliment tes deux moteurs avec une même tension.
Si tu veux contraindre ton robot à rouler le plus possible en ligne droite, et donc corriger ce petit défaut, tu peux asservir chaque moteurs en vitesse. Pour cela tu utilise l'odométrie.


Donc si je comprend bien, on compare la distance "réelle" que parcours le moteur droit et gauche et si il y a différence on en retarde un ou augmente l'autre, c'est bien sa? Mais dans cas précis, l'odomètre
doit pas être mis sur la roue concerner mais sur une autre à coter?
Pourtant je vois certain moteur livrer avec ces capteur fixer directement sur l'arbre. Aucun intérêt dans ce cas, comment mesurer un "glissement" dans ce cas?
Donc ce capteur n'a que pour but de faire aller droit le Robot?


Tu peux aussi l'utiliser pour connaitre le trajet réel parcouru par ton robot en connaissant entre un intervalle de temps régulier le nombre de tours effectués par chaque roues et en reconstruisant la trajectoire parcourue point par point.


Qu'elle en est l'intérêt? Une application concrète que je puisse bien en assimiler le principe.

Pour en revenir à ma question, le télémètre et l'odomètre non dans ce cas aucun rapport l'un avec l'autre. Chacun fait quelques chose qui lui est propre sans interagir avec l'autre?

#4 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 21 mai 2012 - 08:57

Pourtant je vois certain moteur livrer avec ces capteur fixer directement sur l'arbre. Aucun intérêt dans ce cas, comment mesurer un "glissement" dans ce cas?
Donc ce capteur n'a que pour but de faire aller droit le Robot?


Si justement, c'est super intéressent !
Si tu sais que ton motoréducteur à un rapport de 1:100 par exemple, ça veut dire que pour faire un tour de roue, l'arbre moteur aura fait 100 tours.
Donc si tu sais dire le nombre de tour d'arbre moteur, tu es super précis sur le nombre de tour de roue que tu as fait.
Dans l'exemple, si tu as mesuré 2 tours d'arbre, tu sais que la roue à tourner de 1/50 tour !!! :)

Mon site internet : http://ferdinandpiette.com/


#5 appleuser

appleuser

    Nouveau membre

  • Membres
  • 20 messages

Posté 21 mai 2012 - 09:35

Autant Mike118 ma bien éclairer sur l'intérêt dun tel système, mais la je vois pas l'intérêt de savoir que l'arbre a bien fait ces 100 tour....
L'arbre a fait 100 tour, la roue en à fait un mais rien ne nous dit qu'elle n'a pas "déraper ". Donc dans ce principe qu'elle est concrètement
l'utilité sur le Robot?
Impossible de savoir si il va bien droit.... Quelle distance il a parcouru..???

Je comprend pas trop la????

#6 swolf

swolf

    Membre passionné

  • Membres
  • PipPipPip
  • 626 messages
  • Gender:Male

Posté 21 mai 2012 - 10:23

Autant Mike118 ma bien éclairer sur l'intérêt dun tel système, mais la je vois pas l'intérêt de savoir que l'arbre a bien fait ces 100 tour....
L'arbre a fait 100 tour, la roue en à fait un mais rien ne nous dit qu'elle n'a pas "déraper ". Donc dans ce principe qu'elle est concrètement
l'utilité sur le Robot?
Impossible de savoir si il va bien droit.... Quelle distance il a parcouru..???

Je comprend pas trop la????


Je pense qu'il y a 2 "défauts" pouvant modifier la trajectoire du robot: le dérapage de la roue, et les différences de fabrication des moteurs.
Comme tu l'as fait remarquer, un odomètre présent sur l'arbre moteurs ne permet pas de détecter le premier défaut, mais il permet un plus grande précision pour détecter le deuxième et ainsi mieux le corriger.
Le mieux serait donc de placer 4 odomètres: 2 pour chaque arbres moteurs permettant de les asservir efficacement en vitesse, et 2 indépendants de l'arbre pour corriger le problème du glissement.
Notre blog, à FJprod et moi: http://2froblog.wordpress.com/

#7 appleuser

appleuser

    Nouveau membre

  • Membres
  • 20 messages

Posté 21 mai 2012 - 11:18

En recoupant vos divers réponse, je commence à mieux cerner le principe ;)

@Black Templar, je comprend mieux ta reponse à présent. Je n'avais pas pris en compte le problème de cette tolérance de fabrication
qui peu pour une même tension appliquée à chaque moteur, faire dévier le Robot.

Cette information récupérer des capteurs (présent sur l'arbre) doit être comparer à quoi dans ce cas pour faire en sorte que notre
Robot aille droit? En considérant qu'il n'y est pas de dérapage....

#8 swolf

swolf

    Membre passionné

  • Membres
  • PipPipPip
  • 626 messages
  • Gender:Male

Posté 21 mai 2012 - 11:38

En recoupant vos divers réponse, je commence à mieux cerner le principe ;)

@Black Templar, je comprend mieux ta reponse à présent. Je n'avais pas pris en compte le problème de cette tolérance de fabrication
qui peu pour une même tension appliquée à chaque moteur, faire dévier le Robot.

Cette information récupérer des capteurs (présent sur l'arbre) doit être comparer à quoi dans ce cas pour faire en sorte que notre
Robot aille droit? En considérant qu'il n'y est pas de dérapage....


Elle doit être comparée à une consigne je suppose... Ou bien tu compares la vitesse de tes deux moteurs pour ensuite ralentir le plus rapide afin d'avoir la même vitesse de chaque coté,,,
Notre blog, à FJprod et moi: http://2froblog.wordpress.com/

#9 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 22 mai 2012 - 08:05

Cette information récupérer des capteurs (présent sur l'arbre) doit être comparer à quoi dans ce cas pour faire en sorte que notre
Robot aille droit? En considérant qu'il n'y est pas de dérapage....


Déjà, le fait de connaitre le nombre de tour qu'a fait chaque roue, tu peux connaitre ta position ainsi que l'orientation du robot par rapport au point de départ de celui-ci.
http://clubelek.insa-lyon.fr/joomla/fr/base_de_connaissances/informatique/asservissement_et_pilotage_de_robot_auto_2.php
http://clubelek.insa-lyon.fr/joomla/fr/base_de_connaissances/informatique/calcul_d_odometrie_approximation_tra.php

Si tu veux que ton robot aille droit, il faut que l'orientation de celui-ci ne change pas au cours du temps. Il faut donc asservir tes moteurs pour que l'orientation du robot soit constante.
Principe d'un asservissement : http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-de-calculs/
Exemple d'un asservissement en vitesse : http://www.ferdinandpiette.com/blog/2012/04/asservissement-en-vitesse-dun-moteur-avec-arduino/

Lit aussi le post d'inovasong ! Il a mis en place un double asservissement en vitesse et en angle pour que le robot roule droit et toujours à la même vitesse (qu'il soit en pente négative ou positive !)
http://www.robot-maker.com/forum/topic/6425-mon-premier-robot-arduino/

++
Black Templar

Mon site internet : http://ferdinandpiette.com/


#10 appleuser

appleuser

    Nouveau membre

  • Membres
  • 20 messages

Posté 22 mai 2012 - 08:26

La construction du Robot n'a pas encore débuté car j'attend les différents éléments.

La base sera une carte ARDUINO UNO.

Seul point non encore décidé ce sont les moteurs. Je ne sais pas vraiment vers quelle
marque me tourner sachant qu'il seront de type CC et du coup avec ou sans capteur intégré?

Pouvez vous m'orienté? Je devrai peu être ouvrir un post dans ce cas dans la bonne rubrique...

Le châssis sera de forme ronde (environ 17cm) en aluminium je pense, avec deux roues et une roller caster.

Je referme le HS :excl:

Je m'en vais prendre connaissance de tous ces liens pour me documenter au maximum, encore merci ;)

#11 Melmet

Melmet

    Membre chevronné

  • Modérateur
  • PipPipPipPip
  • 1 526 messages
  • Gender:Male

Posté 22 mai 2012 - 08:32

il existe plusieurs type de codeurs.
les codeurs incrémentaux et les codeurs absolus.
les codeurs servent a donner une valeur.

tu "COMPARE" les valeurs de tes deux moteurs et en fonction de l’écart de l'un ou de l'autre tu ralentis ou augmente la vitesse de tes moteurs pour avoir une bonne correction.

a toi de faire tes recherches a partir de la, mais tu a des bonnes infos pour aboutir.

#12 appleuser

appleuser

    Nouveau membre

  • Membres
  • 20 messages

Posté 27 mai 2012 - 12:16

Je poursuis mes recherches sur les moteurs et les codeurs.

Pour résumer (dites moi si je me trompe): :excl:

- Codeurs Incrémentale:
Ses impulsions sont comptabilisées de façon à donner une information concernant la position (départ à une distance D = 0 du Robot)
ou /et une information concernant la vitesse (départ depuis un instant T = 0 du Robot).
Simple disque constituer de bande noir et transparente produisant donc un "1" ou un "0".

Codeurs Absolu:
Il donne une information de position absolue. Par contre je ne suis pas arriver à
comprendre le sens du terme de "position absolu" :flush:
Disque beaucoup plus complexe car constituer de plusieurs piste donc plusieurs bande noir et transparente situer de façon précise.
Quand on donne sa position c'est toujours par rapport à quelques choses (un bâtiment, une rue, etc...) ou bien les coordonnées GPS.
Mais la que signifie "absolu"??? Comment donner ma position si je n'est pas de référence...

C'est deux types de codeur peuvent aussi fournir une seconde information qui est le sens de rotation. Ce fait par l'intermédiaire de
deux disques déphasés de 90°. Le sens de rotation est en fonction de l'ordre d'arrivée des impulsions.


---------------------------------------------------------------------------------------------------------------


A partir de l'instant "D ou T = 0" (départ du Robot) le codeur Incrémentale, incrémentes de "I + 1" le nombre d'impulsion à chaque rotation de
l'arbre. On peu donc connaitre facilement la distance parcouru depuis D = 0 à n'importe qu'elle instant, connaissant le nombre d'impulsions
par tour de roue. On parlera dans ce cas je suppose d'asservissement en distance?

Pour ce qui est de l'asservissement en "angle" (Robot devant suivre une trajectoire droite), on comparera la différences d'impulsion sur les
deux arbres et en découlera la correction. On parlera donc d'asservissement en position?

Pour en revenir à l'exemple donné par @Black Templar au sujet des codeurs du Robot d'Inovasong. Je dirai que de part leur grande simplicité
de conception ils sont de type "Incrémentale" et sans retour d'information sur le sens de rotation, c'est bien sa?

J'en conclu que pour commencer dans le domaine de l'asservissement "PID" (faire en sorte que le Robot aille droit) de simple codeur incrémentaux
sont suffisant?
Par contre leur "définition" c'est à dire le nombre d'impulsions générer par tour d'arbre devrai être si possible le plus grand possible (au nombre
de 10 pour ceux d'Inovasong) pour une plus grande précision. Par contre j'ai pu voir dans des exemples que l'on s'éloigne de la simple roue
d'entée si l'on veux une définition importante (plus de 100 impulsions).

Dans ce cas, est ce que le micro contrôleur peu devenir limitatif de part ces capacité si on prend un codeur de plusieurs centaine d'impulsion?

Vos avis sur mes premières réflexion ;)

#13 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 10 175 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 27 mai 2012 - 01:43

Je poursuis mes recherches sur les moteurs et les codeurs.

Pour résumer (dites moi si je me trompe): :excl:

- Codeurs Incrémentale:
Ses impulsions sont comptabilisées de façon à donner une information concernant la position (départ à une distance D = 0 du Robot)
ou /et une information concernant la vitesse (départ depuis un instant T = 0 du Robot).
Simple disque constituer de bande noir et transparente produisant donc un "1" ou un "0".

Oui ;)

Codeurs Absolu:
Il donne une information de position absolue. Par contre je ne suis pas arriver à
comprendre le sens du terme de "position absolu" :flush:
Disque beaucoup plus complexe car constituer de plusieurs piste donc plusieurs bande noir et transparente situer de façon précise.
Quand on donne sa position c'est toujours par rapport à quelques choses (un bâtiment, une rue, etc...) ou bien les coordonnées GPS.
Mais la que signifie "absolu"??? Comment donner ma position si je n'est pas de référence...


Le truc c'est que le codeur fait office lui même de référence ;)
Suppose que ton codeur absolu contienne X positions différentes. En gros elles sont numéroté de 1 à X.
Le codeur absolu utilise le même principe que la roue de la fortune. Le codeur tourne mais le capteur qui "regarde" le codeur lui ne tourne pas et ne regarde qu'une portion du disque juste assez pour lire le numéro qui passe devant ces "yeux " ;)
Ainsi tu ne défini pas la position par rapport à la position précédente comme ce que tu fais pour un codeur incrémental mais par rapport au numéro présent sur le codeur ;)
j'espère avoir été clair =)



A partir de l'instant "D ou T = 0" (départ du Robot) le codeur Incrémentale, incrémentes de "I + 1" le nombre d'impulsion à chaque rotation de
l'arbre. On peu donc connaitre facilement la distance parcouru depuis D = 0 à n'importe qu'elle instant, connaissant le nombre d'impulsions
par tour de roue. On parlera dans ce cas je suppose d'asservissement en distance?

non pour être précis il s'agit d'un asservissement en position car en fait tu vas asservir la position finale de tes roue et donc de ton robot en comptant le nombre d'impulsion.

Pour ce qui est de l'asservissement en "angle" (Robot devant suivre une trajectoire droite), on comparera la différences d'impulsion sur les
deux arbres et en découlera la correction. On parlera donc d'asservissement en position?

non plus il s'agit d'un asservissement en trajectoire.

Pour en revenir à l'exemple donné par @Black Templar au sujet des codeurs du Robot d'Inovasong. Je dirai que de part leur grande simplicité
de conception ils sont de type "Incrémentale" et sans retour d'information sur le sens de rotation, c'est bien sa?


oui ;)

J'en conclu que pour commencer dans le domaine de l'asservissement "PID" (faire en sorte que le Robot aille droit) de simple codeur incrémentaux
sont suffisant?

oui ;)

Par contre leur "définition" c'est à dire le nombre d'impulsions générer par tour d'arbre devrai être si possible le plus grand possible (au nombre de 10 pour ceux d'Inovasong) pour une plus grande précision. Par contre j'ai pu voir dans des exemples que l'on s'éloigne de la simple roue
d'entée si l'on veux une définition importante (plus de 100 impulsions).


Dans ce cas précis on préfère se placer au plus près du moteur :
Pour que la roue fasse un tour, ton moteur en fera Y avec Y plus grand que 1.
Si ton codeur permet de faire X impulsion par tour tu aura ainsi X*Y impulsions par tour de roue ce qui te donnerai une meilleur définition que si tu avait fixé ton codeur sur la roue ( car tu n'aurais alors que X impulsions par tour de roues )

Dans ce cas, est ce que le micro contrôleur peu devenir limitatif de part ces capacité si on prend un codeur de plusieurs centaine d'impulsion?


Il est évident qui si tu "exagères" sur la définition de ton codeur le micro contrôleur peu devenir limitatif. Exemple simple si tu prend un codeur incrémentale 1000 postions fixé sur une arbre qui peut te faire du 1000 tour/ secondes tu risques de saturer ton micro contrôleur ;)

Cependant pour un usage correcte le micro contrôleur n'est en générale pas limitatif. Enfin c'est mon avis ^^ tout dépend ensuite de ta définition d'usage correcte ^^

voili voilou !

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#14 appleuser

appleuser

    Nouveau membre

  • Membres
  • 20 messages

Posté 27 mai 2012 - 09:18

Je n'est pas encore tous les termes exact visiblement mais pour une première recherche c'est pas trop mal ;)

Merci pour ton corriger :D

Je resterais théorique sur ce fil et utiliserais l'autres pour les recherche de matériel.

#15 appleuser

appleuser

    Nouveau membre

  • Membres
  • 20 messages

Posté 27 mai 2012 - 11:35

Je commence les calculs théorique sur les moteurs. Mon domaine étant plus l'électronique que la mécanique...

Pour être sur de bien comprendre, un moteur ayant une vitesse de rotation de 440Tr/min et un rapport de
réduction de 1:30.

Signifie que pour 30 rotations moteur cela donnera 1 tour de roue donc on en déduit que pour 440 rotation nous
aurons 14,66666 tours de roue par minute?

On exprime la vitesse d'un Robot en m/s. Je voudrai connaitre la vitesse de mon Robot en utilisant ces données.

Sachant que (pour l'exemple) je vais utiliser des roues d'un diamètre de 32mm.

Nous avons donc:

- D = 0,032m (diamètre des roues).
- R = 1:30 (rapport de réduction).
- Vmoteur = 440t/min
- Vr = ???? (valeur de la vitesse du Robot que je cherche).

J'ai trouvé cette relation:

Vmoteur = (Vr x 60) / (D x 3,14 x R)

Ce qui nous donne:

Vr = Vmoteur x (D x 3,14 x R / 60)

Mais la je bloque, de quelle manière est calculé R? C'est 30 sur 1 ou 1 sur 30? En claire doit je mettre 30 comme
valeur ou 0,033333 ???

Pour un même moteur on peu trouver un rapport de réduction différent. Est ce que l'on peu dire qu'un grand
rapport donnera moins de vitesse au Robot mais plus de couple et qu'un petit rapport donnera plus de vitesse
mais moins de couple?

#16 appleuser

appleuser

    Nouveau membre

  • Membres
  • 20 messages

Posté 28 mai 2012 - 03:09

Je me répond à moi même ;)

Donc R = 1 / 30 = 0,03333 et oui pour la seconde question !!

J'ai pu voir la vitesse de certain Robot et avoir la référence de leur moteur. Je vais pouvoir en deduire leur vitesse et choisir
dans ce cas la vitesse du mien.

#17 Melmet

Melmet

    Membre chevronné

  • Modérateur
  • PipPipPipPip
  • 1 526 messages
  • Gender:Male

Posté 28 mai 2012 - 06:43

juste une petite question:
as tu trouver des moteurs avec des codeurs qui seront adaptés ?
si oui peut tu me dire les quels .

#18 appleuser

appleuser

    Nouveau membre

  • Membres
  • 20 messages

Posté 28 mai 2012 - 07:53

Que veut tu dire par codeur adaptaté?

Non je ne les est pas encore trouver car jusqu'à ce midi je ne savais pas encore vraiment comment calculer leur
caractéristique en fonction de mes besoin, à présent c'est chose faite ;)

Il me reste à déterminer les dimensions du châssis et son poids approximatif pour en calculer les moteurs.

Les roues devraient faire 8cm de diamètre pour être a peu prêt à l'aise sur la plupart des revêtement.



Répondre à ce sujet



  


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

0 members, 1 guests, 0 anonymous users