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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

obstacle, sa distance <strong>et</strong> son ori<strong>en</strong>tation par rapport à l'e-puck avec la valeur<br />

r<strong>en</strong>voyée par chacun des 8 capteurs. L'option choisie a donc été de travailler<br />

à l'aide de fichiers de sampling. Ces fichiers perm<strong>et</strong>t<strong>en</strong>t de connaître les<br />

valeurs des capteurs qu'un robot réel a r<strong>en</strong>voyé dans certaines situations<br />

connues de distance <strong>et</strong> d'ori<strong>en</strong>tation par rapport à un obstacle.<br />

Dans Twodeepuck, les capteurs m<strong>et</strong>t<strong>en</strong>t leur situation à jour à chaque<br />

pas de simulation. Afin de réaliser cela, il s'agit de récupérer tous les<br />

élém<strong>en</strong>ts de la simulation qui peuv<strong>en</strong>t être des obstacles pot<strong>en</strong>tiels : l'arène à<br />

cause de son bord <strong>et</strong> les autres e-pucks. S'<strong>en</strong> suit alors l'analyse de la<br />

situation des obstacles pot<strong>en</strong>tiels afin de déterminer s'il sont perçus ou non<br />

par les capteurs de proximité. Pour ceux qui le sont, l'étape suivante est<br />

d'aller consulter le fichier de sampling afin d'<strong>en</strong> extraire les données relatives<br />

à la situation r<strong>en</strong>contrée (couple distance-ori<strong>en</strong>tation). Les capteurs<br />

r<strong>en</strong>voi<strong>en</strong>t des valeurs d'autant plus grandes que l'obj<strong>et</strong> est proche, par<br />

conséqu<strong>en</strong>t, on stocke dans le vecteur des résultats les plus grandes valeurs<br />

r<strong>en</strong>contrées lors du pas de simulation <strong>en</strong> cours. Cela perm<strong>et</strong> de gérer avec<br />

simplicité les situations dans lesquelles un obstacle serait caché par un autre.<br />

En eff<strong>et</strong>, si l'obstacle caché est analysé <strong>en</strong> premier, les valeurs qu'il aura<br />

provoquées dans le vecteur de résultats seront inférieures à celles<br />

provoquées par l'obstacle qui le cache, vu que celui-ci est plus proche, <strong>et</strong><br />

seront donc supplantées. Si, <strong>en</strong> revanche, il est analysé <strong>en</strong> deuxième lieu, ses<br />

valeurs seront inférieures à celles de l'obstacle le cachant <strong>et</strong> ne seront donc<br />

pas écrites dans le vecteur de résultats.<br />

Le sampling des capteurs de proximité (décrit ci-après) a montré qu'il y<br />

avait des différ<strong>en</strong>ces significatives <strong>en</strong>tre les e-pucks. Les valeurs r<strong>en</strong>voyées<br />

par les capteurs de différ<strong>en</strong>ts e-pucks dans les mêmes situations sont assez<br />

différ<strong>en</strong>tes <strong>pour</strong> justifier le fait d'avoir fait autant de fois le sampling qu'il y a<br />

d'e-pucks.<br />

Enfin, la question s'est posée de savoir si il conv<strong>en</strong>ait ou non d'intégrer<br />

les fichiers de sampling dans l'exécutable du programme ou si ceux-ci<br />

restai<strong>en</strong>t des fichiers extérieurs. Chaque situation a ses avantages <strong>et</strong> ses<br />

inconvéni<strong>en</strong>ts. Ainsi, intégrer les fichiers de sampling dans l'exécutable<br />

perm<strong>et</strong> de ne pas avoir à déplacer les fichiers de sampling si on souhaite<br />

bouger l'exécutable. En revanche, cela ral<strong>en</strong>tit considérablem<strong>en</strong>t la<br />

33

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

Saved successfully!

Ooh no, something went wrong!