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.

Nous avons décidé de dépouiller le programme de tout ce qui n'était pas<br />

ess<strong>en</strong>tiel, <strong>en</strong>suite d'adapter le squel<strong>et</strong>te ainsi obt<strong>en</strong>u <strong>pour</strong> que cela<br />

corresponde aux robots e-pucks <strong>et</strong> <strong>en</strong>fin de rajouter des classes <strong>pour</strong> obt<strong>en</strong>ir<br />

un <strong>simulateur</strong> fonctionnel.<br />

La première étape a donc été de supprimer toutes les classes qui ne<br />

représ<strong>en</strong>tai<strong>en</strong>t pas une fonctionnalité ess<strong>en</strong>tielle des robots. Nous avons<br />

comm<strong>en</strong>cé par tout ce qui concernait la "common interface". C<strong>et</strong>te classe<br />

perm<strong>et</strong> à l'utilisateur de faire facilem<strong>en</strong>t correspondre le code écrit <strong>pour</strong> les<br />

simulations <strong>et</strong> le code qu'il faut écrire <strong>pour</strong> programmer les vrais robots.<br />

Ensuite, nous avons supprimé bon nombre de sous-classes des classes<br />

génériques. Par exemple, nous avons supprimé toutes les sous-classes<br />

représ<strong>en</strong>tant les différ<strong>en</strong>ts capteurs (proximité, son, lumière, caméra, …), ces<br />

sous-classes héritant de la classe générique de tous les capteurs (appelée<br />

CS<strong>en</strong>sor). Ce travail a été réalisé <strong>pour</strong> les capteurs, les activateurs, les<br />

contrôleurs, les s<strong>et</strong>up expérim<strong>en</strong>taux <strong>et</strong> les ém<strong>et</strong>teurs.<br />

Enfin, <strong>pour</strong> clore c<strong>et</strong>te étape de "squel<strong>et</strong>tisation", nous avons <strong>en</strong>levé<br />

toutes les classes excéd<strong>en</strong>taires restantes. Cela compr<strong>en</strong>ait tout ce qui<br />

concernait l'évolution artificielle (populations, individus, fitness functions)<br />

ainsi que la gestion des argum<strong>en</strong>ts <strong>et</strong> de la communication <strong>en</strong>tre robots.<br />

La deuxième étape a consisté <strong>en</strong> la mutation proprem<strong>en</strong>t dite vers le<br />

rôle de <strong>simulateur</strong> de robots e-pucks <strong>et</strong> non plus de robots S-bots. Dans<br />

c<strong>et</strong>te optique, le premier travail a été de r<strong>et</strong>irer la notion de swarm-bot. En<br />

eff<strong>et</strong>, dans TwoDee, les obj<strong>et</strong>s de type S-bot n'étai<strong>en</strong>t pas utilisés<br />

directem<strong>en</strong>t mais ils étai<strong>en</strong>t groupés par swarm-bot. Un swarm-bot est une<br />

structure qui représ<strong>en</strong>te un <strong>en</strong>semble de robots. Cela signifie que même un<br />

seul S-bot devait être créé au sein <strong>d'un</strong> swarm-bot. Il est aisé de concevoir<br />

les impacts que cela pouvait avoir au sein du <strong>simulateur</strong> : tous les obj<strong>et</strong>s qui<br />

devai<strong>en</strong>t communiquer avec des S-bots devai<strong>en</strong>t d'abord <strong>en</strong> récupérer le<br />

swarm-bot associé avant de pouvoir échanger des messages avec le robot<br />

proprem<strong>en</strong>t dit. C<strong>et</strong>te notion de groupe de robot a dû être r<strong>et</strong>irée dans<br />

l'<strong>implém<strong>en</strong>tation</strong> de Twodeepuck <strong>en</strong> raison de l'abs<strong>en</strong>ce de pince <strong>et</strong> donc de<br />

l'abs<strong>en</strong>ce de possibilité de créer des chaînes ou des groupes d'e-pucks.<br />

27

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

Saved successfully!

Ooh no, something went wrong!