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.

Références