Qu'est-ce que la commande Feedforward ?
La commande feedforward (ou "pré-action") est une technique de contrôle qui anticipe les perturbations et les besoins du système en utilisant un modèle de celui-ci.
Contrairement au contrôle feedback qui réagit aux erreurs après qu'elles se sont produites, le feedforward agit de manière proactive pour minimiser ces erreurs avant même qu'elles n'apparaissent.
Le savais-tu ?
Dans les robots bipèdes, le feedforward est essentiel pour maintenir l'équilibre car il permet d'anticiper les mouvements nécessaires avant que le déséquilibre ne soit détecté par les capteurs.
Principe Général du Feedforward
Le contrôle feedforward utilise une connaissance a priori du système et des perturbations pour calculer la commande nécessaire. Pour un robot bipède, cela signifie :
$$u_{ff} = M^{-1}(\theta)(\ddot{\theta}_d + C(\theta, \dot{\theta}) + G(\theta))$$

Schéma de commande hybride feedforward/feedback
Où M est la matrice d'inertie, C les forces centrifuges et de Coriolis, G les forces gravitationnelles, et θd la trajectoire désirée.
Application au robot bipède
Pour un robot bipède, le feedforward permet :
- D'anticiper les couples nécessaires pour les mouvements planifiés
- De compenser la dynamique intrinsèque du robot (inertie, gravité)
- De réduire la charge de calcul du feedback en fournissant une première approximation de la commande
// Modèle simplifié de feedforward pour un moteur
float computeFeedforward(float desiredAngle, float desiredVelocity, float desiredAcceleration) {
// Paramètres du moteur et du segment
float inertia = 0.01f; // Moment d'inertie estimé
float friction = 0.05f; // Coefficient de friction
// Calcul du couple feedforward
float torque = inertia * desiredAcceleration
+ friction * desiredVelocity
+ computeGravityCompensation(desiredAngle);
return torque;
}
float computeGravityCompensation(float angle) {
// Compensation de l'effet de la gravité
float mass = 0.2f; // Masse estimée
float length = 0.1f; // Longueur du segment
float g = 9.81f; // Gravité
return mass * g * length * sin(angle);
}
Intégration dans l'architecture du robot
Contrôle des moteurs
Le feedforward peut être combiné avec un contrôleur PID pour améliorer la performance :
Exemple pratique :
Pour la marche, calculer d'abord le couple théorique nécessaire (feedforward) puis utiliser le PID pour corriger les erreurs résiduelles.
Références
- Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2010). Robotics: Modelling, Planning and Control. Springer.
- Spong, M. W., Hutchinson, S., & Vidyasagar, M. (2006). Robot Modeling and Control. Wiley.
- Pratt, J., & Tedrake, R. (2006). Velocity-Based Stability Margins for Fast Bipedal Walking. Fast Motions in Robotics.
- Wieber, P.-B. (2006). Trajectory Free Linear Model Predictive Control for Stable Walking in the Presence of Strong Perturbations. Humanoids.