80
MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR SZERSZÁMGÉPEK TANSZÉK 3515 MISKOLC-EGYETEMVÁROS DIPLOMAMUNKA Feladat címe: ROBOTOS MUNKAHELY VIZUÁLIS ALAKFELISMERÉSEN ALAPULÓ IRÁNYÍTÁSI RENDSZERÉNEK FEJLESZTÉSE Készítette: NAGY SÁNDOR Egyetemi szintű gépészmérnök szakos Mechatronika szakirányos hallgató Tervezésvezető: BÁLINT RICHÁRD egyetemi adjunktus Miskolci Egyetem Anyagmozgatási és Logisztikai Tanszék Konzulens: BOZZAY PÉTER tanszéki mérnök Miskolci Egyetem Anyagmozgatási és Logisztikai Tanszék Miskolc, 2013.

Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

 

MISKOLCI EGYETEM GÉPÉSZMÉRNÖKI ÉS INFORMATIKAI KAR

SZERSZÁMGÉPEK TANSZÉK 3515 MISKOLC-EGYETEMVÁROS

DIPLOMAMUNKA

Feladat címe:

ROBOTOS MUNKAHELY VIZUÁLIS ALAKFELISMERÉSEN

ALAPULÓ IRÁNYÍTÁSI RENDSZERÉNEK FEJLESZTÉSE

Készítette:

NAGY SÁNDOR Egyetemi szintű gépészmérnök szakos Mechatronika szakirányos hallgató

Tervezésvezető:

BÁLINT RICHÁRD egyetemi adjunktus

Miskolci Egyetem Anyagmozgatási és Logisztikai Tanszék

Konzulens:

BOZZAY PÉTER tanszéki mérnök

Miskolci Egyetem Anyagmozgatási és Logisztikai Tanszék

Miskolc, 2013.

Page 2: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

2 Tartalomjegyzék

Tartalomjegyzék

Tartalomjegyzék .................................................................................................................. 2 

Summary .............................................................................................................................. 4 

Eredetiségségi nyilatkozat ................................................................................................... 5 

Bevezetés ............................................................................................................................... 6 

1.  A laboratórium bemutatása ........................................................................................... 7 

1.1.  A labor felszerelése ................................................................................................. 8 

1.1.1. Raktári állványrendszer .................................................................................... 8 

1.1.2. Komissiózó rendszer ........................................................................................ 8 

1.1.3. Hajtott szállítópálya rendszer ........................................................................... 8 

1.1.4. Komissiózó állvány .......................................................................................... 9 

1.1.5. Palettamozgató cella ......................................................................................... 9 

1.1.6. Függősínpálya rendszer .................................................................................. 10 

1.1.7. Azonosítástechnikai rendszer ......................................................................... 10 

1.1.8. SCADA rendszer ............................................................................................ 11 

1.2.  Robot ..................................................................................................................... 12 

1.3.  Vezérlőszekrény .................................................................................................... 14 

1.4.  Betanító panel ....................................................................................................... 15 

1.5.  Megfogó ................................................................................................................ 16 

2.  Vizuális alakfelismerés ................................................................................................. 18 

2.1.  Látás ...................................................................................................................... 18 

2.2.  Géplátás ................................................................................................................ 18 

2.3.  Képfeldolgozás ..................................................................................................... 19 

2.4.  A digitáliskép tulajdonságai .................................................................................. 21 

2.5.  Kamera elhelyezése .............................................................................................. 21 

2.6.  Kamera elhelyezése során felmerülő hibák .......................................................... 23 

2.7.  Fényforrás kiválasztása és elhelyezése ................................................................. 26 

2.8.  Egyéb hibalehetőségek.......................................................................................... 29 

2.9.  A kamera kiválasztása........................................................................................... 30

 

 

Page 3: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

3 Tartalomjegyzék

3.  Az alakfelismerő részrendszer sajátosságai ............................................................... 32 

3.1.  Programozási nyelv kiválasztásának szempontjai ................................................ 32 

3.2.  A LabVIEW .......................................................................................................... 34 

3.2.1. LabVIEW előlap ............................................................................................ 35 

3.2.2. LabVIEW programozói felület ....................................................................... 35 

3.3.  LabVIEW Vision .................................................................................................. 37 

3.4.  A munkadarab ....................................................................................................... 37 

3.5.  Koordináták meghatározása .................................................................................. 40 

3.5.1. Korreláció ....................................................................................................... 40 

3.5.2. Koordináták .................................................................................................... 42 

3.6.  Koordináták továbbítása ....................................................................................... 42 

3.6.1. TCP / IP .......................................................................................................... 43 

4.  A Vizuális alakfelismerő rendszer algoritmusa ......................................................... 45 

4.1.  Az algoritmus megírásának előkészületei ............................................................. 45 

4.2.  Kamera illesztése LabVIEW-ban ......................................................................... 47 

4.3.  A képelemzés LabVIEW-ban ............................................................................... 51 

4.3.1. Mintaillesztés ................................................................................................. 54 

4.3.2. Geometriai illesztés ........................................................................................ 54 

4.4.  Értékek feldolgozása ............................................................................................. 58 

4.5.  Előlapi panel ......................................................................................................... 62 

4.6.  Adatkommunikáció ............................................................................................... 64 

4.7.  A kommunikáció ellenőrzése ................................................................................ 65 

5.  Összefoglalás .................................................................................................................. 67 

Irodalomjegyzék ................................................................................................................ 68 

Köszönetnyilvánítás ........................................................................................................... 69 

Melléklet ............................................................................................................................. 70 

Page 4: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

4 Summary

Summary

Before writing the pattern recognition algorithm, in my thesis I got acquainted with several

practical imaging and image processing methods. After reviewing the literary sources, I

chose the most appropriate tools for the task and by using these I created a separate

program for the recognition of pieces.

During my work, I supplied a Mitsubishi RH-12 SH type robot located in the Logistics

Laboratory of the Department of Materials Handling and Logistics, University of Miskolc

with a control system based on visual pattern recognition. The robot’s task will be the

selection of predefined parts. For the recognition of pieces I used a webcam that can be

obtained by ordinary people as well; I created the image processing system with the help of

LabVIEW developed by National Instruments. The coordinates of the identified pieces are

sent to the robot’s controller through Ethernet network by the program. With the help of

the camera and the written program I created a low-cost but knowledgeable application

which can be successfully applied in industrial circumstances. The main line of the further

development of the program should be total integration with the robot.

Page 5: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

5 Eredetiségségi nyilatkozat

Eredetiségségi nyilatkozat

Alulírott Nagy Sándor, Neptun-kód: U4H9JC,

a Miskolci Egyetem Gépészmérnöki és Informatikai Karának végzős Gépészmérnök

szakos hallgatója ezennel büntetőjogi és fegyelmi felelősségem tudatában nyilatkozom és

aláírásommal igazolom, hogy

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

című diplomatervem saját, önálló munkám; az abban hivatkozott szakirodalom

felhasználása a forráskezelés szabályai szerint történt. Tudomásul veszem, hogy

szakdolgozat esetén plágiumnak számít:

- szószerinti idézet közlése idézőjel és hivatkozás megjelölése nélkül,

- tartalmi idézet hivatkozás megjelölése nélkül,

- más publikált gondolatainak saját gondolatként való feltüntetése.

Alulírott kijelentem, hogy a plágium fogalmát megismertem, és tudomásul veszem, hogy

plágium esetén szakdolgozatom visszautasításra kerül.

Miskolc, 2012 év november hó 23 nap.

…….……………………………….…

Hallgató

Page 6: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

6 Bevezetés

Bevezetés

Az emberi munkát helyettesítő gépek utópisztikus gondolata már több évszázada

foglalkoztat minket, azonban valódi megjelenésére 1951-ig várni kellet. A XX. század

végén a technikai fejlődésnek köszönhetően megjelentek az iparban a robotok.

A VDI 2860 irányelv (1981) szerint: „az ipari robot univerzálisan állítható többtengelyű

mozgó automata, amelynek mozgásegymásutánisága (utak és szögek) szabadon

– mechanikus beavatkozás nélkül – programozható és adott esetben szenzorral vezetett,

megfogóval, szerszámmal vagy más gyártóeszközzel felszerelhető, anyagkezelési és

technológiai feladatra felhasználható.” [1]

Egy másik tömör megfogalmazás alapján a robot egy elektromechanikai szerkezet, amely

előzetes programozás alapján képes különböző feladatok végrehajtására. Lehet közvetlen

emberi irányítás alatt, de önállóan is végezheti a munkáját egy számítógép felügyeletére

bízva.

Napjainkban robotokkal az élet minden területén találkozhatunk, rendszerint olyan

munkákat végeztetnek velük, amelyek túl veszélyesek vagy túl nehezek az ember számára

(például a nukleáris hulladék megsemmisítése) vagy egyszerűen túl monoton, de nagy

pontossággal végrehajtandó feladat, ezért egy robot sokkal nagyobb biztonsággal képes

elvégezni, mint az emberek (például alkatrészek beültetése nyomtatott áramkörbe).

Korszerű gyártócellákban a robotok nem csak egy adott feladatot végeznek, hanem

„döntési joggal” is rendelkeznek. Felmérik a feladatot és ez alapján végzik el a kívánt

műveleti sort.

Diplomamunkámban én is egy ilyen intelligens munkahelyet szeretnék létrehozni, ahol a

robot munkadarabok válogatását és rendezését végzi.

Témám választásában nagy szerepet játszott érdekélődésem a robotika világa felé.

Tanulmányaim során szerencsére betekintést nyerhettem a robotok világába,

megismerkedhettem mechanikájukkal, mozgásrendszereikkel, általános felépítésükkel,

alkalmazási területeikkel. Az elmélet után szerettem volna végre a gyakorlatban is robottal

foglalkozni.

A munkadarabok felismerésére egy, a hétköznapi ember számára is beszerezhető

webkamerát és a National Instruments által fejlesztett LabVIEW-t használtam, hisz

kombinációjukkal viszonylag egyszerűen megoldhatóak a felmerülő problémák.

Page 7: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

7 A laboratórium bemutatása

1. A laboratórium bemutatása

A Miskolci Egyetem Anyagmozgatási és Logisztikai Tanszékének Logisztikai

laboratóriuma közel 25 éves múlttal rendelkezik, mely folyamatos fejlesztést követően

2009-ben teljes mértékben megújult. Az egyetem hallgatói tanórák keretein belül

ismerkedhetnek meg különféle automatizált ipari anyagmozgató technológiákkal, és ezek

alkotóelemeivel, tervező-, szimulációs- és vezérlő szoftverekkel, azonosítástechnikai

rendszerekkel, valamint mérő, mérésadatgyűjtő és kiértékelő diagnosztikai rendszerekkel.

A logisztikai berendezések és a komplex műszerpark számos hallgatói feladat, diplomaterv

és doktori téma mellett jelentős, sokoldalú ipari kutatási-fejlesztési együttműködésre is

lehetőséget biztosít. 2009. első felében a régi rendszer helyén, teljes mértékben felújított

környezetben kialakításra került az úgynevezett High Tech Logisztikai Laboratórium.

A beruházás célja egy a mai ipari elvárásoknak is maximálisan megfelelő, korszerű,

integrált logisztikai rendszer létrehozása. [2]

1. ábra. A laboratóriumi rendszer felülnézeti vázlata

Page 8: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

8 A laboratórium bemutatása

1.1. A labor felszerelése

1.1.1. Raktári állványrendszer

A raktári állványrendszer 8 szinten 14 polcot tartalmaz. Az alkatrészek tárolásáról

300 x 400 mm-es, 35 kg teherbírású műanyag tárolódobozok gondoskodnak Az

alkalmazott tárolódobozok kétféle magasságban állnak rendelkezésre és tartalmazhatnak

további, a belső mérethez illeszkedő kisebb: feles, negyedes és nyolcados osztású

dobozokat is. Minden doboz ellátható különféle rádiófrekvenciás és vonalkódos

azonosítókkal. Az állványrendszer kialakítása lehetővé teszi állványkiszolgáló gép

alkalmazását, amellyel egy egyfolyosós automatikus kisalkatrész raktár jön majd létre.

1.1.2. Komissiózó rendszer

A komissiózás (árugyűjtés) az áruk előre megadott megrendelések szerinti kigyűjtését és

összeválogatását megvalósító folyamat, amely a megrendelés átvételével kezdődik, s a

kigyűjtött áruk rendelésenkénti összeállításával fejeződik be. [3]

A raktári modulból jelenleg közvetlenül kerülnek a különféle alkatrészeket tartalmazó

tárolódobozok a komissiózó rendszer modulba. Jelenleg a laboratóriumban csak kézi

komissiózásra van lehetőség, ennek gépesítése, automatizálása még nem megoldott feladat.

1.1.3. Hajtott szállítópálya rendszer

A komissiózó állvány körül összetett automatizált, hajtott szállítópálya rendszer

helyezkedik el, amely biztosítja a tárolódobozok körbeszállítását, szükség szerint

megállítva őket az egyes komissiózó munkahelyeken a tárolt alkatrészek ki- és

berakásához, valamint olyan pályaszakaszokat is tartalmaz, amelyek lehetővé teszik az

automatizált anyagáramlási kapcsolatot a rendszer többi moduljával. A szállítópálya

gépészetileg független eleme a vezetőnélküli targonca és a függősínpálya anyagáramlási

kapcsolatát biztosító modul.

Page 9: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

9 A laboratórium bemutatása

1.1.4. Komissiózó állvány

Ennek központi egysége a kézi kiszolgálású, gravitációs csatornás komissiózó állvány.

Itt 3 szinten, szintenként 2 x 6 csatornában helyezkednek el a tárolódobozok.

2. ábra. Komissiózó állvány

1.1.5. Palettamozgató cella

Anyagáramlási szempontból egy vízszintes és egy függőleges pályából áll, speciális

