Hunter

Az első programozható robot nyomában

Noel Sharkey a brit Sheffield Egyetem mesterséges intelligencia és robottechnika professzora a programozható robotok és automaták eredetét kutatja. Eddig 2000 évre nyúlt vissza az időben, de úgy véli, még ennél is régebbre datálható az első ilyen szerkezet.

Egy mechanikus oroszlán megalkotása, ami magától közlekedett és még virágokat is átnyújtott, nem lehetett kis teljesítmény 1515-ben, még egy olyan géniusztól sem, mint Leonardo da Vinci. Szerkezetének működése egészen 2000-ig rejtély maradt, amikoris egy amerikai robotszakértő, Mark Rosheim előállt a meglepő konklúzióval, ami alapján később meg is építette az ominózus szerkezet alapjául szolgáló kocsi egy kicsinyített mását.

Rosenheim Leonardo rendelkezésre álló rajzai és feljegyzései alapján megállapította, hogy az oroszlánt, illetve a kerekekkel ellátott talapzatát egy óraműre emlékeztető rugós mechanizmus hajtotta, melynek illusztrációi da Vinci Codex Atlanticus könyvében is megtalálhatók. Rosenheim rekonstrukciója szerint a kocsi kormányművét forgó fogaskerekek közé helyezett falapok vezérelték. A lapok a kormányműhöz ütődtek, jobb vagy bal irányú fordulásra késztetve az oroszlánt. Ezzel a kialakítással az automata mozgása irányíthatóvá válik pusztán a lapok elhelyezkedésének megváltoztatásával. Más szavakkal - ha Rosenheim munkája helytálló - akkor az oroszlán nem csupán önjáró, de programozható is volt.


A feltevés szöget ütött Sharkey professzor fejébe, aki több érdekes kérdést is felvetett. Lehetséges, hogy da Vinci korábbi találmányokból merített ihletet? Ha igen, akkor milyen messze lehet visszamenni az időben, ahol még találkozhatunk a programozható robotok nyomaival?

Mindenekelőtt tisztázni kell, mi tekinthető "programozhatónak". Egy program egy utasítás sorozat, ami megmondja a gépnek, hogy mit csináljon. Fontos azonban, hogy ezek az instrukciók megváltoztathatók legyenek anélkül, hogy magát a gépet újra kelljen építeni, azaz a programnak el kell különülnie a mechanikától. Egy régi zenedoboz is egy programozható szerkezet, mivel a lejátszandó zenét a belsejében elhelyezett henger cserélgetésével lehetett váltogatni. A programkódot a hengeren elhelyezett fémpöttyök adták, ezek pozíciója mondta meg a gépnek a fémnyelvek megpengetésével, hogy melyik hangot játssza le, milyen sorrendben és milyen ritmusban.

Számos kultúra használta a vezérműveket, kezdve az ősi görög és kínai gépektől, azonban a vezérmű szinte minden esetben a mechanizmus szerves része volt. Csupán da Vinci kocsijánál volt rá mód, hogy különösebb átépítés nélkül változtatható, vagy akár eltávolítható legyen.

Az ősi programozható mechanizmusok utáni kutatás során Sharkey a középkori Európából kiindulva az iszlám világba jutott, ahol egy még korábbi programozható automatára bukkant, amit Bagdadban készített a 13. század egyik legbriliánsabb mérnöke, Ibn Ismail Ibn Al-Razzaz Al-Jazari. A hosszú nevű úriember egy egész hajónyi programozható robotzenészt alkotott, gyakorlatilag egy úszó zenedobozt, amivel a nemeseket szórakoztatták az uralkodó által rendezett összejöveteleken. Sharkey hosszas keresgélés után bukkant rá Al-Jaziri zenélő hajójára, melynek mechanikája a fentebb már leírt klasszikus zenedobozra hasonlított. A hajóról az alkotó ír 1206-os "Szellemes mechanikus eszközök tudásának könyvében".

