FastSlam je simultání lokalizace a mapování pomocí částic. Částice představují domnělou polohu robota a současně předpokládanou mapu pro tuto polohu. Každá částice obsahuje polohu robota a mapu.
Pro ukázkový program jsem použil jednoduchého robota, který se pohybuje po přímce s odometrií a senzorem vzdálenosti dveří.
Proto si robot zaznamenává aktuální pozici na přímce a mapu nalezených dveří. Při každém měření jsou všechny částice ohodnoceny podle měření k mapě. Následně je vybraná podmnožina částic náhodně podle jejich váhy. Tyto částice přežijí do dalšího kroku ostatní jsou zahozeny. Jednodušší verze dokáže rozeznat dveře a přiřadí jim unikátní identifikátor. Složitější dveře nerozezná takže robot občas nepřiřadí měření ke správným dveřím.
Parametry robota
Videa:
Kod:
Data:
Soubory obsahují vždy na jedné řádce jedno měření. Měření se skládá s odometrické informace, kterou následují změřená data ze senzoru dveří. Jednodušší verze má vždy u měření dveří identifikátor dveří. Složitější tento identifikátor postrádá.