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 Toolbox, MATLAB 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


FAQ sur la Programmation de robots

Robot programming involves writing computer programs that enable a robot to perceive its environment, make plans and decisions, and execute tasks such as navigation, object detection, and actuator control.

Common programming languages for robot programming include C/C++, Python, Java, and MATLAB, often used alongside middleware such as ROS for hardware abstraction and device control.

MATLAB provides built-in algorithms for perception, planning, and control, and Simulink offers prebuilt blocks for modeling, simulation, and ROS integration without requiring manual code writing.

Simulation helps eliminate implementation errors by identifying problems during prototyping, allows engineers to refine system designs by tuning control parameters, and enables testing without requiring access to physical robot hardware.

ROS (Robot Operating System) is middleware used for hardware abstraction, low-level device control, and message-passing between processes, facilitating hardware deployment and communication with sensors and actuators.

Robot programming generally involves enabling perception through computer vision and deep learning, enabling autonomy through SLAM and motion planning, controlling behavior through control systems, and interfacing with sensors and actuators on embedded platforms.

Yes, you can generate standalone executable code in common programming languages from Simulink models for embedded systems and generate C++ ROS nodes directly for deployment on ROS-enabled robots and simulators like Gazebo and Isacc Sim.


Voir aussi: Automatisation industrielle et machines, Robotique et systèmes autonomes, 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