Robot Workbench/es: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
No edit summary
 
(52 intermediate revisions by 5 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].

La razón por la que este ambiente de trabajo está todavía en el código fuente maestro es porque este ambiente de trabajo está programado en C++. Si este ambiente de trabajo pudiera ser programado en Python, entonces podría convertirse en un [[external_workbenches/es|Ambiente de trabajo externo]] y podría ser movido a un repositorio separado.
}}

== Introducción ==

[[Image:Workbench_Robot.svg|thumb|128px|El icono del Ambiente de trabajo Robot]]

El [[Image:Workbench_Robot.svg|24px]] [[Robot_Workbench/es|Ambiente de trabajo de robots]] es una herramienta para simular un [[Robot_6-Axis/es|Robot de 6 ejes industrial]] estándar, como [http://kuka.com/ Kuka].

Puede realizar las siguientes tareas:
* Configurar un entorno de simulación con un robot y piezas de trabajo.
* Crear y rellenar trayectorias de movimiento.
* Descomponer las características de una pieza CAD en una trayectoria.
* Simular el movimiento del robot y la distancia de alcance.
* Exportar la trayectoria a un archivo de programa de robot.


Para empezar, prueba el [[Robot_tutorial/es|Tutorial de robots]], y mira la interfaz de programación en el archivo de ejemplo [https://github.com/FreeCAD/FreeCAD_sf_master/blob/master/src/Mod/Robot/RobotExample.py RobotExample.py].
El entorno de simulación de robots es una herramienta para simular un [[6-Axis Robot/es|Robot industrial de 6 ejes]], como [http://kuka.com/ 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


{{TOCright}}
Unos ejemplos que puedes encontrar aquí:
[[Image:Robot_Workbench_example.jpg|500px]]
[http://www.freecad-project.de/svn/ExampleData/Examples/RobotSimulation/ Archivos de ejemplo] o prueba el [[Robot tutorial/es|Tutorial de simulación de Robots]].


== Herramientas ==
== Herramientas ==
Line 18: Line 37:
Las herramientas para crear y manejar los robots de 6 ejes
Las herramientas para crear y manejar los robots de 6 ejes


* [[Image:Robot_CreateRobot.png|30px]] [[Robot_CreateRobot/es|Crea un robot]]: Inserta un nuevo robot en la escena
* [[Image:Robot_CreateRobot.svg|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.svg|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 al programa del robot
* [[Image:Robot_Export.svg|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.svg|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.svg|30px]] [[Robot_RestoreHomePos/es|Restablece la posición de inicio]]: Mueve el robot a su posición de inicio


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


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


==== 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:Robot_Edge2Trac.svg | 30px]] [[Robot_Edge2Trac/es|Create a trajectory out of edges]]: Inserta un nuevo objeto que descompone los bordes en una trayectoria
* [[Image:Robot_TrajectoryDressUp.png|30px]] [[Robot_TrajectoryDressUp/es|Disfrazar una trayectoria]]: Permite sobrescribir una o más propiedades de una trayectoria
* [[Image:Robot_TrajectoryDressUp.svg | 30px]] [[Robot_TrajectoryDressUp/es|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.svg | 30px]] [[Robot_TrajectoryCompound/es|Trajectory compound]]: crea un compuesto a partir de algunas trayectorias individuales


== Archivos de guión ==
== Archivos de guión ==


Ver el [[Robot_API_example/es|Ejemplo de la API del Robot]] para ver una descripción de las funciones utilizadas para modelar los desplazamientos del robot.
Esta sección se genera en: http://free-cad.svn.sourceforge.net/viewvc/free-cad/trunk/src/Mod/Robot/RobotExample.py?view=markup
Puedes utilizar este archivo directamente si quieres.

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:
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
rob = Robot6Axis()
print rob
accediendo a los ejes y TCP. Los ejes van de 1 a 6 y están en grados decimales:
Start = rob.Tcp
print Start
print rob.Axis1
mueve el primer eje del robot:
rob.Axis1 = 5.0
the Tcp has changed (forward kinematic)
print rob.Tcp
mueve el robot de vuelta a la posición de inicio (cinemática inversa):
rob.Tcp = Start
print rob.Axis1
lo mismo con el eje 2:
rob.Axis2 = 5.0
print rob.Tcp
rob.Tcp = Start
print rob.Axis2
Puntos de paso:
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
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
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:
print t.Waypoints
del rob,Start,t,l,w
=== Trabajando con el documento ===

Trabajando con los objetos del documento del robot:
Primero crea un robot en el documento activo
if(App.activeDocument() == None):App.newDocument()
App.activeDocument().addObject("Robot::RobotObject","Robot")
Define la representación visual y la definición cinemática (mira [[6-Axis Robot/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)
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)
App.activeDocument().Robot.Axis2 = -90
App.activeDocument().Robot.Axis3 = 90
Recupera la posición de TCP
pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp
mueve el robot
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
App.activeDocument().addObject("Robot::TrajectoryObject","Trajectory")
Obtiene la trayectoria
t = App.activeDocument().Trajectory.Trajectory
añade la posición TCP real del robot a la trayectoria
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:
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

=== Simulación ===
Pendiente.....
=== Exportación de la trayectoria ===
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
from KukaExporter import ExportCompactSub
ExportCompactSub(App.activeDocument().Robot,App.activeDocument().Trajectory,'D:/Temp/TestOut.src')
y esos es cómo se crea:
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))


== Tutorials ==
== Tutorials ==
* [[6-Axis_Robot/es|6-Axis_Robot]]
* [[Robot 6-Axis/es|Robot de 6 ejes]]
* [[VRML Preparation for Robot Simulation/es|VRML Preparation for Robot Simulation]]
* [[VRML Preparation for Robot Simulation/es|VRML Preparation for Robot Simulation]]


{{docnav/es|Drawing Module/es|Raytracing Module/es}}


{{Docnav/es
[[Category:User Documentation/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
}}


{{Robot Tools navi{{#translation:}}}}

{{Userdocnavi{{#translation:}}}}
<languages/>
[[Category:Workbenches{{#translation:}}]]

Latest revision as of 06:38, 16 July 2021

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 Foro de FreeCAD.

La razón por la que este ambiente de trabajo está todavía en el código fuente maestro es porque este ambiente de trabajo está programado en C++. Si este ambiente de trabajo pudiera ser programado en Python, entonces podría convertirse en un Ambiente de trabajo externo y podría ser movido a un repositorio separado.

Introducción

El icono del Ambiente de trabajo Robot

El Ambiente de trabajo de robots es una herramienta para simular un Robot de 6 ejes industrial estándar, como Kuka.

Puede realizar las siguientes tareas:

  • Configurar un entorno de simulación con un robot y piezas de trabajo.
  • Crear y rellenar trayectorias de movimiento.
  • Descomponer las características de una pieza CAD en una trayectoria.
  • Simular el movimiento del robot y la distancia de alcance.
  • Exportar la trayectoria a un archivo de programa de robot.

Para empezar, prueba el Tutorial de robots, y mira la interfaz de programación en el archivo de ejemplo RobotExample.py.

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

Trayectorias

Herramientas para crear y manipular trayectorias. Existen dos tipos, las paramétricas y las no paramétricas.

Trayectorias no paramétricas

Trayectorias Paramétricas

Archivos de guión

Ver el Ejemplo de la API del Robot para ver una descripción de las funciones utilizadas para modelar los desplazamientos del robot.

Tutorials