Robot Workbench/ro: Difference between revisions

From FreeCAD Documentation
No edit summary
mNo edit summary
(44 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<div class="mw-translate-fuzzy">
[[Image:KukaKR16FreeCAD.jpg|right|400px]]
{{docnav|FEM Module|Standard Menu}}
</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.}}

== Introducere ==

<div class="mw-translate-fuzzy">
Atelierul robotică [[Robot Workbench]] este un instrument pentru a simula un robot industrial standard având 6 axe de libertate [[Robot_6-Axis|6-axis industrial robot]], cum ar fi de ex. [http://kuka.com/ Kuka].
</div>


Atelierul robotică este o unealtă pentru a simula un robot industrial cu 6 axe de libertate [[Robot_6-Axis | Robot 6-Axis]], cum ar fi de ex. [http://kuka.com/ Kuka].
Puteți efectua următoarele activități:
Puteți efectua următoarele activități:
* configurați un mediu de simulare cu un robot și piese de lucru
* Configurați un mediu de simulare cu un robot și piese de lucru;
* creați și urmați traiectoriile
* Creați și urmați traiectoriile;
* descompune caracteristicile unei piese CAD într-o traiectorie
* Descompuneți caracteristicile/funcționalitățile unei piese CAD într-o traiectorie;
* Simulați mișcarea și accesibilitatea robotului
* Simulați mișcarea și accesibilitatea robotului;
* exportați traiectoria într-un fișier de program de robot
* Exportați traiectoria într-un fișier de program de robot.


Pentru a începe încercați [[Robot tutorial]], și vedeți interfața de programare în fișierul exemplu aici:
Puteți găsi un exemplu aici:
[https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py Example files] sau încercați [[Robot tutorial]].
[https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py RobotExample.py]


{{TOCright}}
== Scule și Instrumente ==
[[Image:Robot_Workbench_example.jpg|600px]]

== Instrumente ==
Aici sunt comenzile principale pe care le puteți utiliza pentru a seta un robot.
Aici sunt comenzile principale pe care le puteți utiliza pentru a seta un robot.


Line 19: Line 33:
Instrumentele pentru crearea și gestionarea roboților cu 6 axe
Instrumentele pentru crearea și gestionarea roboților cu 6 axe


<div class="mw-translate-fuzzy">
* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot|Create a robot]]: Introduceți un nou robot în scenă
* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot|Creați un robot]]: Introduceți un nou robot în scenă
* [[Image:Robot_Simulate.png|30px]] [[Robot_Simulate|Simulate a trajectory]]: Deschide dialogul de simulare și vă permite să simulați
* [[Image:Robot_Simulate.png|30px]] [[Robot_Simulate|Simulate a trajectory]]: Deschide dialogul de simulare și vă permite să simulați
* [[Image:Robot_Export.png|30px]] [[Robot_Export|Export a trajectory]]: Exportați un fișier conținând programul robotului
* [[Image:Robot_Export.png|30px]] [[Robot_Export|Export a trajectory]]: Exportați un fișier conținând programul robotului
* [[Image:Robot_SetHomePos.png|30px]] [[Robot_SetHomePos|Set home positon]]: Stabiliți poziția 0 a robotului
* [[Image:Robot_SetHomePos.png|30px]] [[Robot_SetHomePos|Set home position]]: Stabiliți poziția 0 a robotului
* [[Image:Robot_RestoreHomePos.png|30px]] [[Robot_RestoreHomePos|Restore home positon]]: Mutați robotul în poziția zero
* [[Image:Robot_RestoreHomePos.png|30px]] [[Robot_RestoreHomePos|Restore home position]]: Mutați robotul în poziția zero
</div>


=== Traiectorii ===
=== Traiectorii ===
Instrumente pentru crearea și manipularea traiectoriilor. Există două tipuri, cele parametrice și cele neparametrice.
Instrumente pentru crearea și manipularea traiectoriilor. Există două tipuri, cele parametrice și cele neparametrice.


