Vous êtes ici : Home > Fiches Techniques > Modéle géométrique

MODELE GEOMETRIQUE

Modèle géométrique, derrière ce nom vulgaire, ce cache la méthode de localisation la plus courante. Généralement pour connaitre sa position, un robot compte ses tours de roues (odométrie) et estime sa position à partir de cette information. Le modèle géométrique donne la transfomation qui permet de passer des vitesses angulaires des roues à la vitesses instantanée du robot. Cette fiche technique présente le modèle géométrique d'un robot différentiel (type char ou pelleteuse). Cette transformation se passe en 3 étapes. Nous allons calculer la vitesse du milieu des deux roues. Ensuite, nous calculerons la vitesse de n'importe quel point du robot, et enfin, à partir des vitesses nous calculerons la position.

 
 
oModéle géométrique du milieu des roues

Voici deux schémas du robot, respectivement vue de dessus et vue de côté :

Avec :

  • 2.l : distance entre les roues
  • r : rayon de la roue
  • Vd, Vg : vitesse des roues droite et gauche
  • x, y : position du robot
  • Psi : orientation du robot

Pour commencer, nous allons calculer la vitesse linéaire des roues (Vrd et Vrg) :

Nous pouvons en déduire la vitesse moyenne du centre des roues :

Ensuite, pour ramener cette vitesse dans le repère (O,X,Y), nous allons la décomposer en X et en Y :

Il ne nous reste plus qu'a calculer la vitesse angulaire du robot. Elle nous est donnée par la relation suivante :

Avec Psi pris dans le sens trigonométrique et la vitesse angulaire du robot. En isolant on obtient la relation suivante :

Nous avons donc notre modéle géométrique, il ne nous reste plus qu'a le mettre sous forme matricielle :

 
oModèle géométrique du robot
 

Parfois, le centre du robot n'est pas le milieu des deux roues. Ou alors, le robot est équipé d'un outil, et c'est la position de cet outil qui nous interresse. Il est alors possible de calculer le modèle géométrique en prenant en compte cette nouvelle contrainte. Supposons que le point du robot qui nous interresse est décalé de d1 et d2 :

 

Voici la transformation (en position) qui permet de passer du centre des roues au point P'.

En dérivant ces relations, on obtient les vitesse au point P'

Sous forme matricielle, nous obtenons :

Pour obtenir le modèle au point P, il suffit de recommencer le changement de repére de P' à P :

 
oCalcul de la position
 

Une fois que l'on connait les vitesses instantannées, on peut facilement calculer la position du robot, en intégrant Vx, Vy et . Pour intégrer ces valeurs, il suffit de les sommer depuis le début :

Plutôt que de calculer la somme à chaque cycle, on ajoute le nouvelle incrément à la dernière position connue. Pour vérifier toutes ces équations, nous avons réalisé ce petit programme sous Matlab. Il calcule la trajectoires des trois point en fonction de la commande qui est appliquée sur les roues. La courbe ci-dessous représente cette trajectoire. Le milieu des roues est en bleu, le point intermédiaire P' est en rouge, et enfin la trajectoire du point P est en noir.

Ici, en simulation la trajectoire est parfaite. Mais la réalité est tout autre : les roues pattines, on ne connait pas les distances exactes etc ... Et comme on intégre une vitesse pour en déduire une position, on intégre aussi l'erreur, ce qui veux dire que l'erreur s'accumule en fonction du temps. Pour pallier à ce problème voici quelques solutions :

  • Faire un petit trajet
  • Se recaller
  • Avoir un système de localisation absolue

Ce modèle est lourd à implémenter dans un robot, mais il peut aussi servir de base à un simulateur : sur l'un des robot de l'ancr, ce modèle sert à générer les trajectoires du robot en simulation. Ensuite, nous n'avons plus qu'a transférer les commandes des roues dans un microcontrolleur et le tour est joué !

oLiens
 
Une page sur les codeurs et l'odométrie (Merci Frédéric)
oContact
 
Pour toutes questions envoyer moi un mail: Sinclair