Robot Workbench/ro: Difference between revisions
No edit summary |
(Updating to match new version of source page) |
||
(29 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; |
||
* |
* 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 |
* 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: |
|||
Puteți găsi un exemplu aici: |
|||
[https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py |
[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|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 37: | ||
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|Creați un 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 |
* [[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 |
* [[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 |
* [[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|Generează o traiectorie dintr-un set de muchii]]: Include un obiect nou ale cărui muchii vor forma o taiectorie |
|||
* [[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 suplimentară(Dress-up)]]: Creați o traiectorie suplimentară care va suprascrie anumite proprietăți ale traiectoriei inițiale |
* [[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ă |
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound|Gruparea și conectarea traiectoriilor]]: Conectează un set de traiectorii și creează o traiectorie mai complexă |
||
</div> |
|||
== Script == |
== 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 se mișcă în grade: |
|||
{{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 |
|||
}} |
|||
=== Simularea === |
|||
Care trebuie dăcută..... |
|||
=== Exportând traiectorie === |
|||
Traiectoria este exportată by Python. Asta înseamnă că pentru fiecare tip de dulap de comandă există un postprocesor Modul Python. Aici este detaliat post-procesorul Kuka descris |
|||
{{Code|code= |
|||
from KukaExporter import ExportCompactSub |
|||
ExportCompactSub(App.activeDocument().Robot,App.activeDocument().Trajectory,'D:/Temp/TestOut.src') |
|||
}} |
|||
și asta este felul cum se face: |
|||
{{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 197: | Line 75: | ||
<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 18:16, 9 August 2020
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
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
- Creați un robot: Introduceți un nou robot în scenă
- Simulate a trajectory: Deschide dialogul de simulare și vă permite să simulați
- Export a trajectory: Exportați un fișier conținând programul robotului
- Set home position: Stabiliți poziția 0 a robotului
- Restore home position: Mutați robotul în poziția zero
Traiectorii
Instrumente pentru crearea și manipularea traiectoriilor. Există două tipuri, cele parametrice și cele neparametrice.
Traiectoriile Non Parametrice
- Creați o traiectorie: Introduceți o traiectorie goală în scenă
- Stabiliți orientarea implicită: Definiți orientarea implicită a punctelor de trecere
- /Definiți parametrul implicit al vitezei: Stabiliți valorile implicite pentru crearea punctelor de trecere
- Inserați un punct de trecere: Inserați un punct de trecere de la poziția curentă a robotului într-o traiectorie
- Inserați un punct de trecere: Inserați un punct de trecere de la poziția curentă a mouse-ului într-o traiectorie
Traiectorii Parametrice
- Generează o traiectorie dintr-un set de muchii: Include un obiect nou ale cărui muchii vor forma o traiectorie
- Traiectorie suplimentară(Dress-up): Creați o traiectorie suplimentară care va suprascrie anumite proprietăți ale traiectoriei inițiale
- Gruparea și conectarea traiectoriilor: Conectează un set de traiectorii și creează o traiectorie mai complexă
Script
A se vedea Robot API example pentru o descriere a funcțiilor utilizate pentru a modela deplasările robotului .
Tutoriale
- 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