<div class="mw-translate-fuzzy">
==== traiectoriile non parametrice ====
==== Traiectoriile Non Parametrice ====
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory|Creați o traiectorie]]: Introduceți o traiectorie goală în scenă
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory|Creați o traiectorie]]: Introduceți o traiectorie goală în scenă
* [[Image:Robot_SetDefaultOrientation.png|30px]] [[Robot_SetDefaultOrientation|Stabiliți orientarea implicită]]: Definiți orientarea implicită a punctelor de trecere
* [[Image:Robot_SetDefaultOrientation.png|30px]] [[Robot_SetDefaultOrientation|Stabiliți orientarea implicită]]: Definiți orientarea implicită a punctelor de trecere
* [[Image:Robot_SetDefaultValues.png|30px]] [[Robot_SetDefaultValues|/Definiți parametrul implicit al vitezei]]: Stabiliți valorile implicite pentru crearea punctelor de trecere
* [[Image:Robot_SetDefaultValues.png|30px]] [[Robot_SetDefaultValues|/Definiți parametrul implicit al vitezei]]: Stabiliți valorile implicite pentru crearea punctelor de trecere
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint|Inserați un punct de trecere]]: Inserați un punct de trecere de la poziția curentă a robotului într-o traiectorie
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint|Inserați un punct de trecere]]: Inserați un punct de trecere de la poziția curentă a robotului într-o traiectorie
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre|Inserați un punct de trecre]]: Inserați un punct de trecere de la poziția curentă a mouse-ului într-o traiectorie
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre|Inserați un punct de trecere]]: Inserați un punct de trecere de la poziția curentă a mouse-ului într-o traiectorie
</div>


<div class="mw-translate-fuzzy">
==== traiectorii parametrice ====
==== Traiectorii Parametrice ====
* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac|Creați o traiectorie dincolo de margini]]: Inserați un nou obiect care descompune marginile într-o traiectorie
* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac|Generează o traiectorie dintr-un set de muchii]]: Include un obiect nou ale cărui muchii vor forma o traiectorie
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp|Traiectorie suplimetnră(Dress-up)]]: Lets you override una sau mai multe proprietăți ale traiectoriei
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound|Traiectorie compusă]]: Creați o traiectorie complexă de la o singură traiectorie
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp|Traiectorie suplimentară(Dress-up)]]: Creați o traiectorie suplimentară care va suprascrie anumite proprietăți ale traiectoriei inițiale
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound|Gruparea și conectarea traiectoriilor]]: Conectează un set de traiectorii și creează o traiectorie mai complexă
</div>


== Scripting ==
== Script ==
Această secțiune este generată prin: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py
Puteți folosi acest fișier direct dacă doriți.


<div class="mw-translate-fuzzy">
Exemplu de utilizare a clasei de roboți de bază Robot6Axis care reprezintă un robot industrial cu 6 axe. Modulul Robot depinde de Atelierul Piese, dar nu și de alte module.
A se vedea [[Robot API example]] pentru o descriere a funcțiilor utilizate pentru a modela deplasările robotului .
Funcționează mai ales cu tipurile de bază Plasament, Vector și Matrix. Deci avem nevoie
</div>
numai:
{{Code|code=
from Robot import *
from Part import *
from FreeCAD import *
}}
=== Chestii de bază în robotică ===
creați robotul. Dacă nu specificați altă cinematică, acesta devine un Puma 560
{{Code|code=
rob = Robot6Axis()
print rob
}}
accesând axa și Tcp. Axele merg de la 1-6 și sunt în grad:
{{Code|code=
Start = rob.Tcp
print Start
print rob.Axis1
}}
mișcați prima axă a robotului:
{{Code|code=
rob.Axis1 = 5.0
}}
TCP sa schimbat (urmariți cinematica mecanismului)
{{Code|code=
print rob.Tcp
}}
mișcați robotul înapoi în poziția inițială (kinematic invers):
{{Code|code=
rob.Tcp = Start
print rob.Axis1
}}
la fel cu axa 2:
{{Code|code=
rob.Axis2 = 5.0
print rob.Tcp
rob.Tcp = Start
print rob.Axis2
}}
Waypoints:
{{Code|code=
w = Waypoint(Placement(),name="Pt",type="LIN")
print w.Name,w.Type,w.Pos,w.Cont,w.Velocity,w.Base,w.Tool
}}
generați mai mult. Traiectoria întotdeauna găsește automat un nume unic pentru punctele de trecere
{{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"))
}}
creați o traiectorie
{{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"))
}}
see a list of all waypoints:
{{Code|code=
print t.Waypoints
del rob,Start,t,l,w
}}
=== Working with the document objects ===


