Comment symétriser les déplacements?

Pour Eurobot, il est demandé aux équipes de prévoir un changement de couleur rapidement : changer de coté de la table.

En effet chaque année, quelque soit le règlement, le principe du concours est identiques : 2 équipes sont sur une table totalement symétrique. Le robot doit donc être capable de commencer le match à Droite comme à Gauche… sans avoir à écrire un nouveau code pour chaque configuration.

Pour résoudre ce problème de symétrie, l’idée est de la prendre en compte directement dans le programme qui gère les déplacements (cf.  : Asservissement), de façon à ce que tous les autres programmes ne soit pas impactés par cette variable « couleur » (sous condition d’avoir un robot symétrique).

Alors comment faire pour « tromper » le robot sur sa position s’il est du coté symétrique (en orange dans l’exemple)?

Si on est orange on veut changer le repère comme ceci :

Du point de vue de la table, il n’y a que le x qui change. Mais ce qui nous intéresse c’est le robot,  qu’es ce que ca change pour lui ?

Oui le robot se déplace en polaire (cf. Odométrie). Alors pour atteindre le point A (et point A’ en symétrique) :

  • En vert, le robot doit tourner de « α » et avancer de « d »
  • En orange (symétrie), le robot doit tourner de « α’ » et avancer de « d’ »

On constate que d=d’. Le seul déplacement qui change est donc la rotation, un simple changement de signe : α = -α’.

Alors comment ca se passe dans le code ? Rien de plus simple en fait : on change le signe de la rotation à deux endroits :

1/ Symétrie de l’odométrie :

Petit rappel de l’algorithme d’odométrie :

Pour symétriser l’odométrie, on change alors l’addition de l’angle, en soustraction :

2/ Symétrie de la commande :

Petit rappel de l’algorithme de commande :

Là aussi c’est très simple : il suffit de multiplier par « -1 » la consigne en angle (changement du signe avant d’appliquer le PID)

Ce souci de symétrie a été réglé en 2min. Rien besoin de plus, sauf si le robot est asymétrique : dans ce cas, il faudra prévoir d’ajouter de l’angle dans les coordonnées du programme de stratégie et des chorégraphies.

Conclusion : il faut toujours essayer de prévoir un robot le plus symétrique possible… ca simplifie grandement les programmes par la suite.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *