Robot Workbench/it: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
(22 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<div class="mw-translate-fuzzy">
[[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
}}
</div>

[[Image:Workbench_Robot.svg|240px|center]]
{{Caption|align=center|The FreeCAD Robot Workbench Icon}}
{{VeryImportantMessage|The FreeCAD Robot Workbench is unmaintained. Please mention on the FreeCAD forum if you have an interest in maintaining this workbench.}}

==Introduzione==

<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].
</div>


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 10: Line 22:
* 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 21: Line 35:
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 32: Line 46:


==== 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 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_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 predefiniti]]: Imposta i valori predefiniti per la velocità
* [[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 in traiettoria]]: Inserisce il punto della posizione corrente del robot in una traiettoria
* [[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 in traiettoria]]: Inserisce il punto della posizione corrente del mouse 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 ====
==== Traiettorie parametriche ====


* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac/it|Da bordo a traiettoria]]: Genera un percorso da un insieme di spigoli
* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac/it|Crea una traiettoria da un bordo]]: genera un percorso da un insieme di spigoli.
* [[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.


== 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 [[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|[[Reverse Engineering Workbench/it|Ambiente Reverse Engineering]]|[[Ship Workbench/it|Ambiente Ship]]|IconL=ReverseEngineeringWorkbench.svg|IconR=Workbench_Ship.svg
}}
</div>

<div class="mw-translate-fuzzy">
{{Robot Tools navi/it}}
{{Userdocnavi/it}}
[[Category:Workbenches/it]]
</div>


{{Userdocnavi}}
{{Docnav/it|[[Draft Module/it|Ambiente Draft - Disegno 2D]]|[[Arch Module/it|Ambiente Architettura]]}}


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

Revision as of 21:06, 13 February 2020

The FreeCAD Robot Workbench Icon

The FreeCAD Robot Workbench is unmaintained. Please mention on the FreeCAD forum if you have an interest in maintaining this workbench.

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