Working with the robot document objects:
first create a robot in the active document
{{Code|code=
if(App.activeDocument() == None):App.newDocument()
App.activeDocument().addObject("Robot::RobotObject","Robot")
}}
Define the visual representation and the kinematic definition (see [[Robot_6-Axis|Robot 6-Axis]] and [[VRML Preparation for Robot Simulation|VRML Preparation for Robot Simulation]] for details about that)
{{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"
}}
start positon of the Axis (only that which differ from 0)
{{Code|code=
App.activeDocument().Robot.Axis2 = -90
App.activeDocument().Robot.Axis3 = 90
}}
retrieve the Tcp position
{{Code|code=
pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp
}}
move the robot
{{Code|code=
pos.move(App.Vector(-10,0,0))
FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp = pos
}}
create an empty Trajectory object in the active document
{{Code|code=
App.activeDocument().addObject("Robot::TrajectoryObject","Trajectory")
}}
get the Trajectory
{{Code|code=
t = App.activeDocument().Trajectory.Trajectory
}}
add the actual TCP position of the robot to the trajectory
{{Code|code=
StartTcp = App.activeDocument().Robot.Tcp
t.insertWaypoints(StartTcp)
App.activeDocument().Trajectory.Trajectory = t
print App.activeDocument().Trajectory.Trajectory
}}
insert some more Waypoints and the start point at the end again:
{{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
}}

=== Simulation ===
To be done.....
=== Exporting the trajectory ===
The trajectory is exported by Python. That means for every control cabinet type there is a post-processor
Python module. Here is in detail the Kuka post-processor described
{{Code|code=
from KukaExporter import ExportCompactSub

ExportCompactSub(App.activeDocument().Robot,App.activeDocument().Trajectory,'D:/Temp/TestOut.src')
}}
and that's kind of how it's done:
{{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))

}}
== Tutoriale ==
== Tutoriale ==
* [[Robot 6-Axis|Robot 6-Axis]]
* [[Robot 6-Axis|Robot 6-Axis]]
* [[VRML Preparation for Robot Simulation|VRML Preparation for Robot Simulation]]
* [[VRML Preparation for Robot Simulation|VRML Preparation for Robot Simulation]]


{{Docnav
|[[Reverse Engineering Workbench|Reverse Engineering Workbench]]
|[[Ship Workbench|Ship Workbench]]
|IconL=Workbench_Reverse_Engineering.svg
|IconR=Workbench_Ship.svg
}}


{{Robot Tools navi{{#translation:}}}}
{{docnav/ro|Arch Module/ro|Macros/ro}}
{{Userdocnavi{{#translation:}}}}

[[Category:User Documentation/ro]]
[[Category:Workbenches{{#translation:}}]]

Revision as of 18:11, 21 February 2020

FEM Module
Standard Menu

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.

Introducere

Atelierul robotică Robot Workbench este un instrument pentru a simula un robot industrial standard având 6 axe de libertate 6-axis industrial robot, cum ar fi de ex. Kuka.

Puteți efectua următoarele activități:

  • Configurați un mediu de simulare cu un robot și piese de lucru;
  • Creați și urmați traiectoriile;
  • Descompuneți caracteristicile/funcționalitățile unei piese CAD într-o traiectorie;
  • Simulați mișcarea și accesibilitatea robotului;
  • Exportați traiectoria într-un fișier de program de robot.

Pentru a începe încercați Robot tutorial, și vedeți interfața de programare în fișierul exemplu aici: RobotExample.py

Instrumente

Aici sunt comenzile principale pe care le puteți utiliza pentru a seta un robot.

Roboți

Instrumentele pentru crearea și gestionarea roboților cu 6 axe

Traiectorii

Instrumente pentru crearea și manipularea traiectoriilor. Există două tipuri, cele parametrice și cele neparametrice.

Traiectoriile Non Parametrice

Traiectorii Parametrice

Script

A se vedea Robot API example pentru o descriere a funcțiilor utilizate pentru a modela deplasările robotului .

Tutoriale