Déplacement de rectangle dans un plan

Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
dmp32
Messages: 2
Enregistré le: 22 Mai 2009, 17:10

déplacement de rectangle dans un plan

par dmp32 » 22 Mai 2009, 17:20

Bonjour, je réalise en ce moment un simulateur de robot évolutant dans un espace en 2 dimensions.
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.



busard_des_roseaux
Membre Complexe
Messages: 3151
Enregistré le: 24 Sep 2007, 13:50

par busard_des_roseaux » 23 Mai 2009, 07:26

dmp32 a écrit: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 ?


Bonjour,

il est possible qu'il manque une quantité représentant l'inertie dans tes équations,ce qui fait que le robot tourne trop vite.

peut être que son comportement sera plus lisse si on introduit
des dérivées d'ordre supérieur à la vitesse (accélération,dérivée troisième..)

Quoiqu'il en soit, un comportement réaliste du robot ne peut venir
que d'équations tirées de la physique. donc discute aussi avec des physiciens.

Après , on peut s'amuser à introduire un peu d'aléa, écrire des robots au comportement probabiliste, avec du flou quantique,etc..

dmp32
Messages: 2
Enregistré le: 22 Mai 2009, 17:10

par dmp32 » 23 Mai 2009, 12:06

busard_des_roseaux a écrit:il est possible qu'il manque une quantité représentant l'inertie dans tes équations,ce qui fait que le robot tourne trop vite.

peut être que son comportement sera plus lisse si on introduit
des dérivées d'ordre supérieur à la vitesse (accélération,dérivée troisième..)

Quoiqu'il en soit, un comportement réaliste du robot ne peut venir
que d'équations tirées de la physique. donc discute aussi avec des physiciens.



Bonjour,
tout d'abord, merci de ta réponse.
Désolé d'avoir oublié de signaler ce détail, mais je traite des questions d'inertie plus en amont, et la vitesse dont je parle dans le code est la résultante de tous les calculs comprenant l'inertie, l'application des forces etc... le code ne s'occupe dont que de l'etape finale : le deplacement du robot.
Par ailleurs, je pense avoir localisé la source du problème, mais je ne vois toujours pas comment le résoudre.
Il se trouve que je fais tourner le robot autour de son centre, or ce n'est pas ainsi dans la réalité, de plus, je l'oriente dans la direction de son vecteur vitesse, par conséquent , une petite vitesse couplée à un angle non-négligeable entraine une rotation rapide du robot sur lui-même.

busard_des_roseaux a écrit:Après , on peut s'amuser à introduire un peu d'aléa, écrire des robots au comportement probabiliste, avec du flou quantique,etc..

Tu ne crois pas si bien dire :p
Le but de l'experience est en fait de simuler l'evolution d'une population de robots controlés par une IA à base de Réseaux de Neurones (des ensembles de neurones simulés), et une sélection naturelle est appliquée à chaque génération : le robot le moins performant reçoit une copie du 'cerveau' du plus performant, et tous les robots subissent une mutation aleatoire, sauf ce dernier, ce qui fait progresser globalement la qualité des comportements vis-a-vis d'un objectif fixé (apprendre a eviter des obstacles par exemple).
Au terme de l'experience, je compte inserer le reseau de neurones abouti dans un robot réel, muni des mêmes capteurs que dans la simulation et suivant le même comportement.

 

Retourner vers ✎✎ Lycée

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 72 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite