RobonAUT – Autonóm robotok versenye 2020

RobonAUT kiemelt kép

RobonAUT logó2020. február 15-én 11. alkalommal került megrendezésre a 2019/2020-as tanév őszi félévében a BME Villamosmérnöki és Informatikai Kar Automatizálási és Alkalmazott Informatikai Tanszékének a gondozásában a RobonAUT – Autonóm robotok versenye.

Kaló Péter és Török Barbara szoftverfejlesztő OKJ képzésben résztvevő végzős hallgatók szakmai- és élménybeszámolója következik. Mindketten nagyon jól érezték magukat a versenyen. Beszámolójukat köszönjük.

Mi is az a RobonAUT?

A 2010 óta évente megrendezett programon egy műegyetemi tárgy keretében a résztvevőknek egy autonóm robotot és vezérlését kell elkészíteniük. A feladat, hogy a robotjárművek emberi beavatkozás nélkül, minél rövidebb idő alatt teljesítsék az akadálypályákat, egy előre nem ismert ügyességi pályán, útjuk során teljesítve a legtöbb részfeladatot. Az a csapat lesz a győztes, aki gyors és pontos irányítással szereli fel robotját, így szerezve a legtöbb pontot a futamokon.

A verseny sikerét egyértelműen jelzi a hallgatók aktivitása, valamint a külvilág érdeklődése a RobonAUT iránt. A versenyen villamosmérnökök, mérnökinformatikusok és mechatronikai mérnök mesterhallgatók vehetnek részt. Csapatonként egy robotot kell készíteni. A csapatok létszáma 3 fő (indokolt esetben 2 fő).

2020-ban a csapatok között volt 7 junior és 4 senior csapat, összesen 32 versenyző indult neki a kihívásnak. A jelentkező csapatok között fellelhető a 2019-es év junior győztese, az Override, és újra jelen van az összesítettben első helyezett Faketelen Taxi, és az összesített második, a Tesla Monsters is.

A tanszék biztosít eszközöket, illetve anyagi támogatást a robot megépítéséhez:

  • 1 db autómodell,
  • 1 db processzorkártya,
  • 2 db rádiós modul,
  • 75000 Ft szabadon felhasználható költségkeret,
  • egyéb alkatrészek (vonalszenzor, motorvezérlő, Bluetooth modul).

A csapatokat tematikus szemináriumokkal készítették fel a versenyre. Ezen alkalmakon egy-egy, a verseny szempontjából fontos tématerületeket érintettek és tekintettek meg. Négy szeminárium (Hardver, Altium Designer, Szoftver, Szabályozástechnika) támogatta a csapatokat a felkészülésben.

Versenyfeladat

A robotjárműveknek két akadálypályán kell végig haladniuk, és ennek során különböző feladatokat kell teljesíteniük. Egyik pályán az ügyesség, a másik pályán a gyorsaság számít.

A gyorsasági pályán enyhe lejtők és emelkedők nehezítik a robot haladását, illetve magát az útvonalat egy vezetővonal jelöli. A gyorsasági pályán minél jobb köridő elérése a cél.

Az ügyességi pálya egy labirintusnak felel meg, ahol a robotjárműnek fel kell térképeznie a területet, és ezt követően tud tovább haladni a gyorsasági pályára.

RobonAUT 1. kép

Ügyességi pálya elemei

A gyorsasági és ügyességi pálya előre definiált elemekből épül fel, ezek:

  • a pályaelemeket összekötő egyszerű vezetővonal,
  • start és cél,
  • elágazás és becsatlakozás,
  • zsákutca,
  • pályaszakasz kapu (18 db),
  • sávváltás.

RobonAUT 2. kép

Kvalifikációk

  • Előzetes kvalifikáció: az autók vonalkövetését és safety car (tanszék által készített autó) követését hivatott ellenőrizni.
  • Ügyességi kvalifikáció: az autóknak sikeresen kell teljesíteniük az ügyességi pályaelemeket egy versenybíró jelenlétében.
  • Gyorsasági kvalifikáció: az autóknak, egy előre felépített pályán kell végig haladniuk, egy megadott időn belül.

