Autonomous RC Car – The French Tesla

Nous sommes Pierre, Corentin, Titouan et Lou, quatre étudiants en deuxième année de cycle préparatoire d’ingénieur à Polytech Angers. Ensemble dans la vie de tous les jours comme au travail, nous avons des passions communes telles que la programmation, la soif de découverte et de création.

L’idée est simple : nous disposions d’environ 100 heures pour  construire une petite voiture autonome, avec l’aide des meilleurs référents dans ce domaine, nommés Bassel CHOKR et Hassan BOULJROUFI. Ce bijou électronique est capable de se déplacer seule, d’éviter des obstacles, de maintenir une distance avec un élément situé devant, de suivre une ligne et d’identifier des objets. Mais l’ultime objectif est que la voiture fasse un trajet autonome d’un point A à un point B sans intervention humaine seulement en ayant réalisé plusieurs fois en amont ce même parcours de manière téléguidée.

Impressionnant n’est-ce pas, vous allez découvrir si nous avons réussi à atteindre nos ambitions !

La volonté des référents de ce projet était de minimiser le temps passé sur la partie construction de la voiture pour se concentrer davantage sur la partie programmation.

Voici comment nous avons procédé :

Comme je l’expliquais précédemment pour passer rapidement à la programmation, la voiture nous a été livrée en kit. En attendant sa réception, les premières séances ont été consacrées à la compréhension du sujet et à la prise en main des concepts clés. Nous avons alors créé un document commun où nous avons listé le vocabulaire à maîtriser, semblant important ou trop flou. 

Ensuite, pour rendre ces recherches ludiques et amusantes, nous avons réparti les notions afin de les comprendre et les synthétiser lors d’une présentation orale devant le reste du groupe accompagné de supports (schémas ou vidéos). 

Toutes ces connaissances ont été rassemblées dans le fichier pour être accessibles à tout moment (sachant les mémoires de poisson rouge du groupe).

Une fois le kit reçu, nous avons procédé à la phase d’assemblage en suivant un tutoriel fourni avec le matériel. Cette partie était très ludique, on s’est retrouvés avec notre âme d’enfant, c’est comme si on construisait une voiture Lego en suivant la notice avec les pièces indiquées. Plus sérieusement, il s’agissait notamment de recevoir les composants, de vérifier leur intégrité, de suivre les précautions de sécurité et d’assembler les pièces mécaniques et électriques. 

Cette étape pouvant paraître inutile de prime abord, s’est révèlée tout à fait cruciale car toute pièce manquante ou endommagée aurait pu compromettre l’assemblage.

Puis, nous avons ensuite installé le support de batterie, les modules LED, les capteurs, etc. en nous assurant qu’ils étaient solidement fixés à la base. 

L’un des défis de l’assemblage était de manipuler les petits composants, ce qui nécessitait de la précision. D’ailleurs, pour faciliter les manipulations, monsieur BOULJROUFI nous a confié un aimant puissant pour éviter de perdre les petits éléments métalliques, cet objet est devenu notre incontournable.

L’objectif était de réussir à faire fonctionner parfaitement la voiture de façon manuelle avant de passer à la gestion autonome.

Parallèlement à l’assemblage, les autres membres du groupe ont commencé à configurer un hotspot indispensable à l’accès à internet depuis la Raspberry Pi. Puis, ils ont installé les logiciels et programmes de base sur cette même carte.

Par la suite, nous avons tenté de connecter la voiture au WebServer pour la conduire à distance :

Des programmes déjà existants étaient installés par le constructeur Adeept. Cependant, ils étaient assez généraux et nous avons dû adapter chaque programme à notre voiture.

C’est pourquoi nous avons modifié le programme Line Tracking. Il consiste à suivre le tracé d’une ligne noire sur une surface plus claire grâce à trois capteurs de ligne de suivi. Ainsi, dès que la voiture sortait de la ligne noire, la voiture se réalignait correctement.

Ensuite, nous avons voulu créer un tout nouveau programme pour tester la direction des roues. Ce code faisait des virages de manière régulière. Nous avons observé un léger déséquilibre qui nous a permis d’ajuster au mieux les valeurs des angles.

Lors de l’assemblage, l’une des parties les plus critiques était l’installation des servomoteurs. Ces servomoteurs contrôlent le mouvement des roues et du module de caméra, leur positionnement était donc essentiel. 

Au départ, nous n’avions pas compris les précautions, en conséquence, les roues et la caméra étaient coincées pointant vers la droite. Pour résoudre ce problème, nous avons dû réinitialiser manuellement les positions des servomoteurs. 

A force, nous pouvions démonter et remonter le robot les yeux fermés.

Un autre défi auquel nous avons été confrontés était lié à l’ alimentation électrique. Nous avons d’abord utilisé un Raspberry Pi 5, qui nécessitait trop d’énergie, ce qui expliquait pourquoi les moteurs n’obtenaient pas assez de tension. Pour résoudre ce problème, nous sommes passés à un Raspberry Pi 4 qui fournissait suffisamment de courant pour faire fonctionner les moteurs et les servomoteurs.

Durant nos essais du programme line tracking, nous avions programmé la voiture de façon à ce que : quand l’un  des capteurs extérieurs était allumé, la voiture se réaligne et qu’elle puisse avancer droit sinon. Néanmoins, quand les trois capteurs étaient allumés (totalement en dehors de la ligne), les roues restaient bloquées à gauche. Nous avons alors corrigé ce problème en gardant en mémoire la dernière direction jusqu’à retrouver la ligne.

Ce projet nous a été très instructif tant sur le plan technique que sur le plan organisationnel. En effet, ce travail nous a permis de développer nos compétences python, en labellisation d’images. On a également amélioré nos capacités en travail de groupe, à savoir la répartition des tâches et la communication.

Nous ne sommes malheureusement pas parvenus à atteindre l’objectif final, mais nous souhaitons un bon courage au prochain groupe pour poursuivre le projet.

Un grand merci à nos référents Bassel CHOKR et Hassan BOULJROUFI qui nous ont soutenus et aidés tout au long de notre parcours.

Enfin, merci d’avoir lu l’article et nous espérons que vous avez apprécié et appris des choses !!

Pierre CHEVALIER, Titouan GOMEZ, Lou RAGUENEAU et Corentin PESCHEUX.