Robot Workbench/es: Difference between revisions

From FreeCAD Documentation
(Created page with "Genera más. La trayectoria siempre encuentra automáticamente un nombre único para los puntos de paso")
No edit summary
 
(69 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.


== Tutorials ==
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.
* [[Robot 6-Axis/es|Robot de 6 ejes]]
Trabaja principalmente con los tipos básicos de Ubicación, Vector y Matriz. Así que necesitamos sólo:
* [[VRML Preparation for Robot Simulation/es|VRML Preparation for Robot Simulation]]
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"))
create a trajectory
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:
print t.Waypoints
del rob,Start,t,l,w
=== working with the document ===


Working with the robot document objects:
first create a robot in the active document
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)
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
retrieve the Tcp position
pos = FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp
move the robot
pos.move(App.Vector(-10,0,0))
FreeCAD.getDocument("Unnamed").getObject("Robot").Tcp = pos
create an empty Trajectory object in the active document
App.activeDocument().addObject("Robot::TrajectoryObject","Trajectory")
get the Trajectory
t = App.activeDocument().Trajectory.Trajectory
add the actual TCP position of the robot to the trajectory
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:
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
=== Simulation ===
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
from KukaExporter import ExportCompactSub
ExportCompactSub(App.activeDocument().Robot,App.activeDocument().Trajectory,'D:/Temp/TestOut.src')
and that's kind of how it's done:
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))


{{Docnav/es
== Tutorials ==
|[[Reverse_Engineering_Workbench/es|Ambiente de trabajo Ingeniería inversa]]
* [[6-Axis_Robot|6-Axis_Robot]]
|[[Sketcher_Workbench/es|Ambiente de trabajo Croquizador]]
* [[VRML Preparation for Robot Simulation|VRML Preparation for Robot Simulation]]
|IconL=Workbench_Reverse_Engineering.svg
|IconR=Workbench_Sketcher.svg
}}


{{Robot Tools navi{{#translation:}}}}
{{docnav|Arch Module|Macros}}
{{Userdocnavi{{#translation:}}}}

[[Category:User Documentation]]
[[Category:Workbenches{{#translation:}}]]


<languages/>

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