Robot Workbench/pt-br: Difference between revisions

From FreeCAD Documentation
(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.


=== Robots ===
== 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.


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

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 forum FreeCAD.

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

Ícone da bancada de trabalho Robot

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.

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

Trajetórias Paramétricas

Scripting

Veja o exemplo Robot API para obter uma descrição das funções utilizadas para modelar os deslocamentos de robô.

Tutoriais