#09 Ukážka offline programu
Ukážka Pick and Place programu
V predošlom článku bol popísaný príklad jednoduchého Pick and Place programu. Takúto úlohu je možné jednoducho naprogramovať pomocou Offline metódy v jednom zo simulačných softvérov dostupných pre priemyselných robotov od rôznych výrobcov. Simulačný softvér RoboGuide slúži na offline programovanie a simulácie robotov FANUC. Pomocou tohto softvéru je možné navrhnúť alebo vizualizovať pracovisko robota a tvoriť programy, ktoré budú následne aplikované na reálneho robota na pracovisku. V tomto článku bude popísaná tvorba jednoduchého pracoviska robota pre Pick and Place úlohu.
Tvorba pracoviska v softvéri RoboGuide
Vytvorenie bunky
Pred samotným programovaním je potrebné navrhnúť pracovisko (bunku) kde bude robot pracovať. Základom tvorby bunky je zadefinovanie informácií o robotovi, ktorý bude v bunke pracovať. Na toto slúži Workcell Creation Wizard. Je dostupný z úvodnej ponuky pri spustení RoboGuide, alebo pri vytváraní novej bunky výberom možnosti File → New Cell. Tvorba bunky sa skladá z viacerých krokov:
- 1. Process Selection: Výber činnosti ktorú bude robot vykonávať. RoboGuide poskytuje niekoľko modulov zameraných na určité činnosti ako napríklad práca z materiálom (HandlingPRO), paletizácia (PalletPRO), zváranie (WeldPRO) a pod.
- 2. WorkCell Name: Názov pracovnej bunky.
- 3. Robot Creation Method: Metóda vytvorenia robota, na výber je niekoľko možností.
- 4. Robot Software Version: Voľba verzie ovládacieho softvéru robota.
- 5. Robot Application/Tool: Výber nástroja/efektora. Je možné ponechať robota bez efektora a zvoliť efektor počas tvorby programu.
- 6. Group 1 Robot Model: Výber modelu robota. V našom prípade to bude FANUC LR Mate-200iD.
- 7. Additional Motion Groups: Výber robotov a pozicionérov pre dodatočné pohybové skupiny.
- 8. Robot Options: Výber softvérových rozšírení pre ovládacie rozhranie robota.
- 9. Zhrnutie: Celkový prehľad zvolených možností.
Po potvrdení RoboGuide vytvorí prázdnu bunku, s robotom umiestneným v počiatku súradnicového systému.
Návrh pracoviska
Po vytvorení bunky je potrebné doplniť všetky modely ktoré budú reprezentovať reálne (v našom prípade myslené) pracovisko. V ľavej časti okna sa nachádza strom ktorý obsahuje prehľad o všetkých objektoch nachádzajúcich sa v bunke. Slúži taktiež na vkladanie modelov do bunky. Objekty na nachádzajú v časti Fixtures a predmety určené na manipuláciu v časti Parts. Naše myslené pracovisko bude predstavovať stôl, na ktorom je umiestnený robot a dva dopravníky medzi ktorými je potrebné preniesť predmet. RoboGuide obsahuje CAD knižnicu s rôznymi objektami a predmetmi ktoré je možné umiestniť na pracovisko. Samozrejme je možné vytvoriť aj vlastné CAD modely. Objekty vyberieme pomocou možnosti Add fixture → CAD Library. Všetky objekty je možné ľuboľne presúvať po priestore bunky alebo zadať presné súradnice polohy objektu. Polohu všetkých objektov je možné "uzamknúť" po umiesnení. Myslené pracovisko robota vyzerá nasledovne:
Voľba efektora
Ďalším krokom je voľba efektora. Pre jednoduchú ukážku Pick and Place úlohy bude postačovať základný model grippera z CAD knižnice RoboGuide. Efektor je potrebné definovať ako nástroj robota. V strome sú jednotlivé nástroje definované pod položkou Tooling. Model efektora je možné zvoliť výberom možností UT: 1 (Eoat 1) → Eoat 1 Properties → CAD File. Polohu a natočenie modelu je možné upraviť. Ďalej je potrebné zadefinovať TCP bod. Ten je počiatočne umiestnený na zápästí robota, avšak je potrebné jeho polohu upraviť podľa použitého efektora. V okne nástroja je položka UTOOL. Práve tu je možné zadefinovať novú polohu TCP bodu pomocou označenia voľby Edit UTOOL. TCP bod môžme ľubovoľne presunúť do požadovej polohy a kliknutím na Use Current Triad Location sa poloha potvrdí. Pred umiestnením objektov, je vhodné skontrolovať dosah (pracovný priestor) robota.
Programovanie robotov - Umiestnenie objektu
Pre vytvorenie simulácie je potrebné umiestniť do bunky objekt, s ktorým budeme manipulovať. Výber objektu prebieha rovnako ako navrhovanie bunky a výber efektora. Model vyberieme pomocou možností Parts → Add Part → CAD Library. Pri objektoch uložených ako Part môžme zadefinovať rôzne vlastnosti, ako napríklad viditeľnosť počas simulácie, poloha objektu pri odoberaní a uložení a rôzne ďalšie vlastnosti vďaka ktorým simulácia pôsobí vierohodnejšie. Po kliknutí na akýkoľvek objekt umiestnený v bunke je možné pomocou okien Parts a Simulation nastaviť tieto vlastnosti. V okne Parts je možné určiť polohu a viditeľnosť počas programovania a simulácie a v okne Simulation vyberáme operácie povolené v prípade daného objektu, v našom prípade jednotlivých dopravníkov. V sekcii Tooling rovnakým spôsobom definujeme vlastnosti aj pre efektor robota. Po umiestnení a zadefinovaní vlastností a polohy objektu je navrhovanie bunky a simulácie hotové.
Programovanie robotov - Tvorba programu
Definovanie pozícií
Programovanie robotov offline prebieha pomocou virtuálnej ovládacej jednotky TeachPendant. Virtuálna ovládacia jednotka reprezentuje reálny TeachPendant využívaný pri online programovaní. Pomocou TeachPendantu definujeme jednotlivé pozície, body, interpolačnú metódu, rýchlosť pohybu, dráhu a pod. Pred samotným programovaním, je potrebné určiť, aké pozície bude potrebné v programe definovať. Tie budú totožné ako v predošlom príklade Pick and Place programu:
- 1. HOME pozícia
- 2. Pozícia pre uchopenie predmetu
- 3. Pozícia pre položenie predmetu
Pre všetky pozície je potrebné definovať presnú polohu TCP bodu. Pre určenie pozície budeme využívať nástrojový súradnicový systém. Spôsobov, ako jednotlivé pozície definovať, existuje viac. V našom prípade uložíme pozície do pamäte ako pozičné registre (PR). Do menu pre vytvorenie týchto registrov sa dostaneme nasledovne: DATA → Type → Position Reg. Vytvoríme 4 pozičné registre. Register OFFSET poslúži na vytvorenie počiatočných pozícií pre uchopenie a položenie objektu. Po vytvorení registrov je potrebné do nich uložiť jednotlivé pozície. Jedným zo spôsobov je funkcia RECORD. Vďaka tejto funkcii je možné robota manuálne presunúť do potrebnej pozície, napríklad uchopením TCP bodu a uložiť jeho aktuálnu polohu do príslušného registra pomocou kombinácie tlačidiel SHIFT + RECORD. Pokiaľ poznáme presné súradnice polohy, je možné zadefinovať polohu manuálne pomocou tlačidla POSITION. Tak môžme zadefinovať pozíciu priamo, bez potreby manipulácie s robotom. V tom prípade je však potrebné určiť vhodnú konfiguráciu (NUT,FUT). Jedinou výnimkou v tomto prípade je register OFFSET. Tento register reprezentuje posunutie danej polohy o určitú vzdialenosť v osi Z (prípadne tiež v osiach X a Y). Je potrebné teda manuálne zadať hodnotu posunutia. Offset sa používa hlavne z bezpečnostných dôvodov. Pri presúvaní do pozície pre uchopenie predmetu by mohlo dôjsť ku kolízií s daným objektom.
Definovanie súradnicových systémov a HOME pozície
Samotný program vytvoríme pomocou tlačidiel SELECT → CREATE a pomenujeme ho PICKANDPLACE. Po vytvorení je samozrejme program prázdny a neobsahuje žiadne príkazy a inštrukcie. Prvým krokom pri tvorbe programu je zadefinovanie súradnicových systémov:
- UFRAME_NUM=0: Číslo používateľského súradnicového systému. Nakoľko nevyužívame žiadny užívateľský, prípadne iný definovateľný súr. systém, hodnota tohto príkazu je 0 (základný používateľský systém).
- UTOOL_NUM=1: Číslo nástrojového súradnicového systému. V sekcii Tooling je možné zadefinovať až 10 rôznych nástrojov a súradnicových systémov.
Ďalej je potrebné zapísať do programu HOME pozíciu. Z nej bude robot vychádzať a následne sa vráti do tejto pozície po ukončení cyklu.
- J: Interpolačná metóda využítá pri pohybe. J značí, že ide o kĺbovú (Joint) interpoláciu. K dispozícií je ešte lineárna (L) a kruhová (C) interpolácia.
- PR [1:HOME]: Súradnice TCP bodu v danej pozícií. Využijeme vytvorený pozičný register (PR) s názvom HOME.
- 30%: Rýchlosť pohybu. Existuje viacero možností ako definovať rýchlosť pohybu napríklad °/s alebo mm/s. V našom prípade je rýchlosť definovaná percentuálne. Maximálna rýchlosť robota je samozrejme 100%, zadaná hodnota teda predstavuje 30% z tejto rýchlosti.
- FINE: Spôsob dosiahnuia bodu/priblížnia sa k bodu. Parameter FINE značí, že robot zadaný bod dosiahne. Je možné definovať aj parameter CNT. V tom prípade by robot zadaný bod obišel s určitým polomerom.
Uchopenie objektu
Pred samotným programovaním jednotlivých pozícií vytvoríme funkciu, ktorá bude pri simulácií reprezentovať uchopenie objektu. RoboGuide umožňuje vytvorenie "simulačného" programu. Program môžme vytvoriť výberom z ponuky v hornej časti okna RoboGuide softvéru: Teach → Add Simulation Program. Ďalej definujeme, akú operáciu program popisuje. Keďže ide o uchopenie objektu vyberieme možnosť Pickup: Inst → Pickup.
- Pickup: Výber objektu s ktorým sa bude manipulovať. Je možné zvoliť len objekty vložené ako Part.
- From: Fixture, z ktorej bude bude objekt odobratý, v našom prípade jeden z dopravníkov.
- With: Nástroj určený pre manipuláciu s objektom (efektor robota).
Vytvorený program sa objaví v strome a v pamäti TeachPendantu. Následne môžme zapísať do programu jednotlivé body pomocou tlačidla POINT.
- J PR[2:PICK] 30% FINE Offset, PR [4:OFFSET]: Pohyb pomocou kĺbovej interpolácie do bodu uloženom v PR 2, rýchlosťou 30%. Offset o vzdialeosť v PR 4.
- J PR[2:PICK] 30% FINE: Pohyb pomocou kĺbovej interpolácie do bodu uloženom v PR 2.
- CALL PICK: Spustenie ("zavolanie") simulačného programu pre uchopenie objektu.
- J PR[2:PICK] 30% FINE Offset, PR [4:OFFSET]: Pohyb do Offset pozície.
Položenie objektu
Vytvorenie simulačného programu pre položenie je totožné ako pri programe pre uchopenie.
- Drop: Výber objektu ktorý bude položený.
- From: Nástroj v ktorom je uchopený objekt.
- ON: Fixture, na ktorú bude objekt položený, v našom prípade druhý dopravník.
Séria príkazov pre položenie objektov má taktiež totožnú štrukúru.
- J PR[3:PLACE] 30% FINE Offset, PR [4:OFFSET]: Pohyb pomocou kĺbovej interpolácie do bodu uloženom v PR 3, rýchlosťou 30%. Offset o vzdialeosť v PR 4.
- J PR[3:PLACE] 30% FINE: Pohyb pomocou kĺbovej interpolácie do bodu uloženom v PR 3.
- CALL PLACE: Spustenie ("zavolanie") simulačného programu pre položenie objektu.
- J PR[3:PLACE] 30% FINE Offset, PR [4:OFFSET]: Pohyb do Offset pozície.
Návrat do HOME pozície
Po položení objektu sa robot vráti do HOME pozície a pracovný cyklus sa ukončí.
Kompletný Pick and Place program
Kompletná štruktúra programu vyzerá nasledovne: Robot vykoná všetky zadané inštrukcie a vráti sa do HOME pozície kde bude cyklus ukončený. Simulácia nášho Pick and Place programu vyzerá nasledovne: /wp-content/uploads/2020/07/Pick_and_place_2020_07_08_08_30_37_AM.mp4 Po simulácii cyklu je možné zobraziť dráhu TCP bodu. Samozrejme ide o veľmi jednoduchý program a existuje priestor pre ďalšie úpravy. Napríklad by bolo vhodné pre zefektívnenie cyklu zvýšiť rýchlosť pri pohybe medzi dopravníkmi alebo prípadne zadať dobu čakania pri uchopení/položení objektu pomocou príkazu WAIT.
Kompletný postup tvorby bunky a programovanie robotov:
/wp-content/uploads/2020/07/HandlingPRO-2020-07-22-10-32-36_Trim.mp4
OFFLINE Programovanie - Úvod do programovania robotov
Vyššie uvedený postup predstavuje veľmi zjednodušený príklad, ako môže OFFLINE programovanie úlohy robota vyzerať. Možnosť simulácie robotických buniek ponúka skvelú príležitosť oboznámiť sa z metodikou programovania, vytváraním buniek a prostredí ako aj s vlastnosťami robota a problémami ktoré môžu nastať pri plánovaní jednotlivých pohybov a dráhy robota.
Autor: Jakub Michalčík | Daily Automation