Open Source Robotics

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

Motion Primitive

  • Aussi appelé: movement primitive, motor primitive, action primitive, skill primitive
  • Catégorie: Planning & manipulation › Motion planning
  • Mots-clés: motion-planning, manipulation, skills, learning-from-demonstration, task-planning

Brique réutilisable du mouvement d'un robot, comme une compétence paramétrée (aller à une pose, ouvrir la pince) ou un court segment de trajectoire, que planificateurs et politiques combinent en comportements plus longs.

Définition

Primitives de mouvement (motion primitives) : unités réutilisables, pouvant être enchaînées, en lesquelles on décompose le comportement d'un robot. Au lieu de planifier ou d'apprendre chaque mouvement au niveau des commandes articulaires, un système appelle une primitive avec quelques paramètres, comme une pose cible, une ouverture de pince ou une direction de poussée, et la primitive produit le mouvement détaillé. Le terme recouvre plusieurs idées apparentées, qui diffèrent par la manière dont la primitive est représentée et par ce qui choisit entre les primitives.

En manipulation et planification de tâches, les primitives sont des compétences paramétrées : aller à une pose, saisir, poser, pousser, verser, ouvrir ou fermer la pince. Des planificateurs de tâches, des arbres de comportement ou des modèles de langage choisissent une séquence et remplissent les paramètres ; plusieurs systèmes récents font écrire par un modèle de langage un court programme qui appelle de telles fonctions. En planification de mouvement, les primitives sont de courts segments de trajectoire précalculés qui respectent la dynamique d'un véhicule, et les planificateurs à treillis (lattice planners) les raccordent sur une grille régulière d'états pour chercher des chemins faisables pour des voitures, des robots mobiles et des drones. En apprentissage par démonstration, les primitives de mouvement sont des modèles de trajectoire appris à partir d'exemples et adaptables : les primitives de mouvement dynamiques (dynamic movement primitives, DMPs), développées par Ijspeert, Nakanishi et Schaal, encodent une démonstration comme un système dynamique stable doté d'un terme de forçage appris, de sorte que le départ et le but peuvent changer, tandis que les primitives de mouvement probabilistes (probabilistic movement primitives, ProMPs) représentent une distribution sur les trajectoires.

Le compromis central se situe entre structure et portée. Une bibliothèque fixe rend le comportement prévisible, testable et rapide à planifier, puisque le planificateur ne cherche que parmi quelques choix discrets et leurs paramètres. Elle limite aussi le robot à ce que la bibliothèque peut exprimer : les mouvements riches en contacts, réactifs ou étroitement coordonnés peuvent nécessiter des primitives intégrant une rétroaction, ou des politiques apprises. Choisir la granularité des primitives est donc une décision de conception à part entière.

Pourquoi c'est important

Les primitives de mouvement rendent les tâches à long horizon abordables pour les planificateurs et les modèles de langage en leur donnant un petit ensemble d'actions éprouvées. Elles séparent les décisions de haut niveau de la commande de bas niveau, de sorte que chaque couche peut être développée et vérifiée séparément.

Applications principales

  • Manipulation pilotée par des planificateurs de tâches ou des modèles de langage
  • Planification de mouvement à treillis pour véhicules et drones
  • Apprentissage par démonstration avec des primitives de mouvement dynamiques
  • Arbres de comportement qui appellent des compétences réutilisables
  • Rangement, emballage et assemblage à long horizon

En pratique

Une équipe qui construit un système de rangement sur étagères définit une bibliothèque de primitives comme pousser, balayer, insérer et saisir-et-poser, chacune implémentée comme un court contrôleur avec des paramètres tels que le point de contact, la direction et la distance, chacune avec des préconditions vérifiées avant son exécution et des conditions d'arrêt sur l'effort ou la position. Un modèle appris prédit comment les objets bougent sous chaque primitive paramétrée, un planificateur cherche parmi les séquences et les paramètres, et le robot exécute la première étape puis replanifie. Sur un drone, la même idée apparaît sous la forme d'une bibliothèque de courtes trajectoires polynomiales échantillonnées sur les vitesses finales et vérifiées par rapport à la carte des obstacles à chaque cycle de planification.

Idées reçues

  • Une primitive de mouvement est toujours une trajectoire fixe codée en dur — beaucoup sont paramétrées ou incluent une rétroaction, et les DMPs s'adaptent à de nouveaux buts à l'exécution
  • Utiliser des primitives revient à renoncer à l'apprentissage — les primitives sont souvent apprises par démonstration, et des modèles appris servent à les choisir et à les paramétrer
  • N'importe quelle tâche peut être résolue avec une bibliothèque assez grande — les tâches qui exigent un contact réactif continu peuvent sortir de ce que des primitives discrètes expriment, et la bibliothèque elle-même doit être conçue et maintenue

Qui devrait le savoir

  • Ingénieurs en manipulation qui construisent des bibliothèques de compétences
  • Ingénieurs en planification de mouvement qui travaillent avec des planificateurs à treillis
  • Chercheurs en apprentissage robotique travaillant sur l'apprentissage par démonstration
  • Développeurs qui relient des modèles de langage ou des planificateurs de tâches à des robots

Technologies associées

  • Primitives de mouvement dynamiques (Dynamic Movement Primitives, DMP)
  • Primitives de mouvement probabilistes (Probabilistic Movement Primitives, ProMP)
  • Planificateur à treillis d'états (State Lattice Planner)
  • Arbres de comportement (Behavior Trees)
  • Planification de tâches et de mouvements (Task and Motion Planning)
  • Bibliothèques de compétences (Skill Libraries)

Termes associés

  • Motion Planning
  • Trajectory Planning
  • Task and Motion Planning
  • Task Planning
  • Imitation Learning
  • Behavior Tree

Projets associés

  • LeRobot: HuggingFace ML library for real-world robotics in PyTorch
  • Isaac Lab: NVIDIA robot learning framework: one task API across Newton, PhysX and Isaac Sim
  • NVIDIA Isaac GR00T: NVIDIA open foundation model for humanoid robot reasoning and skills
  • OpenVLA: 7B-parameter Vision-Language-Action model for robotic manipulation
  • BehaviorTree.CPP: C++ behavior tree library for robot task planning, powering Nav2 and ROS 2 systems
  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design

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