ROS est un logiciel libre qui simplifie le développement d'applications robotiques complexes. Il utilise utilise une architecture distribuée qui facilite la communication entre les différents composants logiciels au sein du système d'un robot.
ROS2 est un cadre populaire pour le développement de systèmes robotiques, qui utilise un intergiciel flexible appelé Data Distribution Service (DDS), offrant un meilleur support pour les systèmes distribués et en temps réel. Cependant, il peut être difficile de l'utiliser sur des appareils de petite taille et de faible puissance en raison de ses exigences en matière de ressources.
Micro-ROS offre une implémentation légère et efficace de ROS2, qui peut fonctionner sur des microcontrôleurs, ce qui le rend adapté aux environnements à ressources limitées tels que les systèmes embarqués et les robots mobiles. Il s'agit d'une extension de ROS2 qui permet aux développeurs de déployer le cadre sur des microcontrôleurs.
Dans cet article, nous allons étudier quelques exemples de contrôle des roues d'un robot à l'aide du micro-ROS sur MCU et du système d'exploitation du robot.
Pour l'installation de ROS2.
Pour plus d'informations sur le micro-ROS, cliquez ici.
Les MCU et ROS2 communiquent essentiellement par l'intermédiaire de l'agent Micro-ROS, qui est un nœud ROS 2 qui enveloppe l'agent Micro XRCE-DDS. Le nœud agit comme un serveur entre le réseau DDS et les nœuds Micro-ROS à l'intérieur du MCU. Il reçoit et envoie des messages des nœuds Micro-ROS et garde la trace des nœuds Micro-ROS, en les exposant au réseau ROS 2. Le nœud interagit avec l'espace de données global DDS au nom des nœuds Micro-ROS.
Cliquez ici pour consulter la liste du matériel supporté par Micro-ROS.
Ici, nous utilisons une carte de développement ESP32 pour contrôler les mouvements du robot par le biais de pilotes de moteur et un kit NVIDIA Jetson pour envoyer la vitesse de commande. Avec l'ESP32, nous contrôlons effectivement le nombre de tours par minute, la direction et les ticks de la roue. La direction est déterminée par la sortie du capteur à effet Hall, qui est connecté à notre moteur de moyeu.
Pendant ce temps, la vitesse de rotation de la roue est calculée sur la base de la vitesse de commande transmise par notre nœud différentiel, qui fonctionne sur la carte Jetson. Enfin, le nombre de tics est suivi en comptant le nombre d'interruptions reçues du capteur à effet Hall, qui est également utilisé pour déterminer la direction de la roue.
Les étapes générales pour intégrer le portage Micro ROS sur ESP32 avec Nvidia Jetson Orin sont mentionnées ci-dessous. Les détails spécifiques peuvent varier en fonction de votre plateforme et de l'application que vous développez.
Ici, nous avons utilisé l'IDE Arduino pour construire l'application ESP32. Il y a plusieurs étapes pour construire, on peut se référer à l'installation de la carte Esp32 sur Arduino IDE, et à la construction de la bibliothèque pour le micro-ROS dans Arduino.
1.NVDIA AGX Orin Robotics Computer
2. microcontrôleur ESP32
- La communication entre l'AGX Orin de NVIDIA et l'ESP32 se fait via le périphérique UART en échangeant des messages ROS (Robotics Operating System) standard.
- Le moteur du moyeu est connecté à des pilotes de moteur, et le capteur hall, la direction et les broches d'activation du pilote sont connectés à des GPIO de l'ESP32.
- L'AGX Orin de NVIDIA est équipé d'un ordinateur basé sur un système d'exploitation polyvalent (GPOS) fonctionnant sous Ubuntu avec un middleware ROS disponible.
- L'agent Micro-ROS fonctionnant sur l'AGX Orin est un nœud ROS 2 qui enveloppe l'agent Micro XRCE-DDS. Il reçoit et envoie des messages des nœuds Micro-ROS et gère la communication ROS entre AGX Orin et ESP32.
- Nous avons également créé un message personnalisé pour ROS2 et les applications ESP, qui est publié à partir du nœud différentiel. L'ESP32 s'abonne à ce message et gère le régime de la roue en fonction des données reçues.
- Comme mentionné précédemment, l'ESP32 gère le pilotage des roues du robot à l'aide de leurs pilotes de moteur associés. La commande pour conduire le robot est générée par le nœud ROS différentiel fonctionnant à l'intérieur du dispositif Orin, qui fonctionne sur le principe d'un robot à roues différentiel.
- Le nœud différentiel reçoit un message de vitesse de commande de n'importe quelle application pilote (par exemple, Tele-op twist keyboard, Navigation stack, etc.) Le message de vitesse de commande exprime la vitesse dans l'espace libre, décomposée en ses parties linéaire et angulaire. Le nœud différentiel déduit la vitesse des roues gauche et droite et les envoie en tant que sujets ROS à l'ESP32.
- En recevant les messages de vitesse, l'ESP32 applique la valeur PWM (Pulse-Width Modulation) requise aux moteurs associés, qui entraînent les roues.
En résumé, le portage réussi de Micro-ROS sur des MCU et son intégration avec un système d'exploitation Linux basé sur ROS représentent une avancée significative dans le domaine du développement de la robotique. Ce développement permet de créer des systèmes hautement modulaires et évolutifs capables d'exécuter des tâches complexes en répartissant la charge de travail sur plusieurs nœuds. En exploitant les puissants outils et bibliothèques fournis par l'écosystème ROS, les développeurs peuvent construire des systèmes robotiques robustes qui peuvent fonctionner sur des dispositifs à faible consommation d'énergie et à ressources limitées.
La combinaison de microcontrôleurs à faible consommation d'énergie et de plateformes informatiques à haute performance fournit une plateforme flexible et puissante pour la construction de systèmes robotiques complexes. Avec l'intégration du Micro-ROS, le potentiel d'innovation dans le domaine de la robotique est illimité.
Ruchi est une ingénieure embarquée expérimentée chez EInfochips Pvt Ltd, où elle travaille depuis un an et demi. Elle a obtenu son diplôme de B. Tech en ingénierie électronique à Birla Vishwakarma Mahavidyalaya. Ruchi a de l'expérience dans le développement de microprogrammes et a travaillé sur divers microcontrôleurs. Elle s'est concentrée sur l'utilisation de microcontrôleurs avec des micro-ROS pour développer des systèmes robotiques efficaces et robustes.
Meet Gandhi est un ingénieur en logiciel embarqué associé à Einfochips Pvt Ltd. Il a plus de 6 ans d'expérience dans l'élaboration de solutions innovantes à des problèmes complexes. Expert en développement de logiciels embarqués, Meet Gandhi s'attache à fournir des logiciels de haute qualité qui répondent aux exigences techniques et commerciales. En apprentissage permanent, Meet Gandhi se passionne pour les dernières tendances et technologies dans ce domaine.
eInfochips, une société d'Arrow Electronics, est un fournisseur de premier plan de services de transformation numérique et d'ingénierie de produits. eInfochips accélère la mise sur le marché pour ses clients grâce à son expertise dans les domaines de l'IoT, de l'IA/ML, de la sécurité, des capteurs, du silicium, du sans fil, du cloud et de l'énergie. eInfochips a été reconnu comme un leader dans les services de R&D en ingénierie par de nombreux analystes et organismes industriels de premier plan, notamment Gartner, Zinnov, ISG, IDC, NASSCOM et d'autres encore.
Siège social
- USA, San Jose
- INDE, Ahmedabad
Écrivez-nous : marketing@eInfochips.com
©2025 eInfochips (une société Arrow), tous droits réservés. | Pour en savoir plus sur la politique de confidentialité et la politique en matière de cookies d'Arrow, cliquez ici.
Planifier une consultation de 30 minutes avec nos experts en solutions automobiles
Planifiez une consultation de 30 minutes avec notre expert en solutions de gestion des batteries.
Planifier une consultation de 30 minutes avec nos experts en solutions industrielles et énergétiques
Planifier une consultation de 30 minutes avec nos experts