4 septembre 2022
Nous avons vu dans les articles précédents (partie 1 et partie 2) comment déterminer le mouvement d’un robot holonome à partir de la rotation de ses moteurs.
Pour rappel, notre robot ressemble à ceci avec les roues à équidistance du centre du robot, chacune à 120° l’une de l’autre :
Maintenant que nous avons déterminé la vitesse du robot (en x, y) et sa rotation (en z), nous souhaitons faire l’inverse : obtenir la commande des moteurs en fonction des mouvements désirés du robot.
Les équations que nous avions obtenues étaient les suivantes :
$$\left\{\begin{array}{l} V_{Ox} = \frac13\times V_{AF} + \frac13\times V_{BF} - \frac23\times V_{CF}\\ V_{Oy} = -\frac{\sqrt{3}}{3}\times V_{AF} +\frac{\sqrt{3}}{3}\times V_{AB} \\ \omega_z = -\frac{1}{3\times d} V_{AF} -\frac{1}{3\times d} V_{BF} -\frac{1}{3\times d} V_{CF} \end{array} \right. $$
Contrairement au système d’équations de l’article précédent, où seule deux des inconnues nous intéressaient, ici nous souhaitons déterminer toutes les inconnues. Donc point de grosse réflexion, nous appliquons la règle de Cramer, oui, encore une fois... Voici nos matrices :
$$AX=\Lambda$$
$$ A= \left[ \begin{array}{ccc} \frac13 & \frac13 & -\frac23 \\ -\frac{\sqrt{3}}{3} & \frac{\sqrt{3}}{3} & 0\\ -\frac{1}{3d} & -\frac{1}{3d} &-\frac{1}{3d} \end{array} \right]$$
$$ X= \left[ \begin{array}{c} V_{AF} \\ V_{BF} \\ V_{CF} \end{array} \right]$$
$$ \Lambda= \left[ \begin{array}{c} V_{Ox} \\ V_{Oy} \\ \omega_z \end{array} \right]$$
Le calcul du déterminant de A donne :
$$ \det(A) = \frac{-2}{3}\frac{\sqrt{3}}{9 d} -\frac{2}{3}\frac{\sqrt{3}}{9 d} -\frac{1}{3d}\frac{\sqrt{3}}{9} -\frac{1}{3d}\frac{\sqrt{3}}{9} $$
$$ \det(A) = - \frac{2\sqrt{3}}{9d} $$
Contrairement aux équations des articles précédents, où seule la rotation et la vitesse en A nous intéressaient, ici nous souhaitons déterminer les trois inconnues. C’est parti pour construire A1 en remplaçant la première colonne de A par le vecteur Λ :
$$ A_1= \left[ \begin{array}{ccc} V_{Ox} & \frac13 & -\frac23 \\ V_{Oy} & \frac{\sqrt{3}}{3} & 0\\ \omega_z & -\frac{1}{3d} &-\frac{1}{3d} \end{array} \right]$$
Détermination du déterminant de A1 :
$$ \det(A_1) = \frac{2}{9 d} V_{Oy} +\frac{2 \sqrt{3}}{9} \omega_z -\frac{\sqrt{3}}{9 d} V_{Ox} +\frac{1}{9d}V_{Oy} $$
$$ \det(A_1) = -\frac{\sqrt{3}}{9 d} V_{Ox} +\frac{3}{9 d} V_{Oy} +\frac{2 \sqrt{3}}{9} \omega_z $$
$$ x_1 = \frac{\det(A_1)}{\det(A)} = \frac{1}{2}V_{Ox} - \frac{\sqrt3}{2}V_{Oy}- d \times \omega_z $$
D’où la solution :
$$ V_{AF} = \frac{1}{2}V_{Ox} - \frac{\sqrt{3}}{2}V_{Oy} - d \times \omega_z $$
En appliquant la même méthode, nous déterminons VBF et VCF :
$$ V_{BF} = \frac{1}{2}V_{Ox} + \frac{\sqrt{3}}{2}V_{Oy} - d \times \omega_z $$
$$ V_{CF} = - V_{Ox} - d \times \omega_z $$
Ces équations vont permettre d’asservir le robot sur une trajectoire.