Informatika a felsőoktatásban 2005
Debrecen, 2005. augusztus 24-26.
ROBOTIKA, ROBOTTECHNIKA – OKTATÁS AZ ELTE INFORMATIKAI KARÁN ÉS A KF GAMF KARÁN ROBOTICS AND ROBOT TECHNICS TEACHING AT THE INFORMATICS FACULTY OF ELTE AND AT THE GAMF FACULTY OF KF Dr. Istenes Zoltán,
[email protected] ELTE, Informatikai Kar Pintér István,
[email protected] Hegedűs Zoltán,
[email protected] Kecskeméti Főiskola, Gépipari és Automatizálási Műszaki Főiskolai Kar
1. Robotika és robottechnika oktatása A robottechnika oktatásának mintegy 25 éves múltja van a GAMF-on: mind az ipari robotok elméletével, mind azok alkalmazástechnikájával foglalkozunk. Az oktatásban fő törekvés megismertetni a robotmechanizmusokat, a vezérlést, a megfogókat, az érzékelőket, a programozást és a robotok ipari alkalmazásának lehetőségeit. A gyakorlati oktatást a FANUC RB242-es és ABB IRB140-es robotokra alapozzuk [1]. A hallgatók feladata programozás adott munkaállomás-szerű környezetben. Ez azt jelenti, hogy a robotok irányítják a környezetükben található eszközöket – fontos tapasztalat a hallgatóknak, hogy egy robot egyúttal egy kiterjedt irányító központ is. Az ELTE Informatikai Kar, Programozáselmélet és Szoftvertechnológiai tanszék, Mesterséges Intelligencia sáv, Robotika tárgyának az oktatása, jelen formájában, csupán 4 éves múltra tekinthet vissza. A félévenként meghirdetett, választható tárgyat, negyed és ötöd éves programtervező matematikus hallgatók vehetik fel, 20-25 fős létszámkorláttal. A gyakorlatra évek óta többszörös a túljelentkezés. A hallgatók a félév során 3-3 fős csoportokban dolgoznak, egy héten keresztül egy, két vagy három csoport dolgozik egyszerre, a feladatokhoz szükséges eszközök függvényében. Az egyszerű feladatok elvégzéséhez egy, az összetettebb feladatok elkészítéséhez kettő hét áll a rendelkezésükre. A diákok a félév első óráján kapnak egy rövid bevezető ismertetőt az eszközök használatáról, de a továbbiakban a csoportok önállóan dolgoznak. A hallgatók rendelkezésére áll egy robotika labor, ahova a hét alatt "bármikor" folyamatosan bejuthatnak és dolgozhatnak a feladatukon. A heti egyszeri, órarendi órákon mutatják be az eredményeiket, a többi hallgatóval és az oktatóval közösen vitatják meg a tervezési szempontjaikat, megvalósítási nehézségeiket és a megoldásaikat. Ezek a közös beszélgetések az éppen feladatot bemutató csoport számára és a többi csoport számára is nagyon hasznosnak, tanulságosnak bizonyulnak. A tárgyhoz felhasznált eszközök alapvetően a LEGO Mindstorms Robotics Invention System 2.0 készletei, számos egyéb LEGO elemmel, számítógépekkel, webkamerával kiegészítve.
1
Informatika a felsőoktatásban 2005
Debrecen, 2005. augusztus 24-26.
2. Programozási feladatok A GAMF-on, a tipikus programozási feladatok a majdani ipari feladatokhoz kapcsolódnak: - FANUC munkadarabcsere: a feladat megoldása során programozói tapasztalatokat lehet szerezni munkagép kiszolgáló robotok alkalmazásával kapcsolatosan. Itt a robot irányítja az anyagmozgató rendszert is, beleértve a munkadarab kezelő manipulátor működtetését. - ABB robot programozása 1: a feladat papírdoboz rakosgatása, ahol a pozícionálás, orientálás, digitális jelkezelés programozását, az ABB alapvető kezelését lehet megtanulni. A digitális jelkezeléshez kivezettünk a robot digitális kimeneti (DO) paneljából 5 jelet LED-ekre. Ennek programozásával a hallgató megszámozhatja (binárisan kódolva 32 lépésig) a végrehajtott program egyes részeit, vagy lépéseit. - ABB robot programozása 2: a hallgató kiírhatja nevét, amely feladat hivatott gyakoroltatni a koordináta transzformációkat, a frame-k használatát. A robot felvesz egy filctollat, amellyel a robot előtt elhelyezett asztalon írni képes. A feladat különösen fontos értéke az off-line programozási lehetőség: a szövegszerkesztő segítségével (esetleg otthon) megírt program ftp-vel kerül fel a robotirányító számítógépre, ahol ezek után végrehajtható. Így nagyobb létszámú gyakorlatokat is lehet tartani, mert bármilyen számítógép alkalmas off-line fejlesztére, a robotos munkaállomást csak a programok tesztelésére használjuk. - ABB robot programozása 3 (a 2004/2005 tanévtől): feladatmegoldás robotból és alakfelismerésre is képes kamerából álló rendszerrel. A 2004/2005-ös tanévtől kezdve része a GAMF oktatásának ez a feladat. Az ABB robot és a DVT kamera [2] együttműködésének programozásához a hallgató nevének kivágott betűit használjuk. A betűket a kamera beépített karakterfelismerő algoritmusa azonosítja, a sikeres felismerés végeredménye a felismert objektum középpontjának koordinátái, valamint orientációs szöge. Ezeket az adatokat a robot átveszi a kamerától és ez alapján rakja ki a hallgató nevét. A feladat megoldásához rendelkezésre álló kommunikációs rendszert mutatja be az 1. ábra. Internet TCP/IP
PC ABB Control COM1 Unit
Camera
LAN
TCP/IP
TCP/IP
1. ábra
A feladat megoldásához kialakított számítógéphálózat.
2
Robot Arm
Informatika a felsőoktatásban 2005
Debrecen, 2005. augusztus 24-26.
A kamera a Robottechnika Laboratórium ethernet-hálózatára csatlakozik, adatátvitelre a TCP/IP protokoll használható, a futó robotprogram adatokat az RS232C szerinti soros vonalon képes fogadni. A kamera adatainak a robotprogramból való elérését teszi lehetővé az ábrán látható PC, ami veszi a kamera TCP/IP-s adatcsomagjait, átalakítja az ABB formátumára és továbbítja az eredményt a robotnak a soros vonalon keresztül. Erre azért van szükség, mert a robotprogram futás közben adatokat csak a soros vonalról képes fogadni. A programozási feladat összetett. Egyrészt programozni kell a DVT kamerát karakterfelismerési [3] és adatátviteli feladatra (utóbbi az elküldendő sztring összeállítását is igényli). Ezt a kamera saját FRAMEWORK szoftverével, az ObjectFind opció paraméterezésével és a terminálfunkciók adatainak beállításával érhetjük el (2. ábra).
2. ábra
A kamera beépített karakterfelismerési és terminál-funkciója működés közben. A kamera által előállított pozíciós és orientációs adatokat a protokoll-konverziót végrehajtó számítógéptől a soros vonalon átveszi a robotprogram. Ezek után történik meg a beérkezett adatok fogadása, átalakítása a kamera és a robot koordináta-rendszereinek különbözősége miatt (3. ábra), ezen adatok mozgásvezérlő utasításba helyezése, majd pedig a mozgásciklus vezérlése immáron a robot RAPID programnyelve utasításainak igénybevételével. A feladat megoldásához tehát három, különböző eszközön futó program sikeres együttműködése szükséges (a kamera karakterfelismerő programja, a protokollkonverzót végző számítógép programja és az ABB program, ami az adatok fogadását végzi). A megvalósítás további részleteit [4] tartalmazza. Z ABB
YCam YABB ABB Robot
DVT Camera
TCP
XCam (0,0,0)
Work piece
XABB
3. ábra
A kamerával felszerelt robot koordináta-rendszerei. 3
Informatika a felsőoktatásban 2005
Debrecen, 2005. augusztus 24-26.
Az ELTE-én, a felhasználás egyik lehetséges módja az, hogy a számítógépen megírt programot, egy a számítógépre csatlakoztatott infravörös kommunikációs egységen keresztül az RCX egységre töltjük, majd a programot az RCX egység autonóm módon hajtja végre. A robot vezérlő program elkészítésének egyik legpraktikusabb módja a BricxCC környezetben az NQC, egy C-hez hasonló nyelv használata. A tárgy keretében a hallgatók nagyfokú önállóságot, "szabadságot" élveznek és ezt általában kreatív módon ki is használják. Egy teljes, egész, konkrét "mini" projektet kell megvalósítaniuk (tervezés, valósítás, tesztelés, finomítás és dokumentálás) mind a hardvert (robotot) mind a működtető szoftvert illetően, majd végül "közönség" előtt bemutatniuk.[5] A tipikus első és egyszerű feladat az "útvonalkövetés" mikor egy mobil robotnak fényérzékelők segítségével kell követnie az asztalra ragasztott, és annak színétől eltérő színű útvonalat. Itt számos variációs lehetőség kínálkozik, maga a robot felépítése, a felhasznált fényérzékelők száma és azok helyzete szerint vagy egyéb feladatnehezítések során; éles hajtűkanyarok, szakadozott útvonal, elágazás, akadály az úton, amit érzékelni kell és kikerülni, stb. (4. ábra)
4. ábra
Különböző felépítésű és programozású, útvonalkövető robotok. Második feladatra a csoportok maguk tehetnek javaslatokat, itt a célok: az RCX egység kommunikációs lehetőségeinek a kihasználása, több RCX egység alkalmazása, az informatika más területeinek a hasznosítása vagy a különböző programozási környezetek és nyelvek felhasználása. A hallgatók az elmúlt években számos különböző feladatot oldottak meg. E megoldásokból néhány példaként említendő: több mobil RCX egység felhasználásával, multiágens "fogócskázás" és "mentőakció", az RCX illetve a számítógép kommunikációjával segített navigáció, terület feltérképezése valamint annak grafikus megjelenítése. E feladat során, a robotra egy PDA (Personal Digital Assistant,) kéziszámítógépet szereltek, a kommunikáció kettőjük között az infravörös porton keresztül zajlott. A robot egy labirintusban bolyongott, ugyanakkor az érzékelői által folyamatosan bővítette a labirintus feltérképezését és egyben kijelzőjén azt megjelenítette, majd ha végzett a felderítéssel, akkor leállt (ennek a labirintusnak ugyanis nem volt kijárata). Egy másik esetben: kettő robot került a labirintusba: az egyikük feltérképezte a labirintust, majd az információit megosztotta a
4
Informatika a felsőoktatásban 2005
Debrecen, 2005. augusztus 24-26.
másik robottal, mely utóbbi nem rendelkezett a labirintus felderítéséhez szükséges érzékelőkkel. Érdekes kihívás volt a számítógéphez kapcsolt webkamera képének a feldolgozása révén irányított mobil robotok vezérlése is. E feladat egyik kiemelkedő megoldása, amikor egy speciális -sárga gumikesztyű, az ujjain kék ragasztócsíkokkal ellátott- vezérlőkesztyű kézjeleinek segítségével irányították a robotok mozgását. A kesztyűs kéz bizonyos kézjeleit előre, hátra, balra, jobbra illetve az 1-2-3 számokat- a látómezőjében történő tartása mellett, a robot felismerte, a mutatott mozdulatokat végrehajtotta. A feladat egy másik megoldásban egy asztallapon lévő robot, egy labda és egy kapu játszott szerepet. Mindegyikre felfestettek egy-egy eltérő színű foltot, illetve a robotra kettőt is, hogy ez utóbbi irányát is meg lehessen határozni. Az asztal fölé belógatott kamera képét a számítógép feldolgozta, majd kiszámolta, hogy a robot milyen útvonalon képes a labdát a kapuba juttatni, végül ezt az információt letöltötte a robotba, mely utóbbi így sikeresen gólt lőtt a kapuba. (5. ábra)
5. ábra
Kapura lövő robot. 3. Összegzés Összességében megállapítható, hogy a GAMF célja, a főiskolai szintű műszaki informatikai szak és a mérnök informatikus alapszak szakirányaink a gyakorlati képzése a robottechnika területén, az ipari robotok konkrét feladatra való használatának az oktatása, míg az ELTE Informatikai Kar, Mesterséges Intelligencia modul célja, a különféle területeken szerzett ismeretek széleskörű, kreatív felhasználása teljes mini projektek keretében. Együttműködésünkben tervezzük, hogy az ELTE-n folytatott robotikaoktatást és a GAMF-on végzett robottechnika oktatást színesítjük. Első lépésként a következő tanév őszi félévében hallgatói napot szervezünk a KF GAMF Kar Robottechnika Laboratóriumában, ahol az érdeklődő ELTE-s és GAMF-os hallgatóknak bemutatjuk egymás eredményeit, továbbá – második lépésként – az érdeklődő hallgatók számára lehetővé tesszük egymás laborgyakorlatainak látogatását.
5
Informatika a felsőoktatásban 2005
Debrecen, 2005. augusztus 24-26.
Irodalomjegyzék [1] [2] [3] [4] [5]
Hegedűs Z.: Robotprogramozás. Jegyzet. KF GAMF Kar, 2005. DVT FrameWork handbook. 2001. DVT Corporation, 2001. Álló G. és mtsi.: A digitális képfeldolgozás alapproblémái. Akadémiai Kiadó, Budapest, 1989. Z. Hegedűs, I. Pintér: Computer Vision System and Industrial Robot Integration: a Design Space Approach. Proc. of the 6th International Carpathian Control Conference Miskolc-Lillafüred, May 24-27, 2005. Vol. II. pp. 455-460. Zoltán Istenes: Learning serious knowledge while „playing” with robots. ICAI, Eger, Hungary, January 27-31, 2004
6