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