palettával rendelkezik, amely csak ezen a cellán belül mozog és ezek a paletták hordozzák

a komissiózó állványban is alkalmazott feles méretű műanyag dobozokat. A vízszintes

pálya rendelkezik egy kiemelő-pozicionáló elemmel, ami lehetővé teszi a robotos

palettakezelést, ezzel kapcsolva be a cellát a teljes rendszerbe. A cella vezérlését egy

önálló Mitsubishi PLC látja el, a felhasználói műveletek, illetve a működés vizualizációja

egy saját operátor panelen kerül megjelenítésre. A PLC CC-link buszon keresztül

kapcsolatot tart a többi modul vezérlőrendszerével.

Page 10: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

10 A laboratórium bemutatása

1.1.6. Függősínpálya rendszer

A következő modul egy 250 kg teherbírású függősínpálya rendszer, szabályzott hajtású

láncos emelőművel ellátott sínkocsival. Egymásra merőleges pályaszakaszokból áll, az

egyes pályaszakaszok kapcsolatát a csomópontban elhelyezett fordító váltó biztosítja.

A pályaszakaszok elhelyezkedése lehetővé teszi több ponton is a kapcsolatot a rendszer

többi moduljával. A modul vezérlőrendszere az emelőmű és a fordítóváltó esetében is a

vezetékes kézi működtetés mellett rádiófrekvenciás, vezeték nélküli kézi és automatikus

működtetésre is alkalmas, amely a központi vezérlőszekrény PLC-jén és operátor paneljén

keresztül történhet.

1.1.7. Azonosítástechnikai rendszer

A laboratórium része még egy rádiófrekvenciás és vonalkódos azonosítástechnikai

rendszer, amely különféle kódhordozók kezelésére alkalmas kézi és telepített kódolvasó

eszközöket, címkenyomtatókat és több munkaállomásos számítógépes feldolgozó rendszert

tartalmaz. Ennek bővítése és rendszerbe integrálása folyamatban van. A vonalkód olvasó

eszközök között megtalálhatók 1D és 2D kódok olvasásához alkalmas kézi és telepíthető

készülékek, fix fénypontos, forgó- és rezgőtükrös lézeres, illetve CCD érzékelős

megoldások is.

Page 11: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

11 A laboratórium bemutatása

1.1.8. SCADA rendszer

Az egyes modulok önálló PLC vezérlőrendszerrel rendelkeznek, hálózati kapcsolatot tartva

egymással és a központi, Citect SCADA rendszerrel. A rendszer PLC-kből és a

robotvezérlőből a CC-link hálózaton keresztül kiolvasott információk alapján képes a

működés közbeni állapotát valós időben megjeleníteni.

3. ábra. A rendszer áttekintő képe felülnézetben

Mivel a Mitsubishi PLC I/O regiszter felülete nyílt, ezáltal semmi akadálya annak, hogy

más SCADA rendszerhez is alkalmazható legyen, így folyamatban van például a National

Instruments LabVIEW szoftverének SCADA rendszerként történő alkalmazásának

vizsgálata is. Ez a megoldás további rugalmas bővítési lehetőséget biztosíthat, nem csak a

logisztikai folyamatok terén, hanem az azokhoz kapcsolódó műszeres diagnosztikai

vizsgálatokhoz is, mint például szerkezeti elemek terhelése, rezgése, energetikai

paraméterek, vagy különféle környezeti tényezők hatásai.

Page 12: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

12 A laboratórium bemutatása

1.2. Robot

A komissiózó modul és a palettamozgató cella között helyezkedik el a 4 szabadságfokú

Mitsubishi gyártmányú RH-12 SH típusú SCARA (Selective Compliant Assembly Robot

Arm: Szelektív engedékenységű robot kar) rendszerű ipari robot.

A robot 4 szabadságfokkal rendelkező, maximálisan 12 kg-mal terhelhető kisméretű ipari

robot. Kategóriájának egyik leggyorsabb berendezése, mely maximálisan 11200 mm/s

kerületi sebességre képes és nagy ismétlési pontossággal rendelkezik. Az alkatrészek

megfogásáról egy univerzális vákuumos megfogó gondoskodik. A még sokoldalúbb

használhatóság érdekében a robot egy golyósorsóval és szervóhajtással működtetett

lineáris tengelyre van szerelve, amely jelentősen megnöveli a munkaterét.

4. ábra. Mitsubishi SCARA RH-12 SH

Page 13: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

13 A laboratórium bemutatása

5. ábra. A robot tengelyi és az irányok értelmezése

J1 tengely J2 tengely J3 tengely Golyósorsó (J4)

Min - 140° - 153° - 10 mm - 360°

Max + 410° + 153° + 340 mm + 360°

Sebesség 288 fok/s 412,5 fok/s 1300 mm/s 1500 mm/s

1. táblázat. A robot tengelyeinek mozgástartománya és maximális szögsebességei

Page 14: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

14 A laboratórium bemutatása

1.3. Vezérlőszekrény

A robot vezérléséről egy Mitsubishi CR2D-700 vezérlőszekrény gondoskodik.

A vezérlőszekrény feladata, hogy a hajtások szabályzásával a bejövő jeleknek és a

beprogramozott utasításoknak megfelelően mozgassa a robotot.

Ehhez egyrészt szüksége van a szervók hajtását közvetlenül végző szervo egységekre, a

programot értelmező és futtató processzorra, és általában a robot tengelymozgásait

összehangoló másik mozgató processzorra, mivel a tengelyek mozgásának szabályozott

interpolálása speciális és jelentős számításigényű feladat. A vezérlőegység hardverelemeit

egy MELFA BASIC IV/V programozói szoftver fogja össze. A gyors számításról egy

nagyteljesítményű DSP-vel ellátott 64bites többszálas RISC processzor gondoskodik. A

vezérlőszekrény akár 256 egymástól független program tárolásaára alkalmas, ami

maximum 26.000 lépésből állhat, és 13.000 betanított pontot tartalmazhat. 32 be- és

kimenttel rendelkezik, ami azonban igény esetén 256-ra bővíthető.

6. ábra. Mitsubishi CR2D-700

A vezérlőszekrény csatlakozó felületei:

- Ethernet,

- CC Link csatlakozó,

- PROFIBUS/DP csatlakozó,

- Soros csatlakozó,

- 1 db USB csatlakozó (USB 1.1),

- Interfész kiegészítő tengelyekhez,

- Pneumatikus megfogó interfész,

- 3 db PCI bővítő foglalat.

Page 15: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

15 A laboratórium bemutatása

1.4. Betanító panel

A robotvezérlőn közvetlenül csatlakozik egy Mitsubishi R46TB típusú betanító panel

(Teaching box), amely egy multifunkcionális vezérlői és programozói terminál. Ennek

segítségével lehet a robotot közvetlenül vezérelni. A mozgás vezérlése mellett a terminál

számos funkcióval rendelkezik, többek között programok írása, megfogók vezérlése, be- és

kimenetek felügyelete, az összes fontosabb termelési paraméter megjelenítése akár a robot

működése közben is. Felületén egy felhasználóbarát 6,5” 640x480 pixeles TFT

érintőképernyős kijelző található, melyről a vezérlőszekrény teljes menüstruktúrája

elérhető és megjeleníthető. A betanító panel menüje német, angol, francia, olasz és japán

nyelven érhető el. Hátoldalán található egy USB és egy RS422 csatlakozó felület is. [4]

7. ábra. Mitsubishi R46TB

Page 16: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

16 A laboratórium bemutatása

1.5. Megfogó

Attól függően, hogy a robot milyen feladatot végez el az adott munkadarabon, különböző

megfogókkal vagy szerszámmal szerelhetjük fel.

A megfogókat három fő osztályba sorolhatjuk:

- mágneses,

- mechanikus,

- vákuumos.

Természetesen ezek a megfogók kombinálhatóak és könnyen cserélhetőek is.

Az Anyagmozgatási és Logisztikai Tanszéken lévő Mitsubishi SCARA RH-12 SH robot

egy univerzális vákuumos megfogóval van felszerelve. Az ilyen típusú megfogók a

Venturi cső elvén működnek és 70 ~ 90 % vákuum hozható létre velük. Pontos gyors

munkavégzésre alkalmas, azonban a vákuumhatás miatt korlátozódik a megemelhető

munkadarab súlya. A működési elvéből adódóan fokozottan ügyelni kell arra, hogy a

munkadarab megfogni kívánt felülete sima legyen. Kerülni kell a szennyeződéseket,

amelyek esetleg gátolhatják a megfogó működését.

8. ábra. Munkadarab megfogása

Page 17: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

17 A laboratórium bemutatása

9. ábra. Munkadarab elengedése

A vákuum előállításához szükséges sűrített levegőt ugyanúgy, mint a laboratórium többi

sűrített levegővel működő eszközénél, a megfogónál is egy Atlas Copco gyártmányú

GX-7 típusú kompresszor biztosítja. Ez egy 7 kW teljesítményű, 700 liter/perc légszállító

sűrítő egység, ami egy 270 literes puffer tartállyal is rendelkezik.

10. ábra. Univerzális vákuumos megfogó

Page 18: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

18 Vizuális alakfelismerés

2. Vizuális alakfelismerés

2.1. Látás

A látás valójában vizuális információk feldolgozása, fő célja a tájékozódás, tárgyak

felismerése, külső anyagi jellemzők felismerése, illetve a cselekvések vezérlése. Látásra

szolgáló szervünk a szem, ami egy bonyolult összetett optikai rendszer. A szem a

tárgyakról fordított, kicsinyített képet hoz létre az ideghártyán. A retinahártya ezt a képet

apró impulzusokká alakítja és a látóideg segítségével juttatja ezt az információhalmazt az

agyba, ahol kiértékelésre kerül a látott kép. Legtöbbünk számára ez egy természetes

tulajdonságunk. Hozzá vagyunk szokva, hogy a mindennapokban látásunk segítségével

értékeljük a dolgokat és döntéseket hozunk.

A „géplátás” megvalósítása egy olyan összetett program, ami kiértékeli a látott képet és a

megfelelő információkat továbbítja a robot felé. Azonban egy látott kép rengeteg, a robot

munkavégzésének szempontjából felesleges információt is tartalmaz. Ezért a kép

kiértékelésénél törekedni kell arra, hogy az ilyen felesleges adatoktól megszabaduljunk

(pl.: próbatest színe) és csak a valóban fontos információval terheljük a kommunikációs

csatornákat.

2.2. Géplátás

Napjainkban robbanásszerűen fejlődik a számítógépek teljesítménye. Ennek köszönhetően

számtalan feladatot tudnak akár önállóan emberi felügyelet nélkül is elvégezni. Jogosan

fogalmazódik tehát meg bennünk, hogy vajon képesek-e a gépek egy kamera vagy más

képalkotó eszköz segítségével látni? Vajon el tudja-e dönteni egy memóriába betöltött kép

alapján, hogy az mit ábrázol? Itt még nem tart a technológia. Az emberi látást sajnos még

nem tudjuk tökéletesen reprodukálni vagy helyettesíteni semmilyen eszközzel. Jelenleg

arra nincs lehetőség, egy számítógép megértse mit lát, azonban előre definiált alakokat

felismer. A géplátás témakörével több tudományág is foglalkozik. A számítógépnek

rengeteg információra van szüksége egy ilyen feladathoz. Fontos az alak pontjainak

egymáshoz viszonyított helyzete, a környezethez viszonyított helyzet, térbeli

elhelyezkedés. A géplátás egyet jelent a számítógépes képfeldolgozással.

Page 19: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

19 Vizuális alakfelismerés

2.3. Képfeldolgozás

A képfeldolgozó rendszereket először 1960-ban az űrkutatásban alkalmazták a

földfelszínről készült képek kiértékelésére. Az elmúlt években azonban a számítógépek

teljesítménye a sokszorosára növekedett egyúttal a képfeldolgozás alkalmazási területe is

kiszélesedett.

A XX. század végén a technikai vívmányoknak köszönhetően és internet terjedésének

hatására meggyorsult a képfeldolgozáshoz szükséges eszközök fejlesztése. A felhasználók

igényeinek folyamatos kielégítése és a piaci versenyhelyzet miatt a gyártási darabszámok

növelésének eredményeként az eladási ár rohamosan csökkent. Ma már különösebb anyagi

befektetések nélkül hozhatunk létre olyan képfeldolgozó „mini labort” létre, amit

20-30 éve az űrkutatásban alkalmaztak. Manapság az élet minden területén találkozhatunk

digitális képfeldolgozással, képfelismeréssel.

A számítógépes képfeldolgozás első lépése az, hogy a valós világ képeit a számítógép

számára kezelhető adattá kell konvertálni, és ezeket az adatokat feldolgozni és kiértékelni.

Ezt a műveletet értjük digitalizálásnak. A digitalizálás minden esetben három fontos

lépésből áll: leképzésből, mintavételezésből és a kvantálásból. Vannak olyan

nagyteljesítményű eszközök, amelyek ezt a három lépést már nem feltétlenül elkülönítve

egymás után, hanem egyszerre hajtják végre. [5]

A leképzés azt jelenti, hogy a képalkotó eszköz (kamera, fényképezőgép, stb.) a

háromdimenziós térben lévő tárgyakról kétdimenziós képet hoz létre. A matematika

nyelvére lefordítva ez azt jelenti, hogy a valóság sokdimenziós függvényéből egy

kétdimenziós folytonos függvényt hozunk létre.

Mivel számítógépes képfeldolgozásról van szó, a kétdimenziós analóg jelből a számítógép

által is értelmezhető digitális jelet kell alkotnunk. Erre szolgál a mintavételezés művelete.

A mintavételezés során az analóg jelből kiválasztjuk az értékek egy véges halmazát, ezek

