Egymást követõ robotok

A feladat leírása

Készítsen két robotot. Az egyik, az elveszett, "el van
veszve valahol és várja a segítséget". A másik, a keresõ,
"megkeresi az elveszettet, és hazasegíti".

Megoldás

A feladatot túl bonyolultnak találtuk, ezért csak egy részének megoldást céloztuk meg. A megoldásunkban az egyik robot (a fõnök, a fenti képen a bal oldali) véletlen pályán mozog, míg a másik (a szolga, a fenti képen a jobb oldali) megpróbálja követni. A fõnök nem szalad elõre, mindig megvárja, hogy utolérjék õt.

A robotokról

A fõnök egy nagyon egyszerû robot, elõl két nagy kereke van, hátul pedig egy kitámasztó kicsi. Ezekkel nem tud mást, mint állni, haladni (a két kereket egyszerre forgatja), vagy fordulni (az egyik kerék forog, a másik áll, vagy ellenkezõ irányba forog).
A szolga sem sokkal bonyolultabb, bár õ lánctalpakkal üzemel, ugyanolyan manõverekre képes, mint a fõnök. Van viszont egy ütközõje elöl, amivel érzékelni tudja, ha nekimegy valaminek.

A követés folyamata

Kezdetben a két robot egymással szemben áll. A fõnök dönt afelõl, hogy hátra, hátr-balra, vagy hátra jobbra menjenek. Közli ezt a szolgával. Aztán elindul, és megy egy keveset arra, amerre mondta. A szolga vár egy kicsit, majd utánamegy, értelemszerûen követve az irányt. Ha ezután nem látja a fõnököt, megpróbálja megkeresni.
Mindez filmen

Kommunikáció

A robotoknak az egymással való kommunikációra kevés eszközük van. Üzenetet küldhetnek, vagy megnézhetik, hogy utoljára milyen üzenetet kaptak. Mindezt rövid és hosszútávon. Mivel a hosszútávú kommunikáció az egész szobában mûködik, ezt semmire sem tudtuk használni. A rövid távú kommunikáció viszont (nekünk) kb. 20-30 cm-ig mûködött, ezért kiválóan alkalmas volt annak tesztelésére, hogy "látják"-e egymást a robotok.

Hallasz engem?

A robotok gyakran kerültek olyan helyzetbe, hogy pl. csak az egyik vette a másik jeleit, vagy egy határhelyzetben vagy fogta a jeleket, vagy nem. Ez komoly gondot okozhat a két robotban levõ programok szinkronban tartásánál. Ezt úgy oldottuk meg, hogy mindkét robot (különbözõ ütemben) bele- beleszól a világba, és közli, hogy õ most épp hol jár a programjában. A másik ennek ismeretében megteheti a szükséges lépéseket.

A fõnök programja

Ez elég egyszerû, a main task végigolvasásával könnyen megérthetõ. Az alprogramok értelemszerûen mûködnek, kis érdekesség talán csak a pulzal task. Ez a task szól bele folyton az éterbe, és közli, hogy melyik fázisban van a program (state). Jól látszik a kódból, hogy nem nagyon reagál arra, hogy mit hall a másiktól, mindig megvárja, hogy az legyen, amit õ akar, aztán csinálja tovább, amit eltervezett.

A fõnök állapotai

A fõnöknek négy állapota van:

A szolga programja

A szolga programja bonyolultabb, õ igazodik a fõnökhöz. Tudja, hogy õ hol tart, és figyeli, hogy a fõnök hol tart. Ebbõl a kettõbõl derül ki mindig, hogy mit fog csinálni. Lássuk az egyszerûbb részeket:

A szolga állapotai

Egyebek

Gondok, fejlesztési lehetõségek