Le PICOBOT de Lionel, pour les fribottes : schemas et suivi de la competition.


PICOBOT est un robot qui doit participer au concours Alcabot en Espagne prévu en avril 2004, et plus précisément au concours de labyrinthe. L'idée d'une participation à ce concours fait suite à la participation de Haku ( réalisé par Julien pour l'année 2003).

Les objectifs de ce robot est:

  • Faire un robot qui soit en mesure de concourir de manière honorable ( ne pas finir dernier!).
  • Ceci étant de le faire à moindre coups en utilisant une technologie utilisable par tous, aussi bien au niveau mécanique, électronique et informatique.
Tout d'abords une petite photo du robot suite à la réalisation mécanique et électronique. La partie informatique n'étant pas encore finie.


Lionel, des Fribottes

 Etat de Picobot début septembre  

A cette date l'idée de base est posé concernant l'utilisation de servos pour la motorisation, ce qui va simplifié très fortement pas la suite la partie mécanique et surtout l'électronique. De plus le prix unitaire d'un servos est raisonnable, environ 11 euros cher Euro Model. Ce type de servos est donné pour 45°/0.165s, ce qui va nous donner un tour de roue en 1.32s et un couple de 30N.cm. Si on veut des servos plus rapide on peut prendre un S9402 qui tourne à 45°/0.075s, ce qui donne un tour de roue en 0.6 seconde. D'autre part le couple est plus élevé 80N.cm.
Avec le servos S3001, on doit atteindre le 25cm/s sachant que le diamètre d'un CD est de 12cm.
Après un rapide tour du marché le choix s'est porté sur des servos S3001 de la marque Robbe/Futaba. La première étape consiste à modifier les servos en l'ouvrant complètement, puis on dessoude le potentiomètre de recopie, que l'on remplace par deux résistances CMS pour mettre au neutre à 1.5ms. On remonte le tout en veillant à ne pas introduire de poussière dans les engrenages. Remettre un peu de graisse si nécessaire pou minimiser les frottements et donc la consommation.

Pour information des résistances CMS de 2.5K au format 1206 conviennent parfaitement, en effet le potentiomètre de recopie a une valeur de 5Kohms. Pour ma part je préfère dessouder le potentiomètre car on peut le remettre plutôt de couper la tête et le fixer avec de la patte à modeler, c'est plus léger!
Le choix des roues s'est portée la aussi vers de la récupération, les CD ROM usagés conviennent parfaitement, pour cela on colle sous pression avec de l'araldite 3 CD par roue. Reste ensuite à mettre la tête de servos sur le CD en s'assurant que le centrage est correcte. Ceci permet d'atteindre une vitesse honorable. Pour ceux qui ne veulent pas réaliser les roues eux même est possible de trouver des roues dans le commerce qui s'adapte à la tête d'un servos. Pour s'assurer que la roue accroche bien on peu mettre une bande de caoutchouc découpé dans une chambreà air de vélos.
Pour percer des trous dans le plastique du CD, utiliser une perceuse sur colonne avec une vitesse de rotation faible et appliquer une faible pression pendant le perçage pour éviter de faire éclater le plastique. Laisser sécher l'araldite (époxy) pendant une semaine.

Vue côté exterieur.
 
Vue coté intérieur avec la tête de servos visée

Etat de Picobot en novembre 

 La méca est finie (ouf!), et constituée du minimum. Le chassi a été simplifié au maximum. Pour la réalisation du châssis il faut quelques cornières en aluminium que l'on trouve au bhv par exemple ou weber métaux, un tube carré pour supporter les capteurs de distance. Je me suis inspiré de ce que j'avais fait pour les PMI lors de la compétition de 1999 avec le manège. Le porte batterie se trouve sous le robot pour abaisser le centre de gravité. On peut y loger un accus 7.2V 1500mAh CdNi par exemple. On trouve même des 3300NiMh. Donc pas de problème d'autonomie, qui a toujours un des points faible des fribottes dans le passé lors des concours. Cela permettra d'être un peu plus zen le jour du concours.

La réalisation de l'électronique est finie. Le robot comporte une carte principale avec comme cerveau un PIC 18F242. Le choix du processeur s'est fait car tout est disponible sur internet en terme d'outil de développement: Compilateur C, Simulateur, programmateur. Microchip fourni un excellent compilateur sur son site, compatible avec MPLAB, ce qui permet de debugger en C et permet de développer très rapidement du code. D'autre part ce microcontrôleur est étroit, suffisamment puissant puisqu'il peut atteindre le 10Mips.

Donc on retrouve au niveau électronique:

PIC 18f242 1
Capteur de distance GP2Y0D02YK analogique 4
Régulateur de tension 3
Ecran LCD 1*16 1
Des interrupteurs 3
Accéléromètre ADXL202 1
Batterie 7.2V 1500mA 1
Divers( résistances, condensateurs led...)
C'est tout! Et oui, mais alors comment on fait pour se positionner, et bien Picobot va utiliser un accéléromètre pour cela. C'est un modèle deux axes de chez analog device. Ce circuit a posé quelques problèmes pour son fonctionnement car il est très sensible aux parasites, ce qui a obligé à revoir l'alimentation du circuit global. Mais une fois régler le problème de parasite on peut espérer descendre à 0.4mg en résolution. Des mesures complémentaires seront faites ultérieurement.
 

Ce composant est un peu dur à souder mais bon c'est encore du domaine du faisable pour un amateur.

Etat de Picobot en décembre.

Bon on attaque l'informatique. Comme prévu on utilise la chaîne d'outil de chez Microchip ce qui évite des problèmes de compatibilité. D'autre par microchip depuis le mois de novembre a un forum actif auquel les modérateurs répondent de manière prompte. Encore un autre avantage pour encourager l'utilisation des PIC.
La première étape a donc consisté en la prise en main de l'environnement => codage de la gestion du LCD, élément indispensable au debug.
La fonction d'acquisition des capteurs sharp à l'aide des convertisseurs est elle aussi opérationnelle et renvoi sous forme hexa la distance suivant les 4 directions;
La commande des servos moteurs se fait sous interruption, avec un timing de 20ms, qui correspond à la période de commande du signal du servos. Pour le moment je travaille avec un seul niveau d'interruption. L'accéleromètre utilise lui aussi des interruptions.
Une autre partie importe est la simulation du labyrinthe sur le PC, cela va simplifier grandement le développement de la partie embarquée. Le choix s'est donc portée vers excel, qui permet une représentation graphique simple. D'autre part, il est possible de programmer en VB, la partie de recherche de position ainsi que le calcul du plus court chemin pour trouver la sortie sont les deux principale partie à réaliser. D'autre part cela permettre de recoder le labyrinthe si par hasard les organisateurs le changent à la dernière minute!
La première partie consiste à simuler le déplacement vers la sortie. On considère que l'on sait où on est dans le labyrinthe. La partie recherche se fera ultérieurement. On affecte des poids à des cellules, correspondant à leur distance par rapport à la sortie. Sachant qu'on est dans une cellule de poids X on recherche la cellule contiguë qui vaut x-1 ( sans passer par dessus un mur évidement). Ainsi de suite jusqu'à la sortie. On retrouve sous la figure ci-dessous le résultat de la simulation et le parcours suivi.
Reste à coder le repérage qui est la partie la plus difficile, l'objectif étant de se repérer en moins de 3 coups (résultat obtenu par le meilleur robot l'an dernier).
Le retour après les fêtes de fin d'année: Bonne année et pourvu que je gagne la compétition :p)
L'étape suivante du simulateur va être le repérage dans le labyrinthe, sachant qu'on ne connaît pas la position de départ ainsi que l'orientation. La seule chose que l'on connaît est la topographie du labyrinthe. Évidement on peut mettre une boussole pour trouver l'orientation mais les modèles du commerce ne sont pas fiable. On peut aussi mettre 4 interrupteurs de démarrage, mais pas besoin car les premiers tests du simulateur permettent de se repérer en 1 case au mieux, 2 dans la majorité des cas et une case demande 3 cases.
Bon finalement le règlement a un peu changé. Le labyrinthe est différent de celui de l'an dernier, non pas par l'implantation mais par l'introduction de pénalité et bonus sous forme de temps. Désormais si le robot sort par celle du bas, le robot sera pénalisé de 30s. Donc il ne reste plus qu'une sortie intéressante dans le labyrinthe! Sinon il y a toujours la case du milieu qui est inaccessible au robot. Cette case va servir de bonus, si le robot parvient à lancer une balle de ping pong au centre. Le robot embarque la balle au départ. Il faut donc modifier la mécanique pour embarquer une balle et assurer le tir. Bref du boulot en plus alors que l'info prend du retard.
Après un recodage du simulateur de sortie voilà le résultat.
Etat de Picobot en Février.

