Robot Workbench/it: Difference between revisions
Renatorivo (talk | contribs) No edit summary |
(Updating to match new version of source page) |
||
(47 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]] |
|||
|[[Sketcher Workbench/it|Ambiente Sketcher]] |
|||
|IconL=Workbench_Reverse_Engineering.svg |
|||
|IconR=Workbench_Sketcher.svg |
|||
}} |
|||
</div> |
|||
{{VeryImportantMessage|L'ambiente Robot non è mantenuto. Se avete esperienza con l'argomento e se siete interessati a mantenerlo, vi preghiamo di dichiarare la vostra intenzione nella sezione degli sviluppatori del [https://forum.freecadweb.org/index.php forum di FreeCAD]. |
|||
Il motivo per cui questo ambiente è ancora nel codice sorgente principale è perché esso è programmato in C++. Se fosse programmato in Python, allora potrebbe essere creato un [[external_workbenches/it|ambiente esterno]] e potrebbe essere spostato in un repository separato. |
|||
}} |
|||
==Introduzione== |
|||
[[Image:Workbench_Robot.svg|thumb|128px|L'icona dell'ambiente Robot]] |
|||
<div class="mw-translate-fuzzy"> |
|||
L'ambiente [[Image:Workbench_Robot.svg|24px]] 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 30: | ||
* Esportare la traiettoria in un file di programma robot |
* Esportare la traiettoria in un file di programma robot |
||
<div class="mw-translate-fuzzy"> |
|||
Alcuni esempi sono disponibili in |
|||
[https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py |
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]. |
||
</div> |
|||
{{TOCright}} |
|||
[[Image:Robot_Workbench_example.jpg|500px]] |
|||
== Strumenti == |
== Strumenti == |
||
Line 20: | Line 45: | ||
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. |
* [[Image:Robot_CreateRobot.svg|30px]] [[Robot_CreateRobot/it|Inserisci un robot]]: inserisce un nuovo robot nella scena. |
||
* [[Image:Robot_Simulate. |
* [[Image:Robot_Simulate.svg|30px]] [[Robot_Simulate/it|Simula una traiettoria]]: apre la finestra di simulazione e permette di simulare un percorso. |
||
* [[Image:Robot_Export. |
* [[Image:Robot_Export.svg|30px]] [[Robot_Export/it|Esporta una traiettoria]]: esporta un file di programmazione robotica. |
||
* [[Image:Robot_SetHomePos. |
* [[Image:Robot_SetHomePos.svg|30px]] [[Robot_SetHomePos/it|Imposta la posizione iniziale]]: imposta la posizione iniziale di un robot. |
||
* [[Image:Robot_RestoreHomePos. |
* [[Image:Robot_RestoreHomePos.svg|30px]] [[Robot_RestoreHomePos/it|Sposta alla posizione iniziale]]: sposta il robot nella posizione di partenza. |
||
=== |
=== Traiettorie === |
||
Tools to create and manipulate trajectories. There are two kinds, the parametric and non parametric ones. |
|||
Strumenti per creare e modificare i percorsi. Ci sono due tipi di strumenti, quelli parametrici e quelli non parametrici. |
|||
==== non parametric trajectories ==== |
|||
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory|Create a trajectory]]: Inserts a new empty trajectory-object into the scene |
|||
* [[Image:Robot_SetDefaultOrientation.png|30px]] [[Robot_SetDefaultOrientation|Set the default orientation]]: Set the orientation way-points gets created by default |
|||
* [[Image:Robot_SetDefaultValues.png|30px]] [[Robot_SetDefaultValues|Set the default speed parameter]]: Set the default values for way-point creation |
|||
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint|Insert a waypoint]]: Insert a way-point from the current robot position into a trajectory |
|||
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre|Insert a waypoint]]: Insert a way-point from the current mouse position into a trajectory |
|||
==== |
==== Traiettorie non parametriche ==== |
||
* [[Image:Robot_CreateTrajectory.svg|30px]] [[Robot_CreateTrajectory/it|Crea una traiettoria]]: inserisce un nuovo oggetto traiettoria vuoto nella scena. |
|||
* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac|Create a trajectory out of edges]]: Insert a new object which decompose edges to a trajectory |
|||
* [[Image:Robot_SetDefaultOrientation.svg|30px]] [[Robot_SetDefaultOrientation/it|Imposta l'orientamento predefinito]]: imposta il modo in cui vengono creati i punti di orientamento di default. |
|||
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp|Dress-up a trajectory]]: Lets you override one or more properties of a trajectory |
|||
* [[Image:Robot_SetDefaultValues.svg|30px]] [[Robot_SetDefaultValues/it|Imposta i valori di velocità predefiniti]]: imposta i valori predefiniti per la velocità. |
|||
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound|Trajectory compound]]: Create a compound out of some single trajectories |
|||
* [[Image:Robot_InsertWaypoint.svg|30px]] [[Robot_InsertWaypoint/it|Inserisci un punto nella traiettoria]]: inserisce il punto della posizione corrente del robot in una traiettoria. |
|||
* [[Image:Robot_InsertWaypointPre.svg|30px]] [[Robot_InsertWaypointPre/it|Inserisci un punto preselezionato nella traiettoria]]: inserisce il punto della posizione corrente del mouse in una traiettoria. |
|||
==== Traiettorie parametriche ==== |
|||
== Script == |
|||
* [[Image:Robot_Edge2Trac.svg|30px]] [[Robot_Edge2Trac/it|Crea una traiettoria da un bordo]]: genera un percorso da un insieme di spigoli. |
|||
Questa sezione è ricavata da: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py |
|||
* [[Image:Robot_TrajectoryDressUp.svg|30px]] [[Robot_TrajectoryDressUp/it|Vesti una traiettoria]]: permette di modificare una o più proprietà di un percorso. |
|||
Volendo, è possibile utilizzare la fonte originale. |
|||
* [[Image:Robot_TrajectoryCompound.svg|30px]] [[Robot_TrajectoryCompound/it|Raggruppa le traiettorie]]: raggruppa alcune traiettorie in un unico percorso. |
|||
== Script == |
|||
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 === |
|||
<div class="mw-translate-fuzzy"> |
|||
Creare il robot. Se non viene specificata una cinematica diversa, viene utilizzato un robot 560 Puma |
|||
Vedere l'esempio [[Robot API example/it|Esempio di API Robot]] per una descrizione delle funzioni utilizzate per modellare gli spostamenti del robot. |
|||
{{Code|code= |
|||
</div> |
|||
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]] |
||
Line 202: | Line 79: | ||
<div class="mw-translate-fuzzy"> |
|||
{{Docnav/it|[[Draft Module/it|Ambiente Draft - Disegno 2D]]|[[Arch Module/it|Ambiente Architettura]]}} |
|||
{{Docnav/it |
|||
|[[Reverse Engineering Workbench/it|Ambiente Reverse Engineering]] |
|||
|[[Sketcher Workbench/it|Ambiente Sketcher]] |
|||
|IconL=Workbench_Reverse_Engineering.svg |
|||
|IconR=Workbench_Sketcher.svg |
|||
}} |
|||
</div> |
|||
{{Robot Tools navi{{#translation:}}}} |
|||
[[Category:User Documentation/it]] |
|||
{{Userdocnavi{{#translation:}}}} |
|||
[[Category:Workbenches{{#translation:}}]] |
|||
<languages/> |
Revision as of 16:33, 12 December 2020
Il motivo per cui questo ambiente è ancora nel codice sorgente principale è perché esso è programmato in C++. Se fosse programmato in Python, allora potrebbe essere creato un ambiente esterno e potrebbe essere spostato in un repository separato.
Introduzione
L'ambiente 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
- 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
- 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