Robot Workbench/ro: Difference between revisions
No edit summary |
mNo edit summary |
||
(32 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; |
||
* |
* 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|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 |
* [[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|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: |
* [[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> |
|||
== |
== 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 |
|||
}} |
|||
=== 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') |
|||
}} |
|||
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: |
[[Category:Workbenches{{#translation:}}]] |
Revision as of 18:11, 21 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.
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
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