Bigre le mois de février est court et puis les vacances passant par la je n'ai pas fait grand chose... vivement mars!
Finalement, prés quelques recherches au magasin BHV, j'ai fini pas trouvé de quoi faire un morceau du labyrinthe, et ceci de manière économique (<15euros). Au rayon isolation ( aus sous sol), ils vendent du dépron, sorte de polystyrène en plus dur, qui va permettre de réaliser les montants. La plaque se vend en 2.5m*0.8m, épaisseur 6mm, au prix de 11 euros. Il faut rajouter des équerres en plastiques découpées dans un profilé en plastique de 2m de long. Enfin un tube de colle sans solvant, car sinon le poly fond...
Donc on découpe des morceaux de 40cm de long par 25cm de haut puis on colle les petites équerres au 4 angles.
Ensuite on peut réaliser les différentes partie du labyrinthe, d'autant plus que c'est facile à ranger, cela prend pas de place. Pour réaliser l'ensemble du labyrinthe il faut environ 5 grandes plaques de dépron.
L'idéal serait de récupérer un lino blanc pour mettre par terre.
Bon juste pour info, le code du simulateur en version beta est en cours de débug. Dans cette version l'algo du plus court chemin est codé. La partie recherche de position est en cours de debug

Etat de Picobot en Mars.

