# Blocage de cardan

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. 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
### Exemple

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

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) 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.

### Le blocage de cardan à bord d'Apollo 11

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. 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é :
   « À 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

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), en cas d'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 ».

## Le blocage de cardan en mathématiques appliquées

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

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{aligned}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{aligned}}$
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{aligned}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{aligned}}$
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{aligned}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{aligned}}$
Enfin, en appliquant les formules de trigonométrie :
    ${\begin{aligned}R&={\begin{bmatrix}\cos(\alpha +\gamma )&-\sin(\alpha +\gamma )&0\\\sin(\alpha +\gamma )&\cos(\alpha +\gamma )&0\\0&0&1\end{bmatrix}}\end{aligned}}$
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

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_{z}s&u_{x}u_{z}(1-c)+u_{y}s\\[3pt]u_{x}u_{y}(1-c)+u_{z}s&u_{y}^{2}+(1-u_{y}^{2})c&u_{y}u_{z}(1-c)-u_{x}s\\[3pt]u_{x}u_{z}(1-c)-u_{y}s&u_{y}u_{z}(1-c)+u_{x}s&u_{z}^{2}+(1-u_{z}^{2})c\end{pmatrix}}$
où
    $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.