Az induló csapatok nevei és logói elérhetők a verseny weboldalán.

A Tesla Monsters csapat autójának terve és fényképe:

Élménybeszámoló

Már kezdés előtt fél órával nagy tömeg várta a verseny kezdetét a BME Q épület aulájában. Dr. Tevesz Gábor egyetemi docens, a fő szervező, a verseny megálmodója kezdte beszéddel ezt a fantasztikus napot. Népes csapat munkálkodott a versenyen, kb. 40-50 ember. Kiss Domokos versenykoordinátor és versenybíró folytatta a beszédet, a nézőközönséggel ismertette a verseny szabályait.

Aznap reggelig nem volt ismert a pálya felépítése a csapatok számára. A döntőig 6 junior és 4 senior csapat jutott el, hogy hősiesen megküzdhessenek egymással. A versenyen vegyesen mérték össze az erejüket. A csapatoknak fél év felkészülési idejük volt, hogy egy jól működő robot autót készítsenek el. Sokat számított a találékonyság, az ötletelés és a robot autók design-ja.

A csapatok plusz 10 pontot tudtak gyűjteni a nézőközönség által. A közönség szavazhatott arra a csapatra, amelyik a legjobban tetszett nekik. Figyelembe vették ki milyen jól vette az akadályokat, vagy éppen kinek milyen design került az autójára. A közönség szavazásnál a Faketelen Taxi kapta a 10 pontot.

  • A versenyt elsőként az ABS nevű csapat kezdte. Az akadályokat jól vették.
  • A második csapat volt a Led Bull, akiknél egy ütközést követően megsérült az egyik szenzor, így az ügyességi pályát nem tudták befejezni. A gyorsasági pályát így is megpróbálták, de végül az autójuk kiment a pályáról.
  • Az Override nevű senior csapat folytatta harmadikként a mérkőzést.
  • Negyedikként a FalnakMegyek csapatnak csak 4 kaput sikerült teljesíteniük, majd a programjuk végtelen ciklusba került. Próbáltak javítani a helyzeten egy rögtönzött szereléssel, mert mint kiderült: kiégett az egyik biztosítékuk. A felkészülés alatt már történt ilyen velük, így tartalék biztosítékkal hamar megoldották a problémát.
  • A Stranger Gears volt az ötödik csapat, akik két kapu kivételével teljesítették az ügyességi pályát. Ők voltak az első csapat a verseny alatt, akik a gyorsasági pályán az autójukkal előzést hajtottak végre.
  • Az Unemployed & Single volt az első olyan csapat, akik minden kaput érintettek és sikeresen ki tudtak állni a safety car mögé. A gyorsaságin az első előzést sikeresen teljesítették, a másodikat sajnos nem.
  • A hetedik csapat a GITegylet volt, akik az autójukon díszként Nemecsek Ernő „kalapját” használták kabalaként. Az ügyességi pályán minden kaput érintettek, a gyorsasági pályán mindkét előzést sikeresen végrehajtották.
  • Nyolcadik csapatként következett a Riders of the ST ARM, akik az ügyességi pályán csak 3 kaput hagytak ki. A gyorsasági pályán már nem tudtak elindulni, mert az autójukban hiba keletkezett.
  • A Tesla Monsters kilencedikként vett részt a versenyen. Senior csapatként teljesen új autót készítettek, melyben két ventilátor helyezkedett el, hogy jobban le tudja szorítani az autót. Az összes kaput sikeresen teljesítették az ügyességi pályán.
  • Az utolsó induló csapat a Faketelen Taxi volt. Ők is egy teljesen új autót építettek, melynek összsúlya 8 kg lett. Az ügyességi pályán az összes kaput hibátlanul bejárták, a kiállást egy új manőverrel oldották meg, melytől a nézőközönség tapsviharban tört ki. A gyorsasági pályán mindkét előzést sikeresen teljesítették, és az idei legjobb kört futották.