lesznek a minták. Kétdimenziós esetben ez az XY sík rácsban való felosztását jelenti.

Az ilyen rácselemeket képpontnak, idegen szóval pixelnek hívjuk (picture x element).

Ezek a képpontok az elméletben végtelen kicsiny mintavételezési pontok az eredeti képen,

azonban a valóságban a digitalizáló készülékek hátrányai miatt véges méretűek.

A pixelek olyan mérőszámok, amelyek tovább nem oszthatóak. Ezekhez a mintavételezési

helyekhez a fényerősségtől függő nem negatív valós számot rendelünk. Felhasználói

oldalon a mintavételezéssel a digitáliskép felbontásánál találkozhatunk.

Page 20: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

20 Vizuális alakfelismerés

Meg kell említeni, hogy ez egy fontos mérőszáma a kamera teljesítményének, de erről

majd az eszköz kiválasztásánál részletesen írok.

A kvantálás során a mintavételezéssel tartományokra osztott jel értékeit átlagoljuk.

Eredményeképpen a függvény, amelynek végtelen sok értéke van véges sokértékű lesz.

A mintavételezés és kvantálás egymástól nem független művelet.

Az ilyen módom letárolt képet rasztergrafikus képnek hívják. Előzőek alapján láthatjuk,

hogy az így megalkotott digitáliskép nem más, mint a színkomponensenkénti fényerősség

értékekből álló mátrix.

Fontosnak tartom a teljesség kedvéért azt is megjegyezni, hogy létezik egy úgynevezett

vektorgrafikus képalkotási mód is. Azonban ennek előállítása nem hardveresen történik,

hanem szoftveresen, geometriai modellező programokkal (CorelDraw, AutoCAD).

A vektorgrafika vagy geometriai modellezés, melynek során geometriai rajzelemeket

(pont, egyenes, görbe) használunk képek leírására. A vektorgrafikus kép előnyei:

- minimális memóriaigény,

- tetszőlegesen nagy kinagyítás,

- az alakzatok méretei tárolhatók és így később megváltoztathatók.

Az internet világának köszönhetően 1998-ban egy új képalkotási módszer az SVG

(Scalable Vector Graphics) látott napvilágot. Egy ilyen grafikusfájl gyakorlatilag képet

tartalmaz szöveges formában. Ezek a grafikák könnyen beilleszthetőek egy weboldalon

tartalmába. A leírásban szereplő elemek általában görbék, síkidomok vagy szöveges

objektumok, azonban lehetőség van arra is, hogy nem vektoros képet építsünk be a rajzba.

Mivel szövegesen van "megfogalmazva" a kép tartalma, a keresőprogramok könnyebben

tudnak információhoz jutni az ábrával kapcsolatban.

A gyakorlatban jelenleg 2 technológia terjedt el a digitálisképek készítésére, a

CCD (Charge Coupled Device) és az CMOS (Complementary metal–oxide–

semiconductor). Mind a két rendszer rendelkezik előnyökkel és hátrányokkal. Azonban a

feladat szempontjából lényegtelen milyen típusú eszközzel készül a digitáliskép, ezért nem

foglalkozom ennek tárgyalásával.

A továbbiakban a kép, vagy digitáliskép kifejezésen a rasztergrafikus úton letárolt képet

értem.

Page 21: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

21 Vizuális alakfelismerés

2.4. A digitáliskép tulajdonságai

A digitálisképnek három számunkra fontos tulajdonsága van, a bitmélység, a komponensek

száma és a felbontás.

A felbontás a már korábban említett mintavételezésen alapszik. A kép felbontása sorokból

és oszlopokból tevődik össze. Egy m oszlopból és n sorból álló kép felbontása: m x n.

Vagyis ennyi pixelt tartalmaz a kép.

A bitmélység adja meg, hogy a kép pixeleihez mennyi szín tartozik bitekben. Azaz, ha kép

bitmélysége n akkor a kép minden egyes pixele 2n különböző értéket vehet fel.

Tehát az 1 bitmélységgel rendelkező kép két állapotot vehet fel: fekete vagy fehér.

Egy 8 bites kép 256 (28 = 256) értéket vehet fel, ez azt jelenti, hogy a szürke 256 féle

árnyalata jelenhet meg azon a pixelen.

A komponensek száma alatt a színcsatornákat értjük, amelyek a színelemekről tárol

információt. A szürkearányos képhez csak 1 csatorna tartozik, ami a szürke szín árnyalatait

tartalmazza. Egy RGB képhez már 3 csatorna tartozik. Rendre: Red (piros), Green (zöld),

Blue (kék). Az előzőek alapján 8 bites kép esetén 256 árnyalat tartozik minden

csatornához, ami azt jelenti, hogy több mint 16 millió színértékkel rendelkezik minden

egyes képpont.

Láthatjuk, hogy mindenegyes pixel egy több elemű vektornak felel meg így a

2 dimenziós n x m mátrixunk már egy 3 dimenziós mátrix, azaz tömb. A gyorsabb program

működés érdekében fontos ezeknek a paramétereknek optimális megválasztása, hiszen a

digitalizált kép által lefoglalt memória méretét határozzák meg.

2.5. Kamera elhelyezése

A megfelelő minőségű kép elkészítéséhez elengedhetetlen a kamera helyes megválasztása,

elhelyezése és beállítása. Mielőtt azonban kiválasztjuk a kamerát, meg kell határozni a

helyzetét. Több lehetőség is felmerült az elhelyezéssel kapcsolatban:

- a kamerát a robot veszi fel és teszi le,

- a kamera a robotra van szerelve,

- fix helyen van a kamera a munkatérben,

- fix helyen van a kamera a munkatéren kívül.

Page 22: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

22 Vizuális alakfelismerés

Mivel a robot egy rugalmasan programozható gép, és univerzális megfogóval rendelkezik

lehetőségünk van arra, hogy a kamerát, mint egy szerszámot felvegyen, használjon és

utána erre alkalmas tárolóba visszahelyezze. Azonban ehhez egy alkalmas tárolót kell

kialakítani, meg kell oldani a kamera kábelének elvezetését. Azzal, hogy a robot felveszi-

leteszi a kamerát időt veszítünk és csökken a produktivitás. Ezt könnyen áthidalhatjuk, ha a

roboton helyezzük el a kamerát. A robot „teste” 2 kg hasznos terhet képes magával cipelni

a munkadarab súlyán felül. Viszont ebben az esetben is gondoskodni kell a kamera

kábeleinek elvezetéséről figyelni kell a felcsavarodás veszélyére. Ami azonban ennél is

fontosabb, hogy egy ilyen érzékeny eszköz esetében, mint a kamera figyelembe kell venni

a dinamikai hatásokat. A kamera optikai rendszerét könnyen tönkreteheti a nagy

sebességgel mozgó robot. Lehetőségünk van arra is, hogy a robot végsebességét

szoftveresen korlátozzuk, azonban ez is a produktivitás rovására menne. El kell fogadnunk,

hogy a robotra szerelt kamera esetünkben nem vezet megoldásra. Elhelyezhetjük a kamerát

a robot munkatérben is, azonban ehhez a robot mozgásterét korlátoznunk kell, úgy hogy ne

ütközzön a kamerába és a felvétel ideje alatt ne takarja el a kamera látómezejét. Ilyenkor is

fennáll a veszélye, hogy üzemzavar esetén a robot kárt tesz a kamerába. Ebben az esetben

a meghibásodott kamera cseréje, javítása nehezen kivitelezhető

Végiggondolva a felkínálkozó lehetőségeket a logisztika laboratóriumban arra az

elhatározásra jutottam, hogy a kamerát a robot munkatere elé helyezem el, úgy hogy a

hajtott szállítópályán a robot felé érkező palettákat figyelje meg. A komissiózó rendszer

állványa megfelelőnek bizonyult a kamera megtartására, így külön erre a feladatra nem

kell tartókonzolt megtervezni és legyártani.

Page 23: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

23 Vizuális alakfelismerés

2.6. Kamera elhelyezése során felmerülő hibák

Abban az esetben, ha a kamera tengelye nem merőleges a megfigyelt felület síkjára,

perspektivikus hibák léphetnek fel, ami a munkadarab felismerését nehezíti.

11. ábra. A kamera tengelyének dőlésszöge

Amennyiben ismerjük a kamera tengelye és a vizsgálni kívánt felület által bezárt szöget,

könnyen korrigálhatjuk akár szoftveresen is ezeket a hibákat. Mivel minden egyes

számolás lassítja programunk futását, úgy gondolom felesleges ezzel bajlódni, a legjobban

akkor járunk, ha a kamera merőlegesen, felülről pásztázza a munkadarabokat.

A hajtott szállítópályán érkező munkadarabok helyzetéből adódóan a merőleges

megfigyelés nem minden esetben fog teljesülni, de törekednünk kell a 90°-tól való

legkisebb eltérésre.

Előfordulhatnak egyéb optikai hibák is, amik a lencserendszer hibás kalibrálásából, esetleg

meghibásodásából adódnak, ilyenkor is nehezen értelmezhető torzképet kapunk.

Page 24: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

24 Vizuális alakfelismerés

12. ábra. Lencserendszer hibái

A LabVIEW-ban az ilyen hibák orvoslására található egy függvénygyűjtemény, aminek

segítségével könnyen helyrehozható a torzkép. Szerencsémre a tesztek során nem kellett

erre időt pazarolnom, hiszen a kamera tökéletesen működik.

A korábbiakban már említett felbontás hibás megválasztása esetén is olyan képet

kaphatunk, amit a megírt program képtelen lesz feldolgozni. Sajnos az ilyen jellegű hibák

utólag szoftveresen már nem korrigálhatóak.

eredeti felbontás eredeti felbontás fele eredeti felbontás negyede 13. ábra.

Felbontások összehasonlítása

Az ábrán jól látható, hogy akkor járunk el helyesen a felbontás megválasztásában, ha a

vizsgálni kívánt kép legapróbb részletét is több, mint egy pixel reprezentálja.

A forgalomban lévő webkamerák minimum 640x480 pixel felbontással rendelkeznek, ami

a feladatunk elvégzésére teljesen alkalmas.

Felbontás mellett másik fontos paraméter a látómező helyes megválasztása, ami a fix

fókuszú kameráknál - amilyenek általában a webkamerák - egyenesen arányos a kamera és

a vizsgálni kívánt objektum közötti távolsággal. A látómező az a terület, amiről a kamera

képes felvételt készíteni. A látószög ismeretében a látómező kiszámítható.

Page 25: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

25 Vizuális alakfelismerés

14. ábra. Látószög és látásmező kapcsolata

A látásmező helyes megválasztása azért elengedhetetlen, mert előfordulhat, hogy a

vizsgálni kívánt objektum – esetünkben a munkadarab – legnagyobb befoglaló mérete

nagyobb, mint a kamera által látott kép, és így „kilóg” a látómezőből.

A látómező és látószög közötti kapcsolatot a kúp képletéből számíthatjuk ki a

legegyszerűbben, hiszen a kamera által látott kép is egy kúpos felülettel reprezentálható a

legjobban.

(1)

Átrendezve a képlet a keresett d méretre:

(2)

Ebből az összefüggésből már könnyen számítható a látószög és magasság ismeretében a

látásmező. Figyelembe véve a kamera lehetséges pozícióját, a piacon megtalálható

kamerák leírásai alapján a leggyakrabban előforduló látószögekre elvégzett számítást

táblázatban foglaltam össze.

Page 26: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

26 Vizuális alakfelismerés

A kamera és munkadarab távolsága

250mm 500mm 750mm 1000mm 2000mm

Lát

ószö

g 45o 207,11 414,21 621,32 828,43 1656,85

60o 288,68 577,35 866,03 1154,70 2309,40

90o 500,00 1000,00 1500,00 2000,00 4000,00

120o 866,03 1732,05 2598,08 3464,10 6928,20

150o 1866,03 3732,05 5598,08 7464,10 14928,20

2. táblázat. Kereskedelemben kapható webkamerák látószög, látómező kapcsolata

Azonban számolni kell azzal, hogy a nagy látószög hátránya az, hogy közeli kép esetén

elnagyolja a hosszanti irányokat és így torzképet kapunk a kamerával. Valamint minél

nagyobb a látott kép mérete annál több információt kell feldolgoznunk és ez lassíthatja a

munkafolyamatunkat.

2.7. Fényforrás kiválasztása és elhelyezése

A látás egyik feltétele a felismerni kívánt alakról visszaverődő, vagy általa kibocsátott fény

detektálása, ezért nem elhanyagolható a fényforrás helyes megválasztása sem.

A piacon a világítótestek számos típusával találkozhatunk, ezeket az izzókat három fő

csoportra bonthatjuk:

- hagyományos izzók,

- halogénizzók,

- LED izzók.

Az izzólámpa vagy hétköznapi nevén villanykörte az egyik legrégebbi elektromos

fényforrásunk. Fényét az elektromos áram által izzított volfrámszál adja, az izzószál

oxidációját az üvegburában lévő semleges gáz vagy vákuum akadályozza meg.

Legnagyobb hátránya a kis fényhasznosítás, azaz a kis hatásfok, hiszen a bevezetett

energia mindössze 2 ~ 5%-át alakítja fénnyé, a többi hőként kárba vész.

A halogénlámpák abban különböznek a normál izzóktól, hogy a lámpa kvarcüveg burájába

halogén elemet juttatnak. Ez a lehetővé teszi az izzószál hőmérsékletének emelését, ami

kedvez a fényhasznosításnak, de növeli a kibocsátott UV-sugárzást is.

A világító dióda vagy más néven LED (Light Emitting Diode) félvezető anyagból készült

fényforrás. Fényerejüket tekintve elmaradnak némileg a hagyományos és

Page 27: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

27 Vizuális alakfelismerés

halogénlámpáktól, azonban melegedés nélkül működnek, illetve az áramfogyasztásuk