Bonne nouvelle, le simulateur sous excel est fini:. labyrinthe . On retrouve le code du simulateur sous excel. J'ai finalement décider pour le moment de ne pas traiter la gestion de la balle de ping ping ce qui peut me retarder. C'est un risque que de ne pas avoir le bonus, mais bon!
Donc maintenant, on attaque le code C sur PIC18F242 ou PIC18F252. Cela fait donc depuis le mois de décembre que je n'ai pas regardé le code du PIC!
Bon ça y est à la fin du mois le robot bouge sous controle de l'accélérométre, au passage la précision doit encore être améliorer. Le simulateur en VB a été traduit en C. Au passage, j'ai remplacé les accus CdNi par les lithium Ion, merci julien! Ils sont plus légés et plus petits. J'ai aussi migré vers un 18F252.
Enfin un peu de décoration a été faite.
 
Etat de Picobot en Avril.
Houla plus qu'un mois... dur dur, mais on est sur le bon chemin.
Bon ça y est il bouge et commence à faire ce qu'il faut dans la recherche de la sortie, reste encore un peu de recalage: vidéo

Après quelques week-end en debug, cela fonctionne, mais il reste encore des défauts. Notament la précision obtenue avec l'accélérométre n'est pas celle attendu au départ, ce qui a entrainér un recodage de la fonction d'avancement; Pour ce qui est du recalage cela fonctionne pas trop mal, mais il reste une grosse incertitude concernant l'épaisseur des murs du labyrinthe espagnol. Après correction d'un ultime bug du compilateur C, il n'aime pas les variables locales qui ont le même nom dans différentes fonctions. D'ailleurs à l'issue de la compétition il faudra creuser un peu ce point.
Au final, le code fait + de 20Ko. Je remercie par avance microchip pour les samples de pic et le compilateur C, ainsi qu'analog device pour l'échantillon de l'adxl202.
Et voilà en route pour la compétition, veni, vidi, vici!!! On peut y croire après tout. Au passage madrid c'est loin (14h de train).
La compétition 29 et 30Avril 2004

Bon on va essayer de se qualifier, il y a 22 participants et seulement 8 places à l'issue des qualifications.
--------------------------------------------------
Les résultats:
  • A l'issue des qualifications Picobot est 2éme sur 15 participants présent. Cnossos (Julien) est 1er!
  • Le deuxième jour, premier match, il ne reste que 8 participants qualifiés, Picobot termine 2ème. Cnossos ( Julien) est 1er!
  • Pour la phase finale qui se passe en 2 round, il ne reste plus que 4 robots en course. Picobot fini 3ème au final. Le premier est Cnossos et le deuxième un robot espagnol qui tirait lui aussi la balle.
