Blocage de cardan

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Animation : un ensemble de trois cardans montés de façon à accorder trois degrés de liberté

Le blocage de cardan est la perte d'un degré de liberté, connue aussi sous le nom anglais de gimbal lock, qui survient quand les axes de deux des trois cardans nécessaires pour appliquer ou compenser les rotations dans l'espace à trois dimensions sont portés par la même direction.

Un cardan est un anneau fixé de façon à pouvoir tourner autour d'un axe. Les cardans sont souvent imbriqués les uns dans les autres de façon à pouvoir tourner autour de plusieurs axes. Ils apparaissent dans les gyroscopes et dans les centrales à inertie afin de permettre au cardan le plus intérieur de rester fixe alors que la fixation du cardan extérieur peut prendre n'importe quelle orientation. Ils apparaissent aussi dans les compas, les volants à inertie ou plus familièrement dans des porte-bouteilles pour permettre aux objets de rester horizontaux. Ils servent à orienter les propulseurs d'une fusée[1]. Certains systèmes de coordonnées mathématiques se comportent comme si des cardans réels étaient utilisés pour mesurer les angles. Lorsqu'il y a au moins trois cardans imbriqués d'une certaine façon, le blocage de cardan peut se produire.

Le blocage de cardan en génie mécanique[modifier | modifier le code]

Exemple[modifier | modifier le code]

Situation normale : les trois cardans sont indépendants
Blocage de cardan : deux des trois cardans sont coplanaires, un degré de liberté est perdu

Prenons le cas d'une plate-forme de mesure de l'inclinaison sur un avion qui vole horizontalement. Supposons que cette plate-forme repose sur trois axes de cardans à angles droits deux à deux. Les angles entre les cardans sont le roulis, le tangage et le lacet, chacun valant zéro au départ. Si l'avion s'incline de 90 degrés vers le haut, l'axe de roulis de l'avion et de la plate-forme devient parallèle à l'axe du cardan de lacet, et on ne peut plus compenser les changements de lacet (voir illustration ci-contre).

Le mot blocage est trompeur : aucun cardan ne se bloque, les trois cardans peuvent toujours tourner librement autour de leurs axes de fixation respectifs. Néanmoins, comme les axes de roulis et de lacet sont parallèles, il n'y a plus d'axe disponible pour réagir aux changements de lacet.

Solutions[modifier | modifier le code]

On peut pallier le problème en utilisant un quatrième cardan, déplacé de manière intelligente au moyen d'un moteur, de manière à maintenir un grand angle entre les axes de cardans du roulis et du lacet.

Une autre solution consiste à tourner un ou plusieurs cardans vers une position arbitraire au moment où le blocage de cardan est détecté, en réinitialisant ainsi le dispositif.

L'approche moderne est d'éviter complètement d'utiliser des cardans. Dans le contexte de centrales à inertie, cela peut se faire en montant directement les capteurs inertiels au corps du véhicule (plate-forme inertielle liée)[2] et en exploitant les données de rotation et d'accélération ainsi captées en utilisant des méthodes à base de quaternions pour en déduire l'orientation et la vitesse du véhicule. Une autre manière de remplacer les cardans est d'utiliser des supports à fluide ou une chambre de flottaison[3].

Le blocage de cardan à bord d'Apollo 11[modifier | modifier le code]

Une anecdote bien connue à propos du blocage de cardan concerne la mission lunaire Apollo 11. Sur ce vaisseau spatial, un jeu de cardans était utilisé sur une centrale à inertie. Les ingénieurs étaient avertis du problème du blocage de cardan, mais s'étaient refusés à employer un quatrième cardan[4]. La justification de ce choix apparaît en partie dans la citation suivante :

« Les avantages d'un cardan surnuméraire semblent moins importants que la simplicité de l'équipement, le gain de place, et la fiabilité naturelle d'une unité à trois degrés de liberté directs. »

— David Hoag, Apollo Lunar Surface Journal

Ils ont préféré une autre solution s'appuyant sur un dispositif qui se serait déclenché à l'approche de 85 degrés de roulis. Ce dispositif n'a pas fonctionné[5] :

« À l'approche de ce point, au sein d'une boucle de stabilisation fermée, les moteurs de torsion pouvaient en principe être commandés pour faire tourner le cardan de 180 degrés d'un seul coup. Au lieu de cela, dans le module lunaire, l'ordinateur a fait clignoter un avertissement « blocage de cardan » à 70 degrés et a gelé la plate-forme inertielle à 85 degrés »