A hajó fedélzetén négy gépi zenész foglalt helyet, két dobos, egy hárfás és egy fuvolás, melyek félóránként keltek életre és néhány percen át játszottak. Mozgásukat gyakorlatilag a zenedoboz fémpöttyökkel ellátott hengerének egy primitív változata biztosította. A hajó teljes hosszában, a zenészek alatt egy hengeres rúd futott végig, melyből ékek álltak ki. A rúd forgásával az ékek a zenészek végtagjaihoz erősített karokat ütöttek meg, életszerű mozgást hozva létre.

A rudat egy kis vízkerék forgatta, amit egy billenthető vödör látott el, melyet a hajó fedélzetén lévő tárolóból csorgó víz töltött automatikusan újra 30 percenként. Ez a vezérmű ideális a programozásra, egyszerűen csak teljes hosszában el kell látni lyukakkal és az ékek máris áthelyezhetővé, a mechanizmus átprogramozhatóvá válik. A professzor 2006-ban meg is építette a hajó egyik dobosát, bemutatva, hogy az elv valóban működőképes.

Al-Jazariénál régebbi emlékeket találni már komoly kihívásnak bizonyult. Néhány 11. századi andalúz feljegyzéstöredéktől eltekintve, ami egy Khalaf Al-Muradi nevű férfihez kötődött, az összes fellelt gépnél az iszlám világtól, a bizánci birodalmon és Kínán át egészen Indiáig hiányoznak a műszaki részletek, melyekből megállapítható lett volna programozhatóságuk.

Szerencsére az ősi Alexandria mérnökei jóval gondosabbak voltak terveiket illetően. Igen tekintélyes mennyiségű írásuk maradt fenn, beleértve a nagy automatakészítők, Kteszibiosz, Philón és Héron munkáit. Programozható vezérművek helyett automatáik többségét a víz mozgása, súlyok vagy a levegő kiszorítása hajtotta. Egy leírás azonban kitűnik a többi közül, egy mobil színház, amit az 1. században készített el Héron. Igen termékeny feltaláló volt, mindenfélét kiagyalt az aeolipile-nek nevezett gőzhajtású forgó gömbtől, egy "árukiadó" automatáig, ami egy pénzérméért cserében némi szenteltvízzel látta el az elébe járulót. Mobil színháza azonban minden más alkotásánál összetettebb volt.

A leírások szerint kerekekkel volt ellátva, melyeken automatikusan kigördült a közönség elé, majd megállt. Ekkor kelt életre a gép felső fele, ami a bor istenének, Dionüszosznak a szentélyét ábrázolta. Összesen hat automata mozgott, melyek magát az istent és női hódolóit ábrázolták, akik egy rövid előadást prezentáltak. Az előadás végeztével a szerkezet levonult a színpadról. Héron "Peri automatopoietikes" (az automata készítésről) című könyve alapján ez a gép jó eséllyel pályázhat a programozható szerkezet címre, igaz nem pont abban az értelemben, melyben Sharkey először elképzelte. Ugyan a színház nem rendelkezett vezérművel, mégis Héron programozási stratégiája sokkal inkább hasonlít a modern alkalmazásokra mint da Vincié vagy Al-Jazirié. Az ő programozási módszere egyedülálló a robotok történelmében, egy zsinór tekergetésén alapul.

A színház alapja egy egyszerű automata volt, hasonló Leonardo kocsijához, elől két, hátul egy kerékkel. Erőforrása egy leeső súly volt, amit egy csigán áthaladó zsinórral kötöttek az első tengelyhez. A zsinór feltekerése a tengely körül felemelte a súlyt, ami egy üreges henger belsejében helyezkedett el. Ezután a súlyt eleresztették, ami magával húzva a zsinórt megforgatta a kerekeket. Önmagában ez az elrendezés rövid távon rendkívül gyorsan mozgatta volna az automatát előre. Ahhoz, hogy a kocsit hosszú időn át mozgásban tartsuk, vagy igen tekintélyes magasságba kell emelni a súlyt, vagy valahogy szabályozni kell az ereszkedését. Itt jött be a képbe Héron zsenialitása. A súlyt körülölelő hengerbe búzaszemeket töltött, alul pedig egy lyukat vágott, így a szemek kiperegtek. A súly innentől kezdve sokkal lassabban ereszkedett, megnyújtva azt a periódust, ami alatt leadta energiáját.


