Open Source Robotics

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

Articulated Body Algorithm

  • Aussi appelé: ABA, Featherstone's algorithm, Featherstone algorithm
  • Catégorie: Software & tooling › Simulation & twins
  • Mots-clés: rigid-body-dynamics, forward-dynamics, simulation, algorithms, physics-engines

Algorithme récursif efficace, présenté par Featherstone en 1983, qui calcule les accélérations articulaires d'un robot à partir des couples appliqués en un temps proportionnel à son nombre d'articulations.

Définition

Algorithme des corps articulés (articulated body algorithm, ABA) : méthode de Roy Featherstone pour calculer la dynamique directe (forward dynamics) d'un robot constitué de corps rigides reliés par des articulations selon une structure arborescente : à partir des positions et vitesses articulaires actuelles et des couples appliqués, il détermine les accélérations articulaires qui en résultent. Featherstone l'a présenté en 1983, et c'est l'un des algorithmes centraux de son livre Rigid Body Dynamics Algorithms.

La manière directe de calculer la dynamique directe consiste à construire la matrice de masse dans l'espace articulaire, par exemple avec l'algorithme des corps rigides composites, puis à résoudre un système linéaire. La construction et la factorisation de cette matrice croissent plus vite que linéairement avec le nombre d'articulations. L'ABA évite de former la matrice et s'exécute en un temps proportionnel au nombre de corps, noté O(n).

Il procède en trois passes sur l'arbre cinématique. Une passe vers l'extérieur calcule la vitesse de chaque corps et les termes de biais dépendant de la vitesse. Une passe vers l'intérieur, des feuilles vers la base, calcule l'inertie de corps articulé (articulated-body inertia) de chaque corps : l'inertie apparente de ce corps et de tout ce qui y est attaché au-delà, en tenant compte des articulations intermédiaires. Une dernière passe vers l'extérieur calcule les accélérations articulaires de la base vers les feuilles. L'algorithme est écrit en algèbre vectorielle spatiale (spatial vector algebra), une notation à six dimensions qui combine grandeurs linéaires et angulaires.

L'ABA est implémenté dans des bibliothèques de dynamique des corps rigides comme Pinocchio, RBDL et Drake. Pour les robots qui n'ont que quelques articulations, l'approche par matrice de masse peut être tout aussi rapide en pratique, tandis que l'avantage de l'ABA croît pour les chaînes plus longues et les robots ramifiés comme les humanoïdes. Les idées récursives qui le sous-tendent ont été étendues à des grandeurs apparentées, comme l'inertie dans l'espace opérationnel et la dynamique des contacts.

Pourquoi c'est important

Les simulateurs, les contrôleurs prédictifs et les optimiseurs de trajectoire évaluent la dynamique directe des milliers de fois. Un algorithme efficace comme l'ABA détermine directement la vitesse de ces outils et la complexité des robots qu'ils peuvent traiter en temps réel.

Applications principales

  • Dynamique directe dans les simulateurs physiques
  • Commande prédictive et optimisation de trajectoire pour les robots à pattes
  • Dérivées de la dynamique pour l'optimisation par gradient
  • Simulation en temps réel d'humanoïdes et de manipulateurs à nombreux degrés de liberté

En pratique

La plupart des équipes de robotique utilisent l'ABA via une bibliothèque plutôt que de l'implémenter. Un ingénieur en commande peut charger l'URDF d'un humanoïde dans Pinocchio et appeler sa routine de dynamique directe dans un simulateur ou un contrôleur prédictif, ou appeler ses dérivées analytiques pour une optimisation de trajectoire par gradient. Les ingénieurs qui écrivent leur propre code de dynamique utilisent le livre de Featherstone comme référence et testent leur implémentation par comparaison avec la méthode par matrice de masse sur le même modèle.

Idées reçues

  • L'ABA calcule la dynamique inverse — il calcule la dynamique directe ; la dynamique inverse est généralement calculée avec l'algorithme récursif de Newton-Euler
  • L'ABA est toujours plus rapide que la méthode par matrice de masse — pour les robots à peu d'articulations, l'écart peut être faible ou inversé
  • L'ABA traite directement les boucles cinématiques fermées — il est formulé pour des arbres cinématiques ; les boucles nécessitent un traitement supplémentaire des contraintes

Qui devrait le savoir

  • Développeurs de simulateurs physiques et de bibliothèques de dynamique
  • Ingénieurs en automatique travaillant sur la commande prédictive et l'optimisation de trajectoire
  • Chercheurs en locomotion à pattes et en robotique humanoïde

Technologies associées

  • Algorithme récursif de Newton-Euler (Recursive Newton–Euler Algorithm)
  • Algorithme des corps rigides composites (Composite Rigid Body Algorithm)
  • Algèbre vectorielle spatiale (Spatial Vector Algebra)
  • Pinocchio
  • RBDL
  • Drake

Termes associés

  • Kinematics
  • Jacobian
  • URDF
  • Digital Twin

Projets associés

  • GENESIS: World's fastest physics engine: 43M FPS for embodied AI learning
  • LeRobot: HuggingFace ML library for real-world robotics in PyTorch
  • PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
  • RLinf: Scalable infrastructure for post-training foundation models via RL
  • Webots: Cross-platform robot simulator with built-in models, sensors, and development environment
  • NVIDIA Isaac Sim: NVIDIA Omniverse app for AI-driven robot simulation and testing

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