Ezután fél órás szünet következett az eredményhirdetés előtt. A Faketelen Taxi egyik tagját, Sárközy Balázst kérdeztük meg arról, hogy milyen nyelven programoztak. Az autó alapját egy Raspberry Pi adta, amelyen Linux futott. Programozás terén az autót több részre osztották, egyes részek Python-ban, más részek C-ben és C++-ban voltak megírva. Az autójukba 14 szenzort építettek be, ezek segítségével navigált a robot autó a pályán. A pálya feltérképezésénél és követésénél Descartes koordináta-rendszerrel dolgoztak.

A verseny részletes eredményei megtalálhatóak a verseny weboldalán.

Fejlesztők délutánja – látogatás a KUKA Hungária Kft. R&D központjában

2019. november 7-én délután látogatást tettem a KUKA Hungária Kft. telephelyén, ami Budapesten, a XI. kerület Dorottya udvarban található. A rendezvényre elsősorban programozáshoz értő fejlesztőket vártak, az már a jelentkezési lapról kiderült, amikor meg kellett adni, hogy milyen programnyelvekhez értek.

Az ott töltött időt három nagyobb részre lehetett osztani. Először a prezentációs bemutatkozások zajlottak, azután a robotok megtekintése, végül pedig egy pizzázással egybekötött kötetlen beszélgetés az előadókkal.

Prezentációk

Először Grósz László R&D vezető bemutatta a céget, és a KUKA cég történelmét. Régóta fennálló céget ismertem meg, melyet 1898-ban alapítottak. Abban az időben acetiléngázt állítottak elő, amivel világítótesteket lehetett működtetni. Nem sokkal később az elektromos világítás megjelenésével és terjedésével a hegesztéstechnikai szektorba helyezték át tevékenységüket, ahol úttörőnek számítottak. Látták az igényt és a lehetőséget a hegesztőgépek automatizálására, így 1956-ban első automata hegesztő gépeik a Volkswagen AG-nál kerültek üzembe. A fejlesztés tovább folytatódott és az első ipari robotjuk, a 6 elektromechanikus meghajtású tengellyel rendelkező Famulus 1973-ban készült el. 1996-ban a KUKA a robotjainak vezérlését PC alapúra cserélte, elsőként az iparágban.

Az ezredforduló után a cég számos további területen jelent meg robotjaival, például az egészségügyben. Az utóbbi évtizedben pedig azon dolgozik, hogy olyan robotokat fejlesszen ki és gyártson (LBR iiwa), amelyek képesek az emberrel együttműködve dolgozni.

Collaborative Roboter

Második előadó Komlósi István vezető fejlesztő volt, aki a mobil robotok fejlődéséről beszélt. Napjainkban fontos hívószavak az ipar 4.0 és az okos gyár. Ebbe a paradigmába illeszkedik bele a KUKA a földön mozogni képes, kerekeken mozgó robotjaival. István bemutatott nekünk egy rövidfilmet, ahol a robotok a Boeing gyárban teljesítenek szolgálatot, feladatuk pedig különböző méretű és nagyságú alkatrészek, vagy akár egy fél repülőgéptest szállítása volt.

Mindegyik robot képes volt a saját környezetét érzékelni, mozgás közben előállítani a terület térképét, és elkerülni az útjukba kerülő akadályokat. Ilyen akadályokból többféle is előfordulhatott. Átmeneti akadály, például egy ember vagy másik robot akadályozza a továbbhaladást, ekkor elegendő várakozni amíg az akadály el nem hárul. Állandó akadály, ami olyan új utat elzáró tárgy, ami korábban nem volt jelen, és nem lehet arra számítani, hogy rövid időn belül úja szabaddá válik az út. Ekkor a robotnak ki kell kerülnie az akadályt, ami azt jelenti, hogy az éppen aktuális térképet figyelembe véve új haladási útvonalat kell tervezzen a céljához, majd ezt végre kell hajtania.

