Comment simplifier la recherche en robotique avec un ROS natif
Par l'équipe du rapport Robot | 28 août 2023
Le Robot Operating System (ROS) est une puissante plate-forme open source pour la recherche en robotique, mais jusqu'à récemment, il lui manquait du matériel de qualité industrielle étroitement intégré à la pile logicielle ROS. Les fabricants d’équipements robotiques utilisent des logiciels et des systèmes de contrôle propriétaires et fermés pour leurs manipulateurs, ce qui laisse aux chercheurs une pente raide à gravir pour pouvoir utiliser le ROS sur des robots industriels.
Pour répondre à ce besoin et faire progresser les capacités de la communauté de développement ROS, Tormach a créé un manipulateur et un système de contrôle robotique industriel basé sur ROS qui évite les problèmes de « boîte noire » qui affectent les applications robotiques modernes. De plus, le système de contrôle de Tormach, PathPilot, utilise Python comme langage de programmation du robot, créant ainsi une interface de programmation intuitive pour le mouvement du robot et libérant le potentiel de l'écosystème de packages Python.
Cette plate-forme robotique open source basée sur ROS – qui comprend le système de contrôle, le matériel du robot industriel et un accès complet à tous les paramètres du système – crée une solution rapide et accessible qui apporte la robotique industrielle à un plus grand nombre de chercheurs, de développeurs et d'étudiants.
Les fabricants de commandes de robots hésitent à autoriser les développeurs ROS à accéder à tous les paramètres système de leurs commandes fermées pour les raisons suivantes :
Pour ces raisons, les intégrations entre ROS et le matériel robotique disponible dans le commerce sont limitées. Bien que des pilotes existent pour connecter ROS à d’autres robots industriels, leurs implémentations de bande passante faible (10 – 100 Hz) transmettent simplement des points de cheminement au goutte-à-goutte à un contrôleur propriétaire à source fermée.
Par conséquent, l’utilisateur peut ne pas savoir si le robot respecte ou non les intentions de synchronisation, de vitesse et de précision de trajectoire. Les données telles que le couple moteur, le courant et l'erreur de suivi ne sont généralement pas disponibles, et la boucle de contrôle lente limite considérablement ce que les chercheurs peuvent accomplir.
La plate-forme expérimentale OpeN-AM, installée sur l'instrument VULCAN, comprend un bras robotique Tormach ZA6 qui imprime des couches de métal en fusion pour créer des formes complexes. L’étude microscopique des soudures imprimées en 3D avec des faisceaux de neutrons permet aux chercheurs de mieux comprendre des facteurs tels que les contraintes provoquées par le chauffage et le refroidissement. (Crédit : ORNL/Jill Hemman)
La pile matérielle et logicielle ROS/HAL offre un retour d'informations qui peut offrir de précieuses opportunités de contrôle.
Le ZA6 offre les éléments suivants :
La plupart de ces éléments de rétroaction se concentrent uniquement sur les couches de contrôle de niveau inférieur. Les couches de contrôle de niveau supérieur peuvent offrir d’autres opportunités, en fonction des besoins de recherche.
La connexion entre ROS et le matériel d'un robot repose sur une couche d'abstraction matérielle (HAL). HAL est issu du projet open source Enhanced Machine Controller (EMC) né il y a 25 ans au National Institute of Standards and Testing (NIST).
Le développement actif de HAL se poursuit aujourd'hui via les projets LinuxCNC et Machinekit car HAL est flexible, 100 % open source et est utilisé sur des milliers de machines à travers le monde.
HAL se compose de composants modulaires (modules binaires chargeables) qui communiquent entre eux en mettant à jour, en lisant et en écrivant des broches nommées qui se connectent via des signaux nommés. À certains égards, HAL ressemble à ROS, mais il existe des différences importantes :
Le robot Tormach comble le fossé entre ROS avec le composant open source hal_ros_control. La combinaison de HAL et ROS permet d’exposer à l’utilisateur une multitude de données sur le robot. Toutes les données de processus sont accessibles via des commandes shell, des utilitaires d'enregistrement de données et une portée graphique. Toutes les informations sur le bus EtherCAT, y compris le couple, le courant, l'erreur de suivi, la position, la vitesse, etc. sont disponibles à 1 kHz et exposées via HAL à ROS.
Étant donné que HAL est modulaire et flexible, les utilisateurs peuvent modifier la configuration HAL de leur robot à l'aide de composants HAL prédéfinis ou en écrivant de nouveaux composants en C ou Python, permettant une intégration facile avec presque n'importe quel périphérique ou processus externe.