Een robot voor de Startel RoboChallenge 2004 - Kunstmatige ...
Een robot voor de Startel RoboChallenge 2004 - Kunstmatige ...
Een robot voor de Startel RoboChallenge 2004 - Kunstmatige ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
3.2 Lokalisatie<br />
Drie verschillen<strong>de</strong> lokalisatiemetho<strong>de</strong>n<br />
Voor <strong>de</strong> wedstrijd is het nodig om een aantal elementen te lokaliseren. Ten eerste<br />
wil<strong>de</strong>n we <strong>de</strong> positie van <strong>de</strong> <strong>robot</strong> weten en ten twee<strong>de</strong> wil<strong>de</strong>n we <strong>de</strong> positie van <strong>de</strong><br />
balletjes weten. Hier<strong>voor</strong> hebben we naar 3 verschillen<strong>de</strong> lokalisatiemetho<strong>de</strong>n gekeken,<br />
Monte Carlo lokalisatie, grid-based Markov lokalisatie en een Kalman filter.<br />
Monte Carlo lokalisatie:<br />
Met het Monte Carlo lokalisatiealgoritme neem je een aantal willekeurige posities waar<br />
<strong>de</strong> <strong>robot</strong> kan zijn. Voor elke positie reken je dan uit wat <strong>de</strong> kans is dat <strong>de</strong> <strong>robot</strong> daar<br />
daadwerkelijk staat aan <strong>de</strong> hand van waarnemingen. <strong>Een</strong> tijdstap later neem je <strong>de</strong><br />
posities die een hoge waarschijnlijkheid had<strong>de</strong>n. Deze posities verplaats je volgens het<br />
beweging en sensor mo<strong>de</strong>l. Rondom <strong>de</strong>ze nieuwe posities neem je een aantal<br />
willekeurige posities.<br />
Op <strong>de</strong>ze manier krijg je een puntenwolk die zich rondom <strong>de</strong> <strong>robot</strong> <strong>voor</strong>beweegt. Als <strong>de</strong><br />
positie van <strong>de</strong> <strong>robot</strong> aan <strong>de</strong> hand van <strong>de</strong> waarnemingen nauwkeuriger bekend is zal<br />
<strong>de</strong>ze puntenwolk compact zijn. Als <strong>de</strong> waarnemingen niet goed in overeenstemming zijn<br />
met <strong>de</strong> locatie van <strong>de</strong> puntenwolk zal <strong>de</strong> puntenwolk een groter gebied gaan bestrijken<br />
en eventueel zelfs verplaatsen.<br />
Dit is een robuust algoritme waar een beperkte rekentijd <strong>voor</strong> nodig is. Dit algoritme kan<br />
het ‘kidnapped <strong>robot</strong> problem’ oplossen. Dit ‘kidnapped <strong>robot</strong> problem’ houdt in dat<br />
iemand <strong>de</strong> <strong>robot</strong> optilt en op een willekeurige plaats weer neerzet. De <strong>robot</strong> is dus<br />
opeens verplaatst maar heeft hier zelf geen weet van. Meer informatie over het Monte<br />
Carlo algoritme is te vin<strong>de</strong>n in [2,3,5].<br />
Grid-based Markov lokalisatie:<br />
Bij het grid-based Markov lokalisatiealgoritme <strong>de</strong>el je <strong>de</strong> wereld op in een rooster. Elk<br />
vakje op dit rooster (cel) staat <strong>voor</strong> een bepaald gebied in <strong>de</strong> buitenwereld. Met elke<br />
waarneming kun je dan opnieuw berekenen wat <strong>de</strong> kans is dat <strong>de</strong> <strong>robot</strong> in elk gebied<br />
staat.<br />
Dit algoritme heeft als na<strong>de</strong>el dat <strong>de</strong> positie van <strong>de</strong> <strong>robot</strong> discreet is en niet continu.<br />
Hierdoor is het moeilijk <strong>de</strong> odometriewaarnemingen te verwerken. Wanneer je een hoge<br />
positienauwkeurigheid nastreeft kost dit algoritme veel rekentijd. Dit algoritme kan ook<br />
het ‘kidnapped <strong>robot</strong> problem’ oplossen. Meer informatie hierover in [5].<br />
Kalman filter:<br />
<strong>Een</strong> kalman filter representeert <strong>de</strong> positie van <strong>de</strong> <strong>robot</strong> als een normale ver<strong>de</strong>ling. De<br />
variantie van <strong>de</strong>ze normale ver<strong>de</strong>ling is omgekeerd evenredig hoe zeker je bent dat <strong>de</strong><br />
<strong>robot</strong> hier daadwerkelijk staat. <strong>Een</strong> nieuwe schatting aan <strong>de</strong> hand van een observatie uit<br />
<strong>de</strong> buitenwereld kan je representeren als een an<strong>de</strong>re normale ver<strong>de</strong>ling.<br />
Deze twee normale ver<strong>de</strong>lingen kun je vervolgens samenvoegen met behulp van Bayes’<br />
procedure <strong>voor</strong> multivariate normale ver<strong>de</strong>lingen. Hierdoor ontstaat een nieuwe normale<br />
ver<strong>de</strong>ling die <strong>de</strong> positie van <strong>de</strong> <strong>robot</strong> representeert. Deze ver<strong>de</strong>ling heeft een kleinere<br />
variantie en een grotere zekerheid dan <strong>de</strong> vorige normale ver<strong>de</strong>lingen. Dit algoritme<br />
heeft meer moeite met het ‘kidnapped <strong>robot</strong> problem’. Meer hierover in [5,6].<br />
Voor <strong>de</strong> lokalisatie van <strong>de</strong> <strong>robot</strong> hebben we besloten om het Kalman filter te gebruiken.<br />
We weten namelijk <strong>de</strong> beginpositie van <strong>de</strong> <strong>robot</strong> en we kunnen <strong>de</strong> observaties makkelijk<br />
representeren als normale ver<strong>de</strong>lingen. Niemand raakt <strong>de</strong> <strong>robot</strong> aan tij<strong>de</strong>ns <strong>de</strong> wedstrijd<br />
dus kunnen we niet te maken krijgen met het ‘kidnapped <strong>robot</strong> problem’. Het Kalman<br />
filter gebruikt verreweg <strong>de</strong> minste rekentijd dus hou<strong>de</strong>n we meer rekentijd over <strong>voor</strong> <strong>de</strong><br />
7