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.