Poslední část miniseriálu Robotika v praxi se věnuje modelovému řídicímu systému HLVLIB, jehož tvůrcem je společnost ATEsystem Jablonec.
Knihovna HLVLIB (pojmenovaná symbolicky ze zkratek použitých programových systémů Halcon a LabVIEW) je základem nové koncepce řídicího systému pro spolupráci kamerových systémů 2D a 3D s robotem.
- Ukazuje se, že kromě programových nástrojů prostředí LabVIEW bude pro účely efektivní spolupráce robotu s 3D kamerovým systémem třeba aplikovat další nástroje, zejména pro oblast kalibrace a transformace souřadných systémů. Pro zpracování obrazu se sice nabízí velmi široké množství nástrojů, ty jsou ovšem pro oblast 3D zatím neefektivní. Proto byl zvolen ještě další nástroj, kterým je programové prostředí Halcon.
- LabVIEW je grafický programovací jazyk, který pracuje s přísně typově definovanými proměnnými již ve fázi psaní programu. Knihovny Halcon oproti tomu představují volnější typové definice, jejichž správnost se prověřuje až za chodu programu. Knihovna HLVLIB je jakýmsi „nárazníkem“ mezi těmito dvěma koncepcemi a musí být napsána tak, aby rozdílnost koncepcí nepůsobila uživateli zbytečné obtíže nebo nestabilitu cílového řešení.
Nově vyvinutý modelový řídicí systém je koncipován tak, aby koordinoval činnosti jednotlivých komponentů a řídil je ve smysluplném funkčním celku modulově.
Řešení se skládá z následujících dílčích úloh:
- Nadefinování komunikačního protokolu na úrovni zpráv zasílaných přes TCP/IP mezi robotem a programovým nástrojem LabVIEW.
- Vytvoření programu v systému robota, který bude shora popsaným zprávám rozumět, bude je realizovat a poskytovat zpětnou vazbu o stavu jejich vykonávání.
- Na straně LabVIEW vytvořit driver, který umožní v reálném čase zasílat zprávy robotovi a zprostředkovat odpovědi od něj. Driver musí pracovat v samostatném vláknu tak, aby mohl hlavní LabVIEW program pracovat paralelně s driverem.
- Vytvoření rozhraní mezi LabVIEW a knihovnami Halcon v podobě knihovny funkcí HLVLIB. Knihovny Halcon disponují rozsáhlým matematickým aparátem, který zatím není v LabVIEW k dispozici, avšak knihovna HLVLIB činí tento matematický aparát dostupný i pro LabVIEW.
- Další funkcí, s níž se musí knihovna HLVLIB vypořádat, je správa paměti, která je v každém z produktů Halcon i v LabVIEW řešena individuálně, a přesto musí oba nástroje sdílet společnou paměť a řešit její řádné uvolňování. Celý proces správy paměti nelze ponechat jen na automatických procesech, a proto jsou vyjmenovány případy, kdy se musí o explicitní uvolnění paměti postarat programátor pomocí nástrojů, které mu opět zprostředkovává knihovna HLVLIB.
- Vytvořit hlavní program, který v našem případě běží na PC v produktu LabVIEW a který řídí celý systém. Náplní tohoto programu je provést obsluhu kalibračním procesem, tedy z matematického hlediska nalezení nástroje pro přepočet mezi dvěma různými souřadnými soustavami 3D snímače a robota – tzv. transformační matice (viz obrázek níže).
- Další rolí hlavního programu je zprostředkovat obsluze názorné a přesvědčivé ověření, že nalezené transformační matice jsou správné. To je pak realizováno postupem, kdy uživatel označí v živém obrazu snímaném kamerou bod (klikne na něj myší) a takto zadaná souřadnice v obraze je transformována do souřadného systému robota a robot dostane příkaz, aby se posunul na zvolenou souřadnici. Jinými slovy vznikne situace, kdy robot „běhá za myší“. Na pozadí se tak realizují výpočty s konstantami zjištěnými kalibračním procesem.
Poznámka: Přínos navržené metodiky popsaných kalibračních postupů spočívá v tom, že je lze realizovat v mnohem širších souvislostech, než je účel, ke kterému jsou komerčně dostupné kamery s podobnou funkcionalitou určeny.
Principiální schéma koncepce spojení robota a 3D snímače
Zpracování obrazu u komplexního robotického systému
Rozpoznávání (kognice) a zpracování obrazu u komplexního robotického systému se větví na dvě základní skupiny úloh: 1) hledání známých objektů a rozpoznání jejich polohy, 2) kvalitativní nebo kvantitativní inspekce objektů, příp. jejich 3D rekonstrukce.
Rozpoznání polohy známého objektu je důležitým úkonem při řadě úloh průmyslové automatizace, jako je např. navigace robota snímaným prostorem či manipulace a práce robota s objektem. Nezbytné je také pro následné provádění inspekce objektu. Metodami rozpoznání polohy známého objektu v plošném obraze jsou identifikace klíčových bodů, tvarů či geometrických primitiv. Ze vzájemné relace těchto bodů, resp. perspektivní deformace tvarů a geometrických primitiv lze u některých objektů určit jejich natočení hledáním afinních transformací těchto entit. Rozpoznání polohy známého objektu sejmutého včetně třetí dimenze může být založeno buď na hledání klíčových tvarů 3D povrchu, nebo na základě povrchového fitování (hledání nejmenší odchylky) sejmutého objektu a 3D modelu tohoto objektu v třídimenzionálním prostoru.
Kvalitativní a kvantitativní inspekce objektů je jednou ze stěžejních úloh zpracování obrazu obecně, ať už jde o měření rozměrů, hledání tvarových, barevných či texturních vad. Pro některé úlohy postačuje snímání a analýza 2D obrazu, pro jiné je nezbytné 3D snímání zkoumaných objektů. 3D data mohou být následně zpracována více způsoby. Některé úlohy vyžadují analýzu naměřeného mračna bodů (tzv. Cloud of Points) v 3D prostoru, u jiných vybraných úloh lze analýzu zredukovat na 2D zpracování dat obrazu pořízeného projekcí 3D dat do definované roviny, kdy třetí dimenze je vyjádřena hodnotou jednotlivých pixelů rastrového obrazu.
Závěr
Modelový komplexní robotický systém HLVLIB s kamerovým systémem pro navádění byl navržen tak, aby bylo možné získat a ověřit prostorové vztahy mezi kamerovým a robotickým systémem, tj. aby oba systémy bylo možné zkalibrovat tak, aby pro ně existoval společný souřadný systém.
Pracovní prostor robota lze rozdělit na dvě části: celý pracovní prostor a podmnožinu celého pracovního prostoru, která je viditelná kamerou a je možno pro ni stanovit společný souřadný systém s robotem. V kamerou viditelném poli se nachází kalibrační plato, které slouží k úvodní kalibraci souřadného systému kamery.
Ke kalibraci kamerou viditelného prostoru s pracovním prostorem robota slouží programová funkcionalita zpracovaná v nově vytvořené vlastní knihovně HLVLIB. Vlastní ověření kalibrace a funkce celého systému je pak realizováno postupem, v němž je v obraze stanoven bod, který je následován pohybem úchopového bodu robota zviditelněného laserovou tečkou.
Na základě dosavadních testů na reálné sestavě robot + kamera lze říci, že celá komplexní modelová soustava pracuje uspokojivě a lze ji považovat za základ budoucího systému pro navádění robotu v pracovním prostoru. Navržené programové řešení vycházející ze znalosti algoritmů pro zpracování obrazu v 3D prostoru včetně kalibrace souřadných soustav je do značné míry unikátní, protože řešitelům dosud není známo komerčně dostupné řešení s popisovanými vlastnostmi.
Předchozí díly:
Robotika v praxi I: Kamerové navádění robota ve 3D
Robotika v praxi II: Řízení pohybu