13.07.2013 Views

Conception et implémentation en C++ d'un simulateur pour ... - CoDE

Conception et implémentation en C++ d'un simulateur pour ... - CoDE

Conception et implémentation en C++ d'un simulateur pour ... - CoDE

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.2.1.3. Les Makefile<br />

Le dernier point important <strong>pour</strong> un utilisateur désireux de créer sa<br />

propre expéri<strong>en</strong>ce dans Twodeepuck est la gestion des Makefile. Ceux-ci<br />

définiss<strong>en</strong>t la façon dont l'exécutable make va compiler le programme.<br />

Lorsque l'utilisateur aura créé ses propres fichiers décrivant son s<strong>et</strong>up<br />

expérim<strong>en</strong>tal <strong>et</strong> son contrôleur, il doit signaler au compilateur qu'il faut <strong>en</strong><br />

t<strong>en</strong>ir compte. Si ce n'est pas fait, le compilateur échoue dans sa compilation<br />

<strong>en</strong> annonçant qu'il ne trouve pas les fichiers voulus.<br />

Il convi<strong>en</strong>t alors de r<strong>en</strong>seigner les fichiers source dans le fichier<br />

Makefile.am du répertoire où ils ont été créés <strong>et</strong> de r<strong>en</strong>seigner les fichiers<br />

d'<strong>en</strong>-tête dans le Makefile.am à la racine de l'arboresc<strong>en</strong>ce du programme.<br />

4.3. Tâches réalisées avec Twodeepuck<br />

Jusqu'à prés<strong>en</strong>t, le <strong>simulateur</strong> a déjà servi à modéliser plusieurs<br />

expéri<strong>en</strong>ces de robotique.<br />

L'évitem<strong>en</strong>t L'évitem<strong>en</strong>t d'obstacles d'obstacles : c<strong>et</strong>te expéri<strong>en</strong>ce, très simple, consiste à faire<br />

évoluer plusieurs robots <strong>en</strong> leur implém<strong>en</strong>tant une logique visant à ne pas<br />

provoquer de collisions. Ceci est concrètem<strong>en</strong>t réalisé à l'aide <strong>d'un</strong> contrôleur<br />

qui définit les mouvem<strong>en</strong>ts des robots comme suit. Si il n'y a pas d'obstacle<br />

détecté, on applique une vitesse prédéfinie id<strong>en</strong>tique aux deux roues. Si un<br />

ou plusieurs obstacles sont détectés, on détermine de quel côté il y a le plus<br />

de danger <strong>et</strong> on fait tourner le robot de l'autre côté. Afin d'affiner ce<br />

comportem<strong>en</strong>t, il est possible de jouer sur la façon dont l'évitem<strong>en</strong>t doit se<br />

faire : tourner sur place (vitesses des roues égales <strong>en</strong> valeur absolue mais<br />

opposées <strong>en</strong> signe) ou décrire une courbe. Le choix de la solution est<br />

fonction des valeurs des capteurs : plus ceux-ci r<strong>en</strong>seign<strong>en</strong>t un danger<br />

proche, plus le virage sera serré.<br />

49

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!