M1-IS étude de cas 2
Aide sur l'utilisation de mfc_gl
Objet :
Il s'agissait de compléter un programme (mfc_gl) qui permet de visualiser des robots en déplacement dans un environnement 3D.
Ce programme permet d'intégrer différents robots (Robots à 2 roues, à 4 roues, Khepera...) et de prévoir leur commande.
Raccoucis clavier :
- Concernant le déplacement de la caméra :
- VK_UP zpos-=CameraMoveStep; // s'éloigne de l'object visualisé
- VK_DOWN zpos+=CameraMoveStep; // s'approche de l'object visualisé
- VK_LEFT xpos-=CameraMoveStep; // mouvement latéraux...
- VK_RIGHT xpos+=CameraMoveStep;
- VK_PRIOR ypos-=CameraMoveStep;
- VK_NEXT ypos+=CameraMoveStep;
- W CameraMoveStep*=1.5f; // augmente les pas de mouvement de la caméra
- X CameraMoveStep/=1.5f; // diminue " " " : (on peut zoomer plus finement sur un robot)
- Z {
xrot+= 2.0f;
if (xrot>180) xrot-= 360.0f;
}
- S {
xrot-= 2.0f;
if (xrot<-180.0) xrot+= 360.0f;
}
- Q {
yrot+= 2.0f;
if (yrot>180) yrot-= 360.0f;
}
- D {
yrot-= 2.0f;
if (yrot<-180) yrot+= 360.0f;
- Tâches générales :
- A OnRunAnimate(); // Lance ou arrête l'animation : (intégration dans le temps : t+=dt;)
- T areteTransv=!areteTransv; // inutile
- R OnRunReset(); // remet chaque robot à sa position initiale.
Raccoucis souris :
On peut également utiliser la souris pour déplacer la vue.
Bouton gauche appuyé, le mouvement de la souris déplace le point de vision (triangle jaune au sol).
Bouton droit appuyé, le mouvement de la souris provoque des rotations autour le point de vision.

A l'issue du TP2
mfc_gl avec un TRobot4 et un TRobotK
TRobot4
Les flèches au sol permettent de visualiser la Force de traction, la force de frottement et la vitesse.
Cette version du programme mfc_gl dispose d'une classe TRobot4 qui comporte 4 roues dont celles du train avant peuvent tourner. On a rajouté une classe TRobotK qui représente le Khepera.
Lancer l'animation (touche 'A') puis jouer sur les touches du pavé numérique :
- La force de traction FT :
- '8' pour augmenter la force FT.
- '2' pour dimuner la force FT.
- '0' Forcer FT à 0.
- La direction (braquage) :
- '4' pour augmenter Delta : tourne à gauche.
- '6' pour dimuner Delta : tourne à droite.
- '5' Forcer Delta à 0.

Visualisation du TRobot4 avec les vecteurs représentant
la force de traction FT (bleu), la vitesse Vit (vert) et la force de frottement Ffr (rouge).
TRobotK
Les vitesses des roues du Khepera.
- Roue droite :
- '9' pour augmenter la vitesse de la roues droite.
- '3' pour dimuner la vitesse de la roues droite.
- '6' annule la vitesse de la roues droite.
- Roue gauche
- '7' pour augmenter la vitesse de la roues gauche.
- '1' pour dimuner la vitesse de la roues droite.
- '4' annule la vitesse de la roues droite.

Visualisation du TRobotK (à 2 roues commandées en vitesse) avec les vecteurs représentant
les vitesse de rotation des roues (bleu) et la vitesse Vit (vert) du khepera.
Le triangle jaune représente le point de vision au sol.
Dernière mise à jour : 7 septembre 2007