Minden zsinórhurok egy kerékfordulattal hajtotta előre a gépet, Héron azonban megtalálta a módját robotja hátrafelé mozgatásának is. Ehhez egy vagy több éket helyezett el a tengely közepére merőlegesen, az ék köré tekert zsinór megváltoztatta a tengely mozgását és így a másik irányba folytatta a tekeredést. Héron megoldása egyszerű, mégis rendkívül kifinomult volt, a mechanizmus gyakorlatilag egy egyszerű programozási nyelv alapjainak is tekinthető. Például ha a zsinórt tízszer feltekerjük a tengely körül az egyik irányba, majd megtekerve az ék körül ötször a másik irányba hajtjuk, akkor 10 kerékfordulatnyi előre mozgást és 5 fordulatnyi hátra mozgást kapunk.

Héron egy megállító utasítást is kieszelt a robothoz. Ehhez csupán annyi kellett, hogy bizonyos hosszúságú kötelet viasszal a tengelyhez vagy a robothoz tapasztott. Amikor a súly ehhez a lógó részhez ért, a szabadon függő kötél húzásával semmilyen mozgás nem ment végbe, a robot tehát arra az időre megállt. A mechanizmus így azonban még csak egyenesen tudott közlekedni, a kanyarodáshoz az kellett volna, hogy a két kerék külön kapja az utasításokat, akárcsak a legtöbb kerekeken közlekedő mai robot.

Héron könyve arról tanúskodik, hogy erre a görög mester is rájött. A leírás szerint a tengely kettéválasztásával mindkét kerék megkaphatta a maga zsinór-mechanizmusát, így azok egymástól függetlenül mozoghattak. Héron még azt is leírja, hogyan használható ez a módszer a robot kör- vagy S-alakú mozgatásához, a programozási lehetőségek egész kis tárházát adva a szerkezet működtetőjének.

A kérdés most már csupán annyi, vajon a régi idők nagy elméi valóban azzal a szándékkal tervezték gépeiket, hogy azok programozhatók legyenek? Nagy valószínűséggel a válasz nem. Da Vinci és Al-Jaziri is jól tudta hogyan szeretné hogy automatája teljesítsen, és az ékek mozgatásával finomra hangolhatták a szerkezetet a kívánt viselkedés elérése érdekében. Ez azonban nem teljesen ugyanaz mint a programozás, írásaikban pedig semmi nem utal arra, hogy valóban programozták volna robotjaikat adott mozgássorok elvégzésére.

Kivételt képez Héron könyve, ami egyértelműen kifejezi az alkotó szándékait, mely szerint robotja programozható volt, vagy legalábbis annak készült. Az egyik oldalon még azt is elmagyarázza, hogyan programozható egy összetett viselkedés a színházi robot visszagördítésével a végpontból az előadás által megkívánt összes mozdulaton keresztül a kiindulási pontba, úgy hogy a zsinór megfelelően gombolyítsa le magát a tengelyekről. A modern programozók hasonló módszerrel tanítják például a gépjármű összeszerelő sorok festőrobotjait.

Az is egy nagy kérdés, hogy vajon Héron robotja volt-e az első? Nehéz elhinni hogy ne lettek volna elődei, Héron könyvében utalásokat tesz arra, hogy ő egy már kialakult színházi tradícióba vitt valami újat, miközben arra panaszkodik, hogy a korábbi írók nem fogalmaztak elég egyértelműen ahhoz, hogy szerkezeteik lemásolhatók legyenek. Egyértelmű utalásokat tesz Philón az automata színházakról szóló elveszett könyvére, ami i.e 200 környékén keletkezett.

