Robot Workbench/it: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
(35 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
[[Image:KukaKR16FreeCAD.jpg|right|400px]]
{{docnav/it|[[Reverse Engineering Workbench/it|Ambiente Reverse Engineering]]|[[Ship Workbench/it|Ambiente Ship]]|IconL=ReverseEngineeringWorkbench.svg|IconR=Workbench_Ship.svg
}}

[[Image:Workbench_Robot.svg|64px]]

==Introduzione==

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:
* Impostare un ambiente di simulazione con un robot e dei pezzi in lavorazione
* Impostare un ambiente di simulazione con un robot e dei pezzi in lavorazione
Line 9: Line 16:
* Esportare la traiettoria in un file di programma robot
* Esportare la traiettoria in un file di programma robot


Per iniziare, provare il [[Robot tutorial/it|tutorial Robot]] e consultare l'interfaccia di programmazione nel file di esempio [https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py RobotExample.py].
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]].
{{TOCright}}
[[Image:Robot_Workbench_example.jpg|600px]]


== Strumenti ==
== Strumenti ==
Line 20: Line 29:
Gli strumenti per creare e gestire i robot a 6 assi
Gli strumenti per creare e gestire i robot a 6 assi


* [[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.
* [[Image:Robot_Export.png|30px]] [[Robot_Export/it|Esporta una traiettoria]]: Esporta un file di programmazione robotica
* [[Image:Robot_Export.png|30px]] [[Robot_Export/it|Esporta una traiettoria]]: esporta un file di programmazione robotica.
* [[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|Sposta alla posizione iniziale]]: sposta il robot nella posizione di partenza.


=== Traiettorie ===
=== Traiettorie ===
Line 30: Line 39:
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.


=== Traiettorie ===
==== Traiettorie non parametriche ====
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory/it|Crea una traiettoria]]: inserisce un nuovo oggetto traiettoria vuoto nella scena.
* [[Image:Robot_SetDefaultOrientation.png|30px]] [[Robot_SetDefaultOrientation/it|Imposta l'orientamento predefinito]]: imposta il modo in cui vengono creati i punti di orientamento di default.
* [[Image:Robot_SetDefaultValues.png|30px]] [[Robot_SetDefaultValues/it|Imposta i valori di velocità predefiniti]]: imposta i valori predefiniti per la velocità.
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint/it|Inserisci un punto nella traiettoria]]: inserisce il punto della posizione corrente del robot in una traiettoria.
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre/it|Inserisci un punto preselezionato nella traiettoria]]: inserisce il punto della posizione corrente del mouse in una traiettoria.


==== Traiettorie parametriche ====
Strumenti per creare e modificare i percorsi. Ci sono due tipi di strumenti, quelli parametrici e quelli non parametrici.


* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac/it|Crea una traiettoria da un bordo]]: genera un percorso da un insieme di spigoli.
==== Strumenti parametrici ====
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp/it|Vesti una traiettoria]]: permette di modificare una o più proprietà di un percorso.

* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac/it|Crea una traiettoria dagli spigoli]]: Genera un percorso da un insieme di spigoli
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound/it|Raggruppa le traiettorie]]: raggruppa alcune traiettorie in un unico 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


== Script ==
== Script ==


Vedere l'esempio [[Robot API example/it|Esempio di API Robot]] per una descrizione delle funzioni utilizzate per modellare gli spostamenti del robot.
Questa sezione è ricavata da: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py
Volendo, è possibile utilizzare la fonte originale.


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 [[6-Axis Robot/it|Robot a 6 assi]] e [[VRML Preparation for Robot Simulation/it|Preparazione del file VRML per la simulazione del robot]] oppure [[6-Axis Robot]] e [[VRML Preparation for Robot Simulation]])
{{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 ==
* [[6-Axis_Robot/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]]


{{docnav/it|[[Reverse Engineering Workbench/it|Ambiente Reverse Engineering]]|[[Ship Workbench/it|Ambiente Ship]]|IconL=ReverseEngineeringWorkbench.svg|IconR=Workbench_Ship.svg
}}


{{Robot Tools navi/it}}
{{docnav|FEM Module|Standard Menu}}
{{Userdocnavi/it}}

[[Category:User Documentation/it]]
[[Category:Workbenches/it]]


<languages/>

Revision as of 22:11, 27 November 2019

Introduzione

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

Per iniziare, provare il tutorial Robot e consultare l'interfaccia di programmazione nel file di esempio RobotExample.py.

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

Traiettorie

Strumenti per creare e modificare i percorsi. Ci sono due tipi di strumenti, quelli parametrici e quelli non parametrici.

Traiettorie non parametriche

Traiettorie parametriche

Script

Vedere l'esempio Esempio di API Robot per una descrizione delle funzioni utilizzate per modellare gli spostamenti del robot.

Tutorials