átlagosan tizede a normál lámpákénak. [6]

Wolframizzó

(60 W) Halogénizzó

(40 W) LED lámpa

(3W) Fogyasztói ár 80 Ft 500 Ft 4500 Ft

Éves fogyasztás 50 kW 35 kW 2,5 kW

Élettartam ~1000 óra 2000~3000 óra 50000~100000 óra Éves karbantartási költség 640 Ft 100 Ft ~ 0 Ft

Világításra hasznosított energia ~5% ~ 50 % ~95 % 3. táblázat.

Világító testek összehasonlítása

Ezek alapján egyértelmű, hogy a legideálisabb megoldás, ha a megvilágítást LED lámpával

oldjuk meg. A táblázatból látható, hogy egyaránt rövid és hosszú távon is ez a legjobb

befektetés.

A világító diódák legfőbb előnyei:

- minimális hőtermelés,

- hosszú élettartam (50.000 ~ 100.000 üzemóra),

- minimális karbantartási igény,

- rengeteg megjelenési forma,

- állandó fényforrás,

- fényerősség széles skálán választható.

A fényforrás kiválasztása után ugyanúgy, mint a kamera esetében figyelmet kell

szentelnünk a megfelelő elhelyezésre is. Hibás megvilágítás esetén az alkatrész

kontúrvonala elmosódhat, és ezzel megnehezítheti a felismerést. Ez nem csak abban az

esetben fordul elő, ha kevés a fény ereje, hanem ha erős az ellenfény, vagy a fény beesési

szögéből adódóan elnyúló árnyékot képez a munkadarab, esetleg valamilyen külső árnyék

vetül a vizsgálni kívánt területre.

Page 28: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

28 Vizuális alakfelismerés

15. ábra. Az árnyékhatás miatt hibásan felismert munkadarab

Ahhoz, hogy elkerüljük az árnyékhatása miatti hibás felismerést csökkentenünk kell az

árnyék képződés mértékét. Erre az egyik legegyszerűbb mód, ha több irányból világítjuk

meg a felismerni kívánt munkadarabunkat.

16. ábra. Több irányból megvilágított munkadarab

A fotós szakmában a makró fotózáshoz gyakran használnak úgynevezett LED-es

körlámpát vagy fényterelőt az árnyékok csökkentésére. Azonban ezeknek beszerzési

költsége igen magas, beüzemelésük pedig körülményes, ezek a LED-ek nem folyamatos

fényt adnak, hanem vakuként felvillannak. Mivel nincs lehetőségünk, hogy több irányból

világítsuk meg a munkadarabot, az árnyékhatás kiküszöbölése érdekében a fényforrást a

Page 29: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

29 Vizuális alakfelismerés

kamera közelébe kell elhelyezni, úgy hogy a kamera tengelye és a lámpa tengelye lehető

legközelebb legyen egymáshoz és a legkisebb szöget zárják be.

A csillogás és a tükröződés elkerülése érdekében javasolt a polarizált fényforrás

használata, vagy a kamera polarizációs szűrővel való felszerelése. Természetesen abban az

esetben, ha a munkadarabok matt festékkel vannak kezelve kicsi az esélye a csillogásnak,

tükröződésnek.

2.8. Egyéb hibalehetőségek

A munkadarab színének ismeretében fontos a megfelelő háttérszín kiválasztása. Hiszen, ha

a munkadarab beleolvad a környezetébe, akkor az alakfelismerő rendszerben képtelen lesz

megfelelően meghatározni a pontos helyét.

Az alakfelismerő szoftver helyes futásának alapfeltétele a megfelelő hardveres támogatás.

Ezért a program megírás során törekedni kell az adott hardverelemek optimális

felhasználására. A mai számítógépek teljesítménye szerencsére bőven túlmutat a megírásra

kerülő program minimális rendszerkövetelményén.

Ahhoz, hogy a kamera által látott kép minden részlete kivehető legyen nem csak a

korábban tárgyaltakra kell figyelmet fordítanunk, hanem a munkadarab kamerához

viszonyított sebességére is. A forgalomban lévő webkamerák átlagosan felbontástól

függően akár 25 ~ 30 képkocka/másodperc sebességgel is képesek felvételt készíteni.

Ez azt jelenti, hogy egy másodperc alatt 25 ~ 30 képet készítenek. Az emberi szem

tehetetlenségének köszönhetően az agyunk 24 képkocka/másodpercet folyamatos

mozgóképsornak érzékel. Megfelelő hardverelemek mellett a LabVIEW program is képes

lenne ezeket a felvételeket feldolgozni, azonban a pontos koordináta meghatározás

érdekében egyszerűbb, ha a munkadarabokat szállító palettasort a kamera látásmezejében

megállítjuk arra a rövid időre, amíg az analizálás történik. Vagy mozgatjuk a kamerát

párhuzamosan ugyan azzal a sebességgel, amivel a paletta is mozog, azonban ahogy már

említettem ez kárt tehet a kamerában. A meghatározott koordinátákat hozzá rendeljük a

hordozó paletta azonosítójához és ez az adat a munkafolyamat végéig elkíséri a palettát.

Azáltal, hogy megállítjuk a paletta sort időt adunk a robotnak is az alkatrészek

kipakolására.

Page 30: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

30 Vizuális alakfelismerés

2.9. A kamera kiválasztása

Az előzőek alapján láthatjuk, hogy a rendszer legfontosabb eleme a „látást” végző kamera,

mivel ezen eszköz segítségével ismerjük fel a munkadarabokat, így ennek a kiválasztása

igényel a legnagyobb körültekintést. Kamerák ezrei állnak rendelkezésünkre az egészen kis

teljesítményű (kis látószög, kis látótávolság, stb.) kameráktól a csúcstechnológiát képviselő

képfelismerő eszközökig.

A kamerákat két fő csoportra bonthatjuk:

- analóg kamerák,

- digitális kamerák.

Számomra olyan kamera felel meg, ami nagy felbontással rendelkezik, egyszerűen

telepíthető és kompatibilis bármely számítógéppel, illetve az általa rögzítésre kerülő kép

könnyen feldolgozható. A webkamerák széles palettája segítség a választásban, hiszen az

internet gyors terjedésének köszönhetően a kommunikáció egy új formája jelent meg a

2000-es években, a video chat. Ennek köszönhetően ez az iparág robbanásszerűen fejlődött

és egyre kisebb méretű ugyanakkor egyre nagyobb teljesítményű kamerák látnak

napvilágot. A szoftveres támogatás mellet sokat számít a kamerákat felépítő hardverek

minősége is, az optikai rendszer és a CCD (vagy CMOS) fejlettsége, és az

adatkommunikáció sebessége. Felvételeket készítettem különböző kamerával ugyan olyan

feltételek mellet. Felbontás: 640x480 pixel. Tárgytávolság: 30 cm. Megvilágítás: külső

fényforrás (hagyományos 15W izzóval)

Chinise USB 2.0 Logitech Pro 9000 USB 1.1 Logitech Pro 9000 USB 2.0

17. ábra. Kamera felvételek

Page 31: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

31 Vizuális alakfelismerés

A képek alapján jól látható, hogy a piacon kapható alsókategóriás (1000 ~ 2000Ft)

webkamerák képminőségben alul maradnak a vezető gyártók csúcsmoteljeitől, ez persze

nem azt jelenti, hogy amire tervezték nem alkalmas. Azonban a mi feladatunk megköveteli

az éles tiszta képet. A képsorozatból az is kiderül, hogy fontos a csatlakozó felület

sebességkorlátait is figyelembe venni, hiszen egy lassabb sebességű (pl: USB1.1)

adatátvitelnél nagymértékben romlik a felvétel minősége.

Miután teszteltem több webkamerát és főbb tulajdonságaik alapján összehasonlítottam

őket, választásom egy Logitech QuickCam Pro 9000-re esett. Kategóriájában ez a kamera

az egyik legjobb (ha nem a legjobb), hiszen kitűnő paraméterekkel rendelkezik.

A kamera műszaki jellemzői [7]:

- Optika: Carl Zeiss®,

- Automatikus fókuszálási rendszer,

- Különlegesen nagy felbontású, 2 megapixeles érzékelő,

- Színmélység: True Color (24 bites),

- Mozgóképrögzítés: Akár 1600x1200 képpont (HD minőség),

- Képfrissítés: Akár 30 képkocka/másodperc sebesség.

A webkamera ajánlott rendszerkövetelménye:

- 1,4 GHz-es Pentium® P4 processzor,

- 128 MB RAM (256 MB ajánlott),

- 200 MB szabad merevlemez-terület,

- 16 bites színmélységet támogató grafikus vezérlő,

- USB port,

- CD-ROM-meghajtó.

Page 32: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

32 Az alakfelismerő részrendszer sajátosságai

3. Az alakfelismerő részrendszer sajátosságai

Napjainkban az iparban elterjedt érzékelők, szenzorok között kevés olyan alkalmazás van

melyek alak, munkadarab felismerésen alapulnak. A létező technológiákkal a vakok és

gyengén látok életét megkönnyítő szerkezetekben, valamint a szórakoztató iparban

(gyerekjátékok) fordulnak elő. Ezek azonban csak kis darabszámban gyártott különleges

detektáló eszközök. Az iparban az alakfelismerést főleg hibaanalízisre, hibadetektálásra

használják. A sorozatgyártás során keletkező különböző szerelési, illesztési, forrasztási

hibák gyors, pontos keresésére. Ilyen jellegű készülék a SONY által gyártott SI-C1500

After-reflow Visual Inspection is. Az SI-C1500 optikai ellenőrző egység magában ötvözi

az SONY sok évtizedes gyártási tapasztalatait, illetve a mai korszerű technika fejlesztéseit.

Ez a rendszer egy CCD kamerával van felszerelve, az alkatrészek ellenőrzéséhez nagy

intenzitású, hosszú élettartamú LED megvilágítást használva. [8]

De mint látjuk ez egy komplex integrált rendszer, mely gyártósorokba illeszthető be,

megfelelő konfiguráció után. Egy ilyen rendszer hardveres és szoftveres támogatása magas

ugyan, azonban ára csak multinacionális cégeknek éri meg a befektetést, hisz sorozat

gyártmányok illesztés, forrasztási hibáit másodpercek alatt kiszűri.

Számomra már korábban említett webkamrás rendszer tökéletesen megfelel. Igaz ebben az

estben saját algoritmust kel írnom egy általam választott programozási nyelven és a

megfelelő időben újra és újra futtatni.

3.1. Programozási nyelv kiválasztásának szempontjai

A programozási nyelv a számítástechnikában használt olyan, az ember által olvasható és

értelmezhető utasítások sorozata, amivel közvetlenül vagy közvetve közölhetjük a

számítógéppel egy adott feladat elvégzésének módját. A programozási nyelveket 3

nagyobb csoportba sorolhatjuk.

A Gépi kód valójában nem egy önálló teljes programozói nyelv, mivel az a gép számára

közvetlenül értelmezhető adatsort jelenti. A gépi kódhoz legközelebb álló nyelv az

assembly nyelv. Ha egy assembly nyelv és az általa előállított gépi kód között

egy - az - egy megfeleltetés van, akkor mondhatjuk, hogy az adott nyelv „gépi kód szintű”.

Page 33: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

33 Az alakfelismerő részrendszer sajátosságai

Az Assembly a gépi kódhoz, vagyis az adott számítógép saját nyelvéhez legközelebb álló

nyelveket nevezzük assembly nyelveknek. Ezen a nyelven a legnehezebb programot írni,

mert azt teljesen a gép architektúrájához alakítva, gépi logika szerint kell elkészíteni,

azonban ezen a módon írt programok a leggyorsabbak. Az assembly nyelven írt programot

gépi kódra az „assembler” (fordítóprogram) fordítja le. Ebből látható, hogy igazából az

assembly is egy fordított nyelv, de mégsem soroljuk a fordított nyelvek közé, mivel a

legtöbb esetben a „fordított nyelvek” az adott nyelvről assembly-re fordítanak (belsőleg),

és utána azt alakítják át gépi kóddá. Sajnos azonban az assembly nyelven írott programok

nem túl rugalmasak, hiszen egyes processzor-családnak saját gépi nyelve van.

Ma már nagyon sok különböző magas szintű programozási nyelv létezik.

Ezek kifejlesztése általában valamilyen típusú problémák, feladatok megoldására irányul.

A fejlett programozási nyelvek önálló utasításkészlettel, szabályrendszerekkel

rendelkeznek. Az utasítások szerkezete a gépi kódú utasításokhoz viszonyítva sokkal

összetettebb, képzési módjuk sokkal inkább követi az emberi gondolkodásmódot. A magas

szintű programozási nyelvek utasításai több gépi utasítást, tehát egy teljes utasítássorozatot

takarnak, nem veszik figyelembe a számítógép felépítését. Ennek megfelelően a magas

szintű fordítóprogramok is bonyolultabbak. Ezek a programozási nyelvek már

gépfüggetlenek.

Egyetemi tanulmányaim során több magasabb szintű programozási nyelvvel

megismerkedtem (C++, AML, MATLAB, LabVIEW). Egy ilyen feladat megoldásához

egy felhasználóbarát fejlett programozási nyelv szükséges, mely támogatja a hardver

közeli programozás lehetőségét is. Fontos a valósidejű adatfeldolgozás is, hiszen törekedni

kell a minél gyorsabb működésre a termelékenység érdekében. Az általam ismert és

elérhető programozási nyelvek közül a National Instruments termékét, a LabVIEW -et

választottam az algoritmus megírására.

Ez a programozási nyelv kompatibilis minden olyan kamera eszközzel, aminek a driver

programja megfelelően van telepítve az operációs rendszerre, bármilyen csatlakozóval

csatlakoztatjuk is azt.

Page 34: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

