Robot Workbench/it: Difference between revisions
Renatorivo (talk | contribs) No edit summary |
(Updating to match new version of source page) |
||
(25 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
|||
[[Image:KukaKR16FreeCAD.jpg|right|400px]] |
|||
<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> |
|||
[[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 9: | 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 20: | 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]]: |
* [[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]]: |
* [[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]]: |
* [[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]]: |
* [[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| |
* [[Image:Robot_RestoreHomePos.png|30px]] [[Robot_RestoreHomePos/it|Sposta alla posizione iniziale]]: sposta il robot nella posizione di partenza. |
||
=== Traiettorie === |
=== Traiettorie === |
||
Line 31: | Line 46: | ||
==== Traiettorie non parametriche ==== |
==== Traiettorie non parametriche ==== |
||
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory/it|Crea traiettoria]]: |
* [[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' |
* [[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]]: |
* [[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 |
* [[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 |
* [[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|Crea una traiettoria |
* [[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]]: |
* [[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]]: |
* [[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"> |
|||
{{Docnav/it|[[Draft Module/it|Ambiente Draft - Disegno 2D]]|[[Arch Module/it|Ambiente Architettura]]}} |
|||
{{Robot Tools navi/it}} |
|||
{{Userdocnavi/it}} |
|||
[[Category:Workbenches/it]] |
|||
</div> |
|||
{{Userdocnavi}} |
|||
[[Category:User Documentation/it]] |
|||
[[Category:Workbenches]] |
|||
<languages/> |
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
- 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.
- Sposta alla 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 una 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 di velocità predefiniti: imposta i valori predefiniti per la velocità.
- Inserisci un punto nella traiettoria: inserisce il punto della posizione corrente del robot in una traiettoria.
- Inserisci un punto preselezionato nella traiettoria: inserisce il punto della posizione corrente del mouse in una traiettoria.
Traiettorie parametriche
- Crea una traiettoria da un bordo: 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
Vedere l'esempio Esempio di API Robot per una descrizione delle funzioni utilizzate per modellare gli spostamenti del robot.
Tutorials
Robot
- Trajectories, non parametric: Create a trajectory, Set default orientation, Set default values, Insert waypoint, Insert waypoint (mouse)
- Trajectories, parametric: Create a trajectory from edges, Dress-up trajectory, Trajectory compound
User documentation
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Start, Surface, TechDraw, Test Framework, Web
- Hubs: User hub, Power users hub, Developer hub
User documentation
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Start, Surface, TechDraw, Test Framework, Web
- Hubs: User hub, Power users hub, Developer hub