Modèle géométrique d'un robot mobile à roues différentielles

Le modèle géomètrique que nous étudions ici est une transformation mathèmatique dont les entrées sont les vitesses angulaires des roues (généralement mesurées avec des codeurs) et la sortie est la pose (position et orientation) du robot mobile dans son espace de travail.

Définition du problème

Nous nous intéresserons ici aux robots à roues différentielles. Ce type de robot est constitué de deux roues alignées sur le même axe. Ci-dessous, se trouve une illustration de Rat-Courci, un petit robot à roues différentielles conçu pour le concours Micromouse :

Rendu 3D CAD d'un robot mobile à roues différentielles

Le diamètre des roues est donné par \(D=2.r\) où \(r\) est le rayon. La distance entre le centre du robot et les roues est donné par \(l\), la distance entre les roues est alors donnée par \(2 \times l \) conformément à l’illustration suivante :

Dimensions et parametres d'un robot mobile à roues différentielles

Nous supposerons les paramètres suivants connus :

Vue de dessus du robot mobile, paramètres et repères

Notre but est de calculer la pose du robot définie selon la figure ci-dessus :

Calcul des déplacements élémentaires

Pour commencer, calculons la vitesse linéaire de chaque roue :

$$ \begin{array}{r c l} v_l &=& r.\omega_l \\ v_r &=& r.\omega_r \end{array} $$

La vitesse moyenne du robot est alors donnée par :

$$ v_{robot}=\frac {v_l + v_r} {2} $$

TLa vitesse du robot peut être projetée le long des axes \(x\) et \(y\) :

$$ \begin{array}{r c l} \Delta_x &=& v_{robot}.cos(\psi) &=& \frac {r}{2} [ \omega_l.cos(\psi) &+& \omega_r.cos(\psi) ] \\ \Delta_y &=& v_{robot}.sin(\psi) &=& \frac {r}{2} [ \omega_l.sin(\psi) &+& \omega_r.sin(\psi) ] \end{array} $$

La vitesse angulaire du robot est calculée par la différence des vitesses linéaires des roues :

$$ 2.l.\Delta_{\Psi}=r.\omega_r - r.\omega_l$$

L’équation précédente peut être reformulée :

$$ \Delta_{\Psi}=\frac {r.\omega_r - r.\omega_l} {2.l} $$

Le déplacement élémentaire du robot est donnée par la relation suivante :

$$ \left[ \begin{matrix} \Delta_x \\ \Delta_y \\ \Delta_{\Psi} \end{matrix} \right]= \frac{r}{2} \times \left[ \begin{matrix} cos(\psi) & cos(\psi) \\ sin(\psi) & sin(\psi) \\ \frac{1}{l} & \frac{-1}{l} \end{matrix} \right] \times \left[ \begin{matrix} \omega_r \\ \omega_l\end{matrix} \right] $$

Position absolue

La position absolue peut être calculée grâce aux équations suivantes :

$$ \begin{array}{r c l} x_{i}&=&x_{i-1}+\Delta_x \\ y_{i}&=&y_{i-1}+\Delta_y \\ \Psi_{i}&=&\Psi_{i-1}+\Delta_{\Psi} \end{array} $$

Bien sûr, ce modèle a quelques limitations. Le résultat est fortement dépendant de la précision de la mécanique du robot (ajustements, diamètre des roues, mesures...). Nous supposons ici qu’il n’y a pas de glissement, ce qui n’est pas vrai en pratique. Nous supposons également que la fréquence d’échantillonnage est suffisamment rapide pour garantir que \(\Delta_x\), \(\Delta_y\) et \(\Delta_\Psi\) pourront être considérés comme des déplacements élémentaires.

Voir aussi


Dernière mise à jour : 13/04/2019