Manipulation robotique avancée avec contrôle d'impédance
Par Tadele Shiferaw, MathWorks
Les robots manipulateurs continuent d'être utilisés dans des applications variées, améliorant l'efficacité et la justesse dans des domaines tels que la fabrication, la santé, l'agriculture et la logistique. Pour les applications qui nécessitent une interaction sûre et efficace avec un environnement dynamique, l'ajout de souplesse mécanique aux manipulateurs est essentiel car cela permet une adaptabilité, une justesse et une sécurité accrues pendant le fonctionnement. Le contrôle d'impédance est une méthodologie avancée qui permet aux robots d'émuler le comportement souple caractéristique de la manipulation humaine. Cet article explique le design et l’implémentation de la stratégie de contrôle d’impédance en utilisant la modélisation et la simulation.
Comprendre le contrôle d'impédance
À la base, le contrôle d'impédance est une stratégie utilisée en robotique pour réguler la force d'interaction entre un robot et son environnement, en ajustant dynamiquement l'impédance du robot, une mesure de la façon dont il réagit aux forces et aux déplacements[1].
Considérons un robot simplifié à un degré de liberté (DDL). Le robot est défini comme une masse à la position \( X_m \) et il doit être déplacé vers une position désirée \( X_d \), ce qui peut être facilement réalisé en utilisant un contrôleur proportionnel-dérivé (PD) classique avec l’équation mathématique suivante :
\( F_{controller} = k(X_d - X_m) - d {\dot{X_m}} \)
En examinant de près l’équation, l’action de contrôle du régulateur PD peut être interprétée physiquement comme une combinaison ressort-amortisseur, où le terme proportionnel représente le ressort et le terme dérivé représente l’amortisseur. Il s'agit d'un contrôleur d'impédance simple qui non seulement déplace la masse vers la position souhaitée, mais injecte également une impédance définie dans le système qui peut être ressentie lors de toute interaction externe avec le système (Figure 1).
Figure 1. Un système simple à un DDL en impédance contrôlée.
Modélisation d'un système simple à impédance contrôlée
Ce système simplifié à un degré de liberté peut facilement être modélisé à l’aide de Simscape™, un langage de modélisation physique qui permet aux utilisateurs de connecter des blocs de la bibliothèque via un flux bidirectionnel d’énergie (Figure 2).
Désormais, les paramètres du contrôleur décrits par la constante de raideur et le coefficient d’amortissement peuvent être ajustés pour définir le comportement de souplesse mécanique souhaitée, de l’ensemble du système, lors du suivi de la position souhaitée. La différence de comportement de mouvement entre un système à impédance contrôlée modérément souple et un système à impédance contrôlée fortement souple est illustrée dans la figure 3.
Contrôle d'impédance pour manipulateurs à plusieurs degrés de liberté
Le concept de contrôleur d'impédance décrit ci-dessus peut également être étendu à un robot manipulateur avec N-DDL, où un ressort géométrique multidimensionnel est utilisé pour aligner la pose de l'effecteur terminal du robot \( {H^0}_t \) sur une pose souhaitée \( {H^0}_d \) et l'amortissement est injecté dans le système via un amortisseur d'espace articulaire sur chaque DDL (Figure 4).
Étant donné les matrices de raideur symétriques de translation, de rotation et de couplage \( K_t \), \( K_c \) et \( K_o \), un ressort géométrique spatial défini par une matrice \( K∈R^{6×6} \) exerce une force sur un manipulateur qui est fonction de la pose relative \( {H^d}_t \) :
\( K = \begin{pmatrix} K_o & K_c \\ {K^T}_c & K_t \end{pmatrix} \)
La force est calculée dans les coordonnées du référentiel de l'effecteur terminal sous la forme d'une clé à six vecteurs \( W^t=[m^t f^t] \) comme suit[2] :
\( \widetilde{m^t} = -2as({G_o}{{R^d}_t}) - as ({G_o}{{R^t}_d}{\widetilde{{p^d}_t}}{\widetilde{{p^d}_t}}{{R^d}_t}) - 2as({G_c}{\widetilde{{p^d}_t}}{{R^d}_t}) \)
\( \widetilde{f^t} = -{{R^t}_d}as({G_o}{\widetilde{{p^d}_t}}){{R^d}_t} - as ({G_o}{{R^t}_d}{\widetilde{{p^d}_t}}{{R^d}_t}) - 2as({G_c}{{R^d}_t}) \)
où :
- \( as(⋅) \) est un opérateur qui donne la partie antisymétrique d'une matrice carrée
- \( G_t \), \( G_c \) et \( G_o \) sont les matrices de co-raideur du ressort spatial calculées comme \( G_x = \frac{1}{2}tr(K_x)I−K_x \)
- \( tr (.) \) est l'opérateur de trace tensorielle
- ~ est un opérateur tilde capturant la forme matricielle du produit vectoriel d'un vecteur
Après la transformation des coordonnées de la clé \( W^t \) vers un référentiel inertiel \( Ψ_0 \), les couples articulaires \( τ \) capables d’émuler la clé de l’effecteur terminal souhaité sur le manipulateur sont calculés par ces équations :
\( (W^o)^T = A{d^T}_{{H^t}_o} (W^t)^T \)
\( τ = {J^T}(q){W^o} \)
où :
- \( Ad (⋅) \) est l’adjoint de la matrice homogène
- \( J(q) \) est le jacobien du manipulateur robotique
Modélisation d’un robot manipulateur avec contrôle d’impédance
Pour évaluer l’algorithme de contrôle sur un robot manipulateur, un modèle dynamique du manipulateur Kinova® Gen3 à sept DDL a été développé à l’aide de Simscape Multibody™. Avec le modèle CAO du manipulateur disponible au format URDF, un modèle multi-corps détaillé pouvant être utilisé pour la simulation dynamique peut être généré automatiquement à l'aide de la commande :
smimport(kinovaGen3.urdf')
Le modèle de système complet illustré dans la figure ci-dessous comprend le générateur de pose souhaité, les obstacles environnementaux et les interactions externes pour une évaluation large du contrôleur avec simulation (Figure 5).
La Robotics System Toolbox™ améliore encore le contrôleur d'impédance pour le manipulateur grâce à un algorithme de compensation de la gravité, ce qui améliore les performances opérationnelles. Ainsi, la sortie finale du contrôleur, illustrée à la Figure 6, est un couple dans l’espace articulaire qui correspond à la somme des couples issus du ressort spatial, de la compensation de la gravité et de l’injection d’amortissement.
Résultats de la simulation
Une simulation a testé l'effet d'une force externe appliquée dans la direction X au temps \( t = 16 \) \(sec \) et d'un obstacle se déplaçant le long de l'axe x pour interagir avec le manipulateur vers \( t = 30\) \(sec \) (Figure 7). Comme prévu, une force externe de \( F_{ext} = 40N \) appliquée sur le manipulateur à impédance contrôlée avec une raideur translationnelle cartésienne de \(K_t =400 \) \(N/m \) a entraîné une déflexion de \( x_{def} = 0.1m \). Le système a également montré un comportement stable et réaliste lors de l'interaction avec l'obstacle en mouvement, comme le montre l'animation vidéo générée à partir de l'explorateur mécanique (Figure 8).
Figure 8. Une animation montrant le mouvement 3D du robot et l'interaction avec un obstacle.
Comme l'ont confirmé les résultats de simulation, le contrôleur d'impédance cartésien n'injecte pas seulement une conformité souhaitée pour permettre une capacité d'interaction flexible, mais il évite également la nécessité de calculs intensifs de cinématique inverse pour le contrôle du manipulateur. Il s'agit également d'une approche de design de contrôle physiquement explicable et intuitive, et elle nécessite un contrôleur de couple au niveau des articulations pour sa mise en œuvre.
Références
[1] Hogan, Neville. Impedance Control: An Approach to Manipulation: Part I—Theory; Part II—Implementation; Part III—Applications. Journal of Dynamic Systems, Measurement, and Control, vol. 107, no. 1, March 1985, pp. 1–24.
[2] Stramigioli, Stefano. Modeling and IPC control of Interactive Mechanical Systems — A Coordinate-Free Approach, Lecture Notes in Control and Information Sciences (Springer London, 2001).
Publié en 2025