nagy sándor 2012 diplomamunka - university of...
Post on 12-Mar-2021
2 Views
Preview:
TRANSCRIPT
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.
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
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
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.
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ó
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.
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
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.
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.
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.
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.
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
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
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.
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
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
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ó
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.
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.
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.
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.
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.
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.
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ó.
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.
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
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.
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
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.
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
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ó.
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ű”.
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.
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.
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
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.
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
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.
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
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.
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
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.
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.
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.
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.
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
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”.
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
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.
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
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
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.
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
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
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
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,
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.
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.
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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
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)
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)
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)
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)
Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése
75 Melléklet
Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése
76 Melléklet
Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése
77 Melléklet
Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése
78 Melléklet
Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése
79 Melléklet
Robotos munkahely vizuális alakfelismerésen alapuló irányítási rendszerének fejlesztése
80 Melléklet
top related