Logiciels pour la robotique

Avatar photo

Il existe de nombreux niveaux de logiciel de commande, indispensables dans tous les robots, à l’exception des plus simples. Les solutions de microcontrôleurs et de System-on-Chip (SoC) responsables de la gestion des capteurs et des actionneurs profiteront généralement d’un système d’exploitation temps réel ou du noyau.

Optimisation des ressources système grâce à la puissance du multitâche avec un système d’exploitation temps réel (RTOS

L’avantage d’utiliser un système d’exploitation temps réel est qu’il exécute plusieurs tâches en même temps. C’est un moyen relativement simple de planifier de nombreuses activités sur un seul microprocesseur, afin de maximiser les ressources et la capacité du système à réagir à des événements extérieurs. Par exemple, l’ouverture de la cage de sécurité doit déclencher la suspension des activités afin de minimiser les risques pour les robots et le personnel. Une simple coupure d’électricité est potentiellement dangereuse. Un système d’exploitation temps réel peut déclencher toutes les actions nécessaires pour placer le robot dans un état non mobile, et s’assure qu’il ne laissera pas tomber des objets lourds ou ne causera pas de dommages. Pour cela, Il est possible de passer par exemple par un fil d’exécution de logiciel qui ordonne aux circuits électroniques de puissance de maintenir les moteurs dans des positions prédéfinies.

Associé à un logiciel d’applications bien conçu, un système d’exploitation temps réel peut fournir des garanties solides du temps nécessaire pour réagir à des événements critiques, qui sont normalement signalés par une interruption externe du microprocesseur. Ce processus est en général géré par un gestionnaire d’interruption qui peut lancer un fil d’exécution de logiciel capable de prendre des mesures. Grâce à une planification préventive organisée par priorités, le système d’exploitation temps réel garantit le plus court délai de latence pour ce type de réponse aux problèmes les plus importants.

ROS : Le système d’exploitation des robots

Dans un robot avec plusieurs microprocesseurs et accélérateurs matériels, de plus en plus courant, chaque nœud de l’actionneur doit être contrôlé par un système de surveillance en charge de la planification des tâches et du comportement de haut niveau. Ce rôle est généralement pris en charge par l’intergiciel tel que le Robot Operating System (ROS), fonctionnant avec un microprocesseur hautement performant.

Actuellement, un ROS est conçu pour fonctionner sur un système d’exploitation comme Linux plutôt que sur un système d’exploitation à part entière. Un ROS n’a pas non plus besoin d’un comportement de système d’exploitation temps réel de la part du système d’exploitation sous-jacent, car il exécute des tâches à plus long terme que celles nécessitant des temps de réponse calculés en microsecondes. Cependant, des travaux sont en cours pour mettre au point des implémentations ROS 2.0. Celles-ci seront exécutées sur des plates-formes de système d’exploitation temps réel pour offrir des degrés de réactivité plus élevés.
L’intergiciel qui fait partie du ROS propose de nombreux services. Ces derniers comprennent l’abstraction matérielle des dispositifs à faible niveau, la transmission de messages entre les processus pour activer les architectures multi-processeurs et la gestion des suites logicielles. Généralement, les processus sont représentés à l’aide de graphiques reliant les nœuds pour indiquer le lieu du processus et la manière dont les processus communiquent entre eux. Les implémentations de ROS sont souvent des paquets open source et utilisent des plates-formes Linux pour optimiser la gestion des dépendances entre les projets open source. Cela permet d’avoir un logiciel de ROS facile d’accès.

Dans le ROS, les nœuds sont des processus ou des modules de logiciel qui gèrent une ou plusieurs tâches connexes. Par exemple, un nœud de traitement d’image et de caméra peut traiter des données visuelles à partir d’un ou de plusieurs capteurs d’image. Pour que l’utilisation de l’infrastructure réseau permette d’interconnecter des nœuds, une architecture désormais courante dans les systèmes automobiles, le ROS prend en charge les protocoles TCP/IP et UDP pour la transmission de messages. Les différents nœuds et connexions peuvent être décrits à l’aide de l’Universal Robot Description Format (URDF), un format de fichier XML.

Pour permettre un partage efficace des données et des commandes de capteurs, le ROS utilise un mécanisme d’abonnement/souscription dans lequel les nœuds doivent s’inscrire pour être informés de sujets spécifiques. Toutes les mises à jour liées à chaque sujet sont envoyées à tous les nœuds abonnés. Le master ROS garde en mémoire tous les services et sujets. Il gère l’enregistrement des nœuds et exploite un serveur de paramètres pour permettre aux nœuds de stocker et de récupérer des données de configuration communes.

Un des avantages majeurs des intergiciels tels que ROS est la réutilisation et le partage de codes. Le partage de codes permet à tous les utilisateurs de disposer d’une base commune de logiciels, ce qui permet de réaliser des tests et d’assurer la fiabilité globale des logiciels. Le ROS n’est pas réservé aux robots physiques.
Il prend également en charge les robots simulés.

Le rôle de la simulation dans le développement de la robotique

Une des exigences majeures de la conception d’un robot est la capacité à simuler son comportement dans un environnement virtuel avant sa mise en œuvre matérielle. Le simulateur permet d’écrire et de déboguer les programmes robotiques hors ligne. Il permet de développer des logiciels dans un environnement sans risque et évite l’endommagement du robot ou de l’environnement du robot dans le cas où le programme proposé contiendrait des erreurs graves. La version finale du programme peut alors être testée sur un véritable robot.

La simulation présente d’autres avantages. Les concepteurs peuvent réaliser un développement par phases, en commençant par des modèles simples de haut niveau, ce qui favorise des projets complexes. De telles simulations peuvent être utilisées dès les premières étapes pour établir la viabilité d’un système. Les environnements de simulation développés pour la robotique sont conçus pour être compatibles avec une large gamme de langages de programmation, prenant en charge le développement facile. La simulation peut aussi réduire le temps de développement en permettant la correction d’erreurs liées à la logique applicative avant que ces erreurs soient liées au matériel et deviennent beaucoup plus difficiles à corriger.

Plusieurs approches de simulation de robot existent. Traditionnellement, la simulation concernait la cinématique du mouvement du robot et servait à démontrer si les orientations et les trajectoires étaient réalisables et pratiques.

Ce type de simulation place un robot virtuel dans un espace 3D et montre comment ses articulations peuvent se déplacer dans le monde réel. La simulation peut également déterminer si un robot sera capable de soulever et de manipuler des objets lourds ou volumineux tout en restant stable.

Certains simulateurs de cinématique utilisent un ensemble simplifié de calculs et se concentrent principalement sur la façon dont un programme peut faire pivoter et déplacer des objets sans entrer en collision avec les limites d’une cage de sécurité ou d’un poste de travail. D’autres simulateurs impliquent une simulation physique plus complexe pour mesurer les contraintes et autres problèmes qui peuvent affecter les performances du robot sur le terrain.

Simulation des interactions entre robots dans des environnements dynamiques

Lorsque les robots sortent des environnements contrôlés et protégés par des cages de sécurité, et évoluent dans des zones où des personnes et d’autres robots peuvent se déplacer librement, les concepteurs doivent tenir compte des interactions possibles. Pour concevoir des robots mobiles, les simulateurs qui gèrent le comportement permettent aux concepteurs de créer, à un haut niveau d’abstraction, des mondes virtuels qui contiennent d’autres objets. Une simple simulation de comportement prend seulement en compte les mouvements d’un robot au sein d’un ensemble d’objets fixes. Des simulations plus complexes impliquent l’utilisation de plusieurs agents ou avatars mobiles. Ces simulateurs fondés sur le comportement sont d’une grande aide pour concevoir des applications où le robot peut être confronté à des environnements complexes. Ils peuvent tirer des leçons des collisions et autres interactions pour gérer les obstacles. Les simulations physiques sont importantes pour vérifier que la cinématique du robot est correctement représentée.

Choisir le bon moteur physique pour votre robot

Les environnements de simulation, tels que le paquet open source Gazebo, peuvent générer des données de capteur réalistes qui risquent d’être corrompues avec certains niveaux de bruit. Gazebo permet d’ajuster la simulation aux exigences spécifiques de l’application: en utilisant différents moteurs physiques par exemple. Un solveur de coordonnées maximal tel qu’ODE ou Bullet, est souvent préféré pour une simulation dans des environnements perturbés. Un solveur fondé sur l’algorithme de Featherstone, comme DART ou Simbody, trouvera plus d’applications dans des systèmes articulés tels que des robots humanoïdes ou des robots de fabrication complexe. Tous les moteurs physiques sont accessibles via la même interface de programmation d’application (API).

La simulation a toutefois des limites. Une application ne peut simuler que les caractéristiques et les événements pour lesquels elle est programmée. Les facteurs internes ou externes ne sont pas représentés et ne seront pas simulés, ce qui peut provoquer des problèmes lorsque la conception est transférée au matériel. Il est souvent difficile de construire des scénarios assez représentatifs, en particulier lorsqu’il s’agit de l’évaluation de situations et de comportements complexes. Cependant, l’expérience acquise avec le transfert de conceptions simulées dans un environnement physique peut être utilisée dans de futurs projets, afin de réduire le nombre d’erreurs au fil du temps.

Par conséquent, la simulation reste l’un des outils les plus puissants de l’ingénieur en robotique.

Total
0
Shares
Publication précédente

Sécurisez votre monde numérique avec le CyberScope de NetAlly

Publication suivante

Produits en vogue de Molex : Des solutions d’alimentation pour répondre aux besoins exigeants des applications

Publications similaire