Gépesített érzékszervek – képfeldolgozás, ahogyan mi látjuk

Az iparban a technológiai fejlődésnek talán legfontosabb célja mindig is az emberi munka valamilyen szintű lemásolása és továbbfejlesztése volt. A gépek ma már az emberi szerveket úgy váltják ki mint egy robot manipulátor az emberi kart, vagy egy szállítószalag az emberi lábat. Nem szabad azonban megfeledkezni azokról a szervekről, amelyek nélkülözhetetlenek ahhoz, hogy feladatainkat elláthassuk: ezek pedig az érzékszervek. Az emberi érzékszerveket az iparban szenzorokkal helyettesítjük.

Gépesített érzékszervek

A manapság elérhető számos új és komplex gyártástechnológia illetve ipari folyamat megköveteli, hogy a gyártósorról a lehető legtöbb féle adatot gyűjtsük be. Ezen adatok kinyerésére már rengeteg különböző szenzor alkalmazható, melyek sokféleképpen érik el azt, hogy információval szolgáljanak egy objektum pozíciójáról, súlyáról, hőmérsékletéről, gyorsulásáról de akár ömlesztett anyag szintmérésére is alkalmazhatóak.

Gépi látás, képfeldolgozás

A látás mint érzék, akárcsak az embereknél, a gépeknél is hatalmas jelentőséggel bírhat.

A gépi látás talán azon szenzorikus megoldások egyike, melyekkel egyidőben a lehető legtöbb dologról szerezhetünk adatot. Bár vizuális érzékelésben sokszor az emberek még felül is múlják a gépeket, vannak a képfeldolgozásnak olyan felhasználási módjai, ahol elengedhetetlen a sebesség és hogy a kinyert információval valamilyen számításokat végezzünk. A mai ipari kamerák és számítógépek lehetővé teszik, hogy a két- vagy három-dimenziós képeket soha nem látott gyorsasággal és részletességgel, valós időben analizáljuk.

A képfeldolgozás során egy kamera akár kép, akár videó formátumban adatot szolgáltat egy számítógépnek, amely a képen lévő objektum(ok) geometriai tulajdonságaiból, egy program segítségével információt nyer ki.

  • Egy, a képen lévő objektum geometriai tulajdonságai közé tartozik annak alakja, mérete, pozíciója, orientációja, színe vagy akár más objektumokhoz hasonlítva annak sebessége.
  • Egy másik kategóriába sorolhatjuk az olyan tulajdonságokat, mint a felületi durvaság vagy szerkezeti hibák.
  • Fontos továbbá kiemelni az objektum felszínére szándékosan felhelyezett vonal- vagy QR-kódot vagy nyomtatott képet.

A gépi látás tehát egy olyan átfogó érzékelési mód, mellyel adott esetben, egyidőben akár több szenzor munkáját is helyettesíthetjük.

Robot-Vision a virtuális világban

Persze minden szenzornak vannak olyan kritériumai, melyek teljesítése elengedhetetlen, hogy effektíven használhatóak legyenek, ez a kamerák esetében a megfelelő megvilágítás. Fontos ugyanis, hogy a későbbi feldolgozásra készített képek ne rendelkezzenek olyan hibákkal, amelyek akadályozhatnák a számítógépen futó képfeldolgozó algoritmus munkáját. Ilyen hiba lehet akár egy rossz megvilágításból származó, az objektum által vetett árnyék, vagy a háttér, és a megfigyelt objektum színe közti nem elégséges kontraszt. Így bár tényleg számos célra felhasználhatóak, de a rendszer beüzemelése igazán kényes feladat. Érdemes tehát valamilyen szimuláción keresztül virtuális beüzemelést végeznünk, hogy felmérjük a lehetséges hibaforrásokat és a rendszert tesztelni tudjuk. Mint a legtöbb folyamat a képfeldolgozás is szimulálható szoftveresen. A cikk további részében két, különböző célokra összeállított, képfeldolgozási szimulációt fogok ismertetni.

A szimulációs környezet ebben az esetben a RoboDK volt. A Computer-Vision természetesen robotok esetében is alkalmazható, ekkor Robot-Visionről beszélünk.

A RoboDK lehetőséget ad virtuális 2D kamerák használatára, amelyek élő képpel szolgálnak a beállított szimulált jelenetről. Bár konkrétan képfeldolgozásra használható program könyvtárat az RDK nem tartalmaz, külső forrásból (a fejlesztők által javasolt, nyílt forráskódú OpenCV library használatával) könnyen pótolható a hiányosság. A korábban felsorolt tulajdonságok közül az első szimulációban a munkadarabok alakját, pozícióját és orientációját vizsgáljuk.

