Robot Workbench/es: Difference between revisions
Renatorivo (talk | contribs) No edit summary |
No edit summary |
||
(27 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
|||
[[Image:KukaKR16FreeCAD.jpg|right|400px]] |
|||
{{Docnav/es |
|||
|[[Reverse Engineering Workbench/es|Ambiente de trabajo Ingeniería inversa]] |
|||
|[[Sketcher Workbench/es|Ambiente de trabajo Croquizador]] |
|||
|IconL=Workbench_Reverse_Engineering.svg |
|||
|IconR=Workbench_Sketcher.svg |
|||
}} |
|||
{{VeryImportantMessage|El Ambiente de trabajo Robot no se mantiene. Si tienes experiencia en el tema y estás interesado en mantenerlo, por favor declara tu intención en la sección de desarrolladores del [https://forum.freecadweb.org/index.php Foro de FreeCAD]. |
|||
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. |
|||
}} |
|||
== Introducción == |
|||
[[Image:Workbench_Robot.svg|thumb|128px|El icono del Ambiente de trabajo Robot]] |
|||
<div class="mw-translate-fuzzy"> |
|||
El entorno de simulación de robots es una herramienta para simular un [[Robot 6-Axis/es|Robot industrial de 6 ejes]], como [http://kuka.com/ Kuka]. |
El entorno de simulación de robots es una herramienta para simular un [[Robot 6-Axis/es|Robot industrial de 6 ejes]], como [http://kuka.com/ Kuka]. |
||
Puedes hacer las siguientes tareas: |
Puedes hacer las siguientes tareas: |
||
Line 8: | Line 25: | ||
* Simular el movimiento y la accesibilidad del robot |
* Simular el movimiento y la accesibilidad del robot |
||
* Exportar la trayectoria a un archivo del programa del robot |
* Exportar la trayectoria a un archivo del programa del robot |
||
</div> |
|||
You can do the following tasks: |
|||
* Set up a simulation environment with a robot and work pieces. |
|||
* Create and fill up movement trajectories. |
|||
* Decompose features of a CAD part to a trajectory. |
|||
* Simulate the robot movement and reaching distance. |
|||
* Export the trajectory to a robot program file. |
|||
<div class="mw-translate-fuzzy"> |
|||
Puedes encontrar un ejemplo aquí: |
Puedes encontrar un ejemplo aquí: |
||
[https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py/ Archivos de ejemplo] o prueba el [[Robot tutorial/es|Tutorial de simulación de Robots]]. |
[https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py/ Archivos de ejemplo] o prueba el [[Robot tutorial/es|Tutorial de simulación de Robots]]. |
||
</div> |
|||
{{TOCright}} |
|||
[[Image:Robot_Workbench_example.jpg|500px]] |
|||
== Herramientas == |
== Herramientas == |
||
Line 18: | Line 48: | ||
Las herramientas para crear y manejar los robots de 6 ejes |
Las herramientas para crear y manejar los robots de 6 ejes |
||
<div class="mw-translate-fuzzy"> |
|||
* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot/es|Crea un robot]]: Inserta un nuevo robot en la escena |
* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot/es|Crea un robot]]: Inserta un nuevo robot en la escena |
||
* [[Image:Robot_Simulate.png|30px]] [[Robot_Simulate/es|Simula una trayectoria]]: Abre el letrero de diálogo de simulación y te permite simular |
* [[Image:Robot_Simulate.png|30px]] [[Robot_Simulate/es|Simula una trayectoria]]: Abre el letrero de diálogo de simulación y te permite simular |
||
* [[Image:Robot_Export.png|30px]] [[Robot_Export/es|Exportar una trayectoria]]: Exporta un archivo |
* [[Image:Robot_Export.png|30px]] [[Robot_Export/es|Exportar una trayectoria]]: Exporta un archivo del programa del robot |
||
* [[Image:Robot_SetHomePos.png|30px]] [[Robot_SetHomePos/es|Establece la posición de inicio]]: Establece la posición de inicio para un robot |
* [[Image:Robot_SetHomePos.png|30px]] [[Robot_SetHomePos/es|Establece la posición de inicio]]: Establece la posición de inicio para un robot |
||
* [[Image:Robot_RestoreHomePos.png|30px]] [[Robot_RestoreHomePos/es|Restablece la posición de inicio]]: Mueve el robot a su posición de inicio |
* [[Image:Robot_RestoreHomePos.png|30px]] [[Robot_RestoreHomePos/es|Restablece la posición de inicio]]: Mueve el robot a su posición de inicio |
||
</div> |
|||
=== Trayectorias === |
=== Trayectorias === |
||
Herramientas para crear y manipular trayectorias. Existen dos tipos, las paramétricas y las no paramétricas. |
Herramientas para crear y manipular trayectorias. Existen dos tipos, las paramétricas y las no paramétricas. |
||
<div class="mw-translate-fuzzy"> |
|||
==== no paramétricas ==== |
|||
==== Trayectorias no paramétricas ==== |
|||
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory/es|Crea una trayectoria]]: Inserta un nuevo robot en la escena |
|||
* [[Image:Robot_CreateTrajectory.png|30px]] [[Robot_CreateTrajectory/es|Crea una trayectoria]]: Inserta una nuevo objeto de trayectoria vacía en la escena |
|||
* [[Image:Robot_SetDefaultOrientation.png|30px]] [[Robot_SetDefaultOrientation/es|Establece la orientación por defecto]]: Establece la orientación en los puntos de paso creados por defecto |
* [[Image:Robot_SetDefaultOrientation.png|30px]] [[Robot_SetDefaultOrientation/es|Establece la orientación por defecto]]: Establece la orientación en los puntos de paso creados por defecto |
||
* [[Image:Robot_SetDefaultValues.png|30px]] [[Robot_SetDefaultValues/es|Establece los parámetros de velocidad por defecto]]: Establece los valores por defecto para la creación de los puntos de paso |
* [[Image:Robot_SetDefaultValues.png|30px]] [[Robot_SetDefaultValues/es|Establece los parámetros de velocidad por defecto]]: Establece los valores por defecto para la creación de los puntos de paso |
||
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint/es|Inserta un punto de paso]]: Inserta un punto de paso desde la posición actual del robot en una trayectoria |
* [[Image:Robot_InsertWaypoint.png|30px]] [[Robot_InsertWaypoint/es|Inserta un punto de paso]]: Inserta un punto de paso desde la posición actual del robot en una trayectoria |
||
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre/es|Inserta un punto de paso]]: Inserta un punto de paso desde las posición actual del ratón en una trayectoria |
* [[Image:Robot_InsertWaypointPre.png|30px]] [[Robot_InsertWaypointPre/es|Inserta un punto de paso]]: Inserta un punto de paso desde las posición actual del ratón en una trayectoria |
||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
==== paramétrica ==== |
|||
==== trayectorias paramétricas ==== |
|||
* [[Image:Robot_Edge2Trac.png|30px]] [[Robot_Edge2Trac/es|Crea una trayectoria de aristas]]: Inserta un nuevo objeto que descompone las aristas de una trayectoria |
|||
* [[Image: |
* [[Image: Robot_Edge2Trac.png | 30px]] [[Robot_Edge2Trac|Create a trajectory out of edges]]: Inserta un nuevo objeto que descompone los bordes en una trayectoria |
||
* [[Image: Robot_TrajectoryDressUp.png | 30px]] [[Robot_TrajectoryDressUp|Dress-up a trajectory]]: Le permite sobreescribir una o más propiedades de una trayectoria |
|||
* [[Image:Robot_TrajectoryCompound.png|30px]] [[Robot_TrajectoryCompound/es|Trayectoria compuesta]]: create a compound out of some single trajectories |
|||
* [[Image: Robot_TrajectoryCompound.png | 30px]] [[Robot_TrajectoryCompound|Trajectory compound]]: crea un compuesto a partir de algunas trayectorias individuales |
|||
</div> |
|||
<div class="mw-translate-fuzzy"> |
|||
== Archivos de guión == |
== Archivos de guión == |
||
Esta sección se genera en: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py |
Esta sección se genera en: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py |
||
Puedes utilizar este archivo directamente si quieres. |
Puedes utilizar este archivo directamente si quieres. |
||
</div> |
|||
See the [[Robot API example|Robot API example]] for a description of the functions used to model the robot displacements. |
|||
Ejemplo de cómo utilizar la clase Robot6Axis básica que representa a un robot industrial de 6 ejes. El módulo de Robot es dependiente del de Piezas pero no de otros módulos. |
|||
Trabaja principalmente con los tipos básicos de Ubicación, Vector y Matriz. Así que necesitamos sólo: |
|||
{{Code|code= |
|||
from Robot import * |
|||
from Part import * |
|||
from FreeCAD import * |
|||
}} |
|||
=== Cosas básicas del robot === |
|||
Crear el robot. Si no se especifica otra cinemática será la de un Puma 560 |
|||
{{Code|code= |
|||
rob = Robot6Axis() |
|||
print rob |
|||
}} |
|||
accediendo a los ejes y TCP. Los ejes van de 1 a 6 y están en grados decimales: |
|||
{{Code|code= |
|||
Start = rob.Tcp |
|||
print Start |
|||
print rob.Axis1 |
|||
}} |
|||
mueve el primer eje del robot: |
|||
{{Code|code= |
|||
rob.Axis1 = 5.0 |
|||
}} |
|||
the Tcp has changed (forward kinematic) |
|||
{{Code|code= |
|||
print rob.Tcp |
|||
}} |
|||
mueve el robot de vuelta a la posición de inicio (cinemática inversa): |
|||
{{Code|code= |
|||
rob.Tcp = Start |
|||
print rob.Axis1 |
|||
}} |
|||
lo mismo con el eje 2: |
|||
{{Code|code= |
|||
rob.Axis2 = 5.0 |
|||
print rob.Tcp |
|||
rob.Tcp = Start |
|||
print rob.Axis2 |
|||
}} |
|||
Puntos de paso: |
|||
{{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 más. La trayectoria siempre encuentra automáticamente un nombre único para los puntos de paso |
|||
{{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 una trayectoria |
|||
{{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")) |
|||
}} |
|||
mira una lista de todos los puntos de paso: |
|||
{{Code|code= |
|||
print t.Waypoints |
|||
del rob,Start,t,l,w |
|||
}} |
|||
=== Trabajando con los objetos del documento=== |
|||
== Tutorials == |
|||
Trabajando con los objetos del documento del robot: |
|||
* [[Robot 6-Axis/es|Robot de 6 ejes]] |
|||
Primero crea un robot en el documento activo |
|||
* [[VRML Preparation for Robot Simulation/es|VRML Preparation for Robot Simulation]] |
|||
{{Code|code= |
|||
if(App.activeDocument() == None):App.newDocument() |
|||
App.activeDocument().addObject("Robot::RobotObject","Robot") |
|||
}} |
|||
Define la representación visual y la definición cinemática (mira [[Robot 6-Axis/es|Robot de 6 ejes]] y [[VRML Preparation for Robot Simulation/es|Preparación VRML para la simulación del robot]] para más detalles al respecto) |
|||
{{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 |
|||
}} |
|||
Recupera la posición de TCP |
|||
{{Code|code= |
|||
pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp |
|||
}} |
|||
mueve el robot |
|||
{{Code|code= |
|||
pos.move(App.Vector(-10,0,0)) |
|||
FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp = pos |
|||
}} |
|||
crea una objeto de trayectoria vacía en el documento activo |
|||
{{Code|code= |
|||
App.activeDocument().addObject("Robot::TrajectoryObject","Trajectory") |
|||
}} |
|||
Obtiene la trayectoria |
|||
{{Code|code= |
|||
t = App.activeDocument().Trajectory.Trajectory |
|||
}} |
|||
añade la posición TCP real del robot a la trayectoria |
|||
{{Code|code= |
|||
StartTcp = App.activeDocument().Robot.Tcp |
|||
t.insertWaypoints(StartTcp) |
|||
App.activeDocument().Trajectory.Trajectory = t |
|||
print App.activeDocument().Trajectory.Trajectory |
|||
}} |
|||
inserta algunos puntos de paso y los puntos de inicio y final de nuevo: |
|||
{{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 |
|||
}} |
|||
{{Docnav/es |
|||
=== Simulación === |
|||
|[[Reverse Engineering Workbench/es|Ambiente de trabajo Ingeniería inversa]] |
|||
Pendiente..... |
|||
|[[Sketcher Workbench/es|Ambiente de trabajo Croquizador]] |
|||
|IconL=Workbench_Reverse_Engineering.svg |
|||
=== Exportación de la trayectoria === |
|||
|IconR=Workbench_Sketcher.svg |
|||
La trayectoria se exporta en Python. Eso significa que para cada tipo de armario de control existe un módulo de Python de post-procesado. Aquí está en detalle el post-processor Kuka descrito |
|||
{{Code|code= |
|||
from KukaExporter import ExportCompactSub |
|||
ExportCompactSub(App.activeDocument().Robot,App.activeDocument().Trajectory,'D:/Temp/TestOut.src') |
|||
}} |
}} |
||
y esos es cómo se crea: |
|||
{{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)) |
|||
{{Robot Tools navi{{#translation:}}}} |
|||
}} |
|||
{{Userdocnavi{{#translation:}}}} |
|||
== Tutorials == |
|||
[[Category:Workbenches{{#translation:}}]] |
|||
* [[Robot 6-Axis|Robot 6-Axis]] |
|||
* [[VRML Preparation for Robot Simulation|VRML Preparation for Robot Simulation]] |
|||
{{docnav|FEM Module|Standard Menu}} |
|||
[[Category:User Documentation/es]] |
|||
<languages/> |
Revision as of 11:21, 2 September 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.
Introducción
El entorno de simulación de robots es una herramienta para simular un Robot industrial de 6 ejes, como Kuka. Puedes hacer las siguientes tareas:
- Configurar un entorno de simulación con un robot y piezas de trabajo
- Crea y cubrir trayectorias
- Descomponer características de una pieza de CAD en una trayectoria
- Simular el movimiento y la accesibilidad del robot
- Exportar la trayectoria a un archivo del programa del robot
You can do the following tasks:
- Set up a simulation environment with a robot and work pieces.
- Create and fill up movement trajectories.
- Decompose features of a CAD part to a trajectory.
- Simulate the robot movement and reaching distance.
- Export the trajectory to a robot program file.
Puedes encontrar un ejemplo aquí: Archivos de ejemplo o prueba el Tutorial de simulación de Robots.
Herramientas
Aquí están los principales comandos que puedes utilizar para crear la configuración de un robot.
Robots
Las herramientas para crear y manejar los robots de 6 ejes
- Crea un robot: Inserta un nuevo robot en la escena
- Simula una trayectoria: Abre el letrero de diálogo de simulación y te permite simular
- Exportar una trayectoria: Exporta un archivo del programa del robot
- Establece la posición de inicio: Establece la posición de inicio para un robot
- Restablece la posición de inicio: Mueve el robot a su posición de inicio
Trayectorias
Herramientas para crear y manipular trayectorias. Existen dos tipos, las paramétricas y las no paramétricas.
Trayectorias no paramétricas
- Crea una trayectoria: Inserta una nuevo objeto de trayectoria vacía en la escena
- Establece la orientación por defecto: Establece la orientación en los puntos de paso creados por defecto
- Establece los parámetros de velocidad por defecto: Establece los valores por defecto para la creación de los puntos de paso
- Inserta un punto de paso: Inserta un punto de paso desde la posición actual del robot en una trayectoria
- Inserta un punto de paso: Inserta un punto de paso desde las posición actual del ratón en una trayectoria
trayectorias paramétricas
- Create a trajectory out of edges: Inserta un nuevo objeto que descompone los bordes en una trayectoria
- Dress-up a trajectory: Le permite sobreescribir una o más propiedades de una trayectoria
- Trajectory compound: crea un compuesto a partir de algunas trayectorias individuales
Archivos de guión
Esta sección se genera en: https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py Puedes utilizar este archivo directamente si quieres.
See the Robot API example for a description of the functions used to model the robot displacements.
Tutorials
- 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