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