Simulace robotického vysavače
Název: Simulace robotického vysavače
Autor: Racj01 (talk) 23:45, 13 June 2021 (CET)
Nástroj: NetLogo
Metoda: Multiagentní
Contents
Definice problému
Simulace se bude věnovat simulaci robotického vysavače v různých místnostech domácnosti s různým rozložením. Budou zde vyzkoušeny různé algoritmy pro pohyb v prostoru a pro navigování kolem překážek. Od algoritmů s náhodným pohybem při styku s překážkou, po systematické algoritmy, které budou prostor procházet buď vertikálně nebo horizontálně.
Metoda
Simulace byla prováděna v nástroji NetLogo, jelikož se jednalo o jedinný vhodný nástroj pro tuto simulaci, aby bylo možné vizualizovat pohyb robota v prostředí a vytvářet překážky v daném prostředí.
Model
včetně parametrů, oborů hodnot, schémat, omezení modelu, apod. Popis musí být natolik detailní, aby podle něj bylo možné experiment zopakovat (a to samozřejmě i bez toho, že by byly k dispozici příslušné soubory s modelem). Model je postaven na simulační ploše o rozměru 50x50 s tím, že velikost robota se rovná právě jednomu poli na ploše. Průběh simulace je měřen podle jednotlivých kroků ("ticks"). Simulační plocha disponuje třemi různými rozloženími co se překážek týče a překážky jsou tvořeny poli s bílou barvou. Standardní povrch je pak tvořen hnědými poli, přičemž po přejezdu robota pole zesvětlají, signalizujíc, že daná pozice byla robotem vysána.
Agenti
Model obsahuje 2 typy agentů.
Robot
Představuje robotický vysavač, je reprezentován černým kolečkem na simulované ploše. Vlastnostmi tohoto agenta jsou:
- rychlost, která je stanndardně nastavena na 1
- typ algoritmu, který agent používá pro porhcázení prostoru
- startovní pozice
Překážky
Představuje překážky, které se nacházjí v prostoru a blokují robota v pohybu. V protoru jsou vyznačeny bílou barvou. Rozložení těchto agentů je dáno parametrem obstacles.
Parametry
Model je vybaven třemi paramtery, které lze měnit přímo z rozhraní simulace, ale uvnitř kódu se nachází několik dalších veličin, které ovlivňují průběh simulace a to například rychlost robota nebo stupeň otočení. Zde se budeme věnovat pouze těmto třem.
- Algorithm je parametr, který určuje chování robota v průběhu simulace. Na výbě jsou 4 možnosti.
- Randomized je algoritmus, při kterém se robot v prostoru ohybuje zcela náhodně. Robot se náhodně natáčí na pravou či levou stranu a při střetu s překážkou se otočí o 180°.
- Vertical je algoritmus, při kterém robot prochází prostor po vertikálách, pohybuje se tedy vždy shora dolů a naopak.
- Horizontal je podobný jako vertical, s tím že v tomto případě se robot pohybuje horizontálně, tedy z leva do prava a naopak.
- Advanced je poslední typ, u kterého se robot pohybuje vždy vstříc poli, které ještě v současném běhu nenavštívil.
- Obstacles je parametr, který určuje rozložení překážek v prostoru. Je rozdělen do tří úrovní.
- None znamená, že prostor neobsahuje žádné překážky
- Simple znamená, že se v prostoru vyskytují 4 překážky v pevně daných pozicích
- Complex představuje nejtěžší úroveň překážek v modelu. Překážky jsou tvořeny tak, aby bylo obtížnější kolem nich navigovat robota.
- Start je parametr, který určuje startovní pozici robota
- Corner, robot je umístněn v levém dolnm rohu
- Center, robot je umístněn
- Critical, robot je umístněn náhodně v prostoru a v případě třetí úrvně překážek je umístněn na kritické místo u překážky
Další vlastnsti
- Model je nastaven tak, aby simulace zastavila v momentě, kdy robot projede každé možné místo v prosotoru, a to z důvodu měření efektivity
- U algoritmů vertical a horizontal byla přidána funkce, že pokud robot v jistém intervalu neprojede nové pole, změní se algoritmus na randomized. Důvodem je to, že tyto algoritmy samotné nejsou schopné projít celý prostor s přeakážkami třetí úrovně.