Transpalette autonome à l’échelle 1/1 : ROS 2 Humble, Nav2, micro-ROS Teensy et automate Modicon TM221

Prototype de transpalette autonome sur palette dans un entrepôt de racks

 Pourquoi ce blog

Quand j’ai commencé ce projet, j’ai beaucoup galéré. Je trouvais peu d’exemples complets qui mélangent robotique open source (ROS 2) et matériel industriel (automate Modicon). Je partage donc ce que j’ai appris, au cas où ça aide quelqu’un.

Le projet

J’ai toujours rêvé de concevoir mon propre robot. Ce projet me permet de combiner un besoin professionnel et un besoin personnel. Je construis un transpalette électrique autonome, en deux étapes :

  1. Un prototype à l’échelle 1/1, monté sur une palette en bois et testé dans un vrai entrepôt, entre des racks. L’échelle réelle permet de valider tout de suite ce qui compte : encombrement dans les allées, rayon de braquage, passage entre racks, réaction aux obstacles. Elle permet aussi de faire des tests réels en toute sécurité.
  2. Le transpalette EPT20-15ET : le coffret de commande sera ensuite monté dessus. Le variateur Sabertooth du prototype disparaîtra : la traction sera pilotée par l’automate Modicon, via une carte PWM 0-5 V.

L’architecture

Le robot est un tricycle : une roue avant à la fois motrice et directrice, comme sur un vrai transpalette. Pour allez plus vite et comprendre le fonctionnement ROS je suis parti d'un modèle d 'étudiant Yahboom rosmaster A1 qui utilise un modèle simplifié Ackermann .

  • La Jetson (ROS 2 Humble) fait tourner la navigation avec Nav2 et un planificateur adapté aux robots Ackermann (TEB).
  • Le Module Yahboom qui récupère pour le moment les encodeurs et le gyroscope et envoie l odométrie .
  • L’automate Modicon TM221 gère la direction. Il reçoit l’angle de braquage depuis ROS par Modbus TCP, fait tourner un moteur pas à pas et relit l’angle réel avec un capteur à effet Hall. Il peut recaler l’axe si des pas sont perdus. Il vérifie la présence des tensions 5v et 3.3v . J’ai également un écran déporté TMH2GDB qui me permet de modifier des paramètres et d’afficher les erreurs et les états de l’automate.
  • La Teensy 4.0 (micro-ROS) s’occupe de la traction (via le Sabertooth pour l’instant), des capteurs à ultrasons et de l’éclairage LED.
  • La sécurité repose sur un relais de sécurité et un contacteur de puissance, des isolateurs numériques entre les cartes, et un « heartbeat » entre la Teensy et l’automate : si la communication est perdue, l’alimentation est coupée.
  • Caméra HP60C pour la détection d’obstacles et un Lidar C1 pour la localisation .
  • Un tableau de bord maison permet de choisir une destination parmi des positions enregistrées en base de données, d’envoyer la pose initiale et de lancer les services du robot.
Schéma d’architecture ROS 2, Teensy, automate Modicon et Sabertooth





Pourquoi ces choix

D'une part par rapport à un budget plus que limité et avec la volonté de faire avec ce que j avais a disposition j avais fabriqué une sorte de servo moteur avec un arduino uno en liaison série . Les limites matériels et le manque de robustesse ont finit de me convaincre au choix de l automate . Voulant en plus rendre le système plus "industriel" j 'avais un TM221CE16T en stock et j ai pu tester le protocole MODBUS.  La jetson Orin Nano permet de rester hors-ligne et fonctionne de manière autonome . La teensy me d'y mettre capteur ultrason ou des périphériques divers comme les leds ws2812b qui signalent l 'état et les directions du robot  .


Le tableau de bord

Pour piloter le robot sans passer par la ligne de commande, j’ai écrit un tableau de bord. Il permet d’envoyer la pose initiale, de choisir une destination parmi des positions enregistrées en base de données, d’enregistrer la position courante du robot, et de lancer ou arrêter la navigation. On y trouve aussi des commandes manuelles (rotation, avance et recul, stop, levage), des jauges de commande et de vitesse mesurée, une mini-carte, et la vue des capteurs. Il affiche aussi les ressources CPU et RAM, permet de lancer les différents services et gère les missions automatiques.

Tableau de bord du robot sous ROS 2


La navigation vue dans RViz

Voici Nav2 en cours de navigation vers une destination : la carte de l’entrepôt, le chemin global en vert, les costmaps, et l’état du robot dans le panneau Navigation 2. Une carte de zones interdites empêche le robot d’aller dans certaines zones.

Navigation Nav2 sous RViz




Où j’en suis

  • Fonctionne : navigation vers une destination, direction pilotée par l’automate, éclairage LED selon l’état du robot, coupure d’alimentation sur perte de communication.
  • À régler : fausses détections des capteurs à ultrasons (RCWL-1655) dans la costmap, et coordination entre la direction et l’avance (le robot doit attendre que l’angle demandé soit atteint).
  • À venir : intégration sur l’EPT20-15ET.

Matériel

Liste : Jetson Orin nano, Teensy 4.0, Modicon TM221CE16T + 8 relais TM2 plus module analogique TM3TI4, Sabertooth, encodeurs, ultrasons RCWL-1655, ADuM1201 pour isolation de signal Leds et sabertooth , relais de sécurité, contacteur…


Modicon TM221, relais, modules et protections.


Les prochains articles

Je détaillerai chaque difficulté dans des articles séparés : piloter un Modicon TM221 depuis ROS 2 en Modbus TCP, le recalage du moteur pas à pas, la protection des entrées Teensy/ESP32, la chaîne de sécurité, et Nav2 avec un robot Ackermann.

Une question sur un point précis ? Écris-la en commentaire.

Commentaires