Open Source Robotics

Une collection organisée de projets, outils et logiciels robotiques open source de haute qualité.

End-User Robot Programming

  • Aussi appelé: end-user programming, EUP
  • Catégorie: Control › Human in the loop
  • Mots-clés: human-robot-interaction, robot-programming, usability, collaborative-robots, programming-by-demonstration

Méthodes et outils qui permettent à des personnes sans expertise en robotique ou en programmation de créer, d'adapter et de réaffecter elles-mêmes des comportements de robot, là où elles en ont besoin et quand elles en ont besoin.

Définition

La programmation de robots par l'utilisateur final (End-user robot programming) est le domaine de la robotique et de l'interaction humain-machine qui vise à permettre aux personnes qui utilisent réellement les robots, comme les ouvriers d'usine, les techniciens, les enseignants ou les soignants, de dire à un robot quoi faire sans avoir besoin de compétences spécialisées en programmation. Elle applique aux robots des idées issues du développement par l'utilisateur final en logiciel, à ceci près que les programmes doivent aussi gérer le mouvement physique, la perception, l'incertitude et la sécurité.

De nombreuses approches existent et sont souvent combinées. La programmation par démonstration permet aux utilisateurs de montrer la tâche, par exemple par l'enseignement kinesthésique (kinesthetic teaching), où ils déplacent le bras à la main, ou par téléopération. Les environnements de programmation visuelle, dont les éditeurs par blocs et les outils d'organigramme ou de ligne de temps, permettent aux utilisateurs d'assembler des actions graphiquement. Les boîtiers d'apprentissage des bras industriels et collaboratifs proposent de plus en plus des modèles de tâches de type assistant. Les règles déclencheur-action, les interfaces de réalité augmentée qui montrent les mouvements planifiés en situation, et les interfaces en langage naturel, désormais souvent construites sur de grands modèles de langage qui génèrent du code ou des plans de tâches, sont d'autres options. Les arbres de comportement et les machines à états servent fréquemment de représentation de programme sous-jacente.

Les défis centraux sont l'expressivité, pour que les utilisateurs puissent décrire de vraies tâches ; la correction, pour que ce qu'ils créent fasse ce qu'ils voulaient ; et la sécurité, pour qu'un programme écrit par un non-expert ne crée pas de dangers comme des collisions, des dépassements de limites articulaires, une vitesse excessive près des personnes ou des points de pincement. Les approches de ces défis comprennent les aperçus en simulation, la vérification et le contrôle automatiques des programmes, des critiques ou des validateurs qui encodent le savoir d'experts et fournissent un retour, et le maintien de l'utilisateur dans la boucle pour confirmer ou corriger le résultat. L'enseignement kinesthésique présenté sur ce site est une méthode de saisie parmi d'autres au sein de la programmation par l'utilisateur final ; le domaine plus large couvre aussi la façon dont les programmes sont représentés, modifiés, vérifiés et maintenus.

Pourquoi c'est important

Les robots des petites usines, des laboratoires, des foyers et des lieux de soins doivent souvent être réaffectés à de nouvelles tâches, et faire appel à des spécialistes en robotique pour chaque changement n'est pas réaliste. La programmation par l'utilisateur final détermine si un robot peut être adapté par les personnes qui travaillent avec lui, et c'est là que les exigences d'utilisabilité et de sécurité se rencontrent le plus directement.

Applications principales

  • Réaffectation de bras collaboratifs dans les petites et moyennes entreprises manufacturières
  • Programmation de robots sociaux et de service pour des contextes spécifiques
  • Robotique éducative et enseignement de la programmation
  • Robots d'assistance personnalisés par les soignants ou les utilisateurs
  • Automatisation de laboratoire configurée par les scientifiques

En pratique

Un petit atelier d'électronique utilise un bras collaboratif pour le chargement de machines. Un technicien décrit une nouvelle tâche en langage courant : prendre des cartes dans un plateau, les placer dans un testeur et les trier dans deux bacs selon le résultat. Un modèle de langage transforme la description en programme dans le framework de tâches du robot. Avant l'exécution, un ensemble de critiques automatiques vérifie le programme en simulation pour détecter les collisions, les problèmes d'atteignabilité, la vitesse près de la position de l'opérateur et les points de pincement entre le bras et le testeur, et signale les problèmes en langage courant. Le technicien corrige les étapes signalées en déplaçant le bras à la main vers des points de passage corrigés, prévisualise le mouvement dans une vue AR, puis l'exécute à vitesse réduite pendant les premiers cycles.

Idées reçues

  • La programmation par l'utilisateur final n'est qu'une interface utilisateur plus simple — elle exige aussi des moyens de vérifier, de déboguer et d'exécuter en toute sécurité ce que créent des non-experts
  • Le langage naturel a résolu la programmation des robots — les programmes générés peuvent être faux ou dangereux et nécessitent toujours vérification, retour et confirmation par l'utilisateur
  • La programmation par démonstration et la programmation par l'utilisateur final sont la même chose — la démonstration est une approche ; d'autres incluent les interfaces visuelles, à base de règles et en langage naturel
  • Les utilisateurs finaux n'ont besoin que d'enregistrer des mouvements — les vraies tâches exigent aussi des conditions, de la perception, la gestion des erreurs et des boucles

Qui devrait le savoir

  • Développeurs d'outils et d'interfaces de programmation de robots
  • Ingénieurs d'application déployant des robots collaboratifs (cobots) avec des opérateurs non experts
  • Chercheurs en HRI et en IHM (HCI)
  • Chefs de produit pour les robots de service et collaboratifs

Technologies associées

  • Programmation par démonstration (Programming by Demonstration)
  • Programmation visuelle par blocs (Block-Based Visual Programming)
  • Boîtiers d'apprentissage (Teach Pendants)
  • Interfaces de réalité augmentée (Augmented Reality Interfaces)
  • Grands modèles de langage pour la génération de code (Large Language Models for Code Generation)
  • Programmation déclencheur-action (Trigger-Action Programming)

Termes associés

  • Kinesthetic Teaching
  • Cobot
  • Behavior Tree
  • Imitation Learning
  • Pinch Point
  • Foundation Model

Projets associés

  • Reachy Mini: Open-source desktop robot from Pollen and Hugging Face with an expressive 6-DoF head
  • RAI: Vendor-agnostic agent framework for ROS 2 robots and physical AI
  • Assistive Gym: Physics simulation framework for training assistive robots in caregiving tasks

Ce site nécessite JavaScript. Veuillez activer JavaScript pour explorer nos projets de robotique open source.