Open Source Robotics

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

Centroidal Dynamics

  • Aussi appelé: centroidal model, centroidal momentum dynamics, centroidal momentum
  • Catégorie: Control › Locomotion control
  • Mots-clés: legged-locomotion, humanoids, dynamics, balance, model-predictive-control

Un modèle réduit d'un robot à pattes ou humanoïde qui décrit comment les forces de contact modifient le mouvement de son centre de masse et son moment cinétique total, sans suivre chaque membre.

Définition

Dynamique centroïdale (centroidal dynamics) : description du mouvement d'un robot multicorps, comme un humanoïde ou un quadrupède, en termes de sa quantité de mouvement linéaire et de son moment cinétique globaux autour du centre de masse. Quel que soit le nombre d'articulations du robot, les lois de Newton et d'Euler disent que seules les forces extérieures, principalement la gravité et les forces de contact aux pieds ou aux mains, peuvent modifier ces grandeurs. La dérivée de la quantité de mouvement linéaire est égale à la somme des forces extérieures, et la dérivée du moment cinétique autour du centre de masse est égale à la somme des couples extérieurs autour de ce point.

On obtient ainsi un modèle de six équations seulement, indépendant du nombre d'articulations, qui capture ce qui compte le plus pour l'équilibre et la locomotion : où va le centre de masse et comment le corps tourne sous l'effet des forces que le robot exerce sur son environnement. Les mouvements articulaires internes n'agissent sur le système qu'à travers la quantité de mouvement centroïdale, reliée aux vitesses articulaires par la matrice de quantité de mouvement centroïdale, un concept développé par Orin et Goswami.

Les planificateurs utilisent la dynamique centroïdale à différents niveaux de détail. Le modèle à corps rigide unique traite tout le robot comme un seul corps d'inertie fixe, ce qui fonctionne bien pour les quadrupèdes aux pattes légères. Le modèle centroïdal complet conserve la configuration articulaire pour calculer une inertie variable, ce qui compte pour les humanoïdes aux membres lourds. Plus simple encore, le pendule inversé linéaire ignore le moment cinétique et fixe la hauteur du centre de masse.

En pratique, un planificateur centroïdal choisit des trajectoires du centre de masse et des forces de contact qui respectent les cônes de frottement et le séquencement des contacts, puis un contrôleur corps entier calcule les couples articulaires qui les réalisent.

Pourquoi c'est important

La dynamique centroïdale permet aux contrôleurs de raisonner sur l'équilibre, la marche et le saut sans résoudre la dynamique complète de chaque articulation, ce qui rend possible la planification en temps réel pour les humanoïdes et les quadrupèdes. C'est la couche intermédiaire standard de la locomotion à pattes fondée sur un modèle, entre les modèles de pendule simples et la dynamique complète des corps rigides.

Applications principales

  • Commande prédictive pour la locomotion des quadrupèdes
  • Marche, course et saut des humanoïdes
  • Planification de mouvements multicontacts comme l'escalade et la loco-manipulation
  • Rétablissement de l'équilibre après une poussée

En pratique

Dans une pile de locomotion typique fondée sur un modèle, un contrôleur prédictif fonctionne sur un modèle à corps rigide unique ou un modèle centroïdal, et optimise le mouvement du centre de masse et les forces de réaction du sol sur un horizon court, sous des contraintes de cône de frottement et de calendrier de contacts. Sa sortie va à un contrôleur corps entier fonctionnant à une fréquence plus élevée, qui résout un programme quadratique pour obtenir les couples articulaires qui suivent la quantité de mouvement planifiée tout en respectant les limites articulaires. Des bibliothèques comme Pinocchio calculent la matrice de quantité de mouvement centroïdale, et des frameworks de commande optimale comme OCS2 incluent des modèles centroïdaux pour les robots à pattes. Les équipes valident le modèle réduit en vérifiant à quel point le mouvement mesuré de la base du robot suit la trajectoire planifiée du centre de masse.

Idées reçues

  • La dynamique centroïdale ignore entièrement les membres — le modèle centroïdal complet tient compte du mouvement des membres via une inertie dépendant de la configuration ; seule l'approximation à corps rigide unique l'ignore
  • Les couples articulaires peuvent modifier directement la quantité de mouvement totale du robot — seules les forces extérieures comme les forces de contact et la gravité le peuvent ; les articulations agissent en modifiant ces forces de contact
  • C'est la même chose que le modèle du pendule inversé — les modèles de pendule sont des simplifications supplémentaires qui abandonnent le moment cinétique et fixent généralement la hauteur du centre de masse

Qui devrait le savoir

  • Ingénieurs en locomotion à pattes et en commande d'humanoïdes
  • Chercheurs travaillant sur la commande prédictive pour les robots marcheurs
  • Chercheurs en planification de mouvement travaillant sur des tâches multicontacts
  • Étudiants de master et doctorants en dynamique des robots

Technologies associées

  • Pinocchio
  • OCS2
  • Commande prédictive (Model Predictive Control)
  • Commande corps entier (Whole-Body Control)
  • Pendule inversé linéaire (Linear Inverted Pendulum)
  • Modèle à corps rigide unique (Single Rigid Body Model)

Termes associés

  • Whole-Body Control
  • Locomotion
  • Humanoid Robot
  • Friction Cone

Projets associés

  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
  • MuJoCo MPC: DeepMind's interactive real-time model predictive control framework for MuJoCo
  • DART: C++ physics engine for articulated rigid body dynamics and robotics simulation
  • python_simple_mppi: MPPI control derived and implemented in numpy, with four worked examples
  • frax: JAX library for fast, differentiable robot kinematics, dynamics and inverse kinematics
  • mjbatch: Runs thousands of MuJoCo simulations in parallel on the CPU

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