Logo Studenta

Práctica 6_RoboDk_python_funtions

¡Estudia con miles de materiales!

Vista previa del material en texto

Laboratorio de Robótica Industrial Facultad de Ingeniería en Electricidad y 
Computación 
PRACTICA #6 
TEMA: PROGRAMACION PICK AND PLACE EN ROBODK 
CON LENGUAJE DE PROGRAMACION PYTHON 
 
1. Objetivos 
• Familiarización del lenguaje Python en RoboDk. 
• Aprender a programar en Python para realizar diferentes acciones en la 
estación de trabajo con el robot. 
• Realizar un pick and place mediante funciones de Python. 
• Interpretar funciones que proporciona el software Robodk. 
 
2. Marco teórico 
• RoboDK es un software para simulación y programación fuera de línea. La 
programación fuera de línea significa que los programas de robot se pueden 
crear, simular y generar fuera de línea para un brazo de robot y un controlador 
de robot específicos. RoboDK contiene un menú principal, una barra de 
herramientas, una barra de estado y la pantalla principal. El árbol de la 
estación en la pantalla principal contiene todos los elementos disponibles en 
la estación, como robots, marcos de referencia, herramientas, programas, 
etc. El robot que se usará en la práctica será Kawasaki RS03N, para realizar 
varias pruebas con el software RoboDK 
• La programación fuera de línea no tiene límites con RoboDK. Este software 
proporciona una interfaz gráfica de usuario fácil de usar para simular y 
programar robots industriales. RoboDK te ayudará a evitar singularidades y 
límites de ejes. No se requiere experiencia en programación. Más 
información disponible en la sección de Programación fuera de línea de la 
documentación (https://robodk.com/doc/en/Getting-Started.html). 
• Con la API de RoboDK también puede programar y simular robots usando 
Python. Python es un lenguaje de programación que le permite trabajar más 
rápido e integrar sus sistemas de manera más efectiva. Python permite 
expresar conceptos en menos líneas de código en comparación con otros 
idiomas, por lo que es fácil y fácil de aprender. 
• Más información disponible en la sección de RoboDK API de la 
documentación. La API de RoboDK también está disponible para C # y 
Matlab. 
https://robodk.com/doc/en/Robot-Programs.html#OfflineProgramming
https://robodk.com/doc/en/Robot-Programs.html#OfflineProgramming
https://robodk.com/doc/en/Robot-Programs.html#OfflineProgramming
https://robodk.com/doc/en/Robot-Programs.html#OfflineProgramming
https://robodk.com/doc/en/Robot-Programs.html#OfflineProgramming
https://robodk.com/doc/en/Robot-Programs.html#OfflineProgramming
https://www.python.org/
https://www.python.org/
https://robodk.com/doc/en/RoboDK-API.html#RoboDKAPI
https://robodk.com/doc/en/RoboDK-API.html#RoboDKAPI
https://robodk.com/doc/en/RoboDK-API.html#RoboDKAPI
https://robodk.com/doc/en/RoboDK-API.html#RoboDKAPI
https://robodk.com/doc/en/RoboDK-API.html#RoboDKAPI
https://robodk.com/doc/en/RoboDK-API.html#RoboDKAPI
https://robodk.com/doc/en/RoboDK-API.html#CsAPI
https://robodk.com/doc/en/RoboDK-API.html#CsAPI
https://robodk.com/doc/en/RoboDK-API.html#CsAPI
https://robodk.com/doc/en/RoboDK-API.html#CsAPI
https://robodk.com/doc/en/RoboDK-API.html#CsAPI
 
Laboratorio de Robótica Industrial Facultad de Ingeniería en Electricidad y 
Computación 
 
 
 
 
3. Descripción. 
En esta práctica se realizará un movimiento Pick and Place mediante 
programación Python en RoboDK. Además, se interpretarán algunas funciones 
que el programa proporciona con el objetivo de aprender a interpretar un código 
externo. 
3.1 Seleccionar un Robot 
Se pueden agregar nuevos robots desde un disco local o desde la biblioteca en 
línea: 
 
3. Abrir. El robot debería aparecer automáticamente en la estación en unos 
segundos. 
 
Desde la biblioteca en línea: 
 
1. Seleccione Archivo ➔ Abrir biblioteca en línea (Ctrl + Shift + O). 
Aparecerá una nueva ventana anidada que muestra la biblioteca en línea. 
También es posible seleccionar el botón correspondiente en la barra 
de herramientas. 
 
 
Desde un disco local: 
1. Seleccione Archivo 
➔ 
 Abrir 
2. Escoger uno de los Robot disponibles en el di s co local. 
 
Figura 1. Disco Local 
 
Laboratorio de Robótica Industrial Facultad de Ingeniería en Electricidad y 
Computación 
2. Use los filtros para encontrar su robot por marca, carga útil, etc. En este 
ejemplo, usaremos un robot Kawasaki RS03N. 
3. Seleccione Descargar. El robot debería aparecer automáticamente en la 
estación en unos segundos. 
4. La biblioteca en línea se puede cerrar una vez que se carga el robot 
 
Alternativamente, también es posible descargar los archivos del robot (extensión 
.robot) desde el sitio web: https://robodk.com/library y abrirlos en RoboDK 
arrastrando y soltando el archivo en la ventana principal o mediante 
seleccionando Archivo➔ Abrir. 
 
3.2 Interfaz 
• El menú principal se encuentra en la parte superior. Todas las acciones 
y opciones disponibles están disponibles en este menú. 
• La barra de herramientas contiene iconos gráficos que permiten un 
acceso rápido a las acciones utilizadas con frecuencia en el menú. Más 
información disponible en la sección de la barra de herramientas . 
• El árbol de la estación enumera todos los componentes (elementos) que 
están presentes en la estación. Estos elementos pueden ser robots, 
herramientas, objetos, objetivos o configuraciones específicas para fines 
de fabricación o calibración. El árbol permite comprender y modificar la 
dependencia que existe en el entorno real. Por ejemplo, un objetivo se 
puede adjuntar a un marco de referencia específico, este marco de 
referencia se puede adjuntar al marco base del robot, las herramientas 
del robot generalmente se adjuntan al robot, etc. 
• La barra de estado se encuentra en la parte inferior y puede mostrar 
consejos útiles para ciertas operaciones. 
• La vista 3D (Pantalla principal) muestra la vista en un entorno virtual 3D 
y reproduce el Árbol de estaciones con su jerarquía. 
• Al hacer doble clic en un elemento (en el árbol o en la vista 3D) se 
mostrará una nueva ventana con las propiedades del elemento. Por 
ejemplo, al hacer doble clic en un robot se mostrará el Panel de robots. 
Estas ventanas se pueden cerrar seleccionando la cruz en la parte 
superior derecha de la ventana secundaria. 
 
https://robodk.com/library
https://robodk.com/library
https://robodk.com/library
https://robodk.com/library
https://robodk.com/library
https://robodk.com/doc/en/Interface.html#MainMenu
https://robodk.com/doc/en/Interface.html#MainMenu
https://robodk.com/doc/en/Interface.html#MainMenu
https://robodk.com/doc/en/Interface.html#MainMenu
https://robodk.com/doc/en/Interface.html#MainMenu
https://robodk.com/doc/en/Basic-Guide.html#Toolbar
https://robodk.com/doc/en/Basic-Guide.html#Toolbar
https://robodk.com/doc/en/Basic-Guide.html#Toolbar
https://robodk.com/doc/en/Interface.html#RobotPanel
https://robodk.com/doc/en/Interface.html#RobotPanel
https://robodk.com/doc/en/Interface.html#RobotPanel
https://robodk.com/doc/en/Interface.html#RobotPanel
 
Laboratorio de Robótica Industrial Facultad de Ingeniería en Electricidad y 
Computación 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4. Procedimiento 
Se procederá con el ejemplo Pick and place with Laser Sensor de RoboDK. 
 
El ejemplo cuenta con cuatro secciones de códigos. A continuación, se dará una breve 
explicación de las funciones más importantes de cada uno. 
 
• SetSimulationParams 
Esta sección es la encargada de solicitarle información al usuario para el 
funcionamiento del programa. 
Como se observa en la Figura 2, a través del comando mbox se le solicita al 
usuario que ingrese: 
1. El tamaño de las cajas indicando: largo, ancho y alto. 
2. El tamaño del pallet. Esto será un arreglo de 3 valores en donde se 
detallará la siguiente información en el orden mostrado: numero de 
columnas del lote, numero de filas del lote y numero de pisos dellote. 
3. Velocidad de la banda transportadora en mm/s. 
 
Observación: El comando mbox permite la aparición de una ventana en la 
pantalla principal de RoboDK donde el usuario podrá ingresar la información 
que se le solicite. 
Figura 1: Interfaz Robodk 
 
Laboratorio de Robótica Industrial Facultad de Ingeniería en Electricidad y 
Computación 
 
Figura 2: Código – SetSimulationParams 
• PrepareSimulation 
Esta sección de código se encarga de adquirir la información del apartado 
anterior para procesarla y empezar con el proceso. 
 
En la Figura 3 se muestra la parte del código encargada de adquirir la 
información del código anterior. 
 
Figura 3: Adquisicion de datos de la seccion SetSimulationParams 
 
En la Figura 4 se encuentra la función “box_calc” que tiene como parámetros 
de entrada las dimensiones de la caja y del tamaño del pallet. 
Esta función, se encarga de crear un arreglo de posiciones de las cajas a partir 
de la información ingresada. 
Finalmente, el valor que retorna es una lista donde se detalla la posicion de 
cada caja en el pallet. 
 
Figura 4: Funcion box_calc 
 
Laboratorio de Robótica Industrial Facultad de Ingeniería en Electricidad y 
Computación 
En la Figura 5 se detalla la función “parts_setup” encargada de la configuración 
de los objetos. 
Esta sección tiene como parámetros de entrada el sistema de referencia de 
donde se encuentran ubicadas las cajas, las posiciones de las cajas y sus 
dimensiones. 
Como se observa, a partir del parámetro positions (que es el arreglo de 
posiciones calculado en la función anterior) se le calcula su tamaño para así, 
definir cuantas cajas tiene el lote de producción. 
Se realiza una secuencia for para ir modificando los parámetros de cada caja en 
función del numero que se calculó previamente. 
La última línea de código es para configurar el color de las cajas en función del 
código RGB (Red-Green-Blue). El parámetro A representa la visibilidad de las 
cajas. 
 
Figura 5: Funcion - parts_setup 
 
• RobotA_GetParts 
Esta sección será la encargada de tomar las cajas del PalletA y colocarlas en la 
banda transportadora. 
Se asignan los elementos involucrados para este procedimiento (Robot, 
herramienta y los sistemas de referencia) 
 
Figura 6: Asignación de elementos asociados al procedimiento. 
 
 
 
Laboratorio de Robótica Industrial Facultad de Ingeniería en Electricidad y 
Computación 
Tanto para la parte del código del Robot A como del Robot B se empieza con la 
adquisición de los datos obtenidos por la función SetSimulationParams y una 
inicialización de las funciones descritas anteriormente 
 
La Figura 7 muestra las funciones encargadas de abrir y cerrar la pinza para 
sostener los objetos. Esto se realizará en función de la herramienta que se le 
ingrese como parámetro de entrada. 
 
Figura 7: Funciones TCP_On y TCP_Off 
La figura 8 muestra el código principal para esta parte del procedimiento. Se 
empieza calculando el número de cajas del lote de producción que será la 
condición del lazo while para determinar el número de iteraciones del 
procedimiento. 
Luego, se encuentra el segmento encargado de adquirir la pieza en el pallet y 
finalmente dejarla en la banda transportadora. 
 
Figura 8: Código principal - RobotA_GetParts 
 
 
Laboratorio de Robótica Industrial Facultad de Ingeniería en Electricidad y 
Computación 
• RobotB_GetParts 
Esta sección será la encargada de tomar las cajas de la banda transportadora y 
colocarlas en el PalletB 
 
El código utilizado en esta sección es muy parecido al del RobotA con la 
diferencia que cuenta con la función WaitSensor que se describe en la Figura 9; 
la cual será la encargada de detectar la presencia de un objeto en la banda 
transportadora para posteriormente recogerlo y dejarlo en el PalletB 
 
Figura 9: Funcion - WaitSensor

Continuar navegando