A felhő alapú információfeldolgozás a robotikában is utat talált magának: a fejlesztők arra törekszenek, hogy minél inkább felhő alapú legyen a robotok információinak a feldolgozása, ahelyett, hogy magára a robotra kelljen bonyolult és drága információfeldolgozó számítógépeket telepítsenek, így csökkenthető az egyes termékek – amúgy sem csekély – ára. Ahhoz, hogy megvalósulhasson a felhő alapú információfeldolgozás, nagyon alacsony hálózati késleltetésre van szükség, például a napjainkban szárnyait bontogató 5G mobilhálózatra. Itt hangzott el a mesterséges intelligencia szerepe is, amely ipari alkalmazásokat tekintve, csak teljesen biztonságos formában, népszerű hívószóval AI-Safe módon kerülhet alkalmazásra.

Harmadik előadónk Laboda Krisztián volt, csapatvezető és Software Architect. Az ő előadása robotprogramozásról, azon belül is útvonaltervezésről szólt, természetesen csak áttekintő jelleggel. Kezdetben az ipari robotoknak saját, dedikált térre volt szükségük, amelyben mozogni tudtak. Nem voltak képesek érzékelni a környezetüket, de a rájuk bízott és előre megtervezett mozdulatsorokat tetszőleges számban megismételve precízen tudtak dolgozni. A mozgás leírása spline polinomokkal történhet.

Ha mobil robotokban gondolkodunk – ráadásul az emberrel is együttműködni képes robotokban – a probléma az, hogy nem mindig írható le a mozgás teljes pályája, hiszen váratlan események is bekövetkezhetnek a mozgás közben. Ebben az esetben pedig újra kell tervezni a mozgást, amit nyílt hurkú szabályozók használatával érnek el. Így a teljes mozgást kis időszeletekre elosztva, mindig csak a következő időszeletet megtervezve lehetőség van észlelni és reagálni a külvilág felől érkező információkra. A külvilág érzékelése bonyolult művelet, a jelenlegi tudásunk alapján már nem egy gép szenzorjaival dolgoznak az algoritmusok, hanem több gép szenzoradatát összesítve, úgynevezett szenzorfúzióval állítják elő a külvilág modelljét, és ebben a modellben tervezik meg a következő mozdulatot.

Krisztián másik megvilágításból is bemutatta a robotprogramozást. A közönséggel közösen megállapodtunk, hogy a földön élő emberek kb. 0,3%-a tud programozni, és egy-egy robot felprogramozása egy konkrét feladatra – természetesen csak nagy átlagot tekintve – kb. 200 munkaóra. A KUKA-nál azt szeretnék elérni, hogy ennél sokkal többen tudjanak robotot programozni, akár programozói tudás nélkül is, ezért létrehozták az LBR iisy kísérleti platformot.

LBR iisy Product Image

Ez a robotkar érzékeny az emberi mozdulatokra, ezért képes az együttműködésre, és a Scratch-re megszólalásig hasonlító programozási felületet kapott. A gyártó cég fejlesztői elkészítik az egyes utasítások mögött álló bonyolult kódot, így a felhasználónak már csak az egyes magasszintű utasításokat kell grafikusan összeállítania a kívánt hatás elérésére. Ezt a rendszert nyílttá szeretnék tenni a külső cégek számára, akik eszközöket szeretnének gyártani a robothoz. (Eszköz alatt itt azt értem, hogy a robot „keze” cserélhető, így több feladatra is alkalmas lehet). A külső cégek elkészíthetik az általuk kifejlesztett eszközhöz tartozó programozói könyvtárakat, amit a felhasználó egy fogd és vidd művelettel a robotjához tud rendelni. Az így elkészített programkönyvtárak pedig letölthetőek lesznek egy erre a célra épített alkalmazásboltból.

