Aktuální vydání

celé číslo

10

2017

Systémy pro řízení výroby, PLM, SCADA

celé číslo

Generovanie trajektórií pre robotický manipulátor na báze vektorovej grafiky

Článok je zameraný na generovanie trajektórií priemyselných robotov. Trajektórie sú generované z kriviek uložených vo vektorom formáte, ktoré sa importujú do softvéru Rhinoceros 3D, kde sa za pomoci modulov (plugins) RobotsIO a Grasshopper generujú požadované pohybové trajektórie pre špecifický robot. Vygenerované trajektórie môžu byť použité na robotizované kreslenie alebo na iné technologické operácie.

This article is focused on generation of trajectories for industrial robot. These trajectories are generated from curves stored in format of vector graphics. Afterwards these curves are imported to software Rhinoceros 3D which, in cooperation of its plugins RobotsIO and Grasshopper, can generate the desired movement trajectories for particular robot. Finally, the generated trajectories can be used for robotized drawing or for other technological operations.

1. Úvod

Off-line spôsobov programovania robotických manipulátorov existuje veľa, ale len málo z nich umožňuje vygenerovať nové zložité trasy pre výrobu v priebehu niekoľkých minút. Krivky vektorovej grafiky sú popísané matematicky, a preto slúžia ako dobrý zdroj na generovanie pohybových trajektórií. Na výrobu vektorových kriviek môžu byť použité profesionálne nástroje, ako sú Adobe Illustrator, Correl Draw alebo open-source editor Inkspace. Veľa dostupných editorov obsahuje nástroj na vektorizáciu bitmáp, čo rozširuje možnosti tohto riešenia. Jednoduchosť týchto editorov zjednodušuje výrobu podkladov, pričom plne nahradia ťažkopádne API od renomovaných výrobcov robotov.

Existuje veľa príkladov využitia generovania pohybových trajektórií týmto spôsobom v praxi. Robot je schopný vykonávať akýkoľvek pohyb na dvojrozmernej ploche, kde sú umiestnené krivky. Po výbere správneho nástroja a implementácii špecifických funkcií pre dané použitie je robot schopný rezať laserom alebo iným rezacím nástrojom, gravírovať, aplikovať lepiaci náter a pod. V tomto článku bude opísaná akademická aplikácia robotizovaného kreslenia.

Po príprave podkladov vo vektorovom formáte sa tieto krivky importujú do softvéru Rhinoceros 3D. Rhinoceros vytvára trojrozmerné virtuálne prostredie (obr. 1), kde sa za pomoci modulov (plugins) Grasshoper a Robots.IO namodeluje robot a jeho pracovný priestor. Na vyskúšanie programu je dostupná 90dňová skúšobná licencia.

Plugin Grasshoper (obr. 2) do Rhinoceros vytvára API vlastného grafického programovacieho jazyka s možnosťou vytvoriť si funkčné bloky v jazyku Visual Basic alebo C#. Funkčné bloky sa spájajú v želanom poradí tak, aby sa naplnili špecifikácie danej aplikácie. Grasshopper podporuje pluginy, ktoré rozširujú jeho schopnosti. Niekoľko z nich je zameraných na robotiku:

–   Robots.IO,

–   Kuka PRC,

–   HAL.

Plugin Robots.IO do Grasshoperu obsahuje funkčné bloky, ktoré sú schopné namodelovať a generovať trajektórie pre robot. Tak ako pri softvéri Rhinoceros, je aj pre Grasshoper k dispozícii 90dňová skúšobná licencia. Plugin Robots.IO podporuje roboty od spoločností ABB (obr. 3), Kuka a Staubli. Do hlavného funkčného bloku (Timeline) sú vstupnými dátami poradia bodov, medzi ktorými koncový bod nástroja prejde lineárnym pohybom (viď manuál pluginu Robots.IO).

Na obr. 4 predstavuje blok Timeline časovú os, kde je farebným kódom zobrazený stav robota v aktuálnej časti jeho programu.

2. Vývoj aplikácie pre robotizované kreslenie

Vektorová grafika umiestnená v trojrozmernom virtuálnom prostredí pozostáva z viacerých kriviek. Aby robot mohol nakresliť ďalšiu krivku, musí zdvihnúť pero a presunúť ho na začiatočný bod nasledujúcej krivky. Z tohto dôvodu sa pridávajú ku každej trajektórii na jej začiatok a koniec body, ktoré sú posunuté v osi z o 1 cm. Následne sa tieto trajektórie môžu náhodne pospájať a po spustení programu sa všetky nakreslia. Ak sú však trajektórie pospájané náhodne, výsledný pohyb robota nebude dostatočne efektívny a čas potrebný na nakreslenie grafiky sa predĺži. Tento problém je jednou z najznámejších optimalizačných úloh – problém obchodného cestujúceho.

