#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. programovanie robotov Fanuc Off-line programovanie 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. programovanie robotov Fanuc Off-line programovanie

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. programovanie robotov Fanuc Off-line programovanie 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ť. programovanie robotov Fanuc Off-line programovanie Ď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. programovanie robotov Fanuc Off-line programovanie Po umiestnení a zadefinovaní vlastností a polohy objektu je navrhovanie bunky a simulácie hotové. programovanie robotov Fanuc Off-line programovanie

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). programovanie robotov Fanuc Off-line programovanie   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.
Všetky body v programe majú totožnú syntax.

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: programovanie robotov Fanuc Off-line programovanie 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. programovanie robotov Fanuc Off-line programovanie   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