Utolsó vendég előadónk Dr. Kiss Bálint, a BME Irányítástechnika és Informatika Tanszékének vezetője volt. Ő a mobil robotok fejlesztésének jövőjébe engedett bepillantást. A fejlesztők számára megoldandó feladatok összességét egy mocsárként jellemezte, amelyben vannak könnyű, nehéz és szinte megoldhatatlan feladatok. Ha a fejlesztők meg is oldanak egy-egy feladatot, a következő lépésük a mocsárban egy újabb problémához fogja vezetni őket. Így tekintve nagyon nehéz megmondani, hogy a vágyott végkifejlet mikor is fog elérkezni. Amit mondani lehet, hogy egyes részproblémák megoldásával milyen új alkalmazási lehetőségeink lesznek a közeljövőben.

Kétféle fejlődési irányt lehet megkülönböztetni, ahogyan el lehet jutni a teljesen önállóan működő mobil robothoz. Az első irányzat sokunk számára ismert, gondoljunk csak a mai autóinkra. Egyre többféle vezetést támogató rendszert építenek be a járművekbe, ezzel egyre több feladatot vállal át az autó a vezetőtől. Az ideális állapot az lesz, ha a vezetőnek egyáltalán nem marad majd vezetési teendője. Az ipari robotok esete pont ellentéte ennek. Az ipari robot az első pillanattól kezdve önállóan és biztonságosan kell végrehajtsa a rábízott feladatot, és idővel a robot környezete válik egyre bonyolultabbá, ahogyan egyre nő az igény az alkalmazásának sokféleségére. Először még csak egy elkerített privát térben tevékenykedett, ma már emberek és folyamatosan változó környezetben kell helyt állnia. Probléma, hogy nincs egy egységes szabvány a robotok biztonságos működésére. További probléma, hogy sokféle kihívással találkozhatunk egy mobilis robot fejlesztése kapcsán, ám ezek a kihívások már évtizedek óta léteznek, mint ahogyan a rájuk adott válaszok is.

A különbség a válaszokban az eltelt idő, ugyanis egyre jobb, pontosabb, korszerűbb válaszokat tudunk adni egy-egy kihívásra. Shakey volt az első robot, amely válaszolni kívánt a kihívásokra. 1966-tól 1972-ig fejlesztették és a maga korában egyedülálló volt. Az adott válaszok minőségének javulását többek között ilyen technológiák tették lehetővé: Li-Ion akkumulátor, Lidar, szenzorfúziós becslések, Kálmán-szűrő eljárás, GPU hardver, deep learning.

Végezetül megismerkedhettünk két, a mai kor tudása szerinti válasszal a mobil robot építés kihívásaira. Egy űrben használható robottal, Robonaut 2-vel, ami éppen a nemzetközi űrállomáson tartózkodik, és egy víz alatt használható változattal, Aquanaut-tal.

Robotok megtekintése

Először a robotkarokkal dolgozó fejlesztők laborjában megismerkedtünk az LBR iiwa robotok programozásával, működésével. Placskó András fejlesztő és Schieder Gábor csapatvezető mutatta meg nekünk, milyen egyszerű is egy robotot Scratch-szerű felületen programozni. Tíz-tizenöt parancsból álló kis programmal a robotkar képes volt egy golflabdát megfogni, és egy másik pozícióba áthelyezni. Ehhez természetesen az kellett, hogy ezeket a magasszintű utasításokat előtte a mérnökök elkészítsék. Egy másik robotkaron pedig azt tudtuk kipróbálni, hogy milyen az, amikor az ember együttműködik a robotkarral. Az első bemutató program mozgatta a kart, közben pedig valaki a kezét a kar útjába tette. Alig érintette meg a kar az akadályt, azonnal megállt. Számomra meglepően kis erőket is pontosan tudott érzékelni a robotkar. Másodjára pedig kézzel szabadon mozgathattuk a robotkart és követte az iránymutatásunkat. Így lehetővé vált a „megmutatom a pozíciót”-szerű betanítás, nem csak a vezérlőn keresztüli „addig léptetem, amíg jó helyre nem kerül” fajta.