Problém obchodného cestujúceho má množstvo možností využitia v praxi. Využíva sa pri plánovaní dopravy, v prevádzkach, pri umiestňovaní zariadení, plánovaní výroby a riadení dodávateľského reťazca. Napríklad môže pomôcť znížiť výrobné náklady, ak sa stanoví najefektívnejší model pre dierovanie otvorov do dosky plošných spojov alebo iných predmetov. Otvory, ktoré je potrebné vyvŕtať, predstavujú počet miest, a čas potrebný k posunu vŕtacej hlavy od jednej diery k nasledujúcej predstavuje cestovné náklady [1].

Nakoľko sa každá grafika skladá zo stoviek kriviek, nájsť optimálne riešenie je otázka výpočtového výkonu, ktorého je nedostatok, pretože v prostredí Grasshopper nie je možné výpočtové úlohy paralelizovať. Preto riešenie spočíva v nájdení suboptimálneho výsledku s rýchlym riešením tak, aby nástroj robota vždy prišiel k najbližšej možnej novej krivke z aktuálnej pozície. Toto riešenie sa volá „heuristika najbližšieho suseda“ [1].

3. Generovanie trajektórií

Všetky trajektórie sú vytvorené pospájaním pripravených bodov lineárnym pohybom robota. Každá krivka sa rozdelí na pomyselné úsečky, ktoré aproximujú nakreslenú krivku vo vektorovom editore.

Hlavným parametrom kvality kreslenia je množstvo vygenerovaných bodov na importovanej krivke. Na obr. 5 je vidieť, že sa body vytvoria iba tam, kde sú potrebné. Na rovných úsekoch sa vytvoria iba dva body – na konci a na začiatku. Pri zakrivených úsekoch sa množstvo bodov určuje premenlivosťou krivky a zadanou želanou presnosťou. Hlavnými parametrami presnosti sú minimálna dĺžka úsečky a uhol, ktorý zvierajú tri po sebe idúce body. Tieto parametre sú nastaviteľné vo vytvorenom programe v prostredí Grasshopper. Ak je treba zlepšiť presnosť kreslenia, môže sa zmenšiť minimálny dielik úsečky alebo zmenšiť uhol odklonu nasledujúceho bodu.

Na obr. 6 možno vidieť porovnanie nastavení presnosti (zľava):

1.  max. uhol odklonu 15°, min. rozstup bodov 2 mm,

2.  max. uhol odklonu 15°, min. rozstup bodov 1 mm,

3.  max. uhol odklonu 5°, min. rozstup bodov 1 mm,

4.  max. uhol odklonu 5°, min. rozstup bodov 0 mm.

4. Záver

Po naprogramovaní aplikácie je systém v závislosti od výkonu a množstva importovaných kriviek schopný generovať nové trajektórie pre robotické rameno v priebehu 5 až 15 min, čo zaručuje vysokú flexibilitu celého systému. Táto vlastnosť je výhodná pre výroby, kde sa často prechádza na nový druh výrobku. Ďalšou výhodou je jednoduchosť obsluhy. Vygenerovať potrebné trajektórie zvládne aj operátor bez znalostí programovacích jazykov. Nevýhodou je veľká výpočtová náročnosť, vzhľadom na to, že plugin Grasshopper vie pracovať iba s jedným jadrom počítača.

Súčasné programovacie prostredia od renomovaných výrobcov robotov tento spôsob programovania nepodporujú. Ak by sa ich funkcie rozšírili o tuto možnosť, zrýchlil by sa proces programovania špecifických aplikácií. Zároveň by vektorová grafika mohla byť aproximovaná lepšie, s použitím splajnov, a nie interpolačných úsečiek.

 Literatúra:

[1] VALENT, Tibor. Problém obchodného cestujú­ceho [online]. Bratislava, 2002 [cit. 2017-02-17]. Diplomová práca. Univerzita Komenského, Fakulta matematiky, fyziky a informatiky. Dostupné z: www.iam.fmph.uniba.sk/studium/efm/diplomovky/2002/valent/index.html

 Ing. Michal Adamík, Siprin, s. r. o.,Ing. Andrej Babinec, PhD., FEI STU v Bratislave

Lektoroval: Ing. Martin Švejda, katedra kybernetiky, Západočeská univerzita v Plzni

 Autori:

Ing. Michal Adamík: vyštudoval robotiku na Fakulte elektrotechniky a informatiky STU v Bratislave. Pracuje ako technik-programátor v spoločnosti Siprin, s. r. o., ktorá je 100% dcérskou spoločnosťou koncernu Siemens na Slovensku.

Ing. Andrej Babinec, PhD.: pracuje ako odborný asistent v Ústave robotiky a kybernetiky na Fakulte elektrotechniky a informatiky STU v Bratislave. Je členom Národného centra robotiky, o. z.

Obr. 1. GUI Rhinoceros 3D

Obr. 2. GUI Grasshopper

Obr. 3. Robot ABB IRB120

Obr. 4. Funkčný blok Timeline

Obr. 5. Generovanie trajektorie

Obr. 6. Porovnanie nastavenia kvality kreslenia

Obr. 7. Kreslenie obrázku