34 Az alakfelismerő részrendszer sajátosságai

3.2. A LabVIEW

A LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) a National

Instruments (röviden: NI) által kidolgozott fejlesztői környezet. Eredetileg 1986-ban Apple

Macintosh gépekre készült. A későbbi verziók azonban már számos Operációs rendszeren

elérhetőek (Microsoft Windows, UNIX, Linux, Mac OS), legújabb verziója a

LabVIEW 2012, amit 2012 augusztusában bocsájtottak piacra.

A LabVIEW érdekessége, hogy nem karakter alapú forráskódot írunk, mint egyéb

programozási nyelvekben (például: Pascal, C++), hanem blokkdiagramok rajzolása

segítségével hozzuk létre a forráskódot. A programot elsősorban mérnökök

(villamosmérnökök) számára fejlesztette ki a National Instruments mérési,

folyamatirányítási és automatizálási célokra. Programozás során Virtuális Műszereket

hozunk létre (Virtual Instrument: VI), amelyek kapcsolatban állnak a számítógép

különböző hardverelemeivel.

Az NI célja ezzel az volt, hogy úgy hozzunk létre komplex laboratóriumokat, hogy

számítógépünkbe installálunk néhány adatgyűjtő, digitalizáló és jelgeneráló kártyát,

amelyek kapcsolatban állnak a külvilággal és LabVIEW segítségével megalkotjuk a

megfelelő virtuális műszerünket. Így nem kell drága és helyigényes eszközöket

beszereznünk, valamin rugalmasan változtatható az alkalmazási terület.

Egy ilyen virtuális műszer 2 fő részből áll: előlap (Front Panel) ami a kész program

felhasználó felületét tartalmazza a végfelhasználó számára, és a programozói felület

(Block Diagram), ahol a már korábban említett forráskódot megírhatjuk. [9]

A LabVIEW-ban való fejlesztés alatt az előlapi panel és a blokk diagram szerkesztését

értjük. A LabVIEW több verziójához is adtak ki angol illetve magyar nyelvű oktatási

anyagot, melyek CD mellékletein példaprogramok sora segíti megértetni a program

használatát. A National Instruments honlapjáról oktatási célokra letölthető egy 30 napos

próba verzió az épp aktuális verzióból. Széleskörű elterjedés miatt az alapprogram nem

tartalmaz minden függvényt, amire munkám során szükség lesz így a Vision Development

modult is telepíteni kell, ugyanis ez tartalmazza az IMAQ függvénycsaládot, ami a

LabVIEW-ban a képfeldolgozást végzi.

Page 35: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

35 Az alakfelismerő részrendszer sajátosságai

3.2.1. LabVIEW előlap

Ez a felület van közvetlen kapcsolatban a felhasználóval, itt történik az paraméterek

magadása és kiértékelésük után itt tudjuk megjeleníteni az eredményeket.

Az előlapi eszközöknek két nagy csoportja van, az egyik a kontrollerek, amik az

adatbevitelre szolgálnak a másik az indikátorok, amiken a kimeneti jelek jelennek meg.

Ezen túl még itt találhatóak a díszítő elemek is, amivel a programunk kinézetét

csinosíthatjuk.

18. ábra. LabVIEW előlap

3.2.2. LabVIEW programozói felület

A LabVIEW a G grafikus adatfolyam programozási nyelvre épül. A programozó a

blokkdiagramokban csomópontokat köt össze huzallal, így állítja össze a forráskódot.

A csomópontok egyszerűbb vagy összetettebb műveleteket hajtanak végre.

A csomópontok lehetnek: függvények, struktúrák és úgynevezett SubVI-k amelyek már

előre definiált függvények és struktúrák halmazát tartalmazzák. Ezek akár egymásba is

ágyazhatóak. A csomópontoknak lehet nulla vagy több bemenete illetve nulla vagy több

kimenete. Egy csomóponti függvény csak akkor hajtódik végre, ha minden bemeneti érték

Page 36: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

36 Az alakfelismerő részrendszer sajátosságai

rendelkezésre áll. Ha egy adott pillanatban több ilyen csomópont is van, akkor elméletileg

azok egyszerre hajtódnak végre. A gyakorlatban ezek sorrendje független egymástól. Ezek

alapján láthatjuk, hogy LabVIEW-ban könnyen megvalósítható a párhuzamos

programozás, ugyanis a többszálú programfutáshoz a nyelvi eszközök rendelkezésre

állnak. A megírt program a blokkdiagram adatáramlási sorrendjében hajtódik végre, azaz

az adat az adott csomópont kimeneti termináljával közvetlenül összehuzalozott bemeneti

terminálra érkezik. Vagyis tévhit, hogy az adatáramlás balról jobbra történik, bár könnyebb

áttekinthetőség érdekében érdemes így felépíteni a programunkat. A programelemek

többszörös lefutásáról a más programozási nyelveken is megtalálható ciklusok

gondoskodnak. Az adatok típusait a vezetékek színe és vastagsága jelöli. Hatalmas előnye

az ilyen módú programozásnak, hogy sokkal átláthatóbb marad a forráskód és a

szintaktikára sem kell akkora figyelmet fordítani.

19. ábra. LabVIEW blokkdiagram

LabView hardverigénye [10]:

- Pentium III/Celeron 866 MHz processzor,

- 512 MB RAM (1GB RAM ajánlott),

- 3,6 GB szabad merevlemez-terület,

- 16 bites színmélységet támogató grafikus vezérlő,

- 1024 x 768 pixel felbontással rendelkező monitor.

Page 37: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

37 Az alakfelismerő részrendszer sajátosságai

3.3. LabVIEW Vision

A LabVIEW számos kiegészítő modult tartalmaz különböző témakörökben, a felmerülő

problémák hatékonyabb megoldása végett. A Vision is egy ilyen modul, ami a

képfeldolgozással kapcsolatos függvényeket tartalmaz. Ez a modul a LabVIEW

jelfeldolgozási rendszerét szoftveres és hardveres oldalon terjeszti ki. A modul

applikációja után megfelelő driverek és csatolókártyák segítségével lehetőség van analóg,

USB, firewire, kameralink és TCP/IP csatlakozású kamerák jeleinek fogadására.

A speciális képfeldolgozást biztosító függvényeket a LabVIEW az IMAQ

programcsomagban foglalja össze. [11] A képfeldolgozási feladatok IMAQ részét is

képező Vision Assistant program végzi el. Kifejezetten a gyártási és minőségellenőrzési

feladatokat segíti a Vision Builder program, amely használja a Vision Assistant

szolgáltatásait is. Ezekből a függvényekből, alprogramokból könnyen összealíthatunk egy

képfeldolgozási feladatokat végző LabVIEW programot, ami után könnyen tovább

fejleszthető.

3.4. A munkadarab

A feladatban használt munkadarab a LabVIEW rugalmasságának köszönhetően szinte

bármilyen lehet, feltétel csupán annyi, hogy a kamera látómezejéből egyik irányba se

lógjon ki és a vákuumos megfogó fel bírja emelni. Úgy gondolom, definiálom az általam

használt munkadarabokat, hogy a későbbiekben könnyebben tudjak dolgozni a

programmal.

20. ábra. A feladat során használt munkadarabok

Page 38: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

38 Az alakfelismerő részrendszer sajátosságai

Munkám során tehát 4 db fából faragott, homogén hasábbal fogok dolgozni. Egyenként

25 mm x 25 mm x 50 mm nagyságúak és 20 g súlyúak. A palettán csak nagyobbik

oldallapjukon feküdve egymáshoz nem érve legalább 20mm távolságra szomszédjuktól

érkezhetnek a kamara látómezejébe. A munkadarabok kék, piros, zöld és sárga színre

vannak festve a könnyebb megkülönböztetés érdekében és az eseteges hibák egyszerű

detektálása végett. A munkadarabok helyzetét a mindenkori palettájuk bal alsó

sarokpontjához fogom viszonyítani, tehát ez lesz az origó pont.

Azonban ahhoz, hogy ilyen módon tudjuk meghatározni az origót több módszer áll

rendelkezésünkre. Beállíthatjuk a kamerát úgy, hogy a felvételkor már az origóban legyen

a paletta megfelelő sarokpontja. Azonban ez sajnos merevvé teszi rendszerünket, hiszen

egy esetleges paletta vagy kamera cserénél újra össze kell hangolni a rendszert. Az új

origót meghatározhatjuk egy LabVIEW-ban írt segédprogrammal is, amit az alakfelismerő

program előtt lefuttatunk. Ez nagyfokú rugalmasságot jelentene, azonban lassítaná a

rendszer működését. Leghatékonyabban akkor járunk el, ha koordinátarendszer

transzformációval áthelyezzük az origót.

Mivel a görgős pálya magassága fix, ezért a Z irány változatlan marad, csak a másik két

koordinátatengelyt kell önmagával párhuzamosan eltolni.

21. ábra. Koordinátarendszer eltolás

Az ábrán X, Y, Z az eredeti koordináta rendszer tengelyei origója pedig az O pont, az új

koordináta rendszer tengely X’, Y’, Z’ origója az O’ pont. P a munkadarab felületének

geometria középpontja, V pedig a transzformáció vektora melynek mérete V=[a,b,c]

Az új koordináták meghatározása az eltolás vektorának ismeretében történik.

Page 39: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

39 Az alakfelismerő részrendszer sajátosságai

(3)

(4)

(5)

A munkadarabok vízszintessel bezárt szögét a paletta alsó éléhez fogom mérni. A robot a

vákuumos megfogó segítségével a 25 mm x 50 mm-es oldallapjuk geometriai

középpontjában fogja megragadni a munkadarabot, melynek pontos koordinátáját a

képfeldolgozó program határozza meg.

A későbbiekben látjuk majd, hogy bármilyen összetett alakzat felismerése és

meghatározása lehetséges a megírt programmal és a darabszám is növelhető.

Azonban az egykamerás rendszer hátránya, hogy a munkadarabnak csak egyik felületét

látja, így annak pontos geometriai tulajdonságai ilyen módon nem meghatározhatóak.

Előfordulhat, hogy olyan alapterületű munkadarabok érkeznek a kamera látásmezejébe,

amelyeket egyéb paraméterükben nem egyeznek meg az előre definiált mintával.

Az általam készített alakfelismerő program sajnos alkalmatlan az ilyen és ehhez hasonló

hibák felismerésre, ilyen esetekben több kamerás alakfelismerős rendszer szükséges, vagy

más detektáló eszközök használatára van szükség.

22. ábra. Hibásan felismert alakzatok

Page 40: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

40 Az alakfelismerő részrendszer sajátosságai

23. ábra. Valós kép a hibás munkadarabokról

A képek alapján látható, hogy folyamatos és zökkenőmentes üzemelés érdekében fontos a

munkadarabok pontos definiálása és megelőző válogatása. De mint korábban említettem

egy több kamerás rendszerrel ez a probléma orvosolható.

3.5. Koordináták meghatározása

3.5.1. Korreláció

A matematikában a korreláció jelzi két tetszőleges érték közötti lineáris kapcsolat

nagyságát és irányát, vagy ezek egymáshoz való viszonyát. A korrelációt akkor is

használhatjuk, ha képek közötti hasonlóságot keresünk, vagy a képen egy bizonyos

tartomány pontos pozíciójára vagyunk kíváncsiak, esetleg két kép közötti eltolódást, annak

irányát és nagyságát kell meghatároznunk. Ilyen korrelációs képletet használ az IMAQ

függvénygyűjtemény is. [12]

(6)

Ahol:

- k(x,y) a minta,

- f(x,y) az alapjel, amiben a mintát keressük,

- g(x,y) f és k korrelációja,

- m az alapjel sorainak száma,

- n az alapjel oszlopainak száma.

Page 41: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

41 Az alakfelismerő részrendszer sajátosságai

24. ábra. Munkadarab helyzetének meghatározása korreláció segítésével

Az ábrán látható, hogy a korreláció eredménye egy jól definiálható kimagasló csúcs.

A LabVIEW IMAQ korrelációs függvénye ezeket a kiemelkedő csúcsokat keresi, és

helyzetük alapján határozza meg a munkadarabok koordinátáit. Egyszerű alakfelismerés

esetében a korreláció önmagában is elég jól használható módszer, a hátrányként jelentkező

végrehajtási időt pedig csökkenthetjük a keresendő minta pontos definiálásával és a

pixelszám csökkentésével.

25. ábra. Felismert munkadarab

Page 42: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

42 Az alakfelismerő részrendszer sajátosságai

3.5.2. Koordináták

Az ábrán jól látható, hogy a képfelismerő program egy közelítő keretbe foglalja bele a

keresés eredményét, és ennek a keretnek a jobb alsó és bal felső koordinátáját bocsátja

rendelkezésünkre. Ezekből a geometriai adatokból kell az oldallap középpontját

meghatározni és a robot felé továbbítani. Így a keresett koordináta meghatározása egy

egyszerű koordinátageometriai szakaszfelezéssé redukálódik.

(7)

(8)

Ahol:

- x, y a keresett koordináták,

- xj, yj a jobb alsó koordináták,

- xb, yb a bal feslő koordináták.

3.6. Koordináták továbbítása

Az Anyagmozgatási és Logisztikai Tanszék Logisztikai laboratóriumában található

Mitsubishi SCARA robot szerencsére több féle kommunikációs csatornán is képes a

külvilággal kapcsolatot tartani, legyen akár PROFIBUS, CC Link, soros port, vagy

Ethernet csatlakozó aljzat. Ezen felül még PCI bővítő kártyák segítségével további

csatlakozó felületeket biztosíthatunk, vagy esetleg címzés átirányítással közvetlenül a CC

Link hálózatra csatlakozó Mitsubishi PLC-t is megszólíthatjuk.

Szerencsére a LabVIEW is ilyen széleskörű támogatással rendelkezik. Bővítő modulok

