19P — Thymi-o-tomobile
Par admin le vendredi, mai 17 2019, 12:00 - 2018-2019 - Lien permanent
Ce projet a été réalisé par Mayeul Claessens.
1. Introduction
Dans le monde où tout tend à être connecté et les voitures n'échappent pas à cette nouvelle tendance. Depuis quelques années, les "plus grands" de ce monde (j'entends par là ceux qui ont les moyens pour investir) s'intéressent de plus en plus au développement de voitures dites autonomes. Ce projet a pour but de transformer des robots Thymio en sorte de voitures autonomes, que les robots suivent certaines règles élémentaires de la conduite (sans que cela soit trop évolué pour ne pas faire de l'ombre à Elon Musk et ses voitures Tesla, ni à Google non plus).
2. Matériel et méthodes
2.1 Matériel
Scotch TESA, gris, Migros Sctoch Öve, pack de 6 couleurs, Obi
2 Thymio wireless 1 dongles connecté aux 2 Thymio 1 Ordinateur
2.2 Méthode
Premièrement il faut que les voitures sachent suivre les routes.
onevent prox if prox.ground.reflected[1]>930 and prox.ground.reflected[0]<560 then motor.left.target=90 motor.right.target=250 end if prox.ground.reflected[1]<560 and prox.ground.reflected[0]>930 then motor.left.target=250 motor.right.target=90 end
Voici donc le code pour que le robot se replace sur la route lorsqu'il dévie trop. Les différence de sensibilité entre les deux capteurs
prox.ground.reflected
est assez importante car en raison de la différence de couleur entre les scotch (la route). En effet, après moult essaies (toutes mes excuses à Dame Nature pour mon gaspillage) j'ai dû continuer ma route avec un scotch gris au lieu de noir.
Deuxièmement il a fallu instauré la priorité de droite.
onevent prox if prox.horizontal[3]^[4] > 1200 then timer.period[0]=3000 motor.left.target=0 motor.right.target=0 end onevent timer0 timer.period[0]=0 motor.left.target=200 motor.right.target=200
Il y a ici un timer afin que le robot qui cède la priorité puissent repartir assez vite (qu'il n'ait pas besoin que ses capteurs ne détectent plus rien pour se décider à redémarrer) et ainsi fluidifier le trafic (oui je prends des cours d'auto-école).
Pour finir arrive la deuxième priorité, celle de gauche dans les giratoires. Le code prévu à cet effet ne diffère de celui de la priorité de droite seulement par les capteurs concerné. Au lieu d'utiliser les capteurs horizontaux 3 et 4, il faut utiliser les 0 et 1.
if prox.ground.reflected[1]>930 and prox.ground.reflected[0]>930 then motor.left.target=200 motor.right.target=-100 end
Cette partie du code permet au robot, dans le cas où il ne capte plus la route, de faire un tour sur lui-même et de se repositionner.
3. Résultats
Le but premier n'a clairement pas été atteint. Je voulais faire que les robots "discutent" entre eux. En connectant plusieurs robots à un même dongle, je pensais pouvoir y arriver mais j'ai seulement réussi à démarrer les Thymio simultanément après avoir codé pour chacun d'eux le même code. Pour qu'ils puissent communiquer et s'organiser j'aurais eu besoin qu'ils puissent transmettre leur position ce dont je n'ai pas été en mesure de réaliser. J'avais comme idée que les robot se repèrent avec des scotch de différentes couleurs (notamment avec des parties vertes à chaque entrée de giratoire ) le problème c'est qu'à part le noir et le gris, les capteurs avaient beaucoup de peine à faire la différence entre le scotch coloré et le blanc du papier ce menait au fait que les robots tournaient en rond à l'infini.
4. Discussion
Ce qu'il peut être amélioré dans ce projet sont les points présents dans la partie précédente. En outre ce qu'il serait nécessaire d'amélioré, c'est la largeur des routes car sur mon plan la largeur n'est pas suffisante pour que deux voiture se croisent. Dans le pré-projet il était mentionné l'usage de feux tricolores mais au vus des difficultés rencontrées, j'ai préféré y renoncé.
Une série de photos montrent l'évolution des routes et des scotch utilisés.
1. - Les rectangles verts sont là pour indiquer une arrivée à proximité d'un giratoire. - La route rouge était censé être une route principale mais les infrarouges étant autant reflété par le rouge que pas le blanc, le robot ne faisait pas la différence entre le scotch et le plan.
2. -La route bleue était censé apporter des alternatives (par rapport à la route rouge) mais là encore les Thymio avaient du mal à faire la différence entre le scotch et le sol. - Les rectangles verts ont été recouverts car ils ne causaient que des problèmes.
3. - Pour finir toutes les routes sont noires ou grises.
5. Conclusion
Ce projet fut intéressant car j'ai dû me replonger dans le langage Aseba, langage propre aux robots Thymio. Au début de l'année nous avions déjà pu voir son fonctionnement mais j'avais des lacunes (j'en ai encore mais moins) que j'ai pu combler grâce à ce projet.