MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR
TUDOMÁNYOS DIÁKKÖRI DOLGOZAT
LR MATE 200IC TÍPUSÚ FANUC ROBOT KÉPALKOTÁSÁNAK VIZSGÁLATA
Jászkai Tamás István IV. éves mechatronikai mérnök hallgató
Konzulens: Lénárt József egyetemi tanársegéd Robert Bosch Mechatronikai Tanszék
Miskolc, 2010
1
TARTALOMJEGYZÉK
1
Tartalomjegyzék ....................................................................................................... 1
2
Bevezetés.................................................................................................................. 2
3
Elméleti háttér .......................................................................................................... 3
4
A kamera beállításának fontossága .......................................................................... 4 4.1
5
Beállítások és hatásaik ...................................................................................... 6
Programozás ........................................................................................................... 13 5.1
Alapbeállítások ................................................................................................ 13
5.2
Utasítások ........................................................................................................ 14
5.3
Példaprogram................................................................................................... 15
6
Összegzés ............................................................................................................... 18
7
Irodalomjegyzék ..................................................................................................... 19
1
2
BEVEZETÉS
A Robert Bosch Mechatronikai Tanszék az elmúlt évben egy FANUC LR Mate 200iC típusú ipari robotot szerzett be. A hat szabadságfokú robot teljes kínyúlása 704mm, maximális terhelhetősége 5kg. A robot különlegessége, hogy a kiegészítő iRVision 3DL kamerának köszönhetően rendelkezik alakfelismerési képességgel, mely intelligens robotot igénylő feladatok ellátására is alkalmassá teszi. A dolgozat célja az intelligens ipari robotok vizuális érzékelőinek ismertetése, gyakorlati példaként a Fanuc cég egy LR Mate 200iC típusú robotjának és az iRVision 3DL érzékelőjének bemutatása. Az első rész a képfeldolgozás szakirodalmának releváns részét ismerteti, röviden szó esik a kísérletekben használt hardverről, ezzel alapot teremtve a dolgozatnak. A második rész a végrehajtott mérésekről szól, azok céljairól, megvalósításukról, az eredmények ismertetésével és elemzésével folytatódik. Ezen kívül szó esik a gyakorlati alkalmazás során fellépő hibajelenségekről és egyéb befolyásoló tényezőkről, valamint az ezek kiküszöbölésére szolgáló lépésekről, az alkalmazás tervezésének során hozandó döntések fontosságáról. Főbb tényezők: az alkalmazás területe, helye, a kezelendő munkadarabok fizikai tulajdonságai (méret és alak, tömeg, szín), a környezet hatásai (természetes fény és napszakváltozás, mesterséges megvilágítás). A harmadik rész a programozásal foglalkozik, bemutatásra kerül egy példaprogram, mely egy válogatást végeztet el a robottal. A dolgozat a fentebbiek ismeretében hozott következtetések levonásával zárul az ipari felhasználás módjait, lehetőségeit illetően.
2
3
ELMÉLETI HÁTTÉR
A kamera a munkadarab felismeréséhez egy élkereső algoritmust használ, mely egy lokális művelet, azaz a képpont művelet utáni értéke nem csak annak eredeti értékétől, hanem a környező pixelektől is függ, az pedig, hogy mekkora környezettől, a használt operátortól függ. Lokális műveleteken belül az élkeresés a konvolúciós műveletek közé tartozik, ami egy képpont új értékét a képpont és a környezetének súlyozott összegéből állítja elő. A súlyozás együtthatóit a konvolúció operátora tartalmazza. Megszokott, hogy az operátor páratlan számú sorból és oszlopból áll, így van középső eleme. Az élkiemelő operátorok elemeinek algebrai összege mindig zérus. Ha egy operátor elemeinek algebrai összege zérus, akkor az operátor élkiemelő. Az eljárás a képet mátrixként kezeli, melynek minden eleme egy világosság érték (fekete-fehér kamera esetében) és ezen értékekben keres ugrásokat. Tehát akkor tudjuk érzékelni a tárgyat, ha annak színe elüt a háttértől. Az élek keresésére a különbségképzés nyújt egyszerű megoldást, mert homogén területek esetében az értéke nulla, míg ugrásoknál nagy értékeket vesz fel. A megfelelő küszöbérték beállításával hangolhatjuk az elvárásainknak megfelelő érzékenységűre, amely képpont a konvolúció után a határérték fölött marad, azt logikai 1-ként, a többit 0-ként fogja fel a program. Az 1. ábrán egy ingyenes képnézegetővel is elvégezhető éldetektálást láthatunk. A kiemelt részleten látható, hogy a kép zaj jellegű hibáit is körülrajzolja.
1. ábra A felhasznált kép, az éldetektálás eredménye és a zaj okozta hiba
3
A megvalósítás menete a következő, az operátorunk középső elemét fedésbe hozzuk egymás után az összes képponttal, az operátor minden elemét összeszorozzuk az általa lefedett értékkel, majd ezeket összegezzük, ez az összeg lesz a képpont új értéke. A Fanuc az általuk használt operátort gondosan titkolja, így egy Sobel operátor kerül bemutatásra, mely két darab 3x3-as mátrixot használ, az első a vízszintes, a második a függőleges élek keresésére szolgál:
és Az operátorok középső elemét sorban a kép-mátrix összes elemével fedésbe hozva tagonkénti szorzást végzük, ezek eredményeit pedig összegezzük. A két eredmény (S1 és S2) négyzetösszegéből vont gyök lesz az új érték, a gradiens pedig S1/S2). Két pixel széles éleket ad eredményül. A számítási idő csökkentésére gyakran közelítést alkalmaznak, a négyzetösszegek gyöke helyett a két eredmény abszolútértékének összegét számítva ki. Az eredmény nem teljesen azonos, ám általában elfogadható és gyorsabb. Az élkeresés után a tárgy alakjának matematikai leírását készíti el a robot vezérlőegysége, melyhez hasonlót keres a kamera által szolgáltatott képen, az általunk beállított feltételeknek, eltérésekre vonatkozó határértékeknek megfelelően.
4
A KAMERA BEÁLLÍTÁSÁNAK FONTOSSÁGA
A robot 3D Laser szenzor által készített képet az R-30iA Mate vezérlő dolgozza fel, melynek teljesítménye a ma elterjedt asztali számítógépekhez képest meglehetősen alacsony, ezért nagyon fontos az alkalmazás körültekintő megtervezése, mert egy-egy beállítás, nagyobb engedékenység árát a feldolgozási időn keresztül fizetjük meg, ami például szalaggal történő kiszolgálás esetén fontos tényező lehet.
4
A kép készítése során a változó fényviszonyok változó eredményekhez vezetnek, például a tárgy árnyékának felismerése, amely egy valójában nem létező tárgy éleként jelenik meg. Alacsony határérték használatával két tárgyat ismerne fel a rendszer, melyek
egymásba
lógnak
(KÉP).
A
természetes
fény
változó
hatásainak
kiküszöböléséről már volt szó, alapvetően két lehetőség kínálkozik: vagy árnyékolással kizárni a napfényt, vagy olyan mesterséges megvilágítást alkalmazni, mely elnyomja azt. Utóbbi megoldása körülményes, nem is hatékony, iparban többször láthatjuk az árnyékolást, például egy vázszerkezeteket hegesztő robot, mely nagy helyigényű munkát végez, ezért nehezen árnyékolható volt, a hegesztőfejjel mozgó köpenyt kapott. A rendelkezésre álló eszközök: egy Fanuc LR Mate 200iC típusú robot, R-30iA Mate vezérléssel és iRVision 3DL képalkotó rendszerrel (x. ábra).
2. ábra A mérési összeállítás
5
4.1
BEÁLLÍTÁSOK ÉS HATÁSAIK
A fentebb említetteken kívül a szoftveres beállítási lehetőségekre is hangsúlyt kell fordítani, mivel ezekből egy-egy módosítása is többszörözheti a feldolgozási időt. A méréseket egy akkor betanított és a továbbiakban mozdulatlanul hagyott tárgy felismertetésével végeztem. Az iRVision 3DL által kínált lehetőségek következnek rövid magyarázattal és a végzett mérések eredményeivel, melyek milliszekundumban megadott értékek. A táblázatok mellett grafikon is szemlélteti az eredményeket, ahol jelentős eltérés tapasztalható. A kiindulási beállítások a táblázatban félkövérrel kiemelt sorban találhatóak, ehhez hasonlítjuk a többi eredményt. A x. ábrán láthatóak a GPM Tool betanító képernyőjének beállítási lehetőségei (a mérés során használt alapértékekkel feltöltve).
3. ábra Beállítási lehetőségek
6
Score Treshold Küszöbérték, az ezt meghaladó pontszámot elérő tárgyakat fogadja el felismertnek. Túlságosan alacsony érték beállítása több, nem ott levő tárgy felismeréséhez vezethet, melyeket egyéb tárgyaik éleiből, árnyékokból állít össze a vezérlő. Itt a megvilágítás újra előjön, hiszen az árnyék gyakran az eredeti testhez hasonló körvonalat rajzol a kamera elé. Score (80%) 99 95 90 80 60 40 20 10
threshold 1. 2. 3. mérés mérés mérés Átlag Eltérés (%) 397 395 403 398,3333 -0,167084378 395 405 402 400,6667 0,417710944 398 402 397 399 0 400 403 394 399 0 593 610 607 603,3333 51,21136174 813 888 893 864,6667 116,7084378 2386 * 2418 1601,333 301,336675 * * * * Hibaüzenet: CVIS-038 Too many candidates to process 1. táblázat A Score határérték módosításának mért hatása
A szigorúbb feltétel (magasabb határérték) nem jár jelentős időmegtakarítással, míg az engedékenység jelentősen lassítja a folyamatot és nagyon alacsony beállításnál hibát is okoz. Contrast Treshold Kontraszt küszöb, két pixel közti világosságbeli eltérés minimuma (0-255 közt, 8 bites kép), melyet élként ismer fel. Alacsony érték sok élt eredményez, míg túl magas érték a tárgy éleit is kizárhatja. A mérés kezdetétől a végéig már érzékelhetővé vált a természetes fény hatása, az alakzat körvonalának a világosság különbsége a háttérhez képest 52-ről 45-re csökkent, ami 50-es kontraszt határ esetén értékelhetetlen eredményekhez vezetett volna (a terem sötétítő függönye be volt húzva, a világítás pedig felkapcsolva). Ennek a hatása csökkenthető, ha fix expozíciós idő helyett
7
dinamikusat választunk. Az alacsony érték több él felismeréséhez vezet, ami kis mértékben megnöveli a feldolgozási időt. Contrast (40) 100 90 80 70 60 50 40 30 20 10
treshold 1. mérés nem talál nem talál nem talál nem talál nem talál 404 400 404 401 417
2. mérés 3. mérés nem talál nem talál nem talál nem talál nem talál nem talál nem talál nem talál nem talál nem talál 405 401 403 394 401 399 403 404 410 418 2. táblázat
Átlag
Eltérés (%)
403,3333 399 401,3333 402,6667 415
1,086048454 0 0,584795322 0,918964077 4,010025063
A Contrast Threshold határérték módosításának mért hatása A Score és EA Score értékek továbbra is 100%-ot mutatnak, amiből következik, hogy az élek megléte a fontos az értékelésben, míg a nem kívánatos élek megjelenése a felismerésben nem játszik szerepet, alkalmazásnál ezt figyelembe kell venni. Példaképpen: ha repedt darabokat szeretnénk kiválogatni, azt jelentősen megnehezíti. Elasticity Különböző pontatlanságokból fakadó eltérések kiküszöbölésére alkalmas, pixelek számával adhatő meg. A beállítható tartomány (Valid range) 0,1-től 5,0-ig terjed, a feldolgozási időt nem befolyásolja nagyban, viszont a keresés eredményét igen. Hiába volt érintetlen a tárgy, alacsony értéket beállítva nem ismerte fel a program. Elasticity pixel) 5 0,1
(1.5 1. mérés 409 403
2. mérés 3. mérés Átlag Eltérés (%) 409 406 408 2,255639098 404 407 404,6667 1,42021721 3. táblázat
Az Elasticity határérték módosításának mért hatása Area Overlap 8
Területi átfedés, ez az ömlesztve érkező darabok mellett az árnyékok által létrehozott alakok szempontjából fontos. Amennyiben kizárt, hogy a darabok egymást átfedve érkezzenek, kikapcsolható (0%), azonban mint látható a feldolgozási időre nincs hatással. Area (75%) 100 90 80 75 70 60 50 40 30 20 10
overlap 1. mérés 410 396 401 400 393 404 414 399 396 404 403
2. mérés 3. mérés 403 411 405 395 396 396 403 394 396 399 396 393 403 403 404 394 402 402 401 402 400 406 4. táblázat
Átlag 408 398,6667 397,6667 399 396 397,6667 406,6667 399 400 402,3333 403
Eltérés (%) 2,255639098 -0,083542189 -0,334168755 0 -0,751879699 -0,334168755 1,921470343 0 0,250626566 0,835421888 1,002506266
Az Area Overlap határérték módosításának mért hatása EA score treshold A GPM Tool betanításakor kiemelt területekre (Emphasis Area) külön adhatunk meg küszöbértéket. Hatása a feldolgozási idő szempontjából a Score threshold-éval ellentétben sem nagy, sem alacsony értéknél nem érzékelhető. EA Score Threshold (80%) 10 90 99
1. mérés 395 394 404
2. mérés 3. mérés 403 397 394 397 396 395 5. táblázat
Átlag 398,3333 395 398,3333
Eltérés (%) -0,167084378 -1,002506266 -0,167084378
Az EA Score Threshold határérték módosításának mért hatása
9
Allow floating EA A kiemelt területet elmozdulását engedhetjük meg a nem kiemelt élekhez képest. Hasznos, ha például megfelelőséget igazoló pecsétet keresünk a darabokon, melyek helye változhat és csak a megléte a fontos. A feldolgozási időre nincs hatással, sem önmagában, sem az EA score treshold-dal együtt állítva. Ignore polarity A világosság értékeknél figyelmen kívül hagyja, melyik a nagyobb, így például egy fekete tárgyat ugyanúgy ismer fel szürke háttéren, mint egy feketét. Feldolgozási idő szempontjából elhanyagolható, azonban az árnyékok miatt nem közönbös. Search window A kamera által közvetített kép egy részére korlátozhatjuk a feldolgozást, mely jelentősen gyorsíthatja a folyamatot, alkalmazása azonban robotra rögzített kameránál mégsem előnyös. Amennyiben rögzített kameránk van, amely valamilyen okból a robot munkaterétől az ideálisnál távolabb, vagy rossz pozícióban került elhelyezésre (például ütközések elkerülésére), úgy mégis megfontolandó lehet a használata. Orientation A keresett tárgy betanított helyzettől való maximális megengedett eltérését adhatjuk meg fokokban. Jelentősen növelhetjük vele a feldolgozás időigényét, ezért célszerű más eszközöket alkalmazni, például a szalagon érkező darabok orientációját terelőlapokkal beállítani. Míg kikapcsolva az orientáció tűrését nagyon gyorsan végbemegy a kép feldolgozása, addig bekapcsolt, de 0%-ra vett értéknél nem találja meg a tárgyat. Ez vagy programhiba, vagy a valós üzemi körülményeket figyelembe véve a kikapcsolt állapotban is van bizonyos fokú engedékenysége a programnak (amely a mért idők alapján meglehetősen alacsony érték lehet).
10
Orientation (°) Kikapcsolva: Bekapcsolva +-0°: Bekapcsolva +-10: Bekapcsolva +-20: Bekapcsolva +-30: Bekapcsolva +-40: Bekapcsolva +-60: Bekapcsolva +-80: Bekapcsolva +-90: Bekapcsolva +-100: Bekapcsolva +-140: Bekapcsolva +-180:
1. mérés 73 nem talál 111 145 185 221 291 363 400 436 584 741
2. mérés 3. mérés 75 69 nem talál nem talál 110 111 147 144 186 180 219 221 297 290 369 392 403 394 443 434 577 579 721 733 6. táblázat
Átlag Eltérés (%) 72,33333 -81,871345 110,6667 145,3333 183,6667 220,3333 292,6667 374,6667 399 437,6667 580 731,6667
-72,2639933 -63,5756057 -53,968254 -44,7786132 -26,6499582 -6,09857978 0 9,690893901 45,36340852 83,37510443
Az Orientation határértékek módosításának mért hatása Scale A tárgyak méretének a betanítotthoz
való határait adhatjuk meg. Amennyiben a
kamera és a tárgy közti távolság állandó (például minden keresés előtt adott pozícióba mozgatjuk a robotot), úgy a pontatlanságnak megfelelő értéket elég megadni, jelentős időt takarítva meg ezzel. Scale (%) Kikapcsolva: Bekapcsolva +-0: Bekapcsolva +-10: Bekapcsolva +-25: Bekapcsolva +-50: Bekapcsolva +-75:
1. mérés 91 91 209 402 763 1120
2. mérés 3. mérés 89 88 93 90 205 208 396 399 775 763 1123 1134 7. táblázat
Átlag 89,33333 91,33333 207,3333 399 767 1125,667
Eltérés (%) -77,6106934 -77,1094403 -48,0367586 0 92,23057644 182,1219716
A Scale határértékek módosításának mért hatása Az elforduláshoz hasonló mértékű eltéréseket láthatunk, azonban a 0%-on ezúttal a kikapcsolt állapotnak megfelelő értéket kapunk és a tárgyat felismeri a rendszer.
11
Aspect ratio Az oldalaránynak adhatunk meg korlátokat, változó darabok mellett ferdén érkező tárgyak esetén is hasznos lehet, azonban nagy hatással van az engedékenységünk a feldolgozási időkre. (Valid Range a maximum és minimum esetében is 50-től 100%-ig terjed.) Aspect Ratio (MIN-MAX, %) Kikapcsolva Bekapcsolva 100-100: Bekapcsolva 90-100: Bekapcsolva 80-100: Bekapcsolva 80-90: Bekapcsolva 70-100:
1. mérés 400 426 2482 7870 7687 *
2. mérés 3. mérés Átlag Eltérés (%) 403 394 399 0 424 422 424 6,26566416 2531 2445 2486 523,0576441 7670 7739 7759,667 1844,778613 7661 7650 7666 1821,303258 * * *CVIS-033 The operation has timed out. 8. táblázat
Az Aspect Ratio határértékek módosításának mért hatása Mint látható, a funkció puszta bekapcsolása 6% feldolgozási időbe kerül és megközelíteni sem lehetett a névleges minimumot (50%), mert túllépjük a megadott maximális feldolgozási időt (10s). A felső határ módosítása az időre kis hatással volt, a tárgy felismerését pedig nem befolyásolta.
12
5
PROGRAMOZÁS
A Fanuc robotjainak programozása nem egységes. A programok előállítására két lehetőségünk van, melyek lehetőségeikben és írásukban is különböznek. A Fanuc programnyelve a Karel, melyet Karel Capek cseh drámaíróról neveztek el, akitől a robot megnevezés származik. A programozás történhet a robot Teach Pendantjának használatával, illetve számítógépes fejlesztőkörnyezetben. Előbbi előnye a robot mozgásának jobb kontrollja, az egyes mozdulatok problémái már betanítás közben láthatóak, az ebből eredő ütközések pedig elkerülhetőek. A létrehozható programok kevésbé összetettek, kevesebb parancsot használhatunk, azonban mozgások terén ez rendelkezik több lehetőséggel. Utóbbi előnye a kényelmesebb programozás, több parancs,
szimulációval
pedig
ellenőrizhetőek
az
ütközések
is,
gyártócellát
készíthetünk, rendszerbe foglalhatjuk és robotokat csoportokba rendezve közös vezérlő program készülhet. 5.1
ALAPBEÁLLÍTÁSOK
A továbbiakban a robot Teach Pendanttal történő betanítása kerül bemutatásra, mivel ez áll rendelkezésre. A Pendant a robot vezérlő egységéhez csatlakoztatott I/O eszköz, főbb részei az LCD kijelző, a billentyűzet, üzemmód választó kapcsoló, vészleállító gomb és az úgynevezett Dead Man Switch. A kijelző a robot és a futó program aktuális állapotáról, az aktuális művelethez kapcsolódó lehetőségekről (program létrehozásakor például parancslista) és a Soft Key-ekkel éppen végrehajtható parancsokról szolgáltat információt. A billentyűzet részei az állandó szerepet betöltő gombok és a Soft Key-ek (F1-F5), melyek feladata változik, mindig az adott lépéshez igazodva. Az üzemmód választó kapcsolóval a robot futási módját választhatjuk ki az automata programfuttatás, illetve a két betanítási mód (T1, T2) közül. Utóbbi kettő közt a robot mozgásának korlátozásaiban van különbség. • AUTO: A végleges program futtatása, maximális sebesseség mellett. A biztonsági berendezések aktívak. 13
• T1: Betanítási mód, program létrehozásáhozm a mozgási sebesség korlátozása mellett (max. 250 mm/s). A biztonsági berendezések nem aktívak, csak benyomott Dead Man kapcsolóval mozgatható a robot. • T2: Betanítási mód sebesség korlátozás nélkül. A biztonsági berendezések nem aktívak, csak benyomott Dead Man kapcsolóval mozgatható a robot. A Dead Man Switch biztonsági szerepet betöltő háromállású kapcsoló, mely leállítja a robot mozgását akár elengedjük, akár túlnyomjuk. Ennek a betanítás közben van szerepe a balesetek megelőzésében, Auto módban természetesen nem kell nyomva tartani. A Teach Pendant fontos szerepet tölt be a robot masterelésében, a koordinátarendszerek betanításában, be- és kimenetek konfigurálásában és egyéb beállításokban is, nem csak a programozáshoz szükséges. Természetesen új program létrehozása mellett lehetőségünk van meglévő programok szerkesztésére, másolására is. 5.2
UTASÍTÁSOK
A programnyelv hasonlít a magas szintű programnyelvekre, a Fanuc leírása szerint azok előnyeit egyesítve az iparban használatos más programozási nyelvek előnyeivel. Az utasítások besorolhatóak néhány nagyobb csoportba, melyekről pár példa és rövid leírás következik. • Mozgás utasítások: Joint (pontból pontba, a robot számára legegyszerűbb pályán, a szerszám orientációját nem tartva), Linear (egyenes vonalú mozgás, szerszám orientációját tartva) és Circular, vagyis körmozgás, három pont megadásával. Az alapvető mozgástípus kiválasztása mellett lehetőségünk van úgynevezett befejezési módot választani, hogy áthaladjon a ponton, vagy elég megközelítenie azt. Emellett kiegészítő beállítások is léteznek, például a gyorsulás korlátozására.
14
• Regiszterek kezelésének utasításai: a különböző regiszter típusok írása, olvasása, velük való műveletek végzése. Az egyszerű regiszterek tartalma egy szám, a pozícióregiszterek azonban három koordinátát és három orientációt tartalmaznak. • Szervező utasítások: várakozás (WAIT), megállítás (PAUSE), megszakítás (ABORT), feltétel (IF), kiválasztás (SELECT ~ Case a C-ben), ugrás (JUMP), más program meghívása (CALL). • Beállítások: sebesség szabályzás (OVERRIDE), korlátozás (MAX SPEED), a hasznos teher (PAYLOAD) és a kar terhelés (ARMLOAD), valamint a koordináta rendszer kiválasztása (FRAME). • Egyéb utasítások, például a felhasználó számára visszajelzések (REMARK, USER ALARM, TIMER stb.). • A Vision Process utasításai, melyek esetünkben különösen nagy hangsúlyt kapnak (és csak kamerával rendelkező rendszernél van értelme): RUN_FIND, GET_OFFSET, FOUND_POS stb. 5.3
PÉLDAPROGRAM
A következőben egy példaprogram látható, mely egy pneumatikus megfogóval felszerelt robotot kamera által szolgáltatott offset regiszter segítségével pozícionál a felismert darabhoz, majd megfogja és a megadott helyre teszi, ezután újrakezdve a ciklust. Ez megoldás lehet szalagon érkeződarabok válogatására, vagy például dobozolásra. Megoldható természetesen merőben eltérő munka is, pédául: hegesztési feladat, ahol a varratot adott „tájékozódási” pontokat felismertetve helyezi el, vagy sorjázási munka, ahol a darab kontúrjait kell megfelelő precizitással betanítani.
15
A programkód: MESSAGE[-----START-----] R[100]=1
// kiindulási érték megadása a 100. regiszternek
VISION RUN_FIND ’PROBA1’ // a keresés lefuttatása JMP LBL[102]
// ugrás a 102-es címkére, hogy átugorjuk az EDDIG_SEMMI-t
LBL[100]
// címke a ciklusszervezéshez
MESSAGE[EDDIG_SEMMI]
// amennyiben nincs a látótérben felismerhető darab (várakozás)
LBL[102] R[R[100]]=42
//indirekt címzésű regiszter kiindulási értékének megadása
VISION GET_OFFSET ’PROBA1’ VR[R[100]] JMP LBL[100] // Offset (a TCP-hez képest) kiíratása Vision Register-be, ha nem ismert fel semmit, úgy ugrás a program elejére (LBL[100]) R[99]= VR[R[100]].MODELID // a felismert darab modellszámának másolása VR-ből R-be MESSAGE[TALALAT] PR[25]= VR[R[100]].FOUND.POS[1] // a VR-BŐL Position Register-be másolja az Offsetet 16
L PR[25] 100mm/sec FINE INC // inkrementális lináris mozgás a tárgy középpontjához RO[4]=ON
// pneumatikus megfogó zár
L PR[R[99]] 100mm/sec FINE
// a darabot a helyére mozgatja
RO[5]=ON
// pneumatikus megfogó nyit
R[100]=R[100]+1
// ciklusváltozó növelése
IF R[100]<=10, JMP LBL[102] // for ciklus MESSAGE[-----VEGE-----]
A példaprogram egy válogatást mutat be, ahol a felismert darabokat a modellszám szerint válogatva a helyükre teszi, például felhasználható különböző alkatrészek palettázásához, egy beültetőgép kiszolgálására. Természetesen sok mindent lehet változtatni rajta, például jelen esetben a keresés csak egyszer fut le, azonban ez nem mindig kielégítő, ha egymást kitakarják darabok, akkor azt is a cikluson belülre lehet vinni. A ciklus újrakezdésekor a kart keresési pozícióba mozgatva (a tárgyak kerüljenek a kamera látóterébe) ismét lefuthat a keresés. Amennyiben azonban ez nem szükséges, úgy megtakarítható a keresés ideje, ami, mint láthattuk korábban, egy-egy lefutás idejét jelentősen megnövelheti (a kar teljes sebességen másodpercek alatt elér bármely pozícióból bármely másikba).
17
6
ÖSSZEGZÉS
A kamerás alakfelismerés ipari felhasználásához előrelátó tervezés szükséges. Többféle rendszer és rendszerösszeállítás közül választhatunk, melyek más és más előnyökkel bírhatnak. Az ipari felhasználás során előre meg kell tervezni a rendszeren és annak környezetén kívül a kezelendő munkadarabot is, mert a biztos felismerés vagy éppen mozgatás múlhat ezen. A robot alkalmazása természetesen hátrányok mellett előnyökkel is rendelkezik: gyors, pontos és nem fárad el. Egy megfelelő anyagellátó rendszerrel kiegészítve termelékenységben a humán teljesítőképesség sokszorosát képes produkálni, akár hajnali három órakor, az emberi éberség mélypontján is. A kamerával kiegészítve jóval szélesebb körben alkalmazható, például válogatásra, vagy különböző helyzetekben érkező alkatrészek megfogására. A programozás a C nyelvben szerzett ismeretek elsajátítása után könnyű, az ott használt logika a Karel-ben is segít, ezért hosszú tanulási időt nem igényel és Teach Pendant használatával programozás közben kipróbálható a program minden egyes részlete, ami kevesebb utólagos javítást tesz szükségessé. Összességében véve a robot hatékony megoldás lehet, az emberi munkaerővel összevetve azonban előnyök mellett hátrányokkal is rendelkezik. Elsőként mindjárt a befektetés, ami nem kevés, míg az emberi munkaerő betanítása (például válogatásra) kisebb költséggel jár. Az üzemeltetési költség tekintetében előnyösebb, mint a munkabér. A munkavégzés megbízhatósága a betanító/programozó munkájától függ, mennyire figyelt a külső és belső tényezőkre. Van, amire nem alkalmas, például átlátszó/áttetsző dolgok válogatása, azonban használható olyan helyeken, ahol ember nem dolgozna (fertőzésveszély például). A robot tehát nem univerzális megoldás, értékelni kell az adott feladatra való alkalmasságát és helyes döntést hozni.
18
7
IRODALOMJEGYZÉK
[1]: KULCSÁR Béla: Robottechnika, Egyetemi tankönyv, LSI Oktatóközpont, Budapest, 1998. [2]: CZAP László: Képfeldolgozás, egyetemi jegyzet, (link: http://www.gepesz.unimiskolc.hu/hefop/index.php?fajl=jegyzett&tsz=aut&intz=gek&kr=me&SID ) [3]: Milan SONKA, Vaclav HLAVAK, Roger BOYLE: Image Processing, Analysis and Machine Vision, második kiadás, PWS Publishing, Pacific Grove, USA, 1999. [4]: Stefan FLORCZYK: Robot Vision, betz-druck GmbH, Darmstadt, GER, 2005. [5]: Mark W. SPONG, Seth HUTCHINSON, M. VIDYASAGAR: Robot Modeling and Control, John Wiley & Sons, Inc. New York, USA, 2005. [6]: Fanuc iRVision 3D Laser Vision Sensor Start-Up Guidance, Fanuc Ltd, 2007.
19