segítségével akár ipari szabványok által meghatározott kommunikációs csatornákon is

lehet egyszerűen adatokat küldeni a segítsége révén. Viszont törekedve az egyszerű

programírásra és a rugalmasságra, az adatok továbbítására a TCP/IP protokollstruktúrát

használom fel.

Page 43: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

43 Az alakfelismerő részrendszer sajátosságai

3.6.1. TCP / IP

A TCP / IP (Transmission Control Protocol / Internet Protocol) nem más, mint egy

protokollkészlet, amelyet 1974-ben arra fejlesztettek ki, hogy hálózatba kapcsolt

számítógépek egymással kommunikáljanak és megoszthassák egymás között az

erőforrásaikat. A TCP/IP felépítése a rétegződési elven alapul, minden egyes réteg egy jól

definiált feladatot végez el. Minden réteg kizárólag csak a szomszédos réteggel képes

kommunikálni.

Alkalmazási réteg: amikor egy számítógépes program hálózaton keresztül adatot szeretne

küldeni (vagy fogadni) az alkalmazási réteg továbbküldi (vagy fogadja) azt a szállítási

rétegen keresztül.

Szállítási réteg: az alkalmazási rétegtől kapott adat elejére egy fejlécet csatol, amely jelzi,

milyen hálózati protokollt használjunk a küldött adathoz.

Hálózati vagy internet réteg: a szállítási rétegtől kapott adatokat címezi meg a fogadó

félnek.

Adatkapcsolati réteg: feladata az adatok csomagokra bontása, ha az adat túl nagy ahhoz,

hogy egy csomagba kerüljön, tovább darabolja.

Fizikai réteg: továbbítja az adatkapcsolati rétegtől kapott kereteket a hálózaton.

Az ilyen módon küldött adatok címzése egy egyedi azonosító karakterlánccal történik,

amelyet négy, pontokkal elválasztott 0 és 255 közötti decimális szám fejez ki, a számok

mindegyike a cím 8 bitjét képviseli, így a teljes cím 32 bites, ez az IP cím.

Fontos, hogy ezt az IP címet helyesen adjuk meg, hiszen a hálózaton keresztül elküldött

csomagok csak így érhetnek célba.

LabVIEW-ban számos módszer van az Ethernet csatornán történő kommunikációra. Ebből

a legegyszerűbb, ha a kommunikációs protokollokat használó SubVI-k segítségével

magunk írjuk meg a megfelelő alkalmazást. Így az alkalmazásunk közvetlenül

írja / olvassa a hálózatot. Az ilyen módon megírt alprogramok byte sorozatot küldnek át a

hálózaton, amelyeket a LabVIEW string karaktertömbként kezel. Ennek egyik hátránya,

hogy mindig pontosan be kell állítani a fogadni kívánt adat hosszát, különben a következő

problémákkal kell számolnunk, ha rövidebb adatot fogadunk, mint azt előre beállítottuk:

- memória szemét kerül a változó üresen maradt helyére,

- a következő olvasást annyival később kezdi el olvasni, amennyivel kevesebbet

olvasott a korábbi olvasás során.

Page 44: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

44 Az alakfelismerő részrendszer sajátosságai

Abban az esetben, ha hosszabb adatot küldünk, mint az előre definiált méret, adatvesztésre

számíthatunk. Ezt figyelembe véve először minden esetben meg kell határozni a

karaktertömb méretét és csak utána küldhetjük!

26. ábra. Egy TCP csatornát nyitó SubVI blokkdiagramja.

A LabVIEW-ban a TCP / IP kapcsolat építésére a Communication eszköztárból a

következő elemeket használhatjuk fel:

- TCP Listen – IP-vel való hallgatózás bejövő kapcsolatra várva,

- TCP Open Connection – TCP kapcsolat nyitása adott IP címen keresztül,

- TCP Read – TCP port olvasás,

- TCP Write – TCP port írása,

- TCP Close Connection – TCP kapcsolat zárása,

- TCP Open Listener –TCP Listen-t hoz létre, de nem vár bejövő kapcsolatra,

- TCP Close Listener – bezárja a Listen-t.

A hálózat kiépítése során nemcsak a csomagok küldéséről, hanem azok megfelelő

fogadásáról is gondoskodnunk kell. A tanszéki SCARA robot esetében a CR2D-700 típusú

irányítószekrény gondoskodik erről.

Page 45: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

45 A Vizuális alakfelismerő rendszer algoritmusa

4. A Vizuális alakfelismerő rendszer algoritmusa

Miután feltártuk a Robot képességeit és a LabVIEW nyújtotta lehetőségeket, elkészíthetjük

az alakfelismerő program algoritmusát. Az algoritmust részekre bontva fogom tárgyalni,

ezen részek egymásutániságát az információ haladási iránya fogja meghatározni.

4.1. Az algoritmus megírásának előkészületei

Az program megírása előtt azonban vegyük sorra mit is várunk el ettől az alkalmazástól,

milyen részelemeket kell feltétlenül tartalmaznia és mik azok a kiegészítő funkciók, amivel

egy későbbi fejlesztés során kibővíthetjük.

A képfeldolgozó program képes lesz a korábban definiált 4 munkadarab felismerésére,

azok térbeli helyzetének meghatározására (pontos helyzet meghatározás, szögelfordulás).

Mindezt úgy, hogy a térbeli koordinátarendszer választott origója az aktuális paletta bal

alsó sarokpontja lesz. A program elvégzi a már említett koordinátarendszer

transzformációkat és az így képzett adatokat a robot felé továbbítja egy általa generált

Ethernet kommunikációs csatornán keresztül TCP / IP protokollt használva. Miután a

robothoz eljutnak az információk a munkadarabok helyzetéről, az általa meghatározott

optimális úton felveszi, majd áthelyezi őket egy másik nyugalomban lévő palettára.

A felismert munkadarabok áthelyezése egyesével, egymás után történik.

A LabVIEW-ban való munka előtt készítettem a programunkról egy folyamatábrát.

A folyamatábra segítségével a programunk dinamikus viselkedését, folyamatait

követhetjük nyomon. A folyamatábra szabad kezet ad bármilyen folyamat ábrázolásában,

így a strukturálatlan algoritmusokat is könnyűszerrel lerajzolhatjuk, ezáltal könnyen

áttekinthetővé válik még a legösszetettebb kusza program is. Legyen választott

programozási nyelvünknek bármilyen bonyolult szintaktikája, a folyamatábrák

segítségével letisztult képet kapunk a program helyes működéséről.

Page 46: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

46 A Vizuális alakfelismerő rendszer algoritmusa

27. ábra. Az algoritmus folyamat ábrája

Page 47: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

47 A Vizuális alakfelismerő rendszer algoritmusa

4.2. Kamera illesztése LabVIEW-ban

Miután megfelelően applikáltuk a National Instruments LabVIEW programjához az IMAQ

függvénycsomagot tartalmazó Vision Development modult és meggyőződtünk róla, hogy a

kameránk is telepítve van az adott operációsrendszerhez, elkezdhetjük a feladat megírását.

Először a webkamerát fogjuk beleilleszteni a programunkba. A LabVIEW-ban ez

többféleképpen történhet, az egyik legegyszerűbb módszer, ha a Vision and Motion

menüből kiválasztott Vision Acquisition SubVI-t használjuk. Ez a mini alkalmazás egy

varázslón keresztül fogja a kameránkat felismerni és munkára fogni.

28. ábra. Vision Acquisition SubVI

Miután elindítjuk a varázslót, a menürendszerében négy fülön keresztül állíthatjuk be a

kívánt paramétereket a programhoz és a kamerához. Az első fülön kiválaszthatjuk, hogy

már meglévő felvételt (avi fájlt) vagy élő képet szeretnénk feldolgozni. Ha élőkép mellett

döntünk, akkor a felsorolásból kiválaszthatjuk a használni kívánt kamerát, amennyiben az

eszköz nincs a listában, sajnos nem tudjuk felhasználni LabVIEW programozás során.

Előfordulhat, hogy nem jól csatlakoztattuk a kamerát, vagy nem telepítettük a megfelelő

drivereket és szoftvereket mellé, az is lehet, hogy másik alkalmazás használja a kamerát. A

Vision Acquisition segítségével egyszerre csak egy kamerát tudunk használni.

A kiválasztásra kerülő kamera lehet: USB, Ethernet, Cameralink, Firewire és

NI Interfészen csatlakoztatva, de akár integrál kamera is lehet‒ezzel is biztosítva a

rugalmas felhasználást. Miután kiválasztottuk a listából a kameránkat, a panel jobb oldalán

élő képpel ellenőrizhetjük, hogy éppen mit „lát”.

Page 48: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

48 A Vizuális alakfelismerő rendszer algoritmusa

29. ábra. Kamera kiválasztó panel

A következő fülön állíthatjuk be, hogy a kamera által látott képet milyen folyamat szerint

szeretnénk begyűjteni.

Ez lehet egyszeri alkalmazás, amikor például csak egy képkocka rögzítését akarjuk

elvégezni az adott pillanatban. Ez a módszer azért nem felel meg nekünk, mert nehéz úgy

időzíteni a programot, hogy akkor végezze el a fényképezést, amikor az alkatrészekkel

megpakolt paletta pont a kamera látásmezejébe ér.

Ilyen módon akár képsorozatot is készíthetünk, ha képalkotó Vision Acquisition SubVI-t

egy for ciklusba ágyazzuk bele és meghatározzuk, hány db képet készítsen egymásután

folyamatosan az alkalmazásunk. Itt lehetőség van a memória pufferébe való tárolásra a kép

feldolgozása előtt. A sorozatképek készítésének sebessége a kamera zársebességétől és az

exponálási időtől függ.

A for ciklusba való ágyazást úgy is megoldhatjuk, hogy folyamatos képet rögzítünk és csak

utólagos feldolgozás során emelünk ki képkockákat. Ez a két megoldás hátránya szintén a

megfelelő időzítése pontos meghatározása.

Lehetőségünk van arra is, hogy a SubVi-t While ciklusba ágyazzuk, és ezáltal feltételt

szabjunk a képrögzítés idejének. Ez lehet egy időzítő, vagy külső alkalmazás által generált

Page 49: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

49 A Vizuális alakfelismerő rendszer algoritmusa

jel, de lehet egy kommunikációs csatornán érkezű impulzus is. Ilyen módon a kameránk

addig folyamatosan készíti a képsorozatot, amíg a STOP jel meg nem állítja a While

ciklust. Ennél a megoldásnál lehetőségünk van a készített kép memória pufferbe való

tárolására és utólagos feldolgozására. Én azonban egy folyamatos képfeldolgozó

alkalmazást szeretnék életre hívni, ezért erre nem lesz szükségem.

A kamera által látott kép begyűjtésére tehát a Vision Acquisition SubVI-t egy

While ciklusba ágyazom, amit egy STOP jel hatására akármikor megállíthatunk.

A SubVI varázslójában a következő fülön az általunk használt kamera fontos paramétereit

állíthatjuk be.

30. ábra. Kamera szoftveres beállításai

Többek között itt állíthatjuk be egy legördülő menü segítségével a kamera által használt

felbontást, színmélységet és FPS (kép per másodperc) számát is. Ezek az értékek

kameránként eltérőek lehetnek. Tapasztalati úton kiválasztva én a 800 x 600 pixeles

felbontás mellett döntöttem 32 bites színmélységgel és 30 képpel dolgozom

másodpercenként.

Page 50: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

50 A Vizuális alakfelismerő rendszer algoritmusa

A finomabb hangolás érdekében a Logitech QuickCam Pro 9000 kameránál a következő

paramétereket lehet szoftveresen állítani:

- háttérfény kompenzáció,

- fényerősség,

- kontraszt,

- exponálási idő,

- fókusztávolság,

- használt sávszélesség mérete,

- színtelítettség,

- élesség,

- fehéregyensúly.

Azonban érdemes ezeket alapbeállításon hagyni, ha esetleg a felvétel zajos vagy vibráló

lenne, akkor az automata beállítás helyett kézi beállítást kell alkalmazni és a

fókusztávolságot valamint fehéregyensúlyt fix értékre kell állítani.

Lehetőségünk van itt is a kamera által látott képen nyomon követni a beállítás hatásait.

Az utolsó fülön a Vision Acquisition SubVI bemeneti és kimeneti csomópontjait

határozhatjuk meg. Bemeneti oldalon a kamera leállításának feltételén kívül, a felsorolt

szoftveresen szabályozható tulajdonságokhoz rendelhetünk változó vagy fix paramétereket,

melyeket később a varázsló futtatása nélkül változtathatunk meg. Kimeneti oldalánál a

felvett mozgóképen kívül a kép másodpercenkénti képszámát és a rögzített kép

darabszámát tárolhatjuk le egy változóba. Érdemes a hibaüzeneteknek is egy indikátort

kivezetni.

31. ábra. Wihle ciklusba ágyazott Vision Acquisition SubVI

Page 51: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

51 A Vizuális alakfelismerő rendszer algoritmusa

Az eddigiek alapján tehát a programunkkal képesek vagyunk a webkamera által látott

800 x 600 pixeles 32 bit színmélységgel rendelkező képet megjeleníteni, a kamerát tetszés

szerint be- illetve kikapcsolni valamint a hardveres és szoftveres hibákat indikálni.

32. ábra. A Vision Acquisition SubVI által megjelenített kamerakép

4.3. A képelemzés LabVIEW-ban

A LabVIEW-ban a képek elemzésére, feldolgozására több komponens és SubVI is

rendelkezésünkre áll, legyen szó akár álló, akár mozgóképről. Ezeket tetszőlegesen

egymásután kötve vagy egymásba fűzve elemezhetjük a feldolgozásra szánt képsorokat.

Az egyik ilyen mini alkalmazás a Vision Assistant. A National Instruments-től már