Más forrásokban egy ezeknél korábbi automata is szóba kerül. Az i.e 4. században Arisztotelész ír maguktól mozgó bábokról és egy kocsiról, ami körkörös mozgást végez, úgy írva le mindezt, mintha teljesen mindennaposnak számítanának. Homérosz Iliásza szerint a programozható önműködő gépek egészen az i.e. 8. századig nyúlhatnak vissza. Héphaisztosz kapcsán itt is felmerülnek kerekeken gördülő, önműködő szerkezetek - tehát a legelső programozható robot utáni kutatásnak még koránt sincs vége.

Hozzászólások

A témához csak regisztrált és bejelentkezett látogatók szólhatnak hozzá!
Bejelentkezéshez klikk ide
(Regisztráció a fórum nyitóoldalán)
  • irkab1rka #44
    Ja, telebeszélik az ember fejét a Neumann féle tárolt program elvével, meg hogy ez mennyire magyar okosság.
    Érdekes módoz Heron gőzgépét tanultuk, de ezt már persze nem, mert Heron nem volt ugye magyar, okos sem lehetett. De most komolyan, szánalmas. Elzárják a gyerekek elől az ismereteket, hogy ostobasággal etessék őket. Mi bűn, ha ez nem?
    Tárolt program elve... eh, száz éve már, ha nem ezer (vagy százezer :). A kódot és az adatot csak azért választják külön, hogy nagy dolog legyen, holott már régi gépészeti megoldások is ilyen megoldások szerint működtek, csak nem így hívták, és nem különült el a kód meg az adat ennyire.

    Az "INC AL" most akkor kód vagy adat?
  • unknown nick #43
    Én epdig arra szerettem volna rávílágítani, hogy mikor a robottechnikáról és programozásról beszél valaki az nem egyenlő Neumann féle számítógép (csak egy egyre nagyobb részterülete). Sokan az utóbbiban tudnak már csak gondolkodni.
  • Pinoccchio #42
    "Egyébiránt működő logikai hálózat építéséhez nem feltétlen kell elektronika."

    Én nem mondtam, hogy kell hozzá elektronika. Én csak feltettem a kérdést, hogy építettek-e az elektronika kora előtt valaha ilyen masinát. Szerintem nem nagyon. De nem azért mert elvileg nem lehetett volna, hanem azért mert nem volt még rá kellő igény, illetve ha meg is építettek volna ilyet mechanikusan, a nehézkes működése és a lassúsága miatt sok hasznot nem hozhatott volna. Max játékszernek lett volna jó (mint a zenedoboz is).
  • BiroAndras #41
    A vonat valóban tekinthető programozhatónak, hiszen a váltók átállításával befolyásolhatjuk, hogy hova érkezzen. De ez nagyjából az elképzelhető legprimitívebb programozás (inkább konfigurálásnak hívjuk), és a cikkben felsorolt gépek ennél jóval többre voltak képesek.
    Mondjuk, ha szigorúan vesszük, akkor programozhatónak csak akkor nevezünk valamit, ha az alapvető vezérlési szerkezetek (elágazás, ciklus, stb.) megvalósíthatók velük. Ennek azt hiszem egyik példa sem felel meg (a vonatnál a sín alakja nem számít, mert az nem programozható).
  • unknown nick #40
    "Kiváncsi lennék, hogy az elektonikus számítógépek előtt volt-e egyáltalán olyan szerkezet..."

    Bocs de nem tudom megállni, hogy hozzászóljak. Nem csak digitális számítógépek léteznek, hanem analógok is. És azok is "programozhatóak". Egyébiránt működő logikai hálózat építéséhez nem feltétlen kell elektronika.
  • Pinoccchio #39
    Ahogy átfutottam, itt azon ment a vita, hogy egyesek nem értették meg, hogy a vonat is ugyanúgy utasítás sorozatot hajt végre, mikor végigmegy a sínen, mint pl. a zenedoboz. Ez tényleg így is van. De attól még egyik rem robot. Igazából ezek nem programozható dolgok.

    A valódi programozás fogalmához nem elég annyi, hogy utasítás sorozat. Fura, hogy egy robottechnika professzor ennyit már programozásnak nevez.

    Az ugyanis kevés, hogy egy cselekvéssort előre rögzíteni tudok, és az minden egyéb hatástól függetlenül végrehajtódik. Ha csak ennyit tudna egy számítógép, hát nem sok értelmes dologra volna képes.

    Itt két dolog is hiányzik: az állapottárolás és a feltételes utasítások.
    A valódi programozás lényege az, hogy az utasítások végrehajtásának eredményeként eltárolódnak különböző állapotok, amiket aztán a gép vissza tud olvasni. A programban pedig elhelyezhetőek feltételes utasítások, amiknek a kiértékelése futás közben történik, és ennek ereményétől függően aztán más-más programrészlet hajtódik végre. Ilyenről a zenedoboz és társai esetében szó sincsen. Ezeknél egyetlen állapottárolás az, hogy hol tartunk az utasítássorozatban, de maga az utasítássorozat már nem tud kihatni az állapotra, hiszen az az utasítássorozattól függetlenül mindig egyféleképpen vátlozik: ugrik a következő utasításra.

    Szóval én nem nevezném ezeket igazán programozható gépeknek, bár kétségtelenül komoly alkotások voltak a maguk korában.

    Persze korlátozott értelemben mondhatjuk, hogy ezek programozhatóak voltak, de világosan látni kell, hogy a "memória" és a feltételes vezérlés hiánya miatt itt egy minőségileg alacsonyabb szintről van szó. (Tömören fogalmazva, ezek nem Turing-gép implementációk, és így alkalmatlanok algoritmusok végrehajtására.)

    Kiváncsi lennék, hogy az elektonikus számítógépek előtt volt-e egyáltalán olyan szerkezet, ami állapotot is tudott tárolni és feltételes utasításokkal is lehetett programozni, vagyis ténylegesen programozható volt.

  • bandypappa #38
    Ja igaz én se szeretem az olyan semmitmondó felfedezéseket, állításokat, aminek nem sok gyakorlati haszna van, Lásd: Brainiac, bár ez inkább szórakoztó. Akkor lehet valamit programozni, ha az adott programot el tudja tárolni és fel tudja dolgozni, ha pedig parancsot adunk rá végrehajtja ami a programbal szerepel. A sok kis surmónak meg üzenem, ha valami érdemlegeset is kívánnak közölni nem csak a fikázást, az jobb lenne. Általánosságban elmondható hogy aki egyszer akadályozóként lépett fel az újraés ujra igy fog viselkedni hogy ezáltal hivja fel magára a figyelmet. Az akadályozás igen sulyos problémát jelenthet a csoprt számára, hiszen lehetetlenné tehet mindennemü elörelépést.
  • orkaman #37
    a bicaj robot. isten (vagy valami egyéb ) beprogramoz téged merre menj. és mész.
    csak hiszed hogy te vezetsz.

    labda. ennyi erővel minden tárgy robot. tudja a "semmit nem csinál" parancsot és ezt ismételi. Átprogramozásuk könnyű, utána se csinálnak semmit.
  • ertekesa #36
    A vonat nem jó példa a vezérelt programozásra, mert a sín ugyan meghatározhatja a vonat útvonalát, de a sebességét már nem. Funkciójában nem teljeskörű a programozottság.
  • unknown nick #35
    Mivel egy robottechnika professzor csinálta feltételezem, hogy de ilyeneket is vizsgált. Szerintem a cikkek fogalmaznak csak kicsit szabadszájúan.