Roboty


homeleftupright

LEGO - Rescue



Tohto robota som zostrojil na súťaž Robocup Junior – Rescue. Robot Rescue podobne ako Beanpole chodí po čiernej čiare a prechádza rozličnými prekážkami (tehla, prerušenie, rampa). V súťaži Robocup je k tejto kategórií pridané ešte aj hľadanie obetí (zelení a alobaloví pajáci). Robot používa neLego snímač Sharp GP2D120, aby prešiel okolo (takmer) akejkoľvek prekážky, ktorú voláme troska. Trosku detekuje dvomi LegoTouch snímačmi. Na detekciu čiary používa dva LegoLight snímače a na detekciu obetí tretí LegoLight snímač. Podvozok robota je nasvietený štyrmi IR LED diódami napájanými 9V batériou. Keďže RCX  kocka umožňuje použiť iba tri vstupy (samozrejme aj paralelné zapojenia LegoLight a LegoTouch snímačov a ich kombinácií) a robot potrebival ešte štvrtý vstup (neLego snímač Sharp GP2D120), ako "hack na oklamanie RCX kocky" som použil AMUX (Active Multiplexor), kde sa prepínanie jednotlivých vstupov rieši softwareovo.

01  02  03 

Technická špecifikácia:

Procesor: Lego RCX (Hitachi H8)

Pamäť: 32kB

Frekvencia: 16MHz

Snímače: 3x LegoLight, 2x LegoTouch, 1x Sharp GP2D120 IDS (Infrared Distance Sensor)

Pohon: 2x Lego motor

Napájanie: 6x 1.2V NiMH, 1x 9V

Jazyk: NQC


Algoritmus:

Ak krajnými LegoLight snímačmi nevidí čiernu čiaru, tak robot predpokladá, že čiara je v strede a ide rovno. Ak akýmkoľvek krajným snímačom zbadá čiernu čiaru, vyrovná sa tak, aby čiara bola opäť v strede a zapamätá si, na ktorej strane ju videl (túto informáciu použije po detekcii a označení obete).

Prerušenie čiary robot ignoruje (robot vie, že prerušenie je na rovnej čiare a že nie je dlhé) a chová sa tak, akoby čiara bola stále v strede (dokonca ani nevie, že nejaké prerušenie čiary bolo :-))

Ak robot narazí na tehlu (stlačený LegoTouch snímač), zacúva a otočí sa doľava. Tehlu bude obchádzať zľava. Potom na základe snímača vzdialenosti Sharp GP2D120 ide buď vpravo bližšie k tehle, alebo vľavo ďalej od nej. Ak by aj náhodou do nej narazil, znova sa otočí vľavo a pokračuje v obchádzaní. Keď pri obchádzaní tehly nájde čiernu čiaru, vyjde až poza ňu a otočí sa doľava, aby sa čiara nachádzala v strede medzi krajnými LegoLight snímačmi.

Obete robot detekuje stredným LegoLight snímačom. Po označení obete robot hľadá pokračovanie čiernej čiary v smere, kde ju naposledy videl. Ak ju po istom čase nenájde, skúsi to v opačnom smere a ak ani tu čiaru nenájde, tak predpokladá, že obeť bola v prerušení (aj tam môže byť obeť :-)) a popojde kúsok dopredu, kde hľadanie čiary zopakuje.