A szimulációhoz írt programok, épp mint a valós képfeldolgozó rendszerek, több, egymástól jól elkülöníthető folyamatból állnak, melyek az első esetben a következők:

  • A futószalagra ömlesztve, véletlenszerűen kétféle munkadarab érkezik, a program célja, hogy a hosszúkás cső-szerű alkatrészeket a robot szelektálja, és a mellette lévő asztalra pakolja.
  • A szimulációs környezetben elhelyezett 2D-s kamera néhány miliszekundumonként frissíti a programba beolvasott képfájlt, melyet azonnal egy minél kontrasztosabb, fekete-fehér tartományba módosítunk.
  • A beolvasott képet ezután egy előre elkészített, a hosszúkás alkatrészt tartalmazó referencia képhez hasonlítja a program. Jelen esetben a szoftver a képeken lévő objektumok köré rajzolt kontúrvonalak hosszából és alakjából, illetve az objektumok befoglaló négyzetének területéből következtet a kettő közti hasonlóságra/eltérésre.
  • Amennyiben a két kép elegendő mértékben hasonlít egymásra a robot engedélyt kap a mozgásra.
  • Mindezek mellett a munkadarabok adott pillanat béli pozícióját és elfordulását is nyomon követjük.

Második esetben egy viszonylag egyszerű programmal állunk szemben:

  • A robot megvizsgálja a futószalagokon érkező dobozokban található, 3 furattal rendelkező alkatrészek számát.
  • A szoftver érzékeli a képen lévő objektumokon található üres területeket, melyeket különböző szűrők segítségével ritkítunk, hogy kizárólag a három furatos alkatrészekre szelektáljuk a keresést.
  • Természetesen rengeteg féle szempont alapján szűrhetjük a találatokat, lehetőségünk van például a lyukak konvexitását vagy területét is vizsgálni, jelen esetben a furatok közti minimális távolság alapján történik a szűrés.

Ezen szimulációkat mindössze pár programkódbéli sor választja el attól, hogy egy valós, fizikai kamera képét dolgozzák fel, melyből kinyert utasításokat akár ezen szimulációk egyikében lévő robotnak, vagy akár egy valós cellának küldjenek.

Ezen szimulációk persze rendkívül egyszerű példákat mutatnak be, de továbbfejlesztve és kibővítve őket következtethetünk a gyártócella gyártókapacitására a szalagon érkező munkadarabok számából, vizsgálhatjuk azok felszínét, esetleges minőség béli hibákat keresve (automatizálva a minőség-ellenőrzés folyamatát is, amelyet sok esetben emberi munkatársak végeznek) vagy képesek vagyunk megoldani olyan problémákat, melyeknél elengedhetetlen a gépi tanulás valamilyen szintje, illetve hogy egy robot adaptálódni tudjon bizonyos változó gyártás béli környezeti tényezőkhöz (ez utóbbi például abból is fakadhat, hogy az instrukciókat a robot számára nem tudjuk kellő részletességgel meghatározni, mert valamilyen véletlenszerű változó van a folyamatban).

RoboDK – Folyton bővülő eszköztár

Bár a képfeldolgozás és gépi látás technológiája az iparban egyre nagyobb teret nyer magának, az effajta szimulációk elkészítését elősegítő eszközök a RoboDK alapvető arzenáljából egyelőre hiányoznak. Remélhetőleg a közeljövőben ezeket is beépítik, mint ahogy számos más, újonnan fejlesztett funkciót is. Ilyen például a Pick & Place folyamatok egyszerű és gyors programozását lehetővé tevő Plug-In, melynek béta verzióját már kipróbáltuk, ezen cikk írásának idején pedig a kész verzió a legújabb frissítéssel hivatalosan is bekerült a programba.

Ha a RoboDK felkeltette érdeklődését látogasson el az alábbi linkre:

https://enterprisegroup.hu/plm/kiegeszito-megoldasok/robodk

Ha pedig szeretne további tartalmakat olvasni a témában kattintson valamelyik korábbi blog-cikkünkre:

https://blog.eplm.hu/mibol-lesz-a-cserebogar-mernok/

https://blog.eplm.hu/pick-place-folyamatok-a-robodk-ban/

https://blog.eplm.hu/mire-jo-es-hogyan-mukodik-az-offline-robot-programozas-olp/

 

Szerző: Szabó Balázs – gyakornok

Archívum