Robotique : navigation et repérage dans l’espace

Pour expliquer certains fonctionnements, principes et fondements.
jojo60
Level 4
Level 4
 
Messages: 87
Localisation: France

Messagepar jojo60 » Jeu Mar 26, 2009 5:53 pm

Bonjour,

J’ai un projet pour lequel j’aimerais partager mes réflexion et avoir vos avis et/ou retour d’expérience.

Mon objectif est de réaliser un robot de type « logistique industriel » dont les missions serait du type :
1) Se rendre dans la cuisine, Reperer les fruits sur le sol.
2) Transporter les pommes vertes dans la chambre, les déposer
3) Reperer les fruit sur le sol de la chambre, et transporter les pommes rouges dans le salon.
4) Puis retourner dans la cuisine, etc…

Le chalenge pour ce type de mission n’est pas de différencier la couleur des objets à transporter, mais bien la notion de repérage dans l’espace et la navigation entre des points distants.

Comment procéder pour passer d’une pièce à l’autre, et savoir en permanence ou l’on se trouve ?

Les différentes techniques possibles (enfin celles que j’imagine)
- Suivi de ligne : Création d’un réseau de lignes de couleurs « peintes » au sol
- Balisage de points clé de l’environnement grâce à des puces RFID et d’un lecteur sur le robot, et mémorisation des mouvements à effectuer entre les balises + Utilisation d’un capteur boussole (compas)
- GPS : ne fonctionne pas en intérieur et précision trop faible.

Dans un autre poste je détaillerai ce que j’imagine pour la technique du suivi de ligne.

A+
Jo

Avatar de l’utilisateur
Alban42800
Level 11
Level 11
 
Messages: 2473
Localisation: Loire (42)
Âge: 51 ans
expertgbbexpertnxtvainqueurconcours

Messagepar Alban42800 » Jeu Mar 26, 2009 6:11 pm

Mieux que les RFID+Boussole :
Si ton sol est de teinte uniforme tu peux te repérer avec des lignes noires (ou blanches) à l'aide de 2 capteurs de lumière.

Avec les 2 capteurs le robot est capable de s'orienter perpendiculairement et très précisément à une ligne noire : Tu sais ou tu te trouve ET tu n'a pas besoin de la boussole pour prendre le bon cap.

Avec un seul capteur tu pourrais presque le faire, à condition de placer les lignes noires près des murs. Tu sais ou tu te trouve grâce à la ligne puis tu fonce dans le mur pour orienter le robot perpendiculairement au mur.

Bien entendu tout cela en combinaison des capteurs de rotation dans les moteurs.

Avatar de l’utilisateur
roboleo
Level 8
Level 8
 
Messages: 955
Localisation: Hauts de Seine
expertnxt

Messagepar roboleo » Ven Mar 27, 2009 7:39 pm

Projet très intéressant…
Mes réflexions:
Principes pour résoudre ton problème:
2 capteurs me paraissent suffisants: photosensible et rotation moteur (intégré).
Faire exécuter au robot et en préalable, chaque chemin spécifique, puis les enregistrer dans des fichiers séparés.
Chacun de ces fichiers sera appelé en fonction de la mission à accomplir.
Procédure à double détente: reconnaissance du parcours puis enregistrement, et exécution d'un parcours enregistré selon la mission.

1ère solution:
Pour passer d'une pièce à l'autre, il faut franchir la porte. Il faut donc repérer et personnaliser chaque passage.
On peut utiliser une ligne noire comme seuil de franchissement; mais pour différencier les portes, les lignes peuvent être multiples et parallèles.
Ex: porte cuisine: une ligne
porte chambre: 2 ligne parallèles rapprochées
porte salon: 3 lignes rapprochées
etc…
Un capteur photosensible (N & B) va détecter et compter le nombre de lignes noires à chaque franchissement . Ces nombres associés à des chemins multiples serviront à choisir l'un d'entre eux. Les chemins seront programmés en fonction de la mission (bloc COMMUTATEUR multiple en NXT-G).
Avec un capteur couleur, la détection sera simplifiée: une bande adhésive couleur à l'entrée de chaque pièce.
2ème solution:
Tracer au sol à l'aide d'une bande adhésive noire le chemin complet. Au passage de chaque porte, une pastille de diamètre suffisant et d'une teinte grise (à calibrer) sera détectée par le capteur photosensible.
Une pastille pour la 1ère porte
2 pastilles successives pour la 2ème porte
3 pastilles etc…
Ces pastilles joueront le même rôle que dans le cas précédent.
Variante avec des pastilles de couleur.

Petite astuce de bricoleur:
J'ai fait l'acquisition dans un CASTORAMA d'un lot de 15 dalles de revêtement de sol en plastique (non adhésives, dalles blanches de 30x30 cm) , ainsi qu'un rouleau de bande adhésive noire de 2 cm de large.
J'ai collé sur quelques dalles une bande rectiligne dans l'axe. Dans d'autres une bande en équerre sur un quart inférieur de la dalle.
En disposant ces dalles dans tous les sens sur un support plan, on peux matérialiser un tracé, qui peut varier à volonté (sorte de quadrillage). Et si l'on souhaite rendre ce tracé sinueux, quelques autres dalles comporteront un quart de cercle à un angle.
Très commode pour improviser un tracé et surtout le ranger après usage, sans laisser de marques.
C'est ainsi que je pratique pour résoudre un challenge qui est le mien et qui consiste à faire sortir mon robot d'un labyrinthe (Pb non encore résolu).