La conclusion:
  • Au final l'objectif de départ en novembre a été largement atteint.
  • Point positif:
La mécanique a parfaitement résisté au transport et à la compétition, d'autre part le faible poids du robot est un avantage. Les faibles dimensions sont aussi un avantage car cela permet une meilleur manoeuvrabilité. Les servos moteurs sont fiables même si ça va moins vite que des moteurs MDP. Mais c'est pas le même prix.
L'electronique a elle aussi parfaitement fonctionnée, rien à signaler. Les batteries Li-On sont une merveille, merci Julien! Les capteurs sharp fonctionnent trés bien malgré les projecteurs. d'ailleurs à ce sujet, il peut être interessant d'avoir des modéles (3cm - 30cm) pour le recalage sur les cotés. Le Pic 18F252 est une merveille et suffit largement pour tout faire. Il me restant encore 10Ko de code et il ne fonctionnait qu'à 20Mhz.
La partie informatique elle aussi a fonctionnée mais pourrait être un peu améliorer. Une remarque concernant le compilateur de Microchip, qui n'aime pas trop les variables locales qui ont le même nom dans différentes fonctions... à creuser.
Enfin le simulateur c'est vraiement avéré utile pour le débug et m'a permis de gagner du temps pour la mise au point sur le PIC ( moins de 3 jours pour les algos de recherche et calcul d'itinéraire).
  • Point négatif:
L'utilisation de l'accéléromètre c'est avéré plus difficile que prévu. Il va falloir un peu creuser le sujet, car pour les rotations au finale j'ai gardé le déplacement sous control de l'accéléromètre, par contre pour les déplacements avant et arriere je suis repassé en mode timer, beaucoup plus précis :(
J'ai oublié de recalibrer la marche arriere en espagne... ce qui m'a posé un problème lors du dernier match, puisqu'il devait reculer de deux case!
Le recalage en marche arriere aurait pu être implémenté.
Enfin il m'a manqué une fonction qui permettait de se remettre au centre d'une case et à 90° des murs dans le cas où le robot était perdu. Idée intervenu pendant le dernier match, et en observant le 2eme du concours.
Enfin l'implémentation du tir de la balle qui finalement aurait pu servir dans deux matchs, sans avoir à faire de détour.
Un PC portable est utile...
Enfin la programmation insitu des PIC va être un des prochains sujets à travailler chez les fribottes, car elever le PIC en permanence n'est pas bon pour les contacts tulipe!
Voilà si tous ces conseils peuvent servir au prochains participants de cette compétition avec une trés bonne ambiance, tant mieux. En tout cas j'encourage la participation à ce concours. D'ailleurs s'il y a beaucoup de robot français l'an prochain qui veulent participer, il serait bien que tout le monde se répartisse entre les 4 compétitions ce qui laisse la place pour 12 équipes car sinon il faut faire une sélection nationnale et envoyer les 3 meilleurs de chaque.
Pour ce qui est des autres sujets:
Le concours de vitesse a été remporté par un mexicain comme l'an dernier, c'est le même qui est 1er, 2eme, 3eme !!! Il y a un défi car c'est un spécialiste de ce genre de concours et ses robots font du 2m/s!
Le concours de sumo est domminé par les espagnols, ambiance corrida garanti!
Le concours de suivi de ligne est aussi dominé par les espagnols avec un bon niveau cette année.
Le concours libre nous a encore montré des choses surprenantes, robots à air comprimé, robot mille pattes, robot serpent etc...

Enfin pour ce qui est du voyage, de Paris, le coût est de 150 euros environ en train de nuit (talgo avec reduction) + 2*64 euros d'hotel Ibis. Pas besoin de voiture de location sur place, maximum 20 minutes de marche à pieds le matin et le soir depuis l'hotel. C'est faisable.
Si vous souhaitez d'autres informations, vous pouvez toujours me contacter via la liste fribotte@free.fr
Lionel, pour les fribottes.
Enfin le Code

Aucun commentaire:

Enregistrer un commentaire