Mentőexpedíció

A robotok felépítése

Az elveszett
Az 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:

  1. Ne forogj tovább!
  2. Ne villogj tovább!
Egyébként az üzeneteket ebben a sorrendben fogja megkapni. A parancsnak vidáman engedelmeskedik.

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.