A bientôt, pour la suite… ;)
A+
Roboleo
" Je ne cherche pas, je trouve…" P. Picasso

Thibaud
Level 6
Level 6
 
Messages: 333
Localisation: Paris
expertnxt

Messagepar Thibaud » Dim Mar 29, 2009 12:01 pm

Les solutions proposées sont les plus simples à mettre en œuvre et ce même si elle nécessite de baliser ton environnement pour que ton robot ne se perde pas. Pour aller plus loin tu pourrais faire de la reconnaissance de couleur par camera (voir la camera de mindsensors). Le RFID risque d'être plutôt compliqué je pense, enfin comparé au reste..
Venez voir mes créations ;) NXTGEN
-----
La team BrickBot

Avatar de l’utilisateur
Chewbee
Level 3
Level 3
 
Messages: 23
Localisation: PARIS
Âge: 57 ans

Messagepar Chewbee » Lun Avr 06, 2009 1:19 pm

Bonjour,

Les lignes paraissent sympa pour faciliter les parcours 'effectivement avec deux yeux ça marche très bien (en RCX ;)
le RFID pourrait toujours servir a "tagger" les pièces (pas obligatoire, les systèmes de lignes sont tout aussi bon mais pour le plaisir d'utiliser un capteur de plus) ..

Ma contrib à 0,02 €

AFOLement votre

Chewbee

Avatar de l’utilisateur
maxlemalade
Level 10
Level 10
 
Messages: 1612

Messagepar maxlemalade » Mer Avr 08, 2009 3:45 pm

mon avis sur la question:

ton probleme est que, dans l'idée, à l'instant T, ton robot peut être à n'importe quel endroit puisqu'il va etre a la recherche des pommes dans les pieces.

du coup, perso, je ne pense pas que le systeme de ligne soit bien choisit puisque le robot devra s'en eloigner, ce qui sous entend qu'a un moment, il devra retrouver la ligne en question puis etre capable de s'orienter sur celle ci pour la suivre dans le sens voulu (vers la bonne piece de la maison :p )

le probleme se pose donc ainsi: le robot doit simplement etre capable de savoir dans quelle piece il se trouve. et la, c'est deja nettement plus simple :)

la solution de roboleo, marquer les portes, est vraiment séduisante dans la mesure ou, la porte etant un goulet d'étranglement, au moment ou le robot la passera au gré de ses déplacement, la zone a marquer sera restreinte et il sera facile de detecter un marquage spécifique; genre, une sorte de code barre au sol; le robot n'ayant qu'a compter le nombre de barre pour savoir quel seuil il est en train de passer, donc, partant du principe qu'il sait de quel piece il est patit a la base, il saura dans quel piece il entre :)

voila, maintenant, on sait reperer la piece dans laquelle on entre avec un seul capteur et un minimum de marquage.

nous reste a elaborer une structure de donnée performante pour trouver le bon chemin d'un point A à un point B. là, nous allons nous appuyer sur nos seuils et sur un structure en graph. chaque piece sera un sommet du graph et chaque seuil sera une branche du graph.
pour trouver le chemin, nous pourrons facilement adapter l'algo de dijkstra ( http://fr.wikipedia.org/wiki/Algorithme_de_Dijkstra ), en le simplifiant puisque nous ne ponderons pas les branches du graph :)

maintenant, le robot sait en permanence dans quelle piece il se trouve, il sait quels seuils de porte passer pour se rendre dans la piece voulue et il sait reperer les seuils de porte quand il les passe.

a priori, en partant de la, on sait tout faire: le robot va suivre un deplacement donné dans chaque piece, le long des murs par exemple, jusqu'a trouver un seuil, de la, il le passe, si c'est le seuil voulu, il continu sa route jusqu'au prochain seuil du chemin vers sa destination, sinon, demi tour et on continue le tour de la piece :)

on peut accelerer le systeme en imaginant un mode de repérage des seuils de porte a distance; comme ca, le robot ne "tatonnera" pas pour trouver son chemin :) de meme, on peut memoriser un pseudo plan de chaque piece; pour que le robot sache un peu dans quel sens chercher le prochain seuil de porte :) on pourra aussi, dans la phase de recherche des objets, memoriser le chemin parcouru pour pouvoir le refaire en marche arriere et donc, retourner a un point connu (cela dit, avec les roues qui peuvent glisser, la precision des moteurs et tout le tintouin, on risque de se ne pas se retrouver a l'endroit initial :))
membre fantôme en cure de désintoxication d'internet ludique :p


Retourner vers De la théorie à la pratique

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 4 invités

cron