— Paul Fjeld, Apollo Lunar Surface Journal

Cela a inspiré au pilote du module de commande Mike Collins une fameuse pointe d'humour alors qu'il communiquait par radio avec la Terre :

« Que diriez-vous de m'envoyer un quatrième cardan pour Noël ? »

Robotique[modifier | modifier le code]

Robot industriel au travail dans une fonderie.

En robotique, le blocage de cardan est souvent désigné sous le nom de « renversement du poignet » (wrist flip) ou de « singularité du poignet » (wrist singularity), suite à l'utilisation d'une triple articulation dans les bras manipulateurs, où les trois axes rotatifs passent par un point commun.

Lorsque le mouvement effectué par le bras provoque un alignement du premier et du troisième axes rotatifs, le moteur du deuxième axe peut tenter de faire tourner le bras sur lui-même de 180° de manière instantanée pour maintenir l'orientation de la main robotique. Le résultat peut être spectaculaire et avoir des effets inverses sur le bras, la main et le processus industriel.

Il est nécessaire d'éviter les singularités en robotique. Les consignes de sécurité de l'« American National Standard for Industrial Robots and Robot Systems » les définissent comme « une situation provoquée par l'alignement colinéaire de deux axes de robot (ou plus) qui ont pour résultat des déplacements et des vitesses du robot imprévisibles »[6].

Le blocage de cardan en mathématiques appliquées[modifier | modifier le code]

Le problème du blocage de cardan apparaît lorsque l'on utilise les angles d'Euler dans une application des mathématiques, par exemple dans un logiciel (modélisation 3D, système de navigation embarqué, jeu vidéo, métavers…).

Les angles d'Euler offrent une description numérique d'une rotation quelconque de l'espace à trois dimensions au moyen de trois nombres.

Pour faire une comparaison, toutes les translations peuvent se décrire au moyen de trois nombres x, y et z comme la succession de trois mouvements en ligne droite le long de trois axes perpendiculaires X, Y et Z. Il en va de même pour les rotations, toutes les rotations peuvent se décrire au moyen de trois nombres \alpha, \beta et \gamma, comme la succession de trois mouvements de rotation autour de trois axes perpendiculaires l'un avec le suivant. Cette ressemblance entre les coordonnées linéaires et les coordonnées angulaires rend les angles d'Euler très intuitifs, mais malheureusement ils souffrent du problème du blocage de cardan.

Perte d'un degré de liberté avec les angles d'Euler[modifier | modifier le code]

Une rotation de l'espace à trois dimensions peut se représenter numériquement au moyen de matrices de plusieurs manières. Une de ces représentations est :

\begin{align}
R &= \begin{bmatrix}
\cos \alpha & -\sin \alpha & 0 \\
\sin \alpha & \cos \alpha & 0 \\
0 & 0 & 1 \end{bmatrix} \begin{bmatrix}
1 & 0 & 0 \\
0 & \cos \beta & -\sin \beta \\
0 & \sin \beta & \cos \beta \end{bmatrix} \begin{bmatrix}
\cos \gamma & -\sin \gamma & 0 \\
\sin \gamma & \cos \gamma & 0 \\
0 & 0 & 1 \end{bmatrix} \end{align}

avec \alpha et \gamma contraints dans l'intervalle [-\pi ; \pi] et \beta contraint dans l'intervalle [0 ; \pi].

Examinons par exemple ce qui se passe lorsque \beta = 0. Comme \cos \, 0 = 1 et \sin \, 0 = 0, l'expression ci-avant devient égale à :

\begin{align}
 R &= \begin{bmatrix}
