Le robot est représenté par un rectangle, avec deux roues avant directrices, et deux roues arriere motrices.
J'exécute cette opération toutes les secondes pour faire évoluer le robot dans le plan :
- Code: Tout sélectionner
nouvel_angle = angle_actuel + direction;
nouveau_x = -sin(nouvel_angle) * vitesse + centre_x;
nouveau_y = cos(nouvel_angle) * vitesse + centre_y;
vitesse : en m/s
réel, positif : avance, négatif : recul
nul : robot immobilisé
direction : orientation des roues avant ( en radians )
réel compris entre -pi/3 et pi/3
négatif : roues orientées vers la droite du robot
positif : roues orientées vers la gauche du robot
nul : roues droites
centre_x/y : coordonnées du centre du rectangle représentant le robot
nouvel_angle : la nouvelle orientation du robot
nouveau_x/y : la nouvelle position du centre du robot
J'ai imaginé ceci moi-même, et comme tout ce que j'imagine, c'est foireux car trop simple x).
En effet, à faible vitesse, et angle de pi/4 par exemple, le robot tourne sur lui-même tres rapidement, et n'a également pas un comportement attendu dans les virages.
Ais-je oublié un détail ? Auriez-vous des conseils à me donner pour réaliser ce petit simulateur ?
Merci d'avance.
PS : ce n'est pas spécialement urgent, je fais cela par plaisir uniquement.
