Programovanie robotov
pomocov stavových automatov

Meno: Tomáš Vikiszály

Kontakt: vikiszaly1@uniba.sk

Školiteľ: Mgr. Pavel Petrovič, PhD.

Anotácia

Robotické modely zo stavebnice Spike Prime sa programujú v troch rôznych jazykoch: IconBlocks - určený najmä pre prvý stupeň ZŠ, WordBlocks - určený najmä pre druhý stupneň ZŠ, Python - určený najmä pre pokročilých používateľov. Problém je, že ani jeden nie je ideálny na modelovanie správania robota: IconBlocks: neobsahuje ani podmienky, WordBlocks: obsahuje podmienky, cykly, a (bohužiaľ iba globálne) udalosti, Python: texový jazyk a preto neprehľadný a nevhodný na modelovanie správania. Najprirodzenejším modelom správania je stavový automat (state machine), pretože robot počas riešenia úlohy prechádza cez rozličné stavy/fázy - napr. stav1: je na čiare, stav2: hľadá pokračovanie čiary po jej prerušení, stav3: prechádza cez tunel, stav4: obchádza prekážku, ale aj jednotlivé stavy môžu o úroveň abstrakcie nižšie obsahovať stavové automaty, napr. kým je na čiare, tak sa mení stav medzi dvoma stavmi: hranavpravo: nachádza sa naľavo od hrany, hranavľavo: nachádza sa napravo od hrany. Čiže každý stav môže byť vnútri znova stavový automat a naopak, celkové správanie automatu možno považovať za jeden makrostav v stavovom automate na vyššej úrovni abstrakcie. Na každom stavovom prechode je určená udalosť, kedy k nemu dochádza, pričom virtuálne udalosti môže automat generovať aj sám. V jednotlivých stavoch a na stavových prechodoch možno štartovať aj tradične zapísaný procedurálny kód (task), pričom tasky môžu interagovať, bežať aj v pozadí stavového automatu alebo byť automaticky ukončené pri zmene stavu.

Cieľ

Úlohou študenta bude naprogramovať a na netriviálnych ukážkach otestovať nový grafický programovací jazyk pre Spike Prime založený na stavových automatoch.

Literatúra

R. A. Brooks, "A robot that walks; emergent behaviors from a carefully evolved network," in Proceedings, 1989 International Conference on Robotics and Automation, pp. 692-4+2 vol.2, 1989.
R. Balogh, D. Obdržálek, “Using Finite State Machines in Introductory Robotics”, in: Robotics in Education. RiE 2018. Advances in Intelligent Systems and Computing, vol 829. Springer, 2019.
R. Ghzouli et al. "Behavior Trees and State Machines in Robotics Applications," in IEEE Transactions on Software Engineering 49 (9), Sept. 2023.