\cos \alpha & -\sin \alpha & 0 \\
\sin \alpha & \cos \alpha & 0 \\
0 & 0 & 1 \end{bmatrix} \begin{bmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1 \end{bmatrix} \begin{bmatrix}
\cos \gamma & -\sin \gamma & 0 \\
\sin \gamma & \cos \gamma & 0 \\
0 & 0 & 1 \end{bmatrix} \end{align}

La seconde matrice est la matrice identité et n'a pas d'effet sur le produit. Si l'on multiplie la première matrice par la troisième, on obtient :

\begin{align}
 R &= \begin{bmatrix}
\cos \alpha \cos \gamma -\sin \alpha \sin \gamma & -\cos \alpha \sin \gamma - \sin \alpha \cos \gamma & 0 \\
\sin \alpha \cos \gamma + \cos \alpha \sin \gamma & -\sin \alpha \sin \gamma + \cos \alpha \cos \gamma & 0 \\
0 & 0 & 1 \end{bmatrix} \end{align}

Enfin, en appliquant les formules de trigonométrie :

\begin{align}
 R &= \begin{bmatrix}
\cos ( \alpha + \gamma ) & -\sin (\alpha + \gamma) & 0 \\
\sin ( \alpha + \gamma ) & \cos (\alpha + \gamma) & 0 \\
0 & 0 & 1 \end{bmatrix} \end{align}

Changer les valeurs de \alpha et de \gamma dans la matrice ci-avant a le même effet : l'angle de rotation \alpha + \gamma change, mais l'axe de rotation reste dans la direction Z. La dernière colonne et la dernière ligne de la matrice ne changeront pas : un degré de liberté a été perdu.

La seule solution pour que \alpha et \gamma recommencent à jouer des rôles différents est d'éloigner \beta de la valeur 0.

Un problème semblable apparaît lorsque \beta = \pi.

On peut choisir d'autres conventions pour représenter une rotation avec une matrice au moyen d'angles d'Euler que la convention Z-X-Z ci-avant et on peut également choisir d'autres intervalles de variation pour les angles, mais dans tous les cas, il y a au moins une valeur pour laquelle un degré de liberté est perdu.

On remarquera que le problème du blocage de cardan ne rend pas les angles d'Euler « faux » (ils continuent à jouer leur rôle de système de coordonnées), mais les rend mal adaptés à certaines applications pratiques.

Variantes aux angles d'Euler[modifier | modifier le code]

La solution au problème du blocage de cardan est de modéliser les rotations dans l'espace non pas à l'aide des angles d'Euler, mais en utilisant une rotation autour d'un axe quelconque. Cette rotation peut être modélisée sous forme de quaternions ou à l'aide de matrices de rotation.

Un quaternion est un quadruplet (s\ ;\ x\ ;\ y\ ;\ z) qui représente dans le cas général une similitude géométrique. Si la relation s^{2} + x^{2} + y^{2} + z^{2} = 1 est vérifiée, alors le quaternion peut être utilisé pour représenter une rotation. D'un point de vue pratique, une rotation d'angle \mathbf{\theta} autour de l'axe dirigé par un vecteur unitaire \vec{u}\begin{bmatrix}u_x\\ u_y\\ u_z\end{bmatrix} est représentée par le quaternion

(\cos (\theta / 2)\ ;\ u_x \cdot \sin (\theta / 2)\ ;\ u_y \cdot \sin (\theta / 2)\ ;\ u_z \cdot \sin (\theta / 2) ).

Si l'on préfère travailler avec les matrices, la formule donnant la matrice à partir du vecteur unitaire dirigeant son axe de rotation et de l'angle de rotation est

R = \begin{pmatrix}
u_x^2+(1-u_x^2)c   & u_x u_y(1-c)-u_zs & u_x u_z(1-c)+u_ys \\[3pt]
u_x u_y(1-c)+u_zs & u_y^2+(1-u_y^2)c & u_y u_z(1-c)-u_xs \\[3pt]
u_x u_z(1-c)-u_ys & u_y u_z(1-c)+u_xs & u_z^2+(1-u_z^2)c
\end{pmatrix}

c = \cos\theta, \qquad s = \sin\theta

(Pour une comparaison des performances de ces deux représentations, voir Quaternions et rotation dans l'espace#Comparaisons de performances avec d'autres méthodes de rotation.)

Pourquoi n'y a-t-il pas de problème équivalent à celui du blocage de cardan en utilisant une seule rotation ? Cela peut s'expliquer de manière intuitive par le fait que l'on accomplit la rotation en un seul coup (« veuillez tourner de \mathbf{\theta} radians autour de l'axe porté par le vecteur \vec{u} »), tandis que les angles d'Euler sont composés de trois rotations successives. Avec trois axes de rotation, deux d'entre eux peuvent se retrouver alignés, tandis qu'un seul axe ne pourra pas poser de tel problème.

Notes et références[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]