Robot Workbench/pt-br: Difference between revisions
(Updating to match new version of source page) |
No edit summary |
||
(46 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
|||
[[Image:KukaKR16FreeCAD.jpg|right|400px]] |
|||
{{Docnav |
|||
The robot workbench is a tool to simulate industrial grade [[6-Axis Robot]]s, like e.g. [http://kuka.com/ Kuka]. |
|||
|[[Reverse_Engineering_Workbench/pt-br|Bancada de trabalho Reverse Engineering]] |
|||
You can do the following tasks: |
|||
|[[Sketcher_Workbench/pt-br|Bancada de trabalho Sketcher]] |
|||
* set up a simulation environment with a robot and work pieces |
|||
|IconL=Workbench_Reverse_Engineering.svg |
|||
* create and fill up trajectories |
|||
|IconR=Workbench_Sketcher.svg |
|||
* decompose features of an CAD part to a trajectory |
|||
}} |
|||
* simulate the robot movement and reachability |
|||
* export the trajectory to a robot program file |
|||
{{VeryImportantMessage|O Robot Workbench não está em manutenção. Se você tem experiência com o tópico e está interessado em mantê-lo, por favor, declare sua intenção na seção de desenvolvedores no [https://forum.freecadweb.org/index.php forum FreeCAD]. |
|||
You can find an example here: |
|||
[https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py Example files] or try |
|||
the [[Robot tutorial]]. |
|||
A razão pela qual esta bancada de trabalho ainda está no código-fonte mestre é porque esta bancada de trabalho está programada em C++. Se esta bancada de trabalho pudesse ser programada em Python, então ela poderia ser feita em uma [[external_workbenches/pt-br|bancada de trabalho externa]] e poderia ser movida para um repositório separado. |
|||
== Tools == |
|||
}} |
|||
Here the principal commands you can use to create a robot set-up. |
|||
== Introdução == |
|||
The tools to create and manage the 6-Axis robots |
|||
[[Image:Workbench_Robot.svg|thumb|128px|Ícone da bancada de trabalho Robot]] |
|||
* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot|Create a robot]]: Insert a new robot into the scene |
|||
* [[Image:Robot_Simulate.png|30px]] [[Robot_Simulate|Simulate a trajectory]]: Opens the simulation dialog and let you simulate |
|||
* [[Image:Robot_Export.png|30px]] [[Robot_Export|Export a trajectory]]: Export a robot program file |
|||
* [[Image:Robot_SetHomePos.png|30px]] [[Robot_SetHomePos|Set home positon]]: Set the home position of an robot |
|||
* [[Image:Robot_RestoreHomePos.png|30px]] [[Robot_RestoreHomePos|Restore home positon]]: move the robot to its home position |
|||
A bancada de trabalho [[Image:Workbench_Robot.svg|24px]] [[Robot_Workbench|Robot]] é uma ferramenta para simular um [[Robot_6-Axis/pt-br|robô industrial de 6 eixos]] como o [http://kuka.com/ Kuka]. |
|||
=== Trajectories === |
|||
Tools to creat and manipulate trajectories. There are two kinds, the parametric and non parametric ones. |
|||
Você pode fazer as seguintes tarefas: |
|||
==== non parametric ==== |
|||
* Configure um ambiente de simulação com um robô e peças de trabalho; |
|||
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory|Create a trajectory]]: Insert a new robot into the scene |
|||
* Crie e preencha trajetórias de movimentos; |
|||
* [[Image:Robot_SetDefaultOrientation.png|30px]] [[Robot_SetDefaultOrientation|Set the default orientation]]: Set the orientation way-points gets created by default |
|||
* Decomponha os recursos de uma peça CAD em uma trajetória. |
|||
* [[Image:Robot_SetDefaultValues.png|30px]] [[Robot_SetDefaultValues|Set the default speed parameter]]: set the defaults for way-point creation |
|||
* Simule o movimento de robô e alcance a distância; |
|||
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint|Insert a waypoint]]: Insert a way-point from the current robot position into a trajectory |
|||
* Exporte a trajetória para um arquivo de programa de robô; |
|||
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre|Insert a waypoint]]: Insert a way-point from the current mouse position into a trajectory |
|||
Para começar, experimente o [[Robot_tutorial/pt-br|tutorial Robot]] e veja a interface de programação no arquivo de exemplo [https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py RobotExample.py]. |
|||
==== parametric ==== |
|||
* [[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_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp|Dress-up a trajectory]]: Let you override one or more properties of a trajectory |
|||
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound|Trajectory compound]]: create a compound out of some single trajectories |
|||
{{TOCright}} |
|||
== Scripting == |
|||
[[Image:Robot_Workbench_example.jpg|500px]] |
|||
This section is generated out of: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py |
|||
You can use this file directly if you want. |
|||
== Ferramentas == |
|||
Example how to use the basic robot class Robot6Axis which represents a 6-axis |
|||
Aqui estão os principais comandos que você pode usar para criar uma configuração de robô. |
|||
industrial robot. The Robot module is dependent on Part but not on other modules. |
|||
It works mostly with the basic types Placement, Vector and Matrix. So we need |
|||
only: |
|||
{{Code|code= |
|||
from Robot import * |
|||
from Part import * |
|||
from FreeCAD import * |
|||
}} |
|||
=== Basic robot stuff === |
|||
create the robot. If you do not specify another kinematic it becomes a Puma 560 |
|||
{{Code|code= |
|||
rob = Robot6Axis() |
|||
print rob |
|||
}} |
|||
accessing the axis and the Tcp. Axes go from 1-6 and are in degree: |
|||
{{Code|code= |
|||
Start = rob.Tcp |
|||
print Start |
|||
print rob.Axis1 |
|||
}} |
|||
move the first axis of the robot: |
|||
{{Code|code= |
|||
rob.Axis1 = 5.0 |
|||
}} |
|||
the Tcp has changed (forward kinematic) |
|||
{{Code|code= |
|||
print rob.Tcp |
|||
}} |
|||
move the robot back to start position (reverse kinematic): |
|||
{{Code|code= |
|||
rob.Tcp = Start |
|||
print rob.Axis1 |
|||
}} |
|||
the same with axis 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 |
|||
}} |
|||
generate more. The trajectory always finds automatically a unique name for the waypoints |
|||
{{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")) |
|||
}} |
|||
create a trajectory |
|||
{{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 === |
|||
=== Robôs === |
|||
Working with the robot document objects: |
|||
As ferramentas para criar e gerenciar os robôs de 6 eixos. |
|||
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 [[6-Axis Robot]] and [[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")) |
|||
* [[Image:Robot_CreateRobot.svg|30px]] [[Robot_CreateRobot/pt-br|Criar um robô]]: Inserir um novo robô na cena. |
|||
t.insertWaypoints(StartTcp) # end point of the trajectory |
|||
* [[Image:Robot_Simulate.svg|30px]] [[Robot_Simulate/pt-br|Simular uma trajetória]]: Abre o diálogo de simulação e te permite simular. |
|||
App.activeDocument().Trajectory.Trajectory = t |
|||
* [[Image:Robot_Export.svg|30px]] [[Robot_Export/pt-br|Exportar uma trajetória]]: Exporta um arquivo de programa de robô. |
|||
print App.activeDocument().Trajectory.Trajectory |
|||
* [[Image:Robot_SetHomePos.svg|30px]] [[Robot_SetHomePos/pt-br|Definir a posição inicial]]: Define a posição inicial de um robô. |
|||
}} |
|||
* [[Image:Robot_RestoreHomePos.svg|30px]] [[Robot_RestoreHomePos/pt-br|Restaurar a posição inicial]]: Move o robô para a sua posição inicial. |
|||
=== |
=== Trajetórias === |
||
Ferramentas para criar e manipular trajetórias. Existem dois tipos de trajetórias: as paramétricas e as não paramétricas. |
|||
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 |
|||
==== Trajetórias Não Paramétricas ==== |
|||
ExportCompactSub(App.activeDocument().Robot,App.activeDocument().Trajectory,'D:/Temp/TestOut.src') |
|||
* [[Image:Robot_CreateTrajectory.svg|30px]] [[Robot_CreateTrajectory/pt-br|Criar trajetória]]: Insere um novo objeto vazio de trajetória na cena. |
|||
}} |
|||
* [[Image:Robot_SetDefaultOrientation.svg|30px]] [[Robot_SetDefaultOrientation/pt-br|Definir a configuração padrão]]: Define os pontos de caminho de orientação criados por padrão. |
|||
* [[Image:Robot_SetDefaultValues.svg|30px]] [[Robot_SetDefaultValues/pt-br|Definir o parâmetro padrão de velocidade]]: Define os valores padrões para a criação de pontos de caminho. |
|||
and that's kind of how it's done: |
|||
* [[Image:Robot_InsertWaypoint.svg|30px]] [[Robot_InsertWaypoint/pt-br|Inserir um ponto de caminho]]: Insere um ponto de caminho a partir da posição atual do robô em uma trajetória. |
|||
{{Code|code= |
|||
* [[Image:Robot_InsertWaypointPre.svg|30px]] [[Robot_InsertWaypointPre/pt-br|Inserir um ponto de caminho pré-selecionado]]: Insere um ponto de caminho a partir da posição atual do mouse em uma trajetória. |
|||
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)) |
|||
==== Trajetórias Paramétricas ==== |
|||
}} |
|||
* [[Image:Robot_Edge2Trac.svg|30px]] [[Robot_Edge2Trac/pt-br|Criar uma trajetória fora das arestas]]: Insere um novo objeto que decompõe as arestas em uma trajetória. |
|||
== Tutorials == |
|||
* [[Image:Robot_TrajectoryDressUp.svg|30px]] [[Robot_TrajectoryDressUp/pt-br|Vestir uma trajetória]]: Permite que você substitua uma ou mais propriedades de uma trajetória. |
|||
* [[6-Axis_Robot|6-Axis_Robot]] |
|||
* [[Image:Robot_TrajectoryCompound.svg|30px]] [[Robot_TrajectoryCompound/pt-br|Composto de trajetória]]: Crie um composto a partir de algumas trajetórias únicas. |
|||
* [[VRML Preparation for Robot Simulation|VRML Preparation for Robot Simulation]] |
|||
== Scripting == |
|||
Veja o exemplo [[Robot_API_example/pt-br|Robot API]] para obter uma descrição das funções utilizadas para modelar os deslocamentos de robô. |
|||
{{docnav|FEM Module|Standard Menu}} |
|||
== Tutoriais == |
|||
[[Category:User Documentation/pt-br]] |
|||
* [[Robot 6-Axis/pt-br|Robot 6-Axis]] |
|||
* [[VRML Preparation for Robot Simulation/pt-br|Preparação de VRML para simulação de robô]] |
|||
{{Docnav |
|||
<languages/> |
|||
|[[Reverse_Engineering_Workbench/pt-br|Bancada de trabalho Reverse Engineering]] |
|||
|[[Sketcher_Workbench/pt-br|Bancada de trabalho Sketcher]] |
|||
|IconL=Workbench_Reverse_Engineering.svg |
|||
|IconR=Workbench_Sketcher.svg |
|||
}} |
|||
{{Robot Tools navi{{#translation:}}}} |
|||
{{Userdocnavi{{#translation:}}}} |
|||
[[Category:Workbenches{{#translation:}}]] |
Latest revision as of 17:35, 18 August 2021
A razão pela qual esta bancada de trabalho ainda está no código-fonte mestre é porque esta bancada de trabalho está programada em C++. Se esta bancada de trabalho pudesse ser programada em Python, então ela poderia ser feita em uma bancada de trabalho externa e poderia ser movida para um repositório separado.
Introdução
A bancada de trabalho Robot é uma ferramenta para simular um robô industrial de 6 eixos como o Kuka.
Você pode fazer as seguintes tarefas:
- Configure um ambiente de simulação com um robô e peças de trabalho;
- Crie e preencha trajetórias de movimentos;
- Decomponha os recursos de uma peça CAD em uma trajetória.
- Simule o movimento de robô e alcance a distância;
- Exporte a trajetória para um arquivo de programa de robô;
Para começar, experimente o tutorial Robot e veja a interface de programação no arquivo de exemplo RobotExample.py.
Ferramentas
Aqui estão os principais comandos que você pode usar para criar uma configuração de robô.
Robôs
As ferramentas para criar e gerenciar os robôs de 6 eixos.
- Criar um robô: Inserir um novo robô na cena.
- Simular uma trajetória: Abre o diálogo de simulação e te permite simular.
- Exportar uma trajetória: Exporta um arquivo de programa de robô.
- Definir a posição inicial: Define a posição inicial de um robô.
- Restaurar a posição inicial: Move o robô para a sua posição inicial.
Trajetórias
Ferramentas para criar e manipular trajetórias. Existem dois tipos de trajetórias: as paramétricas e as não paramétricas.
Trajetórias Não Paramétricas
- Criar trajetória: Insere um novo objeto vazio de trajetória na cena.
- Definir a configuração padrão: Define os pontos de caminho de orientação criados por padrão.
- Definir o parâmetro padrão de velocidade: Define os valores padrões para a criação de pontos de caminho.
- Inserir um ponto de caminho: Insere um ponto de caminho a partir da posição atual do robô em uma trajetória.
- Inserir um ponto de caminho pré-selecionado: Insere um ponto de caminho a partir da posição atual do mouse em uma trajetória.
Trajetórias Paramétricas
- Criar uma trajetória fora das arestas: Insere um novo objeto que decompõe as arestas em uma trajetória.
- Vestir uma trajetória: Permite que você substitua uma ou mais propriedades de uma trajetória.
- Composto de trajetória: Crie um composto a partir de algumas trajetórias únicas.
Scripting
Veja o exemplo Robot API para obter uma descrição das funções utilizadas para modelar os deslocamentos de robô.
Tutoriais
- 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, Surface, TechDraw, Test Framework
- Hubs: User hub, Power users hub, Developer hub