megszokott varázsló segítségével tudjuk munkába állítani.

33. ábra. Képelemző SubVI

Page 52: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

52 A Vizuális alakfelismerő rendszer algoritmusa

Ennek a SubVI-nek a Vision Acquisition által felvett kép lesz az „Image In” bemeneti

csatornájával közvetlenül összekötve. A Vision Assistant minden olyan fontos változtatási

lehetőséget tartalmaz, amire a program megírása során szükségünk lehet.

34. ábra. Vision Assistant SubVI beállítási felülete

A varázsló ablak a menüsoron túl négy fontos részre osztható fel. Baloldalt fent található

az eredeti forráskép kicsinyített változata az alapvető információkkal, mint például a

felbontás és színmélység nagysága. Mellette jobboldalt fent található a már változtatáson

átesett kép. Alatta jobboldalt lent található a felhasznált képmódosító vagy képanalizáló

alkalmazások sora. Ezek balról jobbra haladva egymás után fejtik ki hatásukat a forrás

képre. Baloldalt lent található a Vision Assistant által felhasználható folyamatok

gyűjteménye.

Az első ilyen gyűjtemény a kép tulajdonságait feldolgozó alkalmazásokat tartalmazza.

Ezek között az alkalmazások között található többek között a képernyőre rajzoltatás,

3D nézet, geometriai alkalmazások, kép maszkolás, más képek betöltése. Számunkra az

egyetlen használható eszköz az a képen történő geometriai változásokat végrehajtó

alkalmazás; ha a kamera esetleg elforgatva, fejjel lefelé jelenítené meg a képet, ezzel az

alkalmazással tudjuk ezt helyreigazítani.

Page 53: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

53 A Vizuális alakfelismerő rendszer algoritmusa

A második gyűjteménybe színes képekkel és kép színével foglalkozó vagy ezekhez

kapcsolód alkalmazások találhatóak. Itt találhatók többek között a színszűrők, a színekkel

aritmetikai és logikai műveleteket végző színoperátor, itt lehet a forráskép színmélységén

is változtatni, és található egy színkereső rutin is, ami a színek RGB kódja alapján

határozza meg a színek helyzetét a képen. Számunkra a színmélységek megváltoztatása

lesz a későbbiekben fontos, mert az alakzatfelismerés tökéletesen szürkearányos képen

végezhető el. Ehhez a 32 bites színes forrásképet 16 bitesre kell „lerontani”.

A rendelkezésre álló függvények gyakorlatban való alkalmazása után a HSL Luminance-t

választottam. Ez a függvény a színcsatornák fényerejét csökkenti le olyan mértékben, hogy

a kép elveszíti színeit és csak a fekete és fehér közötti szürkearány marad meg. Ez a

konvergálás adatvesztéssel jár, ami csak akkor állítható vissza, ha töröljük ezt a függvényt.

A komponens alkalmazása után a forrásképünk már csak egy szürkearányos kép lesz.

A harmadik gyűjteményben a bináris operátorok kaptak helyet, a képeket számként kezelő

alkalmazások egy komolyabb aritmetikai vagy logikai szerkesztés esetén lehetnek

fontosak, azonban az én programom nem igényel ilyen feladatokat.

A következő gyűjteményben az azonosítási függvények kerültek. Ezek segítségével lehet

2D és 3D vonalkódokat illetve QR kódokat egy webkamera segítségével leolvasni és

feldolgozni. A program megírásához ezeket a függvényeket nem fogom felhasználni,

hiszen a Logisztikai labor ilyen feladatokhoz professzionális eszközökkel van felszerelve.

Természetesen a továbbfejlesztés egy lehetősége, hogy egy kamerával olvassuk le a

paletták azonosítására szolgáló optikai kódot és ugyanezzel a kamerával végezzük a

képfeldolgozást is.

Az utolsó gyűjteményben a géplátás elemei találhatóak, különböző él meghatározó

függvények sora, kalibráló függvények és a korrelációs mintaillesztések. Az általam írt

program is egy ilyen korrelációs mintaillesztésen alapszik. Két ilyen alkalmazás is van a

Vision Assistant SubVI repertoárjában: a mintaillesztésként funkcionáló Pattern Matching

és a geometriai alakokkal operáló Geometric Matching.

Általánosságban elmondható, hogy mikor mintaillesztéssel vagy geometriai illesztéssel

dolgozunk, keresünk, akkor egy mintát definiálunk arról az objektumról, amit szeretnénk

megkeresni. A képfeldolgozó algoritmus megkeresi a minta minden egyes előfordulását a

forrás képen, melyet egy illesztési pontszámmal lát el. Ez az érték mutatja meg az

illeszkedés helyességét. A keresés során, a program a minta minden egyes előfordulását

felkutatja a forrásképen, függetlenül a geometriai transzformációktól, legyen az akár

Page 54: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

54 A Vizuális alakfelismerő rendszer algoritmusa

eltolás, vagy elforgatás. A mintaillesztés és geometriai illesztés minden esetben korrelációs

függvény számításán alapszik. Beláthatjuk, hogy ez az egyik legfontosabb függvény a gépi

látásban. Az korrelációs algoritmus főbb felhasználási területei:

- csoportosítás, osztályozás,

- mérés,

- vizsgálatok.

4.3.1. Mintaillesztés

35. ábra. Pattern Matching függvény

A Pattern Matching egy 16 bites szürkearányos képen az előre definiált minta helyzetét

határozza meg a korrelációs függvény segítségével. Ez egy gyors és pontos módja a

képfeldolgozó eljárásoknak, azonban nagy hátránya, hogy a mintát, mint bit képet kezeli,

ezért magas hibaszázalékkal dolgozik.

4.3.2. Geometriai illesztés

36. ábra. Geometric Matching függvény

A Geometric Matching szintén 16 bites szürkearányos képen keresi az előre definiált

mintát, azonban az előző alkalmazással ellentétben itt a geometriai sajátosságok alapján

Page 55: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

55 A Vizuális alakfelismerő rendszer algoritmusa

történik vizsgálat, így az alkalmazás kisebb hibaszázalékkal találja meg a keresett

objektumokat.

A program megírása során mind a két kereső eljárást kipróbáltam és azt tapasztaltam, hogy

a geometriai illesztés pontosabb eredményeket produkál, így választásom erre a

függvényre eset.

Mind a két kereső eljárás során először a mintát kell meghatároznunk. Erre egy beépített

szubrutin szolgál. Első feladatunk, hogy a mintát a kamera látómezejében elhelyezzük úgy,

hogy élei párhuzamosak legyenek a koordináta tengelyekkel. Ez azért fontos, mert a kereső

eljárás ezt a geometriai pozíciót fogja alapértelmezettnek tekinteni és ehhez képest fogja a

munkadarabok helyzetét meghatározni a feladat során.

37. ábra. Minta definiálása

A definiálás előtt ki kell jelölni a kamera által látott képen azt a területet, amit át fogunk

vizsgálni az alkalmazással. Ez azért is fontos, mert már itt meg kell adni a paletta befoglaló

keretét, hiszen a koordináta rendszer origója a paletta bal alsó sarokpontja lesz. A definíció

következő lépése, hogy a látott képen kijelöljük a munkadarabot, amit később keresni

Page 56: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

56 A Vizuális alakfelismerő rendszer algoritmusa

szeretnénk. Ha megfelelően állítottuk be a kamerát és a fényviszonyok is optimálisak,

akkor az alkalmazás körberajzolja a munkadarabot a geometriai határai mentén.

Lehetőségünk van ennek a módosítására a radír eszköz használatával. Fontos, hogy

pontosan határozzuk meg a munkadarabot, hiszen ennek módosítása programban csak

akkor lehetséges, ha újra futtatjuk a Geometric Matching definíciós eljárását.

Miután meghatároztuk a mintát az alkalmazás máris bejelöli a talált alakzatokat, és

táblázatba rendezi a számunkra fontos paramétereket. Ezután a sablon 16 bites PNG

kiterjesztésű kép formájában mentésre kerül a számítógép egy tetszőleges mappájába.

38. ábra. Definiálás során felismert munkadarabok

A definiálás utolsó lépése során beállíthatjuk, hogy összesen hány darab munkadarabot

keressen az alkalmazás, mi az az alaki eltérés, amit még elfogadunk, hány fokos szögben

térhetnek el a mintától, és egymáshoz képest hogyan helyezkedhetnek el.

A program írása során 80% egyezést követeltem meg és 360°-os elfordulást

engedélyeztem, és mint ahogy már korábban is említettem a munkadarabok nem érhetnek

egymáshoz. Ezzel a módszerrel akármilyen bonyolult felületet definiálhatunk, amelynek

kontúrvonala a háttértől megkülönböztethető, határt csak a kamera felbontása szabhat.

A program másik továbbfejlesztési lehetősége, hogyha nem csak egy mintát definiálunk,

Page 57: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

57 A Vizuális alakfelismerő rendszer algoritmusa

hanem többet és így bonyolultabb válogatási feladatot végzünk el. Miután pontosan

meghatároztuk a munkadarab keresésének feltételeit befejezhetjük a definíciót.

Utolsó lépésként Vision Assistant kimeneti és bemeneti csatornáit nyithatjuk meg a

LabVIEW program számára. A bemeneti jelek közül számunkra csak a Vision Acquisition

SubVI-ből érkező kamera jel fontos. Azonban a továbbfejlesztés során figyelembe kell

venni, hogy a kiválasztott alkalmazások tulajdonságainak megváltoztatására van lehetőség,

ha a bemeneti oldalon megfelelő paramétereket rendelünk ezekhez a komponensekhez.

Kimeneti oldal tekintetében számunkra a Geometric Matching komponens által felismert

munkadarabok száma és geometriai adataik a fontosak. Ezeket a geometriai adatokat egy

sokelemű tömb formájában bocsátja rendelkezésünkre a Vision Assistant alkalmazás.

A tömb elemei sorban:

- elfordulás szöge,

- méretegyezés százalékban,

- egyezés pontban,

- befoglaló keret sarokpontjainak koordinátái (x, y),

- fedés értéke,

- görbe illesztés értéke a forráson,

- görbe illesztési értéke a sablonon,

- korrelációs eredmény.

Ezek a paraméterek egy 3 dimenziós tömbbe rendezve annyiszor ismétlődnek, ahány

munkadarabot felismer a Geometric Matching alkalmazás.

Lehetőségünk van itt is a Vision Assistant munkája során felmerülő hibaüzenetek

képernyőre való listázására.

Megjeleníthetjük a Vision Assistant által módosított képet is egy ablakban, azonban ez már

nem része a feladatnak, hiszen a robot számára az adatok összegyűjtése megtörtént.

Azonban a folyamatos ellenőrzés, továbbfejlesztés és a hibaanalízis megkívánja, hogy élő

képen figyelemmel kísérhessük a képfeldolgozó algoritmus munkamenetét.

Page 58: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

58 A Vizuális alakfelismerő rendszer algoritmusa

4.4. Értékek feldolgozása

Miután a Vision Assistant-ban a Geometric Matching modul segítségével meghatároztuk a

munkadarabok helyzetét, a korábban már említett koordináta transzformációt kell

végrehajtani. A Vision Assistant egy tömb formájában bocsátja rendelkezésre a

munkadarabokról összegyűjtött adatokat. Ennek a tömb kibontása és megfelelő

feldolgozása lesz a következő feladata.

A LabVIEW-ban a tömbökből való kibontást és osztályba rendezést az

Unbundle By Name Function nevű modul végzi.

39. ábra. Tömbből való kibontás név alapján

Látható, hogy indexenként válogathatjuk a tömb elemeit és ezeknek értékeivel a

továbbiakban, mint konstans, vagy mint változó paraméter dolgozhatunk.

40. ábra. A Vision Assistant elemeinek osztályba rendezése

Mivel az alkatrész megtalálása során egy befoglaló keret (Bounding Box) két ellentétes

pontjának koordinátáját kapjuk meg, ezért ez még további felbontást igényel.

A 4 koordináta ismeretében kiszámíthatjuk a középpontot is a már korábban említett

szakaszfelező egyenlettel. Erre a LabVIEW numerikus palettáján található műveleti jeleket

a legcélszerűbb használni.

Page 59: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

59 A Vizuális alakfelismerő rendszer algoritmusa

41. ábra. Szakaszfelezés

A szakaszfelezést sorban mind a négy felismert alkatrész befoglaló keretének

koordinátájával elvégezzük. Ezután a nyolc koordinátát a szögelfordulás értékével együtt

TCP/IP kapcsolaton keresztül a robot felé továbbítjuk.

A hibaanalízis megkönnyítése érdekében a kamera által látott képet (nem kell) a

felhasználói felületen megjelenítésre kerül. A megjelenítés során a befoglaló keret is a

koordináták segítségével kirajzolódik. A képernyőre való rajzoláshoz az IMAQ Overlay

Rectangle VI-t használhatjuk fel.

42. ábra. A képernyőre rajzoló algoritmus

Lehetőségünk van a LabVIEW-ban többféle alakot, szöveget vagy speciális karaktert is

kirajzolni a képernyőre, de úgy gondolom, legjobban az segíti későbbiekben a munkát, ha

ugyanolyan négyszöget rajzoltatunk ki a program segítségével, mint amilyen segítségével a

geometriai középpontot is meghatároztuk. A képernyőre való rajzolás előtt először a

megfelelő koordinátákat egy vektorba kell gyűjteni. A vektor elemeinek sorrendje kötött a

következő módon:

- balszélső érték,

- legfelső (tető) érték,

- jobbszélső érték,

- legalsó érték.

Page 60: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

60 A Vizuális alakfelismerő rendszer algoritmusa

A vektorban helyet kap a következő sorrendben:

- egyezés pontértéke,

- szögeltérés értéke,

- középpont x koordinátája,

- középpont y koordinátája.

