BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM
VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRNÖK INFORMATIKUS SZAK
Informatikai Technológiák szakirány Rendszerfejlesztés ágazat Önálló laboratórium (BMEVIIIA377)
Robotprogramozás, képfeldolgozás Készítette: Móricz Milán János (D2JUI2)
Konzulens: Dr. Kiss Bálint IRÁNYÍTÁSTECHNIKA ÉS INFORMATIKA TANSZÉK
2016. 05. 24.
Feladatkiírás: Robotprogramozás, képfeldolgozás: Egy golyó elgurítása utána a robotkar felismeri a golyót, és azt menet közben elkapja.
Bevezetés: A robotkarokat a gyártási automatizálásban nagy számban használják. Ezen robotkarok bepozícionálásának egy lehetséges módszere, hogy kamerával és képfeldolgozó algoritmussal meghatározzuk a helyzetüket. Az volt a feladatom, hogy egy webkamera segítségével kellett egy tárgyat felismerni, és annak pozícióját, sebességét megállapítani. Ezen információk birtokában a robotkar már képes a tárgy megfogására. A dolgozatom elején egy rövid áttekintést kívánok adni a témával kapcsolatban, úgy gondolom ez elengedhetetlenek a megértéshez. A második részben pedig a féléves munkám összefoglaló bemutatása következik.
Elméleti áttekintés:
Mitsubishi RV-2F-Q robotkar:
[2] A robotkar irányításához különböző koordinátarendszereket rendelhetünk hozzá. Ilyenek a XYZ és a Tools koordinátarendszerek. Az első koordinátarendszert a földhöz viszonyítva helyezik el. Jelen esetben a robotnak a talpához viszonyítják az értékek. A másik lehetőség, a megfogó végéhez rögzítik a koordinátarendszerünket.
Mitsubishi. RV-2F-Q - CR750 Detailed explanation of functions and operations.[4] [3] Utasítás készlet:
Paraméterező utasítások o Servo: szervó motorok be- és kikapcsolása o Ovrd: a maximális sebesség %-ban megadott legnagyobb megengedett o értékeAccel: a maximális gyorsulás és lassulás %-ban megadott legnagyobb megengedett értéke o Tool: flange pointhoz (mechanikus interfész origójához) viszonyítva a control point koordinátáinak (Tool koordináta rendszer origójának) definiálása
Mozgató utasítások o Mov: Csuklótengelyek szerinti interpolációval jut el a kívánt pozícióba. A tengelyek mértékegységben kalkulál, tehát mozgás közben bejárt a görbe alakja irreleváns.
o Mvs: Lineáris interpolációval mozog a célpozícióba, vagyis a leírt görbe egy egyenes mentén fekszik. o Hclose, Hopen: megfogó zárása, nyitása
Kommunikációs utasítások o M_In16(): szó importálása a robotkontroller megadott címéről o M_Out16(): szó exportálása a robotkontoller megadott címére
Engedékenységi irányítás utasításai o CmgG: compliance gain, a 6 koordináta (X, Y, Z, A, B, C) engedékenységi irányításának mértékét lehet beállítani. Ha a 0 és 1 közötti intervallumban megadott szám minél nagyobb, annál kevésbé engedi a robot önmagát eltéríteni. o Cmp Tool: az engedékenység engedélyezése Tool koordináta rendszer tengelyeire egyesével. Paramétere a koordináták CBAZYX sorrendben megadva. o Cmp off: engedékenységi irányítás tiltása
LabVIEW környezet: [1] A LabVIEW (Laboratory Virtual Instrument Engeneering Workbench) egy szoftver, mellyel VI-t (virtuális műszereket) hozhatunk létre. Előnye, hogy sok műszer helyettesíthető vele, és a mai korszerű számítógépeknek a teljesítménye elegendő ahhoz, hogy akár valós idejű működést is produkáljon. A programozása nem szövegesen történik, hanem grafikusan. Azaz az egyes ikonok összehuzalozásával történik. A LabVIEW programozási nyelvet eredetileg műszerek fejlesztéséhez és teszteléséhez fejlesztették ki, de ma már hatékonyan oldja meg az általános célú mérésadatgyűjtés, analízis, adatkezelés és megjelenítés funkcióit, az így létrehozott virtuális eszközre (műszer, készülék) utal a fájlok .vi (Virtual Instrument) kiterjesztése. A programok készítésekor először a Controls objektumkészlet segítségével egy felhasználói felületet hozunk létre, ez lesz tulajdonképpen a virtuális műszer előlapja (Front Panel). A program működését a Diagram ablakban az előlap objektumainak ill. a Functions palettából választható függvényeknek az összehuzalozásával határozzuk meg. Ez az ún. grafikus programozás, az így előálló blokkdiagram - ha jól strukturált - hasonlít egy folyamatábrához.
LabVIEW talán egyik legnagyobb előnye, hogy hatékonyan támogatja a hardver eszközök közötti kommunikációt.
Számítógépes látás A gépi látás az emberi látás bizonyos funkcióit valósítja meg. Ezek elsősorban a képi tartalom értelmezésére irányulnak: a látott képből következtet az objektumok alakjára, az objektumok térbeli elhelyezkedésére, egymáshoz való viszonyára, illetve több, időben egymást követő képből a mozgásra. Ahhoz, hogy a robotkar a térben tudjon tájékozódni, elkerülhetetlen a gépi látás beágyazása az irányítórendszerébe. Érdemes megemlíteni, hogy bár a képfeldolgozási műveleteknek rendkívül nagy az erőforrásigényük, felhasználási területei rendkívül széles tartományon mozognak, ezekre néhány példa:
irányítási folyamatok: ipari robot,
biztonsági rendszerek: mozgásdetektálás,
navigáció: mobil robotok, autonóm járművek,
minőségellenőrzés: roncsolás mentes anyagvizsgálatok,
statisztika készítése: például forgalomszámlálás.
Színterek [5] A színtér virtuális térbeli koordináta-rendszer, amely színek ábrázolására használható. Az egyes színek tulajdonságait a rendszerbeli koordinátái fejezik ki. Az ábrázolható színek valamilyen szabály szerint kerülnek elhelyezésre, például az alapján, hogy a színtér alapszíneinek milyen arányú keverésével állíthatók elő. Bár a gyakorlatban számos színtér létezik (RGB rendszer komplementer színeire támaszkodó CMY, HEX, HSL. )
RGB színtér
Az RGB színtér egy olyan additív színmodell, ami piros (Red), zöld (Green) és kék (Blue) színek különböző mértékű keverésével határozza meg a különböző színeket. Elsődlegesen elektronikai eszközök és számítástechnika terén alkalmazzák (képernyők, kijelzők, projektor, érzékelők). Alap komponenseinek értéke 0-tól 255-ig vehet fel értéket, ami 256 árnyalatnak felel meg.
RGB színtér
HSV színtér
A RGB színtérből képezhető HSV-t (Hue-színárnyalat, Saturation-színtelítettség, Valuevilágosság) az 1970-es években kezdték fejleszteni számítógépes grafikai alkalmazásokhoz. Ennek
eredményeként
manapság
a
képteret
elterjedten
használják
képszerkesztő
programokban, képelemzésnél, valamint számítógépes látásnál. Ez utóbbinak oka, hogy az RGB-hez képes objektum detektálásához jobban megfelel, mivel a színárnyalat külön van választva a színtelítettségtől, és a világosságtól. Tehát kevésbé függ a szűrés eredménye a tárgy felületének színtartománybeli egyenetlenségétől, valamint a megvilágítástól.
HSV színtér
Az évközi munkám bemutatása: A konzulensem a rendelkezésemre bocsátott egy virtuálisgép, mely segítségével, sikerült megismerkednem a Mitsubishi RV-2F-Q robotkarral. A legelső feladatom az volt, hogy a robotkar munkaterét tanulmányozzam. Az egyes koordináták megadását, ha nem betanítópulttal adtam meg, előfordult olyan hiba, hogy a koordináták között lépkedve a csuklómotorok nem mindig tudták egyenes úton eljuttatni a megfelelő helyzetbe a robotkart. Ilyenkor a szoftver hibát jelzett. Ha a betanítópult segítségével tanítottam be a pontokat, akkor ilyen hiba nem következett be. Utána a képfelismeréssel foglalkoztam mélyrehatóan. Amit a Labview környezetben valósítottam meg. A kezdeti lépéseimet segített, hogy már volt tapasztalatom, a szakirány laboratóriumon végeztünk e környezetben már méréseket. A képen az objektum keresésének sikerességéhez tanulmányoznom kellett a megfelelő szakirodalmat. A munkám során az interneten és a régebbi szakdolgozatokban is tájékozódtam a témával kapcsolatban. A képbeolvasását a Vision Acquistion használtam.
Több módszer lehetséges egy objektum megtalálására a képen:
alakzatkeresés,
színkeresés,
egy képrészlet koordinátájának keresése egy képen, úgy, hogy adott egy minta (pattern).
Ezen módszerekre a Labview kínál VI-okat. Én az utolsó mellett döntöttem, mivel így a zavaró körülményeket jobban ki tudta szűrni. Az alakzat- és a színkeresésnél magasabb hibaaránnyal dolgozna. Ez a módszer nagyon sok időt vesz igénybe, míg az algoritmus az egész képet átvizsgálja. A laboratóriumban lévő 1600x896 felbontású webkamerával ez másodperc nagyságrendű időket eredményezett. A feldolgozási idő csökkentésére irányuló terveim voltak:
csökkenteni a felbontást
csökkenteni a minta méretét
csökkenteni a keresendő területet
Tapasztalataim, hogy a felbontás csökkentésével a találat pontossága sokkal rosszabb eredményeket produkált. A minta mérete nem sokat befolyásolt a keresés gyorsaságán, a pontosság nem változott. A legcélravezetőbb elképzelésem, a keresendő terület csökkentése. A terület csökkentésére irányuló törekvéseim, azért is bizonyultak alkalmasnak, mert a golyó detektálása után, feltételezhettem, hogy a következő mintavételezésnél is az előzőekben lokalizált koordináta környezetében található majd a tárgy. Így nem kell újból az egész képet kielemezni. Ennek következménye, hogy a golyó sebességének van felső korlátja. Az első találat még így is hosszadalmas volt. Az időtartam lerövidítése céljából kikötöttem, hogy a golyó csak az egyik oldalról guruljon be a látóképbe. Így már sokkal gyorsabb lett a minta felismerés folyamata. Ezen módosításokkal századmásodperces időket sikerült elérnem. Ilyen nagyságrendű gyorsasággal már meg tudtam valósítani a további feladataimat. A guruló tárgy kiválasztásakor ezeket kikötéseket fogalmaztam meg:
nagy tömeg
ne tükröződjön
egyszínű
környezettől eltérő színű
mérete kicsi
A nagy tömegre azért volt fontos, mert akkor nehezebben befolyásolják a külső tényezők a labda gurulását. Az elején pingpong labdát használtam, de könnyen kitéríthető volt az egyenes mozgásából. A tükröződés a képfelismerésnél okozott nagy nehézségek. A fényviszonyok nagyban befolyásolták a találat sikerességének kimenetelét. Az objektum felírat, vagy más zavaró szín nélküli legyen, mert a forgása során mindig másképpen érzékeli a kamera, ilyen esetben szintén nem felismerhető. Nagy kontraszt a tárgy és a környezete között, pozitívan befolyásolta a tárgytalálatot.
A kisebb labda méret azért megengedhető, mert a kamera hatalmas felbontásának köszönhetően nagyon pontosan meg tudta találni a kisebb különbségeket is.
Időrendben a minták, amiket kipróbáltam Az összehasonlításhoz a kamerával készített képeket előtte még megszűrtem az IMAQ ExtractSingleColorPlane VI-val. Azt tapasztaltam, hogy a Color Plane Luminance-ba való állításával értem el a legnagyobb kontrasztot a háttér és az objektum között.
Magát a keresést a IMAQ Match Geometric Pattern 2 VI hajtotta végre. Itt beállítható, hogy mekkora pontossággal keressen. Volt lehetőség arra, hogy több találatot is visszaadjon. Ilyenkor mindig a hozzátartozó egyezés nagyságát is eltárolta a koordináták mellett. Az elején mikor a tükröződés gondot okozott, gyengébb pontossággal kellett dolgoznom. Ilyenkor több egyezést is talált a zavaró tényezők miatt. Ezért én három elemet kerestettem vele.
Ebből a háromból az alábbi algoritmussal, kiválasztatom a legjobban egyező képrészletet.
A kész programom meghatározza a golyó pontos helyét a kamera előtt. Egy kék ponttal jelzi, hogy ez a megtalált hely hol van.
Képfelismerő működés közben
A folyamatos találatokat felhasználva kiszámoltattam a szoftverrel a három találat helyének átlagát. Az előző hármas átlagának a különbségéből egy sebességet tudtam meghatározni. Az időt egy Elapsed Time-mal határoztam meg.
Számítási adatok megjelenítése
Sebesség számítása
A képből a kimetszés az alábbi blokkok összehuzalozásával történt.
Képmetszés
Összegzés: Az önálló laboratórium munkám során az alábbi készségekre tettem szert: o Mitsubishi RV-2F-Q robotkar irányítását megértettem. o Labview program megismertem. o A képfeldolgozás mélyebb elsajátítottam. o A két eszköz közötti kommunikáció alapszinten áttekintettem.
Irodalomjegyzék: [1] BME-VIK IIT: Programozható Irányítóberendezések és Szenzorrendszerek Laboratórium, LABVIEW ALAPÚ VIRTUÁLIS MŰSZEREZÉS, 2013 [2] BME-VIK IIT: Programozható Irányítóberendezések és Szenzorrendszerek Laboratórium, Robotprogramozás, 2015. március 28. [3] Horog András: Robotkar engedékenységi irányításának alkalmazástechnikája, Szakdolgozat, 2015. május 22. [4] Mucsi Ákos: Csatlakozó illesztés sorozatgyártásban ipari robotkarral, Szakdolgozat, 2015 [5] Széplaki Ádám Zoltán: Képi információ felhasználása robotkar mozgatásához. Szakdolgozat, 2015