Strumenti Utente

Strumenti Sito


robotica

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
robotica [2024/05/05 21:11] – [Lezione 5] adminrobotica [2024/05/14 21:16] (versione attuale) – [Impostazioni e particolarità] admin
Linea 165: Linea 165:
  
 In genere si muove il robot con movimenti moveJ tranne quando si devono fare lavorazioni precise. In questo caso ci si avvicina al punto di lavoro definendo un target su punto di approccio, da raggiungere con movimenti moveJ, per poi procedere con movimenti moveL solo dove è necessario; per allontanarsi si definisce un target su un punto di svincolo e da lì si procede con movimenti moveJ. In genere si muove il robot con movimenti moveJ tranne quando si devono fare lavorazioni precise. In questo caso ci si avvicina al punto di lavoro definendo un target su punto di approccio, da raggiungere con movimenti moveJ, per poi procedere con movimenti moveL solo dove è necessario; per allontanarsi si definisce un target su un punto di svincolo e da lì si procede con movimenti moveJ.
 +
 +===== RobotStudio =====
 +
 +Nell'anno scolastico 2023-2024 abbiamo usato RobotStudio2023. Questa versione ha un'interfaccia grafica diversa rispetto a quelle precedenti a cui fanno riferimento i libri di testo (ad esempio la 2020) ma i comandi e le funzioni sono più o meno quelli. Questo software non è esente da difetti:
 +  * specialmente nelle versioni più recenti è piuttosto impegnativo come risorse
 +  * i crash non sono frequenti ma capitano, meglio salvare spesso
 +  * è tradotto male in italiano (Project è tradotto proietta invece che progetto ma ci sono tanti altri esempi)
 +  * il calcolo dei movimenti fallisce troppo spesso, o fallisce in maniera imprevedibile, specialmente per i robot a sette assi come il nostro 
 +==== Installazione e licenze ====
 +
 +RobotStudio si può utilizzare gratuitamente per 30 giorni poi richiede una licenza per funzionare. A scuola è installato un server che dispone di 100 licenze concesse a titolo gratuito da ABB ma da rinnovare ogni anno. RobotStudio va configurato indicando l'indirizzo IP del server a cui richiedere una licenza che viene impegnata solo mentre lo si usa e poi restituita.
 +
 +Oltre ad installare RobotStudio occorre anche installare questi Add-In:
 +  * RobotWare 7, OS del controllore del robot IRB14050
 +  * SmartGripper, per la gestione della pinza 
 +  * Wizard Easy Programming, per la programmazione a blocchi su Flexpendant
 +
 +RobotWare 7 a sua volta propone l'installazione del software Virtual Flexpendant, indipendente da RobotStudio, che simula l'unità di programmazione esterna Flexpendant. Per simulare correttamente la pinza conviene installare anche il componente [[https://forums.robotstudio.com/discussion/12138/recent-update-march-2021-download-virtual-smartgripper-2-3-01?utm_source=community-search&utm_medium=organic-search&utm_term=virtual+smartgripper|Virtual SmartGripper]].
 +
 +==== Impostazioni e particolarità ====
 +
 +Ci sono una serie di impostazioni e procedure non bene documentate che è meglio utilizzare. 
 +
 +=== SmartGripper ===
 +
 +Per cominciare, se si vuole replicare la stazione con il robot vero e proprio serve:
 +  * creare una stazione
 +  * importare il robot IRB14050
 +  * aggiungere un controller virtuale (dal profilo)
 +  * aggiungere l'end-effector Virtual SmartGripper e collegarlo al robot
 +  * aggiungere un secondo end-effector SmartGripper (non virtual), collegarlo al robot e poi cancellarlo
 +
 +L'ultimo passaggio serve solo a creare il sistema di coordinate //Servo// posto nel punto dove le dita della pinza afferrano un oggetto. Questo //tool// indispensabile, che manca nel componente Virtual SmartGripper (forse per una dimenticanza), viene creato e resta anche dopo aver eliminato lo SmartGripper.
 +
 +=== Impostazioni del controllore ===
 +
 +Si può usare RobotStudio anche senza modificare le opzioni predefinite ma sarebbe meglio:
 +  * modificare il parametro //Arm Angle Reference//((si veda il Manuale tecnico di riferimento Parametri di sistema RW 7)) da ''WorldY'' a ''Axis1'' (dalla configurazione del controllore nella sezione Motion alla voce Robot) che serve a evitare le singolarità quando il robot è montato a pavimento((il nostro robot nasce come braccio destro del robot YuMi Dual Arm IRB14000))
 +  * spuntare le opzioni //Collision Detection// e //Multitasking// del controller per avere a disposizione i blocchi dello SmartGripper nell'ambiente di programmazione Wizard; il modo più semplice per farlo è spuntare //Opzioni di personalizzazione// quando si crea il controller
 +
 +Altre opzioni che risultano attivate nel controller reale e che non sono presenti di default: 
 +  * Absolute Accuracy
 +  * RW Add-In Prepared
 +  * Collsion Avoidance
 +  * Integrated Vision Interface
 +  * Path Recovery
 +  * RobotStudio Connect
 +  * Soft Move
 +  * World Zone
 +  * Profinet Device
 +
 +
 +=== Nel software ===
 +
 +Quando il calcolo dei movimenti genera il warning //Errore d'angolo// la simulazione si interrompe. Questo situazione capita molto di frequente ed è abbastanza imprevedibile. Per trascurare il warning inserire nel codice RAPID l'istruzione:
 +
 +    CornerPathWarning FALSE;
 +    
 +In simulazione non è richiesto ma la pinza del robot richiede una calibrazione ad ogni nuovo avvio del controller. Per farla in automatico inserire nel condice RAPID le istruzioni:
 +
 +    g_JogIn; 
 +    WaitTime 1;
 +    g_Calibrate;
 +
 +Che chiudono la pinza e dopo un secondo effettuano la calibrazione.
 ===== Lezioni in aula con la 5C ===== ===== Lezioni in aula con la 5C =====
 +
 +
  
 ==== Lezione 1 ==== ==== Lezione 1 ====
Linea 207: Linea 274:
  
   * interfaccia della Flexpendant:    * interfaccia della Flexpendant: 
-    * pagina principale e applicazioni, chiudere le applicazioni+    * pagina principale e applicazioni((descrizione nella sezione 2.2.3 del Manuale Operatore Omnicore)), chiudere le applicazioni
     * tasti fisici, vista QuickSet      * tasti fisici, vista QuickSet 
     * control panel: auto/manual, motori on/off, velocità, reset programma, avvio/arresto/passo-passo     * control panel: auto/manual, motori on/off, velocità, reset programma, avvio/arresto/passo-passo
Linea 214: Linea 281:
     * jog: vista, informazioni sulla posizione, lock dei movimenti, sistema di coordinate((sezione 5.2 del Manuale Operatore Omnicore oppure sezione 2.1 del manuale Panoramica del linguaggio RAPID)), tipo di movimento, tool e workobject     * jog: vista, informazioni sulla posizione, lock dei movimenti, sistema di coordinate((sezione 5.2 del Manuale Operatore Omnicore oppure sezione 2.1 del manuale Panoramica del linguaggio RAPID)), tipo di movimento, tool e workobject
   * controllo del robot dalla Flexpendant virtuale   * controllo del robot dalla Flexpendant virtuale
-  * generalità sulla movimentazione del robot: percorsi, tipo di movimento, singolarità +  * generalità sulla movimentazione del robot: percorsi, tipo di movimento, singolarità((sezione 2.7 del manuale Panoramica del linguaggio RAPID)) 
-  * istruzioni di movimento: tool, moveJ, moveL, velocità, zone+  * istruzioni di movimento: target (destinazione), tool, moveJ, moveL, velocità, zona((sezione 2.2.3 del manuale Panoramica del linguaggio RAPID)) 
 + 
 +==== Lezione 6 ==== 
 + 
 +  * sincronizzazione tra ambiente grafico e controller (e viceversa)
   * programmazione grafica con l'applicazione Wizard su Flexpendant usando un interfaccia grafica a blocchi simile a [[https://scratch.mit.edu/|Scratch]]   * programmazione grafica con l'applicazione Wizard su Flexpendant usando un interfaccia grafica a blocchi simile a [[https://scratch.mit.edu/|Scratch]]
     * seguiamo il tutorial della Flexpendant     * seguiamo il tutorial della Flexpendant
-    * passiamo alla applicazione code: il programma è tradotto in RAPID (sia su Flexpendant che su RobotStudio)+    * passiamo alla applicazione code((sezione 6.3 del Manuale Operatore Omnicore)): il programma è tradotto in RAPID (sia su Flexpendant che su RobotStudio)
     * collegamento al compressore e prova con la pinza a vuoto      * collegamento al compressore e prova con la pinza a vuoto 
 +
 +==== Lezione 7 ====
 +
 +Simulazione:
 +  * si possono eseguire i singoli movimenti (o i singoli percorsi) dall'ambiente grafico senza lanciare le simulazione
 +  * viene simulato il RAPID -> occorre sincronizzare
 +  * se non è presente una procedura (o percorso) che si chiama main bisogna definire un punto di ingresso per la simulazione
 +  * per tornare a un punto di partenza basterà selezionare un target e spostare il robot (dalla scheda profilo)
 +  * è utile memorizzare uno stato iniziale della simulazione a cui tornare prima di lanciarla
 +  * si può attivare la traccia TCP per vedere il percorso effettivo
 +  * si può registrare e esportare la simulazione come video
 +
 +Concetti sul RAPID:
 +  * non è case sensitive
 +  * segnaposto (ad es. <SMP>)
 +  * commenti e operatori
 +  * moduli e procedure, modulo main
 +  * programma = cartella con moduli (.mod) e descrizione (.pgf)
 +  * procedure, funzioni (restituiscono un valore) e routine trap (interrupt)
 +  * variabili persistenti
 +  * arresto del programma
 +  * help online: manuale operatore RobotStudio e manuale completo del RAPID (reference istruzioni)
 +  * le istruzioni del gripper sono documentate nel [[https://library.abb.com/d/3HAC064626-007|manuale del gripper]]
 +  * Intellisense e TAB
 +
 +Esercizio:
 +  * spacchettare pack-and-go (robot+controller+tooldata+procedure pinza)
 +  * creare due workobject
 +  * selezione tool e workobject
 +  * selezionare MoveAbsJ nella barra di stato
 +  * creare un JointTarget Sollevato
 +  * trascinare nel main per insegnare l'istruzione
 +  * provare il movimento (sposta Home poi Sposta lungo il percorso)
 +  * imposta UCS (user coordinate system)
 +  * creare un solido e duplicarlo (5 copie)
 +  * moveL v100 fine
 +  * creare target (selezione e snap)
 +  * moveJ v500 z10, spostamento lineare e posizione approccio
 +  * chiamata a procedure apri pinza, chiudi pinza
 +  * chiamata a istruzione waittime
 +  * punto reset simulazione
 +  * sincronizzazione e simulazione
 +  * istruzioni moveJ e moveL
 +  * uso di Offs
 +  * simulazione
 +  * esportazione video
 +  * salvataggio e trasferimento al robot
  
 ===== Risorse e documentazione ===== ===== Risorse e documentazione =====
robotica.1714943489.txt.gz · Ultima modifica: 2024/05/05 21:11 da admin