A robotok felépítése
Az elveszettAz elveszett robot forgó tornyán elhelyezkedő villogó lámpákkal ad le vészjeleket a mentőegységnek. A mentő, miután eljut az elveszetthez, a peremébe beleakaszkodva visszavontatja a bázishoz. A sérült robot könnyen húzható, mert a négyzet alakú talapzat négy sarkán elhelyezett forgó kerekek a húzás irányába fordulnak. | |
A tornyot lassító fogaskerékáttételen keresztül csigakerékkel forgatja a motor. A tornyon a lámpák nem egy síkban helyezkednek el, hanem szöget zárnak be egymással, így nagyobb területet szórnak be fényükkel. A mögöttük lévő fehér elemek növelik a fényerőt. |
A mentőrobot
A mentő robot eredetileg lánctalpas volt, de nagyon rázkódott, ami jóformán lehetetlenné tette a nyomásérzékelő által szolgáltatott jel kiértékelését, ezért a lánctalpat lecseréltük lánccal meghajtott kerekekre. Ez a konstrukció menettulajdonságaiban nagyon hasonlít a lánctalpra, de kiküszöböli annak hibáját. A robot mozgatását két motor biztosítja, az egyik a fodulásért, a másik a haladásért felelős. | |
A mentőrobot elején hosszú, kampós végű rúd található, ezzel ragadja meg a segítségre szoruló robotot. A rúd alatt helyeztük el a nyomásérzékelőt, ami alaphelyzetben benyomott állapotban van -- míg a rúd be nem akad a másik robot peremébe, mert az a rudat megemeli. A mentőakció indulásakor a rudat rögzíti a képen is látható zöld lyukas kettes elem, hogy ne tudjon elfordulni. A vontatás alatt az első fordulás megkezdése előtt ezt a rögzítő elemet egy külön mikromotorral felemeljük, hogy a mentőegység ugyanolyan könnyen tudjon fordulni, mint teher nélkül. | |
A fent említett meghajtást a képen látható -- két differenciálműből felépített -- szerkezet teszi lehetővé. A-val és B-vel jelölve a két motor erejét, az egyik oldali kerekek A+B, a másik oldaliak pedig A-B sebességgel forognak. Ha a B motort blokkoljuk, akkor az A segítségével egyenesen tudunk előre vagy hátra haladni, míg az A-t blokkolva helyben tudunk forogni. |
Érzékelők:
A mentőroboton egy előre néző fényérzékelőt használunk a vészjelek
érzékelésére, és a már említett nyomásérzékelőt annak megállapítására,
hogy sikerült-e már megfogni a sérültet.
A programok:
A mentőakció programjai a legOS 0.2.5 könyvtárait használva C-ben
íródtak. Windows 95 alatt -- a Cygwin segítségével -- fordítottuk le a
legOS kernelét, C könyvtárát és segédprogramjait.
A programok forrásai:
halad.c | A mentőrobot programja. |
karvissza.c | Külön program a rögzítő elem visszaengedésére. |
villog.c | A sérült robot programja. |
komm.h | A kommunikációhoz használt közös header fájl -- az üzenetek definíciója. |
Az elveszett robot programja:
Felváltva jobbra-balra forgatja a tornyot üzenetre várva, miközben egy
külön szálon villogtatja a reflektorokat. Kétféle üzenet lehetséges:
A mentőrobot programja:
A robot forogva keresi a másik robotot. Egy külön szál figyeli a
felvillanásokat; ezek időpontját listában tárolja, ennek segítségével
képes megállapítani, hogy az eltelt 1 másodpercben hány felvillanást
érzékelt. Ha ezek száma nagyobb egy, a villogás frekvenciája alapján
megállapított küszöbértéknél, akkor úgy veszi, hogy meglátta a másik
robotot, és üzenetet küld neki, hogy azonnal hagyja abba a forgást.
Ekkor ő is abbahagyja a forgást, és elindul előre (hisz ekkor nagyjából
szemben van egymással a két robot). Addig megy, amíg el nem kapja a
sérültet vagy el nem veszti a fényt. A nyomásérzékelő állapotából
tudja, hogy sikerült elkapni, ha viszont elveszti a fényt, akkor tovább
kell keresnie. Ilyenkor kicsit hátratolat, majd forog, míg újra meg nem
látja a fényt, hogy újra próbálkozhasson.
Keresés közben a forgások illetve haladások időtartamát és irányát
feljegyzi magának, és ha sikerült az összekapcsolódás, akkor ezen
feljegyzések alapján jut vissza a bázishoz egy némileg egyszerűsített
útvonalon. Összekapcsolódás után átszól a másiknak, hogy hagyja abba a
villogást.
A következő felvételeken meggyőződhettek róla, hogy nem mese volt, amit itt leírtunk: 1. felvétel 2. felvétel
Egyéb letöltések:
Forráskód tömörítve
Készítették:
Locher Kornél
Oroszi Sándor
Szabó Dániel
Vitéz László
Oldal utolsó frissítése: O.S., 2006.12.25.