A robotkarok után továbbmentünk a mobilis robotok laborjába. Itt is két bemutatót nézhettünk meg Baji Bence csapatvezető és Fehér Ágoston csapatvezetők jóvoltából. Ezek a robotok kerekekkel rendelkeztek, így tudtak helyet változtatni. Az első robotra felszereltek egy LBR iiwa kart is, melynek kezében egy kartonlap volt. A kartonlap két felén pedig David Hasselhoff, amint egyszer boldog, egyszer pedig mérges. A robot programja szerint: ha David Hasselhoff jókedvű, akkor a robothoz legközelebbi személy elől megpróbál elmenekülni, ha pedig mérges, akkor a legközelebbi személyt üldözőbe veszi. A két állapot között pedig a robotkart ért külső nyomás váltott. David Hasselhoff mindig a célszemély felé nézett. A fejlesztők elmondták, hogy szerencsénk van, mert ezt a projektet eddig csak a KUKA-s fejlesztőcsapat látta, még nem mutatták be sehol a közönségnek. A program célja pedig az, hogy legyenek olyan látványos és egyszerű alkalmazások, melyeket kiállítások alkalmával be tudnak mutatni, így szemléltetve a robotok képességeit.

A második elkerített részben három „raktáros” robot dolgozott, alágurultak az áruval megrakott polcoknak, kicsit megemelték, és a hátukon vitték a kijelölt új pozícióba. A három robot mozgását egy központi raktár menedzser program koordinálta. A robotok önmaguktól csak arra voltak képesek, hogy a négyzetrácsosan felosztott térben egy téglalappal odébb menjenek, és annak pontosan a közepén megálljanak. A több robot ütközésmentes mozgatását a menedzser program irányította, ami teljesen a budapesti központ fejlesztése.

Számomra az volt a meglepetés, hogy több százszor, vagy ezerszer megemelt, mozgatott és letett polcok pontosan három centiméter távolságban voltak egymáshoz képest. Ilyen pontos pozícionáláshoz elegendő volt mindössze a robotok alján található egy darab kamera, és a padló virtuálisan téglalapokra osztott területén, minden téglalap közepén elhelyezkedő QR-kód-szerű matrica.

Pizza és kötetlen beszélgetés

Az utolsó napirendi pont, a pizza és a beszélgetés következett. Laboda Krisztián mellett találtam helyet, néhány további érdeklődővel együtt. Arról kérdeztük Krisztiánt, hogy milyen feltételei vannak, ha valaki a KUKA-hoz szeretne jönni dolgozni, milyen programozási nyelvet érdemes tudni, milyen tapasztalati szint elegendő egy sikeres felvételihez, hogyan zajlik náluk a felvételi eljárás. Ő azt válaszolta, hogy sokféle programnyelvvel dolgoznak, a C, C++, C#, Java nyelveket biztosan használják, de előfordul náluk a JavaScript, TypeScript is, sőt, néha a Python-ra is szükségük van. Tapasztalati szint szerint a juniortól egészen a csapatvezetőig keresnek munkatársakat, természetesen nem egyszerre mindenfélét, inkább szükség szerint. Egykörös interjúkat szoktak tartani.

Nagyon érdekes délutánt töltöttem el a KUKA Hungary Kft. rendezvényén, ahol látszott, hogy sok vendéget megfogott a téma és az ipari robotos világ. Ha valaki érdeklődne hasonló nyílt napok után, érdemes a KUKA Global oldalt követnie a facebookon, mert várható, hogy a cég félévente újabb fejlesztői délutánokat fog szervezni.

A rendezvény szervezői nem engedélyezték a fényképezést.