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
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