Így az adat vektorunk már nyolceleműre hízott. Mind a négy felismert objektumnál létre

kell ezt a vektort ugyan ezzel a kötött sorrenddel hozni. A képernyőre rajzoló IMAQ

Overlay Rectangle VI-t a Vision Assistant SubVI és a képmegjelenítő modul közé kell

beilleszteni, úgy, hogy az egyik bemeneten a rajzoló programnak a meghatározott

koordinátái legyenek, a másik bemeneten a módosított kamerafelvétel legyen.

Lehetőségünk van a rajz színét is meghatározni. Később ez fontos szerepet játszhat, ha

különböző munkadarabokat akarunk felismertetni. Egy ilyen rajzmodul csak egy alakzatot

tud megjeleníteni, ezért mind a négy felismert alkatrészhez négy különálló modulra lesz

szükség, amit sorban egymás után köthetünk a képmegjelenítő modul előtt.

43. ábra. Sorba kötött IMAQ Overlay Rectangle VI-k

Így most már képernyőn is láthatjuk a kamera által látott és feldolgozott képet, azonban a

felismert munkadarabok koordinátáit még nem tudjuk meghatározni és ellenőrizni a

látottak alapján. A képernyőre rajzolás előtt az Unbundle By Name modul segítségével

leválasztjuk a létrehozott adat vektorok első négy elemét, melyek a befoglaló négyszögek

koordinátáit tartalmazzák.

Page 61: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

61 A Vizuális alakfelismerő rendszer algoritmusa

44. ábra. A kamera által látott kép megjelenítve

Ezért a Geometric Matching modul által feldolgozott adatokat egy táblázatba gyűjtve

listázza a program. Így a látott kép és a táblázat segítségével kiszűrhetjük a hibákat és

könnyen javíthatjuk azokat. A LabVIEW-ban a táblázatot egy SubVI segítségével tudunk

feltölteni, ez a blokk egy többdimenziós függvény jelét várja bemeneti oldalon és ez

alapján tölti fel a cellákat a függvény diszkrét értékeivel.

45. ábra. Táblázat feltöltő rutin

A feltöltött táblázatot Excel fájlba is menthetjük, ezáltal megkönnyítve az archiválást és a

hibakeresést is. A bemeneti többdimenziós függvényt egy dinamikusadat konverter

Page 62: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

62 A Vizuális alakfelismerő rendszer algoritmusa

segítségével fogjuk létrehozni. Ezt a függvényt a korábban feltöltött négy adat vektorból

adjuk meg, úgy, hogy a vektorok minden elemét felhasználjuk.

46. ábra. Táblázat feltöltés

A táblázat feltöltése és megjelenítése valós időben történik, a feldolgozás sebességétől

függően akár 10-15 kép per másodperc is lehet a frissítése, ami a robot tehetetlenségéhez

figyelembe véve megfelelően gyors.

47. ábra. Adatokkal feltöltött táblázat a frontpanelen

4.5. Előlapi panel

A LabVIEW előlapi panelján a megjelenített képen és a felismert objektumok táblázatba

rendezett adatain kívül a kamera felvételi sebessége (Frame Rate) és a felismert

munkadarabok darabszáma is helyet kaphat. A kamera sebességét a Vision Acquisition

SubVI kimenetére, a darabszámot pedig a Vision Assistant SubVI kimenetére kötött

számláló jeleníti meg. Helyet kapott még 2 db hibajelző indikátor is, az egyik a

Page 63: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

63 A Vizuális alakfelismerő rendszer algoritmusa

Vision Assistant, Vision Acquisition és táblázat feltöltő SubVI-k hibakódjait jeleníti meg,

amíg a másik a hálózati kapcsolatból adódó hibakódokat veti képernyőre.

A rugalmasabb felhasználás és könnyebb applikálás érdekében az eltolás vektorát is

számszerűen megadhatjuk az előlapi panelon. Ezzel az eltolással az origó helyzetét

határozhatjuk meg, ha esetleg a palettát lecserélnénk. Ehhez 2 db numerikus kontrollert

kell elhelyeznünk a frontpanelon. A változók értékeit a Vision Assistant SubVI által

generált tömb felbontása után a befoglaló keretek megfelelő koordinátáihoz kell hozzá

adni.

48. ábra. Eltolás értékének hozzáadása

A könnyebb munkavégzés és hibakeresés érdekében az előlapon található indikátorokat és

kontrollereket szisztematikusan helyezzük el. Természetesen ugyan ezt a beavatkozást

elvégezhetjük a szögelfordulás értékével is.

Page 64: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

64 A Vizuális alakfelismerő rendszer algoritmusa

49. ábra. Előlapi panel lehetséges kialakítása

4.6. Adatkommunikáció

A feladat utolsó elemeként a már korábban említett Ethernet alapú TCP/IP kapcsolatot kell

a robot és a számítógép között létrehozni. A vezérlőszekrény bemeneti oldalát tekintve

kommunikációs csatornái üzemközben folyamatosan nyitva vannak. Figyelve a beérkező

jelekre reagál a robot a kommunikációs kérésre. [13] A LabVIEW-ban a TCP/IP kapcsolat

létrehozására több lehetőség is adódik. Mivel a fogadó oldal jelenleg nyitva áll, ezért a

címzés egyszerűsíthető. A TCP Open Connection modul használatával fogok a robottal

kapcsolatot teremteni.

50. ábra A TCP protokoll indítása

A modul beillesztése és a fogadó fél IP címének magadása után létre is hoztunk egy

egyszerű kommunikációs csatornát, melynek írását a TCP Write alkalmazásával fogjuk

elvégezni. Ahhoz, hogy egymás után több adatot is át tudjunk küldeni a program újból

indítása nélkül, egy for ciklusba ágyazzuk a TCP Write-ot.

Page 65: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

65 A Vizuális alakfelismerő rendszer algoritmusa

51. ábra Adatküldés egy lehetséges módja LabVIEW-ban

Az Etherneten küldött adatcsomagban a munkadarab középpontjának két koordinátája

(rendre: x, y,) és az elfordulás szöge lesz. Miután a robot feldolgozta ezeket az

információkat, az általa megítélt optimális útvonalon a munkadarab felé áll és vákuumos

megfogójával felemeli a munkadarabot. Ezután a munkadarab tárolásra szolgáló paletta

felé áll szintén az általa választott optimális útvonalon, úgy, hogy a munkadarabot

visszaforgatja a TCP/IP kapott szögelfordulás értékével. Hiba esetén a STOP gomb

segítségével leállítható a képfeldolgozó algoritmus, de a robot mozgását ez nem állítja

meg. Üzemzavar esetén a vezérlőszekrényen vagy a betanító panelon is található vészstop

használata ajánlott.

4.7. A kommunikáció ellenőrzése

Az adatok helyes sorrendben való megérkezésének ellenőrzésére a LabVIEW segítségével

készíthetünk egy programot. Ennek előnye, hogy nem kell a robotot beüzemelni, ha az

alakfelismerő programunkat tesztelni szeretnénk. A program feldolgozza a beérkezett

adatokat, és a képernyőn megjeleníti azokat egy táblázatban. Így az eredeti és elküldött

adatokat könnyen összehasonlíthatjuk. A TCP/IP kapcsolat létrehozásához ebben az

esetben a TCP Listen VI-t fogjuk felhasználni. Ez a modul folyamatosan figyeli az

Ethernet csatornát, ha azon a fogadó fél számára címzett adat érkezik, akkor elindítja a

kommunikációs protokollt.

Page 66: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

66 A Vizuális alakfelismerő rendszer algoritmusa

52. ábra. Lehetséges adatfogadás LabVIEW-ban

Látható, hogy a kommunikáció megkezdése előtt az érkező adat nagyságát kell ellenőrizni,

hogy az érkező adatokat helyesen olvassa a LabVIEW. Az adatforgalom végeztével a TCP

kapcsolat bezárásáról gondoskodnunk kell.

Page 67: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

67 Összefoglalás

5. Összefoglalás

Diplomamunkámban az alakfelismerő algoritmus megírása előtt a gyakorlatban használt

képalkotói és képfeldolgozó eljárásokkal ismerekedtem meg. A szakirodalom áttekintése

után kiválasztottam a feladatra legalkalmasabb eszközöket és felhasználásukkal saját

programot alkottam a munkadarabok azonosítására.

Egy robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerét megalkotni

komplex feladat. Az alakfelismerő részegységnek gyorsnak és rugalmasnak kell lennie,

ezzel biztosítva a széleskörű felhasználási területet. A LabVIEW-ban való fejlesztés

rendkívül időigényes és alapos tesztelést kíván, kizárva minden lehetséges hibát.

A kamera és a program segítségével olyan alacsony költségű, de nagy tudással rendelkező

alkalmazást hoztunk létre, amely ipari körülmények között a konkurencia mellett megállja

a helyét.

Jelenlegi programunk alkalmas arra, hogy a palettákon érkező, előre definiált alkatrészeket

a kamara segítségével felismerje és palettához viszonyított helyzetét TCP protokoll

használatával Ethernet csatornán tovább küldje egy arra alkalmas fogadó félnek, legyen ez

akár egy robot vagy más feldolgozó egység.

A program továbbfejlesztésének fő irányvonala a robottal való teljes integráció kell, hogy

legyen. Diplomamunkám során említettem, hogy a program lehetőséget biztosít arra, hogy

párhuzamosan végezzen el feladatokat, ezért könnyen kivitelezhető a program duplikált

futtatása, így akár több különböző alkatrészt is válogathatunk egy kamera segítségével.

Ezáltal teljes komissiózási feladatokat is elvégezhetünk.

A Diplomamunka elkészítése során számos új képfeldolgozási módszerrel, valamint

eljárással és szoftverrel sikerült megismerkednem, úgy gondolom ezek mindenképpen

segítségemre lesznek a későbbiekben.

Page 68: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

68 Irodalomjegyzék

Irodalomjegyzék

[1] Helm L.: Ipari robotok, Műszaki Könyvkiadó, Budapest, 1983. 50. o.

[2] Anyagmozgatási és Logisztikai Tanszék High-tech Logisztikai Laboratórium url:

http://logistics.alt.uni-miskolc.hu/~loglabor/

[3] Orvos K.: Raktározás, Mint Logisztikai funkció BGF Kiadó, Budapest, 2007. 18. o.

[4] BROCHURE RH-6SDH/12SDH/18SDH SERIES, Mitsubishi, Tokió, 2009. 2. o.

[5] Barsi Á.: Digitális képanalízis, Budapest, 2005. url:

http://web.fmt.bme.hu/subjects/dip/dip_index.htm

[6] ANRO Kft.: LED lámpa teszt, Budapest 2010 url:

http://www.anrodiszlec.hu/article_info.php/articles_id/70

[7] Logitech QuickCam Pro 9000 felhasználói kézikönyv, Logitech, Morges, 2007

[8] PWB Visual Inspection Machine, SONY Ltd., Kuki-shi, 2005.

[9] National Instruments, LabVIEW Help url:

http://sine.ni.com/np/app/flex/p/docid/nav-104/lang/hu/fmid/2048/

[10] Getting Started with LabVIEW; National Instruments, Texas, 2007. 19. o.

[11] IMAQ Vision for Labview Users Manual; National Instruments, Texas, 2006.

[12] Balázs K.: Statisztika I előadás jegyzet, Győr 2002. url:

http://rs1.szif.hu/~szorenyi/elm/bioselm7.htm

[13] CR1D/CR2D/CR3D Controller Instruction Manual; Mitsubishi, Tokió, 2008.

Page 69: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

69 Köszönetnyilvánítás

Köszönetnyilvánítás

Ezúton szeretném megköszönni Bozzay Péter Tanár Úrnak és Bálint Richárd Tanár Úrnak,

hogy idejüket nem kímélve építő jellegű tanácsaikkal, hasznos észrevételeikkel és

szaktudásukkal koordinálták diplomamunkám elkészítését.

Továbbá szeretném megköszönni Kecskés András Úrnak, az Axicont Kft. munkatársának

és Litkei Marton Úrnak, a National Instruments Hungary Kft. munkatársának, hogy

tapasztalataikkal és gyakorlati tanácsaikkal segítségemre voltak.

Page 70: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

70 Melléklet

Melléklet

Felbontás vizsgálat .............................................................................................................. 71 

Kamerák összehasonlítása ................................................................................................... 73 

Az alakfelismerő algoritmus LabVIEW-ban írt forráskódja ............................................... 75 

A kommunikáció ellenőrzésére szolgáló program LabVIEW-ban írt forráskódja .............. 79 

Page 71: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

71 Melléklet

53. ábra. Felbontások összehasonlítása. Eredeti felbontás (640x480)

 

54. ábra. Felbontások összehasonlítása. Eredeti felbontás fele (320x240)

Page 72: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

72 Melléklet

55. ábra. Felbontások összehasonlítása. Eredeti felbontás negyede (160x120)

Page 73: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

73 Melléklet

56. ábra. Kamera felvételek. Chinese Web Cam USB 1.1 (640x480)

57. ábra. Kamera felvételek. Chinese Web Cam USB 2.0 (640x480)

Page 74: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

74 Melléklet

58. ábra. Kamera felvételek. Logitech Pro 9000 USB 1.1 (640x480)

59. ábra. Kamera felvételek. Logitech Pro 9000 USB 2.0 (640x480)

Page 75: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

75 Melléklet

Page 76: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

76 Melléklet

Page 77: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

77 Melléklet

Page 78: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

78 Melléklet

Page 79: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

79 Melléklet

Page 80: Nagy Sándor 2012 Diplomamunka - University of Miskolcmidra.uni-miskolc.hu/JaDoX_Portlets/documents/document... · Alulírott Nagy Sándor, Neptun-kód: U4H9JC, a Miskolci Egyetem

Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése

80 Melléklet