Programmation d'un robot

Introduction à la programmation de robots

La programmation d'un robot implique l'écriture de programmes informatiques qui permettent à un robot de percevoir son environnement, de planifier et prendre des décisions, ainsi que d’exécuter des tâches. Par exemple, la programmation d’un robot de terrain, lui permettant de naviguer de manière autonome dans un bâtiment, nécessite des fonctions de détection et de perception, de localisation et de cartographie, de planification et de suivi de trajectoire, des contrôles d’actionneur et d’autres tâches.

La programmation de robots implique généralement de :

  • Permettre au robot de percevoir son environnement grâce à des algorithmes de Computer Vision et de Deep Learning pour la détection, la classification et le pistage d’objets, ainsi que pour l’estimation de mouvement
  • Permettre l’autonomie du robot à travers des algorithmes pour la localisation et la cartographie simultanées (SLAM), l’évitement de collision et la planification de mouvement
  • Contrôler le comportement du robot en concevant des systèmes de contrôle comme le contrôle prédictif, le contrôle du couple assisté par ordinateur et le suivi de trajectoire
  • S'interfacer et communiquer avec des capteurs et actionneurs connectés à différentes plateformes embarquées, comme des CPU, des GPU, des FPGA et des microcontrôleurs

Lorsqu’ils débutent avec la programmation d'un robot, les ingénieurs développent souvent un diagramme de machine à états du comportement attendu du robot. En outre, des langages de programmation tels que C/C++, Python®, Java® et MATLAB® sont utilisés pour le développement d’algorithmes, et des middleware comme ROS (Robot Operating System) sont utilisés pour l’abstraction hardware, le contrôle bas niveau d’équipements, la transmission de message entre processus et le déploiement hardware.

Un workflow courant de programmation d'un robot.

Un workflow courant de programmation d'un robot.

Une seule erreur lors d’une étape peut souvent impacter l’intégralité du workflow de programmation d’un robot. La modélisation et la simulation lors du développement logiciel permettent d’éliminer les erreurs d’implémentation en identifiant les problèmes pendant le prototypage plutôt que lors de la production des robots ou même pire, pendant leur utilisation en conditions réelles. La simulation des systèmes permet également aux ingénieurs d’affiner leur design en ajustant les paramètres de contrôle, sans avoir à se soucier des dépendances de plateforme ni de l’accès au hardware du robot.

MATLAB offre plusieurs algorithmes et fonctions prédéfinis pour la programmation d'un robot. Par exemple, avec seulement quelques lignes d’algorithmes de Deep Learning prêts à l’emploi dans MATLAB, les robots peuvent identifier des objets dans un environnement. Simulink® offre des blocs prédéfinis afin d’utiliser la modélisation et la simulation avec l'approche Model-Based Design pour la programmation d'un robot. Par exemple, les blocs ROS dans Simulink permettent aux programmateurs de robots de s’abonner à des données de capteurs et de publier des commandes de robots sur un réseau ROS sans avoir à écrire de code.

Utilisation de blocs ROS pour la publication et la souscription de messages dans Simulink.

Utilisation de blocs ROS pour la publication et la souscription de messages dans Simulink. Voir l'exemple.

En utilisant MATLAB et Simulink pour la programmation d'un robot, vous pouvez construire une simulation robotique évolutive pour prototyper, tester des modèles de concepts et débugger à moindre coût. Vous pouvez ensuite utiliser les modèles haute-fidélité pour la validation, tout en conservant le reste des algorithmes dans le même environnement de simulation. Une fois le résultat souhaité obtenu au niveau de la simulation du robot, vous pouvez générer un code exécutable autonome pour le système embarqué à partir du modèle Simulink dans des langages de programmation courants. En utilisant la connectivité ROS de MATLAB et Simulink avec un réseau ROS, vous pouvez générer des nœuds ROS en C++ directement à partir de MATLAB et Simulink pour tester et vérifier vos applications sur des robots compatibles ROS et des simulateurs de robots tels que Gazebo.

Pour plus de détails sur la programmation d'un robot, voir Robotics System Toolbox™, Navigation Toolbox™, ROS ToolboxMATLAB et Simulink.


Exemples et démonstrations

Détection et perception

Planification de trajectoire et décision

Contrôle


Références logicielles pour la programmation de robots

Voir aussi: la robotique et les systèmes autonomes, mécatronique, Simscape Multibody, Control System Toolbox, Stateflow, Automated Driving Toolbox, Computer Vision Toolbox, Embedded Coder, MATLAB Coder, Simulink Coder, contrôle PID, cinématique inverse, services cloud pour la robotique, planification de trajectoire, système de navigation inertielle