Arduino Forum

International => Français => Topic started by: Minicarpet on Dec 15, 2013, 08:09 pm

Title: Guidage a l'aide d'arduino
Post by: Minicarpet on Dec 15, 2013, 08:09 pm
Bonjour à tous,

Je débute en arduino et j'ai besoin d'un petit boost pour avancer sur un petit projet, le cahier des charges est le suivant :

- Permettre a une base roulante (robot) de connaitre sa position sur un plan.
- Méthode par ultrason, laser, GPS (en posant nous même la triangulation qui représente les satellites), accéleromètre et gyro, ou autres méthodes.
- Une fois la position connue se diriger vers un point donné.

Je voulais donc savoir quelle méthode serait plus facile à mettre en place et comment la mettre en place, ainsi que le matos (du genre un micro et 3 récepteurs pour l'ultrason ?)

je possède une carte UNO et une DUE, Je n'ai rien d'autres mais je peux acheter ;)

Merci pour vaitre aide et vos réponse ! (si vous avez des questions n'hésitez pas)
Title: Re: Guidage a l'aide d'arduino
Post by: 3Sigma on Dec 15, 2013, 11:19 pm
Bonjour,

Voici mon avis:
- GPS: si tu es à l'intérieur, c'est mort. Et si tu es dehors, pareil, sauf si 1 m de précision te suffit
- Ultrason, laser: tu es dépendant des murs qui vont encadrer ta scène et surtout, tu dois connaître leur position. Pas pratique pour se déplacer dans un environnement inconnu
- accéléromètre et gyro: tu vas avoir besoin de d'intégrer respectivement 2 fois une accélération et une fois une vitesse de rotation. Si tu ne veux pas exploser le budget, les accéléros/gyros que tu trouveras ne sont pas assez précis et l'intégration (ou double intégration) des offsets, bruits et compagnie vont donner très rapidement des positions très fantaisistes

Selon moi, la meilleure solution est d'utiliser des moteurs avec des codeurs incrémentaux suffisamment précis pour que, à partir du comptage de la fraction du nombre de tours de roues effectués, le robot puisse connaître sa position.
J'ai développé un robot qui est capable de connaître sa position par ce moyen et c'est vraiment très précis. Le codeur génère 1632 impulsions par tour de roue, les roues font 9 cm de diamètre, je te laisse calculer la résolution angulaire et longitudinale sur la position.
Ensuite, quand tu connaîs la position du robot et que tu veux l'envoyer à un endroit donné, il faut faire un asservissement de position. Sur mon robot, ça marche pas mal du tout. Si l'asservissement est bon, tu peux obtenir un positionnement au cm près et au degré près.

Au fait, tu as déjà le robot ? Parce que s'il n'y a pas de codeur sur les moteurs, c'est cuit. A moins de changer de moteur ou de rajouter des codeurs.
Title: Re: Guidage a l'aide d'arduino
Post by: Christian_R on Dec 15, 2013, 11:37 pm
L'odométrie marche bien sur sol non glissant.
Un moteur sans codeur se transforme avec une roue codeuses à encoches et une petite fourche optique, on peut éventuellement utiliser aussi des moteurs pas à pas.
Si besoin, il peut y a voir un point de repère (un angle par ex.) sur lequel le robot vient se recaler périodiquement.
Title: Re: Guidage a l'aide d'arduino
Post by: Minicarpet on Dec 16, 2013, 08:50 am
Bonjour,

Merci de vos réponses, le problème c'est que l'odomètrie le robot ne connaît pas sa position initiale il croit la connaître
On travail déjà sur l'odometrie ;)
Moi j'aimerais faire une méthode qui permettrait de connaître la véritable position actuelle a tout moment. Donc je connais l'environnement et je peux placé des balises sur les coins. Le déplacement se fait dans un rectangle d'environ 3m sur 5m.
Pour le GPS on pourrait pas placé nos bases gps dans les quatres coins de la salle ?
J'ajoute que le budget n'est pas vraiment limité

Merci encore
Title: Re: Guidage a l'aide d'arduino
Post by: 3Sigma on Dec 16, 2013, 09:24 am
Je doute qu'avec du GPS tu puisses avoir une précision au centimètre. Normalement c'est au mètre, dans le meilleur des cas.
Mais bon, je n'ai jamais fait de test, si quelqu'un a des billes pour me contredire, je suis preneur.

A part ça, dans le principe, tu pourrais encadrer ton rectangle par des "murs" et mettre 4 capteurs ultrasons (ou autre technologie qui mesure la distance) à 90° les uns des autres sur le robot. Ca devrait te permettre une première localisation du robot, mais tu auras alors 4 possibilités. Pour ne retenir que la bonne, tu peux rajouter une boussole.

Avec tout ça (odométrie, capteurs US et boussole), c'est pas mal blindé !
Tu dis déjà travailler sur l'odométrie: ça ne fonctionne pas ?
Title: Re: Guidage a l'aide d'arduino
Post by: lve123 on Dec 16, 2013, 10:21 am
Bonjour
- Comme balise un niveau laser genre BOSCH PLL360 on a ainsi un rayon laser qui balaie un plan horizontal.
- Sur le robot un détecteur (phototransistor) monté sur un axe vertical pouvant tourner sur +- 360°.
Il y a une phase d'apprentissage : le robot détecte le rayon laser, il connaît l'angle par rapport à son axe avant-arrière, il tourne sur lui-même pour que cet axe soit perpendiculaire au rayon (pas obligatoire mais ça aide). Il avance d'une certaine distance précise (1 m par ex. Il mesure l'angle de nouveau. Connaissant les deux angles et la distance parcourue, il peut calculer la position de la balise et sa propre position.
A+
Title: Re: Guidage a l'aide d'arduino
Post by: Minicarpet on Dec 16, 2013, 11:57 am
L'odomètrie  fonctionne mais si le robot est mal placé au début, il fera le trajet mais décalé... Du coup en connaissant les vrais coordonnée il pourrait faire le bon trajet.
Je vais réfléchir a vos solutions le ultrason semble plus simple a mettre en place, il suffit de mettre 4 émetteurs et 4 récepteurs c'est ça ? Merci
Title: Re: Guidage a l'aide d'arduino
Post by: 3Sigma on Dec 16, 2013, 12:10 pm
En général, c'est un groupement emetteur/récepteur qui est vendu.
Pense aussi à la boussole, sinon tu ne connaîtra pas son orientation.
Title: Re: Guidage a l'aide d'arduino
Post by: lve123 on Dec 16, 2013, 01:02 pm
Bonjour
- Utiliser deux balises, commandées par le robot par radio, il allume la première balise, calcule sa position par rapport à elle, l'éteint, allume la seconde, calcule sa position par rapport à cette balise. en connaissant la position des deux balises, il peut calculer sa position réelle. Il me semble que le laser est plus précis que les ultrasons.
A+
Title: Re: Guidage a l'aide d'arduino
Post by: icare on Dec 16, 2013, 03:01 pm
Bonjour,
Peut être une proposition "idiote" mais à défaut cela fera avancer le "chim....".
Je me rappelle des chasses aux trésors à la gonio.
Mettre en place 2 ou 3 émetteurs HF et un récepteur sur le mobile. le récepteur cherche les différents max de signal avec repérage d'angles.
Si l'on connaît l'implantation des émetteurs le tout se réduit à de la trigonométrie.
Pas sur la tête.
@+
Title: Re: Guidage a l'aide d'arduino
Post by: Minicarpet on Dec 16, 2013, 06:44 pm
Je suis pas sur qu'il faille une boussole, si on a 3 émetteurs/récepteurs, et a quel distance vient le signal, il connait sa position exact non ?
iCare ton système est le même que le notre avec des HF nan :p ?
Title: Re: Guidage a l'aide d'arduino
Post by: icare on Dec 16, 2013, 06:51 pm
Re,
3 émetteurs donc 3 angles alors une position unique (pas besoin d'autres dispositif de positionnement).
A partir de plusieurs positions, on a la direction du déplacement, l'angle de déplacement et même la vitesse de déplacement.
@+
[edit] On ressort les cours sur les coordonnées polaires au minimum.
Title: Re: Guidage a l'aide d'arduino
Post by: lve123 on Dec 16, 2013, 07:10 pm
Bonjour
Deux émetteurs suffisent si on connaît la distance entre eux deux et même sans la connaître.
A+
A+
Title: Re: Guidage a l'aide d'arduino
Post by: Artouste on Dec 16, 2013, 07:43 pm

...Le déplacement se fait dans un rectangle d'environ 3m sur 5m.


Merci encore

bonsoir
là deplacement sur une surface delimitée par 3/5m c'est déjà AMHA plus realisable "facilement" que dans un topic recent.

Perso et pour une premiere reflexion, je partirais sur une option inverse
je mettrais sur le robot un niveau laser avec une optique ligne verticale (il en existe des petits pas cher avec une portée acceptable là) en rotation continue, avec un encodeur de position (quadrature + top zero)
et je mettrais aux angles de la zone 4 balises recepteurs optiques (avec un champ pas trop fermé, genre BPW34)   
les balises renvoyant vers le robot l'info de stimuli (balise 1.2.3.4 touchée) .
Comme d'hab, meme si c'est simple sur le papier, la realité sera peut etre moins "droles"  8)

Title: Re: Guidage a l'aide d'arduino
Post by: lve123 on Dec 16, 2013, 08:08 pm
Bonsoir
Tout dépend également de la puissance de calcul du pc à bord du robot (Arduino ?), mais en utilisant le principe dans ma réponse #5  sur deux balises comme en #8, le robot peut naviguer facilement dans un rectangle de 3  x 5 m. mais il faudrait également savoir comment est délimitée cette surface, est-ce que le robot connaît les dimensions de cette surface, est-ce qu'il peut en détecter les limites pare choc ou ligne colorée sur le sol auquel cas une fois qu'il connaît la position des balises et une ou deux limites de la surface, il peut en calculer la totalité. le mieux étant de placer les balises dans deux coins contigus de la surface.
A+
Title: Re: Guidage a l'aide d'arduino
Post by: Minicarpet on Dec 16, 2013, 09:11 pm
Re !
iCare, pas de soucis pour les coordonnées polaire ou cartésiennes ou autres, non plus niveau dérivation intégrale (pour la vitesse et accélération), t'en fais pas pour ça :p

Ivel23 : Deux suffisent Mais 3 semble plus précis ? Ce sera se de l'arduino, (la DUE suffit pas ? au pire i2c peut un peu soulager ?). De plus le robot coonait tout, la dimension exact de la pièce tout ce qui s'y trouve dedans (sauf un truc qui bougera en même temps mais ça n'est pas un problèmes), il y a des lignes possibilités de mettre ligne au sol ainsi que capteurs (genre contact si il touche un mur) les positions balises pourront être donnée en coordonnée dans le programme aucun soucis. Je cherche pas à faire un truc in faisable ^^

Artouste : J'ai un peu regardé, mais le laser peu être coupé du a un obstacle non ?
Title: Re: Guidage a l'aide d'arduino
Post by: Artouste on Dec 16, 2013, 09:15 pm

...

Artouste : J'ai un peu regardé, mais le laser peu être coupé du a un obstacle non ?

Oui evidemment, je n'ai pas pris en compte l'occultation par obstacle, si sur la zone il y a plusieurs mobiles (robot battle)
mon idée n'est absolument pas viable.
tant pis j'aurais essayé  :smiley-mr-green:
Title: Re: Guidage a l'aide d'arduino
Post by: Minicarpet on Dec 16, 2013, 09:24 pm
C'est toujours une idée ;)
Ouais c'est un peu un robot battle mais un seul robot bouge donc la vision revient après, mais si il y a des obstacles genre... un cailloux, il peut plus détecter sa position le problème est plus là :p
euuuuuh c'est pareil pour l'ultrason en fait --'
Title: Re: Guidage a l'aide d'arduino
Post by: Artouste on Dec 16, 2013, 09:48 pm

C'est toujours une idée ;)
Ouais c'est un peu un robot battle mais un seul robot bouge donc la vision revient après, mais si il y a des obstacles genre... un cailloux, il peut plus détecter sa position le problème est plus là :p
euuuuuh c'est pareil pour l'ultrason en fait --'

Donc retour aux fondamentaux  :smiley-mr-green:

On peut lire le reglement/(cahiers des charges) ?
Title: Re: Guidage a l'aide d'arduino
Post by: Minicarpet on Dec 16, 2013, 09:53 pm
Et par caméra ? ou thermique ?
Sinon c'est pas compliqué : Coupe de France de robotique 2014 :p
http://www.planete-sciences.org/robot/data/file/coupe/2014/Rules2014%20-%20Version%20finale%20-%20Eurobot.pdf
Title: Re: Guidage a l'aide d'arduino
Post by: Artouste on Dec 16, 2013, 10:02 pm

Et par caméra ? ou thermique ?
Sinon c'est pas compliqué : Coupe de France de robotique 2014 :p
http://www.planete-sciences.org/robot/data/file/coupe/2014/Rules2014%20-%20Version%20finale%20-%20Eurobot.pdf

ok
je lirais ça tranquillement  8)
Title: Re: Guidage a l'aide d'arduino
Post by: icare on Dec 16, 2013, 10:55 pm
Bonsoir,

Bonjour
Deux émetteurs suffisent si on connaît la distance entre eux deux et même sans la connaître.
A+
A+

Sur le principe oui mais dans le cas de 2 émetteurs la solution est double, il faut une donnée sup. pour trouver la position.
Avec 3 émetteurs le système d'équations n'a qu'une solution.
@+
Title: Re: Guidage a l'aide d'arduino
Post by: lve123 on Dec 17, 2013, 12:09 am
Bonsoir
Non, puisque la recherche se fait sur 360°. Dans le #5, le robot sait si la balise se trouve à gauche ou à droite de l'axe avant-arrière.
le rayon de la balise tourne très vite par rapport à la tête du robot où se trouve la cellule, donc en faisant une recherche sur 360° plus lentement  que la balise le robot trouve l'angle que fait le rayon reçu avec son axe av-ar. C'est un rayon lumineux, pas une onde radio.
A+
Title: Re: Guidage a l'aide d'arduino
Post by: icare on Dec 17, 2013, 09:38 am
Bonjour,

Bonsoir
Non, puisque la recherche se fait sur 360°. Dans le #5, le robot sait si la balise se trouve à gauche ou à droite de l'axe avant-arrière.
le rayon de la balise tourne très vite par rapport à la tête du robot où se trouve la cellule, donc en faisant une recherche sur 360° plus lentement  que la balise le robot trouve l'angle que fait le rayon reçu avec son axe av-ar. C'est un rayon lumineux, pas une onde radio.
A+

L'important c'est que tu arrives à te localiser peu importe la méthode  ;)
Rayon lumineux ou ondes radio c'est la même chose, on est toujours dans le cadre des équations de Maxwell  :smiley-mr-green:
@+
Title: Re: Guidage a l'aide d'arduino
Post by: Artouste on Dec 17, 2013, 02:57 pm


Et par caméra ? ou thermique ?
Sinon c'est pas compliqué : Coupe de France de robotique 2014 :p
http://www.planete-sciences.org/robot/data/file/coupe/2014/Rules2014%20-%20Version%20finale%20-%20Eurobot.pdf

ok
je lirais ça tranquillement  8)

J'ai lu (un peu en diagonale)
et si resume ce que j'ai compris jusque là
tu peux disposer d'un robot ramené à un  cylindre  de ~ 48cm de diametre  et 35 cm de hauteur ?
ça fait déjà un beau volume de charge embarquable.

là pour et en l'etat de la discussion
ton robot (si occupation max) doit se reperer/positionner sur une surface de 6M² plane inscrite par longueur 3m et et largeur 2m

Title: Re: Guidage a l'aide d'arduino
Post by: Minicarpet on Dec 17, 2013, 08:54 pm
C'est ça avec un périmètre de 700mm

Du coup ma question est : peut-on brancher n'importe quel émetteur sur l'ardiuno ?