Robot Workbench/it: Difference between revisions
(Updating to match new version of source page) |
(Updating to match new version of source page) |
||
Line 1: | Line 1: | ||
<languages/> |
<languages/> |
||
[[Image: |
[[Image:Workbench_Robot.svg|64px]] |
||
== Introduction == |
|||
<div class="mw-translate-fuzzy"> |
|||
Il modulo robot è uno strumento per simulare un [[Robot_6-Axis/it|Robot a 6 assi]] di tipo industriale, come per esempio i robot [http://kuka.com/ Kuka]. |
Il modulo robot è uno strumento per simulare un [[Robot_6-Axis/it|Robot a 6 assi]] di tipo industriale, come per esempio i robot [http://kuka.com/ Kuka]. |
||
È possibile eseguire le seguenti operazioni: |
È possibile eseguire le seguenti operazioni: |
||
Line 9: | Line 12: | ||
* Simulare il movimento del robot e il raggio d'azione |
* Simulare il movimento del robot e il raggio d'azione |
||
* Esportare la traiettoria in un file di programma robot |
* Esportare la traiettoria in un file di programma robot |
||
</div> |
|||
You can do the following tasks: |
|||
* Set up a simulation environment with a robot and work pieces. |
|||
* Create and fill up movement trajectories. |
|||
* Decompose features of a CAD part to a trajectory. |
|||
* Simulate the robot movement and reaching distance. |
|||
* Export the trajectory to a robot program file. |
|||
<div class="mw-translate-fuzzy"> |
|||
Alcuni esempi sono disponibili in |
Alcuni esempi sono disponibili in |
||
[https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py Example files] oppure nel [[Robot tutorial/it|tutorial Robot]]. |
[https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py Example files] oppure nel [[Robot tutorial/it|tutorial Robot]]. |
||
</div> |
|||
{{TOCright}} |
|||
[[Image:Robot_Workbench_example.jpg|600px]] |
|||
== Strumenti == |
== Strumenti == |
||
Line 21: | Line 37: | ||
Gli strumenti per creare e gestire i robot a 6 assi |
Gli strumenti per creare e gestire i robot a 6 assi |
||
<div class="mw-translate-fuzzy"> |
|||
* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot/it|Inserisci un robot]]: Inserisce un nuovo robot nella scena |
* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot/it|Inserisci un robot]]: Inserisce un nuovo robot nella scena |
||
* [[Image:Robot_Simulate.png|30px]] [[Robot_Simulate/it|Simula una traiettoria]]: Apre la finestra di simulazione e permette di simulare un percorso |
* [[Image:Robot_Simulate.png|30px]] [[Robot_Simulate/it|Simula una traiettoria]]: Apre la finestra di simulazione e permette di simulare un percorso |
||
Line 26: | Line 43: | ||
* [[Image:Robot_SetHomePos.png|30px]] [[Robot_SetHomePos/it|Imposta la posizione iniziale]]: Imposta la posizione iniziale di un robot |
* [[Image:Robot_SetHomePos.png|30px]] [[Robot_SetHomePos/it|Imposta la posizione iniziale]]: Imposta la posizione iniziale di un robot |
||
* [[Image:Robot_RestoreHomePos.png|30px]] [[Robot_RestoreHomePos/it|Ripristina la posizione iniziale]]: Sposta il robot nella posizione di partenza |
* [[Image:Robot_RestoreHomePos.png|30px]] [[Robot_RestoreHomePos/it|Ripristina la posizione iniziale]]: Sposta il robot nella posizione di partenza |
||
</div> |
|||
=== Traiettorie === |
=== Traiettorie === |
||
Line 31: | Line 49: | ||
Strumenti per creare e modificare i percorsi. Ci sono due tipi di strumenti, quelli parametrici e quelli non parametrici. |
Strumenti per creare e modificare i percorsi. Ci sono due tipi di strumenti, quelli parametrici e quelli non parametrici. |
||
<div class="mw-translate-fuzzy"> |
|||
==== Traiettorie non parametriche ==== |
==== Traiettorie non parametriche ==== |
||
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory/it|Crea traiettoria]]: Inserisce un nuovo oggetto traiettoria vuoto nella scena |
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory/it|Crea traiettoria]]: Inserisce un nuovo oggetto traiettoria vuoto nella scena |
||
Line 37: | Line 56: | ||
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint/it|Inserisci in traiettoria]]: Inserisce il punto della posizione corrente del robot in una traiettoria |
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint/it|Inserisci in traiettoria]]: Inserisce il punto della posizione corrente del robot in una traiettoria |
||
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre/it|Inserisci in traiettoria]]: Inserisce il punto della posizione corrente del mouse in una traiettoria |
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre/it|Inserisci in traiettoria]]: Inserisce il punto della posizione corrente del mouse in una traiettoria |
||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
==== Traiettorie parametriche ==== |
==== Traiettorie parametriche ==== |
||
Line 43: | Line 64: | ||
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp/it|Vesti una traiettoria]]: Permette di modificare una o più proprietà di un percorso |
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp/it|Vesti una traiettoria]]: Permette di modificare una o più proprietà di un percorso |
||
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound/it|Raggruppa le traiettorie]]: Raggruppa alcune traiettorie in un unico percorso |
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound/it|Raggruppa le traiettorie]]: Raggruppa alcune traiettorie in un unico percorso |
||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
== Script == |
== Script == |
||
Questa sezione è ricavata da: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py |
Questa sezione è ricavata da: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py |
||
Volendo, è possibile utilizzare la fonte originale. |
Volendo, è possibile utilizzare la fonte originale. |
||
</div> |
|||
See the [[Robot API example]] for a description of the functions used to model the robot displacements. |
|||
Esempio di come utilizzare la classe di robot di base Robot6Axis che rappresenta un robot industriale a 6-assi. Il modulo Robot dipende solo dal modulo Parte e non da altri moduli di FreeCAD. |
|||
Funziona soprattutto con basi di dati di tipo Placement, Vector e Matrix. Quindi serve solo: |
|||
{{Code|code= |
|||
from Robot import * |
|||
from Part import * |
|||
from FreeCAD import * |
|||
}} |
|||
=== Elementi base di Robot === |
|||
Creare il robot. Se non viene specificata una cinematica diversa, viene utilizzato un robot 560 Puma |
|||
{{Code|code= |
|||
rob = Robot6Axis() |
|||
print rob |
|||
}} |
|||
accedere all'asse e al TCP (Punto centro di lavorazione). Gli assi vanno da 1 a 6 e sono in grado di: |
|||
{{Code|code= |
|||
Start = rob.Tcp |
|||
print Start |
|||
print rob.Axis1 |
|||
}} |
|||
spostare il primo asse del robot: |
|||
{{Code|code= |
|||
rob.Axis1 = 5.0 |
|||
}} |
|||
il Tcp è cambiato (cinematica in avanzamento) |
|||
{{Code|code= |
|||
print rob.Tcp |
|||
}} |
|||
muovere il robot nella posizione di partenza (cinematica in ritorno): |
|||
{{Code|code= |
|||
rob.Tcp = Start |
|||
print rob.Axis1 |
|||
}} |
|||
stessa cosa per l'asse 2: |
|||
{{Code|code= |
|||
rob.Axis2 = 5.0 |
|||
print rob.Tcp |
|||
rob.Tcp = Start |
|||
print rob.Axis2 |
|||
}} |
|||
Punti del percorso: |
|||
{{Code|code= |
|||
w = Waypoint(Placement(),name="Pt",type="LIN") |
|||
print w.Name,w.Type,w.Pos,w.Cont,w.Velocity,w.Base,w.Tool |
|||
}} |
|||
generarne altri. La traiettoria trova sempre automaticamente un nome univoco per i punti del percorso |
|||
{{Code|code= |
|||
l = [w] |
|||
for i in range(5): |
|||
l.append(Waypoint(Placement(Vector(0,0,i*100),Vector(1,0,0),0),"LIN","Pt")) |
|||
}} |
|||
creare un percorso |
|||
{{Code|code= |
|||
t = Trajectory(l) |
|||
print t |
|||
for i in range(7): |
|||
t.insertWaypoints(Waypoint(Placement(Vector(0,0,i*100+500),Vector(1,0,0),0),"LIN","Pt")) |
|||
}} |
|||
visualizzare un elenco di tutti i punti del percorso: |
|||
{{Code|code= |
|||
print t.Waypoints |
|||
del rob,Start,t,l,w |
|||
}} |
|||
=== Lavorare con gli oggetti del documento === |
|||
Lavorare con oggetti documento del robot: |
|||
innanzitutto creare un robot nel documento attivo |
|||
{{Code|code= |
|||
if(App.activeDocument() == None):App.newDocument() |
|||
App.activeDocument().addObject("Robot::RobotObject","Robot") |
|||
}} |
|||
Definire la rappresentazione visiva e definire la cinematica, per dettagli su questo aspetto vedere [[Robot_6-Axis/it|Robot a 6 assi]] e [[VRML Preparation for Robot Simulation/it|Preparazione del file VRML per la simulazione del robot]] |
|||
{{Code|code= |
|||
App.activeDocument().Robot.RobotVrmlFile = App.getResourceDir()+"Mod/Robot/Lib/Kuka/kr500_1.wrl" |
|||
App.activeDocument().Robot.RobotKinematicFile = App.getResourceDir()+"Mod/Robot/Lib/Kuka/kr500_1.csv" |
|||
}} |
|||
posizione iniziale dell'asse (solo quelli che differiscono da 0) |
|||
{{Code|code= |
|||
App.activeDocument().Robot.Axis2 = -90 |
|||
App.activeDocument().Robot.Axis3 = 90 |
|||
}} |
|||
richiamare la posizione Tcp |
|||
{{Code|code= |
|||
pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp |
|||
}} |
|||
muovere il robot |
|||
{{Code|code= |
|||
pos.move(App.Vector(-10,0,0)) |
|||
FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp = pos |
|||
}} |
|||
creare un oggetto Traiettoria vuota nel documento attivo |
|||
{{Code|code= |
|||
App.activeDocument().addObject("Robot::TrajectoryObject","Trajectory") |
|||
}} |
|||
ottenere la traiettoria |
|||
{{Code|code= |
|||
t = App.activeDocument().Trajectory.Trajectory |
|||
}} |
|||
aggiungere la posizione TCP attuale del robot alla traiettoria |
|||
{{Code|code= |
|||
StartTcp = App.activeDocument().Robot.Tcp |
|||
t.insertWaypoints(StartTcp) |
|||
App.activeDocument().Trajectory.Trajectory = t |
|||
print App.activeDocument().Trajectory.Trajectory |
|||
}} |
|||
inserire altri punti del percorso e, alla fine, nuovamente il punto iniziale: |
|||
{{Code|code= |
|||
for i in range(7): |
|||
t.insertWaypoints(Waypoint(Placement(Vector(0,1000,i*100+500),Vector(1,0,0),i),"LIN","Pt")) |
|||
t.insertWaypoints(StartTcp) # end point of the trajectory |
|||
App.activeDocument().Trajectory.Trajectory = t |
|||
print App.activeDocument().Trajectory.Trajectory |
|||
}} |
|||
=== Simulazione === |
|||
Da fare..... |
|||
=== Esportare la traiettoria === |
|||
La traiettoria viene esportata da Python. Ciò significa che per ogni sezione di controllo c'è un modulo post-processore Python. |
|||
Quì è descritto in dettaglio il post-processore Kuka |
|||
{{Code|code= |
|||
from KukaExporter import ExportCompactSub |
|||
ExportCompactSub(App.activeDocument().Robot,App.activeDocument().Trajectory,'D:/Temp/TestOut.src') |
|||
}} |
|||
e questo è il modo in cui si esegue: |
|||
{{Code|code= |
|||
for w in App.activeDocument().Trajectory.Trajectory.Waypoints: |
|||
(A,B,C) = (w.Pos.Rotation.toEuler()) |
|||
print ("LIN {X %.3f,Y %.3f,Z %.3f,A %.3f,B %.3f,C %.3f} ; %s"%(w.Pos.Base.x,w.Pos.Base.y,w.Pos.Base.z,A,B,C,w.Name)) |
|||
}} |
|||
== Tutorials == |
== Tutorials == |
||
* [[Robot_6-Axis/it|6-Axis_Robot]] |
* [[Robot_6-Axis/it|6-Axis_Robot]] |
||
* [[VRML Preparation for Robot Simulation/it|VRML Preparation for Robot Simulation]] |
* [[VRML Preparation for Robot Simulation/it|VRML Preparation for Robot Simulation]] |
||
<div class="mw-translate-fuzzy"> |
|||
{{Docnav/it|[[Draft Module/it|Ambiente Draft - Disegno 2D]]|[[Arch Module/it|Ambiente Architettura]]}} |
{{Docnav/it|[[Draft Module/it|Ambiente Draft - Disegno 2D]]|[[Arch Module/it|Ambiente Architettura]]}} |
||
</div> |
|||
[[Category:User Documentation/it]] |
Revision as of 21:18, 15 January 2019
Introduction
Il modulo robot è uno strumento per simulare un Robot a 6 assi di tipo industriale, come per esempio i robot Kuka. È possibile eseguire le seguenti operazioni:
- Impostare un ambiente di simulazione con un robot e dei pezzi in lavorazione
- Creare e compilare traiettorie
- Scomporre le componenti di una Parte CAD in una traiettoria
- Simulare il movimento del robot e il raggio d'azione
- Esportare la traiettoria in un file di programma robot
You can do the following tasks:
- Set up a simulation environment with a robot and work pieces.
- Create and fill up movement trajectories.
- Decompose features of a CAD part to a trajectory.
- Simulate the robot movement and reaching distance.
- Export the trajectory to a robot program file.
Alcuni esempi sono disponibili in Example files oppure nel tutorial Robot.
Strumenti
Ecco i principali comandi utilizzabili per creare il set-up di un robot.
Robot
Gli strumenti per creare e gestire i robot a 6 assi
- Inserisci un robot: Inserisce un nuovo robot nella scena
- Simula una traiettoria: Apre la finestra di simulazione e permette di simulare un percorso
- Esporta una traiettoria: Esporta un file di programmazione robotica
- Imposta la posizione iniziale: Imposta la posizione iniziale di un robot
- Ripristina la posizione iniziale: Sposta il robot nella posizione di partenza
Traiettorie
Strumenti per creare e modificare i percorsi. Ci sono due tipi di strumenti, quelli parametrici e quelli non parametrici.
Traiettorie non parametriche
- Crea traiettoria: Inserisce un nuovo oggetto traiettoria vuoto nella scena
- Imposta l'orientamento predefinito: Imposta il modo in cui vengono creati i punti di orientamento di default
- Imposta i valori predefiniti: Imposta i valori predefiniti per la velocità
- Inserisci in traiettoria: Inserisce il punto della posizione corrente del robot in una traiettoria
- Inserisci in traiettoria: Inserisce il punto della posizione corrente del mouse in una traiettoria
Traiettorie parametriche
- Da bordo a traiettoria: Genera un percorso da un insieme di spigoli
- Vesti una traiettoria: Permette di modificare una o più proprietà di un percorso
- Raggruppa le traiettorie: Raggruppa alcune traiettorie in un unico percorso
Script
Questa sezione è ricavata da: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py Volendo, è possibile utilizzare la fonte originale.
See the Robot API example for a description of the functions used to model the robot displacements.