← Tous les projets

Robot mobile autonome

Logiciel complet d'un robot à dsPIC — évitement d'obstacles, protocole série maison, supervision temps réel en C# et asservissement en position.

Cadre
SAE BUT2 · 2024
Durée
200 h
Équipe
Équipe de 3
Robot mobile autonome

Objectif

Le châssis (imprimé en 3D) et la carte à dsPIC étaient fournis — tout le logiciel était à écrire. Le robot devait naviguer sans collision dans un environnement encombré, dialoguer avec un PC de supervision et suivre des trajectoires.

Le robot en mode autonome, au milieu des obstacles.
  • Cinq télémètres infrarouges (trois à l’avant, deux sur les côtés) lus via l’ADC du dsPIC, avec réglage de la séquence de conversion et du multiplexage.
  • Machine à états modulaire selon la configuration des obstacles.
  • Gestion des cas délicats, comme la sortie de couloir : freinage dynamique et virage assisté (inversion d’un moteur dans les angles serrés).

Communication série

  • Liaison UART via un FT232RL.
  • Protocole binaire maison : SOF | fonction | payload | checksum XOR, robuste aux trames corrompues.
  • Émission non bloquante grâce à une FIFO circulaire sous interruptions.

Supervision temps réel

Une application C# / WPF affiche vitesses linéaire et angulaire en temps réel (SciChart, façon oscilloscope), permet le pilotage au clavier et la bascule entre mode autonome et supervisé. Indispensable pour régler l’asservissement.

Asservissement

  • Double PID (vitesses linéaire et angulaire), codeurs en quadrature lus à 250 Hz via les modules QEI.
  • Comparaison des architectures indépendante et polaire — la polaire est retenue pour sa stabilité.
  • En position, le robot suit un « ghost » virtuel. J’ai ajouté une modulation de la vitesse linéaire par l’erreur d’angle (vitesse nulle à 90°) : le robot n’avance que s’il fait face à sa cible, ce qui améliore nettement le freinage et la précision d’arrêt.

Contact

Un projet, une question ? Parlons-en.