Robot Workbench/ro: Difference between revisions

From FreeCAD Documentation
No edit summary
(Updating to match new version of source page)
(38 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
[[Image:KukaKR16FreeCAD.jpg|right|400px]]


<div class="mw-translate-fuzzy">
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].
{{docnav|FEM Module|Standard Menu}}
</div>

{{VeryImportantMessage|The Robot Workbench is unmaintained. If you have experience with the topic and are interested in maintaining it, please state your intention in the developer's section of the [https://forum.freecadweb.org/index.php FreeCAD forum].

The reason this workbench is still in the master source code is because this workbench is programmed in C++. If this workbench could be programmed in Python, then it could be made an [[external_workbenches|external workbench]] and it could be moved to a separate repository.
}}

== Introducere ==

[[Image:Workbench_Robot.svg|thumb|128px|Robot workbench icon]]

<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>

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.


<div class="mw-translate-fuzzy">
Puteți găsi un exemplu aici:
Pentru a începe încercați [[Robot tutorial]], și vedeți interfața de programare în fișierul 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]
</div>


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

== 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 39:
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"))
}}
uite o listă a tuturor punctelor de trecere:
{{Code|code=
print t.Waypoints
del rob,Start,t,l,w
}}
===Lucrul cu obiectele documentului ===


Pentru a lucra cu obiectele documentului robot:
creați mai întâi un robot în documentul activ
{{Code|code=
if(App.activeDocument() == None):App.newDocument()
App.activeDocument().addObject("Robot::RobotObject","Robot")
}}
Definiți reprezentarea vizuală și definiția cinematică (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"
}}
poziția inițială a Axei (numai dacă diferă de 0)
{{Code|code=
App.activeDocument().Robot.Axis2 = -90
App.activeDocument().Robot.Axis3 = 90
}}
extrageți poziția Tcp
{{Code|code=
pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp
}}
motați robotul
{{Code|code=
pos.move(App.Vector(-10,0,0))
FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp = pos
}}
creați o traiectorie vidă în documentul activ
{{Code|code=
App.activeDocument().addObject("Robot::TrajectoryObject","Trajectory")
}}
obțineți Traiectoria
{{Code|code=
t = App.activeDocument().Trajectory.Trajectory
}}
adăugați poziția TCP reală a robotului în traiectorie
{{Code|code=
StartTcp = App.activeDocument().Robot.Tcp
t.insertWaypoints(StartTcp)
App.activeDocument().Trajectory.Trajectory = t
print App.activeDocument().Trajectory.Trajectory
}}
introduceți mai multe puncte de traseu și punctul de pornire la sfârșitul din nou:
{{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]]
Line 198: Line 77:




<div class="mw-translate-fuzzy">
{{docnav/ro|Arch Module/ro|Macros/ro}}
{{Docnav
|[[Reverse Engineering Workbench|Reverse Engineering Workbench]]
|[[Ship Workbench|Ship Workbench]]
|IconL=Workbench_Reverse_Engineering.svg
|IconR=Workbench_Ship.svg
}}
</div>


{{Robot Tools navi{{#translation:}}}}
[[Category:User Documentation/ro]]
{{Userdocnavi{{#translation:}}}}
[[Category:Workbenches{{#translation:}}]]

Revision as of 16:32, 12 December 2020

FEM Module
Standard Menu
The Robot Workbench is unmaintained. If you have experience with the topic and are interested in maintaining it, please state your intention in the developer's section of the FreeCAD forum.

The reason this workbench is still in the master source code is because this workbench is programmed in C++. If this workbench could be programmed in Python, then it could be made an external workbench and it could be moved to a separate repository.

Introducere

Robot workbench icon

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