integraciÓn de plataforma robÓtica mÓvil en sistema de …

83
TRABAJO DE FINAL DE GRADO Grado en Ingeniería Electrónica Industrial y Automática INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE ENSAMBLAJE ACADÉMICO Memoria Autor/a: Hidalgo Vélez, Justin Geovanny Director/a: Ponsa Asensio, Pedro Co-Director/a: Tornil Sin, Sebastián Convocatoria: Junio 2021

Upload: others

Post on 14-Jul-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

TRABAJO DE FINAL DE GRADO

Grado en Ingeniería Electrónica Industrial y Automática

INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN

SISTEMA DE ENSAMBLAJE ACADÉMICO

Memoria

Autor/a: Hidalgo Vélez, Justin Geovanny Director/a: Ponsa Asensio, Pedro Co-Director/a: Tornil Sin, Sebastián Convocatoria: Junio 2021

Page 2: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Resumen

Este proyecto integra la plataforma móvil Robotino® de FESTO en la cadena de montaje FAS200 de

SMC. El nexo entre ambos sistemas es el robot SCARA Mitsubishi RH-3FH5515-D1-S15, que recoge el

producto ensamblado y lo paletiza en la plataforma móvil para su posterior transporte a las zonas de

reposición de las estaciones FAS200.

Para formar un sistema compacto y coordinado se han adoptado soluciones de hardware para el

acoplo entre Robotino, SCARA, FAS200 y un operario de planta.

A nivel software se ha programado en el entorno gráfico Robotino®View 4 el funcionamiento íntegro

de Robotino, en RT Toolbox 2 la programación del robot RH-3FH5515-D1-S15 y en Arduino IDE la placa

NodeMCU ESP32 para una comunicación vía WiFi entre Robotino® y SCARA mediante el protocolo

UDP.

Esta memoria detalla los pasos anteriores, así como los problemas encontrados en el transcurso, con

el objetivo de crear documentación práctica y provechosa para la elaboración de futuros proyectos.

Última modificación de este documento: 16 de junio de 2021

Page 3: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

i

Resum

Aquest projecte integra la plataforma mòbil Robotino® de FESTO a la cadena de muntatge FAS200 de

SMC. El nexe entre els dos sistemes és el robot SCARA Mitsubishi RH-3FH5515-D1-S15, que recull el

producte acabat i el paletitza a la plataforma mòbil per al seu posterior transport a les zones de

reposició de les estacions FAS200.

Per formar un sistema compacte i coordinat s'han adoptat solucions hardware per al acoblament entre

Robotino, SCARA, FAS200 i un operari de planta.

A nivell software s'ha programat a l'entorn gràfic Robotino®View 4 el funcionament íntegre de

Robotino, en RT Toolbox 2 la programació del robot RH-3FH5515-D1-S15 i en Arduino IDE la placa

NodeMCU ESP32 per a una comunicació via WiFi entre Robotino ® i SCARA mitjançant el protocol UDP.

Aquesta memòria detalla els passos anteriors, així com els problemes trobats en el transcurs, amb

l'objectiu de crear documentació pràctica i profitosa per a l'elaboració de futurs projectes.

Darrera modificació d'aquest document: 16 de juny de 2021

Page 4: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

ii

Abstract

This project integrates the FESTO mobile platform Robotino® into SMC's FAS200 assembly line. The

connection between both systems is the Mitsubishi RH-3FH5515-D1-S15 SCARA robot, which picks up

the assembled product and palletises it on the mobile platform to transport them to the replenishment

areas of the FAS200 stations.

To form a compact and coordinated system, hardware solutions have been created to join together

Robotino, SCARA, FAS200 and a plant operator.

Different software has been used. Robotino has been programmed in the Robotino®View 4 graphical

environment, RT Toolbox 2 to programme the RH-3FH5515-D1-S15 robot and Arduino IDE for the

NodeMCU ESP32 development board to establish a communication via WiFi between Robotino ® and

SCARA using the UDP protocol.

This report explains all this steps in detail, as well as the problems throughout the progress, with the

aim of creating practical and useful documentation for the development of future projects.

Last modification of this document: June 16, 2021

Page 5: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

iii

Agradecimientos

A mi familia que ha sido el motor emocional, motivacional y económico durante estos años. Así mismo,

a los profesores que lejos de hacer su trabajo, te ayudan, instruyen y guían de forma altruista y a

aquellos amigos de los que he aprendido y he contado con su apoyo tanto en el ámbito estudiantil

como en el personal.

En relación a este proyecto quiero dar las gracias a los tutores por darme la oportunidad de realizar

este proyecto y su ayuda a lo largo de este mismo. Por último y no menos importante a los maestros

de taller del departamento de electrónica por su ayuda y suministro de material para el diseño

hardware de algunos elementos.

Page 6: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

iv

Índice

1. INTRODUCCIÓN _________________________________________________ 1

1.1. Origen del trabajo .................................................................................................... 1

1.2. Objetivos del trabajo ............................................................................................... 1

2. MARCO CONCEPTUAL ____________________________________________ 2

2.1. Sistema de ensamblaje académico FAS200 ............................................................ 2

2.2. ROBOTINO® 4.0 ....................................................................................................... 4

2.2.1. Información general ................................................................................................ 4

2.2.2. Hardware ................................................................................................................. 5

2.2.3. Software .................................................................................................................. 8

2.3. Mitsubishi RH-3FH-D ............................................................................................. 11

2.3.1. Controlador CR750-D ............................................................................................ 13

2.3.2. Consola de programación R32TB .......................................................................... 14

2.3.3. Elemento terminal ................................................................................................ 16

2.3.4. Caja de conexiones ............................................................................................... 16

2.3.5. RT Toolbox2........................................................................................................... 17

2.4. Descripción del proceso......................................................................................... 19

2.5. Protocolo de comunicación UDP ........................................................................... 21

2.5.1. Arquitectura .......................................................................................................... 21

2.5.2. Internet Protocol (IP) ............................................................................................ 23

2.5.3. Características ....................................................................................................... 24

2.5.4. Descripción técnica ............................................................................................... 24

3. MARCO EXPERIMENTAL _________________________________________ 26

3.1. Diseño de la estación ............................................................................................. 26

3.1.1. Contexto de uso .................................................................................................... 26

3.1.2. Soluciones adoptadas ........................................................................................... 26

3.2. Distribución de los elementos en la estación ....................................................... 37

3.3. Desarrollo software ............................................................................................... 39

3.3.1. Programación del NodeMCU en Arduino IDE ...................................................... 39

3.3.2. Programación en Robotino®View4 ....................................................................... 48

3.3.3. Programación en MELFA IV .................................................................................. 65

Page 7: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

v

4. CONCLUSIONES ________________________________________________ 67

5. PRESUPUESTO Y/O ANÁLISIS ECONÓMICO __________________________ 69

6. BIBLIOGRAFÍA __________________________________________________ 71

Page 8: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …
Page 9: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

1

1. Introducción

En este estudio se exploran y se ponen en práctica las diversas funcionalidades de la plataforma móvil

Robotino® en base a una metodología empírica, es decir, el aprendizaje autodidacta basado en la

experimentación y con el apoyo de los recursos de información al alcance, tales como documentación,

videos o proyectos similares.

1.1. Origen del trabajo

La idea del proyecto surge de la asignatura de Integración de Sistemas Automáticos [1]. En esta

asignatura se imparten conocimientos de regulación automática y técnicas de control aplicadas a la

automatización industrial. Esta aplicación se realiza mediante el estudio del sistema de ensamblaje

académico FAS200, presente en el laboratorio de automática de la Escuela de Ingeniería Barcelona

Este.

Surge la necesidad de almacenar y transportar el producto resultante de la cadena de montaje, hasta

ahora llevado a cabo manualmente. Con la adquisición de la plataforma móvil Robotino® se plantea su

participación en esta tarea en coordinación con el autómata presente en el laboratorio, el robot SCARA

RH-3FH-D de Mitsubishi.

1.2. Objetivos del trabajo

El principal objetivo es cerrar la cadena de montaje del sistema de ensamblaje académico cuya

motivación subyacente es facilitar las funciones de reposición y automatizar la recogida del material

proveniente de la estación FAS200. Para ello el robot SCARA RH-3FH-D recogerá el producto acabado

de la cinta de la estación FAS200 y lo depositará en la plataforma móvil que posteriormente se dirigirá

al principio de la cadena de montaje.

De este objetivo surgen objetivos complementarios. La asimilación y ejecución de los conocimientos

previos de robótica adquiridos durante la carrera para aplicarlos a los dos autómatas, objeto del

estudio, así como formarse y crear documentación útil para futuros proyectos de la escuela.

Page 10: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

2

2. Marco conceptual

2.1. Sistema de ensamblaje académico FAS200

El sistema FAS200 es un sistema de ensamblaje automático. Este sistema está compuesto por hasta 18

módulos/estaciones donde cada uno de ellos desempeña una parte del proceso de montaje. Dado el

diseño de este sistema cabe la posibilidad de ir añadiendo estaciones en función del producto que se

desea obtener, dotando al sistema de mayor flexibilidad.

A través de estas estaciones, se lleva a cabo el ensamblaje de un mecanismo de giro. Las distintas

estaciones están adaptadas para el montaje de una gran diversidad de conjuntos, introduciendo

variaciones en los materiales, colores y tamaños de las piezas. La combinación de todas estas

posibilidades permite obtener hasta un total de 24 conjuntos diferentes [2].

Figura 1.Sistema de ensamblaje académico FAS200 del laboratorio de automática (Fuente: propia)

Las estaciones que se disponen en el laboratorio de la universidad son las siguientes según el orden de

producción:

• FAS201: es el módulo de alimentación/verificación de la base.

• FAS202: módulo de rechazo/transferencia de la paleta. Trabaja de manera conjunta con la

FAS201.

• FAS203: módulo de alimentación/transferencia de rodamientos.

Page 11: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

3

• FAS204: módulo de medición/transferencia de rodamientos. Trabaja de manera conjunta

con la FAS203.

• FAS207: módulo alimentación y clasificación de ejes

• FAS208: módulo de rechazo/transferencia de ejes. Trabaja de manera conjunta con la

FAS207.

• FAS230: esta estación es un módulo de transfer lineal, es decir un sistema de transporte. Se

encarga de transportar las paletas por las diferentes estaciones.

El sistema con el que se trabaja en el laboratorio, dado que la paleta y la base siempre es la misma, es

capaz de producir 4 productos distintos combinando el rodamiento bajo o alto con un eje de aluminio

o de nylon. Es el operario quién puede decidir el tipo de producto que producir.

Además, el operario debe cumplir con la función de reponedor en las estaciones de alimentación y de

recoger la pieza acabada y el palé al final de sistema de transfer lineal.

Figura 2. Producto ensamblado en la estación FAS208

Page 12: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

4

2.2. ROBOTINO® 4.0

Figura 3. Plataforma móvil ROBOTINO® de FESTO (Fuente:[3])

2.2.1. Información general

Robotino es una plataforma móvil orientada a la educación e investigación en diversos campos como,

por ejemplo, la mecatrónica, la programación, el control y el procesamiento de imágenes entre otros.

Las características principales se presentan en la siguiente tabla. [3]

Tabla 1. Características de la plataforma móvil ROBOTINO® de FESTO (Fuente:[3])

Característica Valor

Altura 325 mm

Diámetro 450 mm

Peso total (peso en vacío) 20 kilogramos

Peso total (4 paquetes de baterías) 22,8 kg (aprox.700 g cada acumulador)

Carga útil máxima 30 kg (centrado)

Protección IP IP 00

Voltaje de la batería 18 V

Material de la carcasa acero inoxidable, PA6

Grados de libertad 3 (traslativo en la dirección x e y, rotacional sobre el eje z)

Page 13: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

5

2.2.2. Hardware

2.2.2.1. Unidad de control

Robotino es un ordenador personal Intel i5 8ª generación, reloj de 2,5 GHz, hasta 4,2 GHz en modo

Turbo y 4 núcleos físicos. Su sistema operativo es Linux Ubuntu de 64 bits con una memoria RAM de

8GB y un disco duro SSD de 64GB. [4]

Este hardware nos permite trabajar de forma independiente con el robot. Para acceder al sistema

únicamente es necesario conectar a las interfaces un monitor de entrada HDMI, un ratón y un teclado.

Dichas interfaces integradas en el robot se explican en detalle en el apartado 2.2.2.4.

2.2.2.2. Sistema de accionamiento

Robotino tiene tres motores de corriente continua [5], bajo la regulación de un microcontrolador de

32 bits, asignados a tres unidades de accionamiento; ruedas omnidireccionales [6] que trabajan de

forma individual y que por lo tanto permiten el movimiento en todas las direcciones del plano xy y

rotación en el eje z.

Cada motor cuenta con un encoder incremental [7] que permite variar la velocidad y que además se

utiliza para determinar la posición del sistema móvil

2.2.2.3. Sensores

Robotino cuenta con varios sensores integrados o de fácil instalación gracias a su interfaz de entradas

y salidas. Algunos de estos sensores son:

- Bumper: el sensor de protección contra colisiones, o bumper, es una banda de plástico unida

al borde inferior del chasis. Dentro se encuentran dos áreas conductoras separadas que se

cortocircuitan al presionar, por ejemplo, en caso de colisión, generando de esta manera una

señal que interrumpe la ejecución del programa y el movimiento.

Figura 4. Sensor de protección contra colisiones o bumper (Fuente:[8])

Page 14: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

6

- Sensores de distancia: los 9 sensores infrarrojos, repartidos cada 40º en la zona inferior del

chasis, permiten medir precisamente distancias de 4 a 30 cm. Estos sensores analógicos

proporcionan una tensión de salida cuya magnitud depende de la distancia al objeto, podemos

encontrar las gráficas para esta parametrización en la hoja de datos [9].

Figura 5. Sensor de distancia del fabricante SHARP (Fuente:[10])

- Giroscopio: Los giroscopios miden las velocidades angulares basándose en la conservación del

momento angular, su señal se utiliza para corregir la determinación de la posición basada en

el sistema de accionamiento aumentando así la precisión del posicionamiento. [11]

- Cámara RGBD: uno de los componentes más avanzados e importantes del Robotino es la

cámara de profundidad Intel® RealSense™ D435. Por un lado, es una cámara web convencional

que transmite imagen en directo y que es de gran utilidad para la navegación y la detección de

obstáculos. Por otro lado, incorpora un proyector de infrarrojos y 2 lectores de imágenes de

infrarrojos, que registran los valores de profundidad para cada píxel de la imagen. Los valores

3D capturados se proyectan en un plano 2D horizontal para determinar la distancia a los

obstáculos como en un escaneo láser 2D. [12]

Figura 6. Esquema de la cámara RGBD D435 (Fuente:[12])

- Sensor óptico: El dispositivo fotoeléctrico funciona con la emisión y recepción de luz roja

visible. Se detecta la luz reflejada cuya reflectancia cambia según las diferentes superficies y

colores. Los sensores se pueden utilizar para guiar a Robotino a lo largo de una ruta definida o

para detenerse en una posición específica con alta precisión. [13]

- Sensor inductivo: el sensor inductivo se utiliza para detectar objetos metálicos, su instalación

preferida es en la base del robot apuntando hacia el suelo para, por ejemplo, controlar la

trayectoria en un seguimiento de pista metálica. [14]

Page 15: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

7

2.2.2.4. Interfaces

La interfaz física de Robotino nos permite interactuar con la unidad de control. Esta interfaz está

compuesta por:

- Punto de acceso WLAN: mediante el punto de acceso WiFi se puede conectar un Smartphone,

Tablet o PC y controlar el robot externamente ya sea por su interfaz web u otros medios de

programación que se explican en el apartado de software. Este punto de acceso [15] se debe

conectar a la entrada ethernet y una entrada USB del Robotino.

- Interfaz de E/S: La interfaz de entradas y salidas de Robotino permite conectar extensiones

como sensores y actuadores. La interfaz proporciona entradas/salidas digitales a 24V con

protección de sobrecarga y cortocircuito, entradas analógicas de 0-10V y salidas relé de 24V,

así como conexiones de alimentación de 24V con un máximo de 3A.

- Motor/codificador: Robotino cuenta con una cuarta salida de potencia para el control de un

motor externo, así como una entrada adicional para un codificador. La salida es básicamente

un puente en H que suministra hasta 5A de corriente, dicho puente se controla con una señal

PWM y un bit de dirección.

- USB: existen 4 puertos USB 3.0 (azules) y 2 puertos USB 2.0 (negros). Se pueden usar para

conectar el punto de acceso, la cámara, un ratón, un teclado, etc.

- PCI-Express: para incrementar las funcionalidades de la unidad de control Robotino cuenta con

dos ranuras PCI (Peripheral Component Interconnect), un bus que nos permite conectar

periféricos directamente a la placa base. Las tarjetas de expansión pueden ser de puertos, de

red cableada, de video, entre otros. [16]

- Ethernet: con esta interfaz nos podemos conectar directamente a la red de área local del

Robotino para transmitir datos de forma cableada.

- HDMI: con la salida HDMI se puede conectar un monitor para acceder directamente al sistema

del Robotino.

2.2.2.5. Fuente de alimentación

Robotino se puede alimentar de hasta 4 baterías que suministran en paralelo 18 V CC, 5.2Ah y que

otorgan al robot una autonomía de hasta 10 horas. Con una capacidad de 4 baterías, Robotino requiere

un mínimo de 1 batería para su funcionamiento. Estas baterías de litio se recargan con la estación de

carga rápida TCL6 de Festool en muy poco tiempo. [17]

2.2.2.6. Módulos [3]

- Torre principal: este prisma triangular de acero de 60 cm de alto permite el montaje de más

módulos a diferentes niveles.

Page 16: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

8

- Segmento: un segmento es una base de acero que se acopla a la torre y permite el montaje de

otros módulos y sensores en su superficie.

- Escáner láser: permite la generación, localización y navegación de mapas, así como la

detección de obstáculos mediante la detección digital de objetos en un plano. [18]

- Pinza eléctrica: con una fuerza de agarre de 140N, la pinza reconoce las piezas de trabajo entre

sus mordazas mediante una barrera de luz integrada. Además, puede determinar su estado

con los sensores de fin de carrera y su posición evaluando la corriente del motor.

- Carretilla elevadora: la carretilla elevadora nos permite realizar funciones de logística

automatizada. Puede soportar una carga máxima de 4 Kg y dispone de un sensor de

proximidad para el control de la posición final. La conexión se realiza mediante la interfaz del

motor/codificador adicional.

- Torre pequeña: prisma triangular formada de acero inoxidable permite ajustar la altura de los

demás componentes a la altura deseada a diferencia de la torre principal.

- Caja de interfaz: su función es expandir la capacidad de entradas y salidas al Robotino. Además,

cuenta con salidas a 5V para sensores que operen a ese voltaje.

- Lámpara de señalización: esta lampara RGB se puede ajustar a 7 colores diferentes fijos o

intermitentes y su función es indicar el estado del robot.

- Estación de carga: existe una estación de carga que nos facilita el proceso de carga de las

baterías. El proceso de instalación se encuentra en [4]

2.2.3. Software

Podemos dividir el software de manejo de Robotino en tres partes, la interfaz web, la programación, y

la simulación.

La interfaz web es un entorno accesible mediante el navegador web de un ordenador, tableta o móvil.

Para ello tendremos que estar conectados al punto de acceso y entrar la dirección IP que se adjunta

con el robot en la barra del navegador. Esta interfaz proporciona un medio para el control,

configuración y mantenimiento del sistema. En concreto podemos observar diferentes pantallas en la

barra de navegación superior del menú.

- Inicio: se detalla la versión hardware y software y la gestión de la alimentación como el estado

de las baterías.

- Programa: en esta página aparecen lo programas en la CPU de Robotino. Des de aquí se

pueden ejecutar, cargar o eliminar programas

- Configuración: En la página de configuración, puede realizar ajustes a medida que se ejecuta

el programa cuando se inicia Robotinos.

- Red: aquí se configura la red ethernet y/o la red WiFi

Page 17: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

9

- Control: esta página presenta una imagen de la cámara en tiempo real. Pasando el dedo por

encima de la imagen se puede controlar el robot como si de un joystick se tratara.

- Servicio: se puede ver los procesos en ejecución en Robotino e iniciarlos y detenerlos. Cada

cambio solo se muestra haciendo clic en el botón 'Recargar'.

- Entradas y salidas: muestra el estado de la interfaz de E/S y permite configurar las salidas

digitales y los relés.

Figura 7. Captura de la interfaz web de ROBOTINO® (Fuente: propia)

Robotino está abierto a varios lenguajes de programación tales como C, C++, Java, MATLAB, LabVIEW

y ROS entre otros[19]. Esta característica hace de Robotino un robot versátil en este ámbito. Además

de estos lenguajes estándar Robotino cuenta con dos interfaces gráficas de programación, Robotino

Factory y Robotino View, que será el entorno de programación de este proyecto y que explicaremos

en detalle a continuación.

Una gran ventaja que nos ofrece gratuitamente el fabricante, FESTO, es la posibilidad de simular el

comportamiento del robot, así como todos los sensores integrados, en un entorno de experimentación

virtual, Robotino SIM. Este entorno puede ser controlado por cualquiera de los lenguajes mencionados

con anterioridad. Existe también la versión premium, Robotino SIM Professional, dónde se pueden

controlar más de un Robotino al mismo tiempo. [20]

Page 18: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

10

2.2.3.1. Robotino®View 4

Robotino®View 4 es un entorno de programación gráfico para Robotino®. El programa sigue una

secuencia GRAFCET dónde cada paso ejecuta un subprograma y el avance está condicionado por una

expresión booleana. La programación se basa en la interconexión de bloques de función. Las

funcionalidades de estos bloques van desde operaciones matemáticas o procesamiento de imágenes,

a el control de componentes de hardware como motores, sensores, cámara o interfaz de entradas y

salidas entre otros.

Figura 8. Menú de los bloques de función de Robotino® View 4 (Fuente: propia)

Además de estos bloques predeterminados existen también bloques definidos por el usuario que

pueden ser programadas tanto en C++ como en LUA Script [21]. De esta manera no hay funcionalidad

que escape de ser programada en esta interfaz.

Otra gran ventaja de esta herramienta es que nos permite interactuar con el robot en tiempo real ya

que se conecta al punto de acceso WiFi que incorpora el robot. Se puede ejecutar el programa entero

o de forma independiente los subprogramas y nos permite visualizar los valores de sensores, ver los

resultados de operaciones, la imagen de la cámara, velocidad, posición, etc.

Una vez programado se puede descargar el programa en la unidad de control de Robotino donde

posteriormente se pondrá en ejecución.

Page 19: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

11

Figura 9. Programa de ejemplo para el seguimiento de línea en Robotino® View 4 (Fuente: propia)

2.3. Mitsubishi RH-3FH-D

Figura 10. Robot Mitsubishi RH-3FH-D (Fuente:[22])

Al lado de la última estación del sistema de ensamblaje académico se encuentra el robot Mitsubishi

RH-3FH5515-D1-S15. De la familía RH-3FH, es un robot de tipo SCARA (por sus siglas en inglés

a Selective Compliant Assembly Robot Arm o Selective Compliant Articulated Robot Arm). Estos robots

Page 20: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

12

están diseñados especialmente para procesos de paletización rápida, clasificación precisa y perfecto

montaje dadas sus características [23].

Tabla 2. Datos técnicos del robot Mitsubishi RH-3FH-D

RH-3FH5515-D1-S15

Número de ejes 4

Carga máxima 3 kg

Radio de alcance (brazo 1 + 2) 550 mm

Carrera del husillo 150 mm

Grado de protección IP20

Controlador CR750-D

Velocidad máxima J1, J2, J3, J4 400º/s, 720º/s, 1100mm/s, 3000º/s

Repetibilidad ±0.012mm (X, Y); ±0.010mm (J3); ±0.004º (J4)

Del mismo nombre, RH-3FH5515-D1-S15, podemos descifrar algunas de estas características

Figura 11. Significado del nombre de un robot SCARA de Mitsubishi (Fuente:[24])

Page 21: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

13

2.3.1. Controlador CR750-D

Figura 12. Esquema del frontal del controlador CR750-D (Fuente:[22])

A continuación se detallan los elementos de la figura 12:

1) ON/OFF: interruptor para encendido/apagado.

2) MODE: selector que permite seleccionar el modo de operación de robot:

- AUTOMATIC: el funcionamiento del robot es controlado a través de los botones

del panel de operación del controlador.

- MANUAL: si la consola de programación está activada, el robot es controlado

desde la misma.

3) OPERATION PANEL: panel de operación, con pulsadores y display.

4) EMERGENCY STOP: pulsador de emergencia, detiene la ejecución del programa y

desactiva los servos.

5) T/B CONNECTION CONNECTOR: conector para el cable de conexión con la consola

de programación.

6) INTERFACE COVER: tapa que da acceso a conector USB que permite comunicación

y control desde PC.

7), 8) Ventilador y filtro. [22]

Figura 13. Panel de operación del controlador CR750-D (Fuente:[22])

A continuación se detallan los elementos de la figura 13:

Page 22: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

14

31) STATUS NUMBER, display que permite mostrar diferentes informaciones:

1. Override - velocidad de ejecución relativa, entre 10 y 100%.

2. Program. No. - el número de programa seleccionado (en ejecución o detenido).

3. Line No. - la línea de programa en que se encuentra la ejecución.

4. Error No. - código de error de funcionamiento.

32) CHANGE DISPLAY: permite modificar la información visualizada en el display según

el orden: Override →Program No. → Line No.

33) UP/DOWN: botones que permiten, en función de cuál sea la información activa en

el display, aumentar/decrementar la velocidad de ejecución o seleccionar un programa

entre los almacenados para su ejecución.

34) SVO ON: activa los servos (potencia para los actuadores) del robot.

35) SVO OFF: desactiva los servos.

36) START: inicia la ejecución del programa seleccionado; deben haberse activado

previamente los servos.

37) STOP: detiene instantáneamente el programa en ejecución; los servos permanecen

activados.

38) RESET: resetea el código de error y también el programa en ejecución.

39) END: detiene el programa en ejecución tras ejecutar su última instrucción

los servos permanecen activados). [22]

2.3.2. Consola de programación R32TB

La consola está diseñada para la creación, modificación, gestión y de programas. Se utiliza con el

controlador en modo manual, para mover el robot (jogging) a diferentes posiciones y enseñarle

(teaching) donde están en la realidad esas posiciones.

Page 23: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

15

Figura 14. Consola de porgramación para el controlador CR750-D (Fuente:[22])

Los principales botones de la consola, de acuerdo a la figura 14, son los siguientes [22]:

1) EMERGENCY STOP: pulsador de emergencia, detiene el programa y desactiva los

servos.

2) ENABLE/DISABLE: pulsador para habilitar/deshabilitar la consola; para que la consola

quede habilitada, el selector de modo del controlador debe encontrarse en posición

MANUAL.

3) DEADMAN SWITCH: pulsador en la parte trasera de la consola que cuando es soltado

o apretado con excesiva fuerza provoca la desactivación de los servos y por tanto la

detención del programa; debe permanecer ligeramente desplazado, hacia la izquierda o

la derecha, para realizar operaciones de movimiento (jogging) del robot.

4) DISPLAY: muestra diferentes menús e informaciones.

6) F1, F2, F3, F4: pulsadores de selección de opciones indicadas en la parte inferior del

display. En modo JOG (jogging) permiten seleccionar un modo de jog determinado.

11) SERVO: permite habilitar/deshabilitar los servos.

13) JOG: permite entrar en modo de movimiento manual o jogging. Entre los modos de

JOG se encuentran los siguientes (para seleccionar uno determinado beben utilizarse

los pulsadores F1-F4):

- JOINT – control directo del movimiento de cada articulación.

- XYZ – control del movimiento del elemento terminal en las direcciones XYZ del

sistema de referencia absoluto (base del robot).

- TOOL – control del movimiento en las direcciones XYZ del sistema de referencia de

la pinza.

Page 24: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

16

2.3.3. Elemento terminal

Figura 15. Elemento terminal del robot SCARA. (Fuente: propia)

El elemento terminal del robot SCARA fue diseñado especialmente para la función de la recogida de la

pieza ensamblada proveniente de la FAS200. Consiste en cuatro ventosas que succionan la pieza.

2.3.4. Caja de conexiones

Figura 16. Caja de connexiones para el robot SCARA (Fuente:propia)

La caja de conexiones consta de 5 entradas (conectores azules) PNP activas a nivel alto (24V) y 5 salidas

de 24V, tres de 100mA (conectores verdes) y dos salidas de potencia (conectores amarillos) de 2A.

Además, existen bornes de alimentación de 24V (rojo) y tierra (negro). [25]

Page 25: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

17

Figura 17.Esquema de las entradas y salidas de la caja de conexiones (Fuente:[25])

Estas conexiones se corresponden a las salidas (BX) y entradas (AX) del controlador según la siguiente

tabla. Las demás especificaciones técnicas se encuentran en [25].

Tabla 3. Correspondencia entre las entradas y salidas de la caja con el controlador CR750-D (Fuente:[25])

Entradas Salidas

Nº entrada Controlador Nº salida Controlador

21 A15 31 B5

20 A16 29 B7

19 A17 27 B9

18 A18 25 B11

17 A19 23 B13

2.3.5. RT Toolbox2

RT Toolbox 2 es un entorno de desarrollo para robots MELFA BASIC y se basa en el lenguaje cuyo

nombre es el mismo. Este entorno nos ofrece una interfaz entre ordenador, controlador y robot. Sin

conexión (modo offline) y online (con conexión), además se puede realizar una simulación para la

ejecución de un programa.

El primer paso en la creación de un programa es definir un espacio de trabajo o Workspace donde se

almacenarán los proyectos, se puede crear más de uno en un mismo Worksapce. Para crear un

proyecto con el robot de la universidad la configuración debe ser la siguiente:

Page 26: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

18

Figura 18. Configuración Ethernet de un proyecto en RT Toolbox 2 (Fuente:[26])

Un proyecto presenta un amplio abanico de funcionalidades, podemos ver las del modo online en la

figura 18.

Figura 19. Workspace de un proyecto en RT Toolbox 2 (Fuente: propia)

Page 27: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

19

Des del menú de ayuda podemos acceder al manual de ayuda de RT Toolbox 2 (referencia manual)

dónde se definen las funcionalidades básicas.

- Modelo del robot

- Programa: Programas escritos en el ordenador (offline) o en el controlador (online)

- Parámetros: Se establecen parámetros como el límite de movimiento, la detección de colisión,

el elemento terminal, los ejes de coordenadas, los planos límite, entre otros.

- Monitor: se puede consultar el programa en ejecución, el estado de las señales de entrada y

salida y datos de producción como el tiempo de ejecución de un programa.

- Mantenimiento: corrección de la posición de partida, cálculo de la longitud del elemento

terminal, información de los servomotores, etc.

- Simulador de E/S: simula las señales del controlador

Para crear un programa basta con hacer clic derecho sobre Program aquí nos aparece una ventana

donde haremos clic en New.

El lenguaje de programación se ha especifica en la creación del proyecto y podemos acceder a un

manual completo del lenguaje escogido MELFA BASIC IV o MELFA BASIC V des del menú de ayuda.

Dado que el lenguaje usado en las prácticas de la universidad es la versión 4 se ha escogido MELFA

BASIC IV para la programación. Una guía para la programación en este lenguaje también se encuentra

en [27] y [28].

2.4. Descripción del proceso

Para explicar el proceso se ha elaborado un modelo en 3D del laboratorio con los elementos que lo

componen, SCARA [29], controlador CR750-D [29], Robotino® [30] y el robot colaborativo UR3E [31].

El ciclo de trabajo comienza con el posicionamiento de la plataforma móvil en un punto conocido que

denominaremos punto cero. Des de esta posición con la ayuda de la navegación por odometría el robot

se desplaza hasta situarse frente a la estación del robot SCARA. Dado que los datos de posición por

odometría son muy inciertos es necesario ajustar la posición. Siguiendo el ejemplo de [32],en esta

aplicación se usa el sistema visual de marca fiducial [33]. La marca se sitúa debajo de la mesa encima

del controlador del SCARA y nos proporciona un sistema de coordenadas relativo a sí misma. La

situación de los componentes queda reflejada en la figura 19.

Page 28: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

20

Figura 20. Esquema del movimiento de Robotino® frente a la estación del robot SCARA (Fuente: propia)

Una vez delante de la marca, Robotino se ubica paralelo a la mesa y centrado con el SCARA gracias a

estas coordenadas relativas. Ahora Robotino se acerca perpendicularmente a la posición de recogida

de las bases dónde el SCARA comenzará la paletización sobre su plataforma.

La secuencia de paletizado se inicia con la detección de palé y base al final de la cinta que dará la señal

de recogida al SCARA. El primer trayecto, marcado en verde en la figura 20, es el de la base metálica

en la cinta hacia la plataforma del Robotino. Seguidamente se recoge el palé y se lleva a la mesa de

paletización dónde son almacenados (trayectoria amarilla). Este proceso se repite hasta que la

plataforma este llena. Para esto Robotino gira en el eje z y envía una señal vía WiFi, usando el protocolo

UDP que se explica más adelante, cuando está posicionado y listo, para que SCARA deposite otra base

encima.

Figura 21. Esquema de la acción de paletizado. En verde paletizado de la base, en amarillo del palé y en negro la rotación del

Robotino (Fuente: propia)

Page 29: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

21

Con la plataforma llena, Robotino retrocede y se desplaza a la estación FAS208, donde se sitúa gracias

a otra marca fiducial. Aquí espera a que un operario retire los ejes y los coloque en el alimentador de

la FAS207. Cuando el operario haya acabado activará mediante la interfaz web una señal que hará que

avance hacia la estación FAS204 dónde hay otra marca fiducial. Aquí el operario retira los cojinetes

para reponerlos en el alimentador de la estación FAS203. Siguiendo la misma metodología el robot

avanza a la estación FAS202 dónde se recogen las bases para el alimentador de la FAS201.

Este proceso queda ilustrado en la siguiente modelización 3D del laboratorio.

Figura 22. Esquema del movimiento de Robotino hacia las estaciones FAS208/4/2. (Fuente: propia)

2.5. Protocolo de comunicación UDP

La comunicación entre Robotino i SCARA se hará mediante el intercambio de datos UDP de la interfaz

Robotino® View 4 y la placa de desarrollo NodeMCU ESP32. Para entender el envío de datos mediante

este protocolo es necesario entender los conceptos básicos en los que el protocolo basa su

funcionamiento.

Se define un protocolo de comunicación como el conjunto de reglas que se establecen en el proceso

de comunicación entre dos sistemas [34]. El protocolo de datagramas de usuario basado en el

protocolo IP, UDP/IP, es un protocolo de la capa de transporte, el tercer nivel en un modelo de 4 capas.

Para entender el funcionamiento de este protocolo es necesario conocer la arquitectura del modelo y

el funcionamiento básico del protocolo subyacente, Internet Protocol (IP).

2.5.1. Arquitectura

El curso introducción al funcionamiento de las redes TCP/IP [35] explica de manera sencilla y resumida

el modelo de capas para el protocolo TCP/IP.

Page 30: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

22

2.5.1.1. Nivel de enlace

Incorpora todos los servicios necesarios para la comunicación dentro de la red a la que estamos

directamente conectados. Así pues, incorpora tanto las funcionalidades de la capa física como la de

enlace de datos del modelo OSI. Dichos sean aspectos como los niveles de señal, la codificación,

frecuencias, sincronización, reglas de transferencia y recepción de datos entre sistemas e identificación

del sistema en la red (dirección MAC).

Pongamos el ejemplo del estándar de comunicación inalámbrica WiFi IEEE 802.11X. Este estándar

define niveles de frecuencia dentro del rango de 2.4 y 5 GHz, velocidades de transmisión de 11 Mbps

hasta 600Mbps, niveles de encriptación, etc. Otros estándares conocidos son Ethernet, Token-Ring y

X-25.

2.5.1.2. Nivel de red

Esta capa cumple las funciones de la capa de red del modelo OSI. Las funciones principales de esta capa

son seleccionar el nodo al que enviar la información saliente, recibir los paquetes, tratarlos y

entregarlos a la capa superior de transporte y proveer de capacidades de detección y diagnóstico de

errores. La capa de Internet ofrece servicios de transmisión de datos "best-effort", es decir, la red hará

lo posible por entregar la información, pero esta no se puede asegurar. Si alguna aplicación requiere

de una conexión fiable, deberá ser gestionada en capas superiores. El más famoso de estos protocolos

es Internet Protocol (IP), aunque no es el único, por ejemplo, ICMP (Internet Control Message Protocol)

entre otros.

2.5.1.3. Nivel de transporte

Bajo el mismo nombre, equivale a la capa del modelo OSI. En esta capa se definen protocolos para una

comunicación extremo a extremo orientada a la conexión, el más usado TCP, y protocolos de

comunicación extremo a extremo sin conexión, mayormente usado, el protocolo UDP. Esta capa se

encarga del control de flujos (establecimiento de conexión y control de sesiones), de métodos para

establecer una comunicación fiable (retransmisión de paquetes en caso de pérdida) y de un sistema

de multiplexación basado en puertos que permiten establecer varios flujos de comunicación entre dos

dispositivos.

2.5.1.4. Nivel de aplicación

Utiliza los recursos de conectividad ofrecidos por la capa de transporte. En este nivel existen diferentes

protocolos en representación a servicios y procesos, cada uno de ellos con un puerto asignado.

Page 31: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

23

Los puertos son números de 16 bits definidos a partir de la RFC 6335 [36] y recogidos por la Autoridad

de Números Asignados en Internet (IANA por sus siglas en inglés) en [37]. Algunos de los más conocidos

y sus puertos son: HTTP (80), FTP(20), SMTP(25), DNS(53), TFTP(69), SNMP(161).

A continuación se presenta una tabla de la arquitectura previamente descrita.

Tabla 4. Arquitectura del modelo del protocolo TCP/IP. (Fuente:[38])

Aplicación HTTP FTP SMTP … DNS TFTP SNMP …

Transporte TCP UDP

Red IP

Enlace Ethernet (IEEE 802.3), WiFi (802.11), Token Ring (IEE 802.5), ADSL, X.25…

2.5.2. Internet Protocol (IP)

La principal función del protocolo IP es mover datagramas a través de un conjunto de redes

conectadas. Estos datagramas van de un dispositivo a otro a través de redes individuales basadas en la

interpretación de una dirección IP, un identificador individual y unívoco de 32 bits para cada equipo

conectado. Existen varias versiones, pero las más usadas son la versión 4 (IPv4) y 6 (IPv6).

Los datagramas se componen de una cabecera de mínimo 20 bytes y máximo 60, y de los propios datos

también llamada carga útil. La estructura de un datagrama IPv4 es la siguiente:

Figura 23. Datagrama del protocolo IP (Fuente:[39])

Cada uno de estos campos se define en el RFC 760 [40]. Así como el funcionamiento íntegro del

protocolo.

Page 32: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

24

2.5.3. Características

UDP es un servicio de comunicación sin conexión basado en el protocolo IP. Ubicado entre la capa de

red donde opera el protocolo IP y la capa de aplicación, UDP es esencialmente una interfaz que realiza

la función de demultiplexor, dirigiendo la carga útil del datagrama IP al puerto de la aplicación deseada.

Dado que UDP funciona sin conexión, no es necesario establecer una conexión entre dispositivos tal y

como lo hace el protocolo TCP. El datagrama se envía a la IP y puerto de destino referente a la

aplicación deseada y no garantiza ser escuchado, así como tampoco garantiza la integridad de los

datagramas. Debido a que no hay que llevar a cabo una configuración de la conexión el protocolo UDP

permite una comunicación rápida y sin retardos. Además, al contrario que la comunicación TCP, no se

intenta reenviar de forma automática los paquetes perdidos. En resumidas cuentas, UDP es una

comunicación rápida pero no confiable.

Gracias a esta rapidez UDP es el protocolo adecuado para comunicaciones en tiempo real como las

transmisiones de audio o vídeo. Además, estas características hacen del protocolo un sistema ideal

para aplicaciones basadas en la entrega de mejor esfuerzo, best effort delivery, en las que una

transmisión poco fiable es suficiente porque es repetida constantemente. Otra aplicación es para

comunicaciones multidifusión. A diferencia de TCP, UDP permite el envío de datos a varios

receptores.[41]

2.5.4. Descripción técnica

Este protocolo se define en el RFC 768 [42]. La estructura de su datagrama es la siguiente.

Tabla 5. Estructura de un datagrama UDP. (Fuente:[42])

Bits 0-15 16-31

0 Puerto de origen Puerto de destino

32 Longitud del mensaje Suma de verificación

… Datos

Los primeros 32 bits corresponden a el puerto de origen, que es un campo opcional ya que UDP no

solicita respuesta, y en caso de no ser usado se establece en 0, y el puerto de envío que es obligatorio.

La longitud del mensaje viene dada en grupos de 8 bits (octetos) e incluye todos los elementos del

datagrama. El valor mínimo en ausencia de datos será por lo tanto 8.

Page 33: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

25

Por último, antes del propio paquete de datos, se encuentra la suma de verificación también opcional.

La suma de comprobación es el complemento a uno de 16 bits de la suma del complemento a uno de

información del encabezado IP, el encabezado UDP y los datos, rellenado con cero octetos al final, si

es necesario, para hacer un múltiplo de dos octetos.

Page 34: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

26

3. Marco experimental

3.1. Diseño de la estación

3.1.1. Contexto de uso

Uno de los principales desafíos de este proyecto es el diseño de una estación que integre los dos

autómatas con el fin de que SCARA y Robotino trabajen coordinadamente. Para ello, se ha adaptado e

implementado individualmente hardware y software de cada robot, y así conseguir una conexión entre

ambos. A continuación, se detallan estas soluciones.

3.1.2. Soluciones adoptadas

3.1.2.1. Microrruptor

El primer conflicto se plantea en la recogida de la base proveniente de la estación de ensamblaje

FAS200. El robot SCARA es el encargado de esta ejecución y para ello necesita la información de que

una base se encuentra en el final de la cinta transportadora.

La solución más óptima según la complejidad de funcionamiento e instalación es disponer un final de

carrera o microrruptor al final de la cinta. Este tipo de sensores mecánicos se usan en la industria con

el fin de reconocer la posición de un objeto móvil al activar un pulsador accionado por una palanca.

Su funcionamiento es el de un interruptor de dos posiciones que conecta dos contactos con uno

común. El normalmente abierto, NA, que se cierra al accionar el pulsador, y el normalmente cerrado,

NC, que se abre al activar el pulsador.

Figura 24. Esquema interno de un microrruptor. (Fuente:[43])

Page 35: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

27

Existen diferentes tipos de microrruptores según su activación, mecánica, eléctrica o neumática, su

material, plástico, fibra o metal y sus dimensiones. Por lo tanto, no cualquiera vale para cualquier

aplicación, para esta la opción válida es la que cumple con las dimensiones dónde se tiene que instalar.

Buscar en la web resulta un poco difícil ya que muchos fabricantes no adjuntan el dimensionado de

estos dispositivos. Finalmente se opta por un microrruptor con palanca de 53mm [44], que cumple con

el criterio de tamaño y al que posteriormente se le tendrá que hacer alguna adaptación.

Figura 25. Dimensiones del microrruptor (Fuente:[44])

La primera adaptación consiste en agrandar el orificio de sujeción de 3,1mm de diámetro a 4mm para

que coincida con la métrica M4 de la cinta. Luego, había que modificar la palanca para adaptarla a la

entrada en contacto con el pale transportador de la cinta.

Figura 26. Modificación de la palanca con una broca M4. (Fuente: propia)

Una vez modificado se instala en la cinta y se comprueba su funcionamiento con un multímetro.

Page 36: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

28

Para proteger el sensor se elabora un diseño de una caja en SolidWorks para su impresión en 3D

Figura 27. Modelo en 3D de la caja de protección para el microrruptor. (Fuente: propia)

Se dispone de cable y conectores banana para realizar la conexión a la caja de conexiones del SCARA.

Esta conexión se rige a las características de la caja de conexiones cuyas entradas son NPN (activas a

nivel alto) a 24V. Así pues, la conexión se realiza de manera que el COM se conecta como entrada,

normalmente conectada a la patilla NC, a su vez conectada a tierra. Cuando se activa el interruptor

COM se conecta a NA, a su vez conectada a 24V.

Elaborado el montaje el resultado final es el de la figura 27.

Figura 28. Montaje final del microrruptor con la caja y los conectores banana (Fuente: propia)

Page 37: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

29

3.1.2.2. Plataforma elevadora

Robotino cuenta con varios módulos que se pueden integrar y que aportan diferentes funcionalidades

(ver apartado 2.2.2.6). Uno de estos es el segmento, una base de acero que se acopla a la torre y

permite el montaje de otros módulos y sensores en su superficie. Tres segmentos forman una

plataforma.

Figura 29. Izquierda- Segmento de acero (Fuente:[3]); Derecha- Modelo de la plataforma en 3D (Fuente: propia)

Siguiendo el hilo de este proyecto, se plantea la recogida de las bases provenientes del robot SCARA y

dado que disponemos de la plataforma elevada, se propone realizar una paletización encima de esta.

Distribuidos los elementos de este layout se observa que la plataforma elevada no es lo

suficientemente alta como para llegar al rango de alcance que tiene el robot SCARA. Entonces ¿Cómo

hacemos llegar la pieza a la base?

La primera de las ideas es alargar el tamaño de la torre de manera que la plataforma final se eleve. Es

decir, elaborar, mediante impresión 3D, una prolongación de la torre con las mismas características.

Finalmente, esta idea se desestima tras considerar el peso que debería soportar, la inestabilidad que

una torre más alta conlleva y sobre todo la limitación física del Robotino con la mesa que, aún y elevar

la plataforma, seguía condicionando el alcance de la plataforma al terminal del robot SCARA. Podemos

observar estas limitaciones en la siguiente figura.

Page 38: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

30

Figura 30. Representación en 3D de un alargamiento de la torre (en verde). (Fuente: propia)

Así pues, se necesita una plataforma elevada que tenga la base superior lo suficientemente ancha

como para que cumpla con las dimensiones del layout. Como solución, se diseña en Solidworks una

base a partir del vaciado de un cilindro de 20cm de diámetro y 10.8cm de altura, que se parte en dos

para facilitar su posterior impresión 3D. Los orificios de esta pieza deben coincidir con la base para su

posterior ensamblaje.

Figura 31. Diseño en 3D de un cilindro para la nueva plataforma. (Fuente: propia)

Para las bases se recortan bases de madera reciclada de 2 cm de grosor, una de 36cm de diámetro para

la base inferior y 51cm para la base superior.

Page 39: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

31

Figura 32. Izquierda- Modelo en 3D de la plataforma diseñada; Derecha- Foto de la plataforma diseñada (Fuentes: propia)

De esta manera el SCARA ahora sí puede alcanzar la plataforma del ROBOTINO.

Figura 33. Robotino en posición de paletizado para la base. (Fuente:propia)

3.1.2.3. Mesa para la paletización de los palés

Una vez paletizada la base en la plataforma de Robotino es necesario también almacenar los palés. Los

requisitos de esta estructura son que sea lo suficientemente ancha como para almacenar un palé y

larga como para tres. Además, debe medir al menos 9 cm de alto, 11cm, que es la distancia a la que

llega el elemento terminal respecto a la mesa, menos 2 cm de alto que mide el palé.

Page 40: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

32

Figura 34. Diseño 3D de la mesa de paletizado para los palés. (Fuente: propia)

El diseño es una mesa sencilla de 425x210 mm elaborada con una placa de metacrilato de 6 mm de

grosor y patas de madera de 10cm de alto, un total de 106 mm de alto.

3.1.2.4. Módulo relé wifi NodeMCU ESP32

La paletización de la base en la plataforma del Robotino se realiza de manera que el robot SCARA

siempre deja la base en la misa posición siendo Robotino quien gira unos grados determinados para

dar lugar a la siguiente pieza. Así pues, nos debemos asegurar que el robot ha rotado y el espacio para

la pieza esta libre. Para advertir al robot SCARA que se puede depositar otra base encima se envía una

señal vía WiFi a la placa de desarrollo NodeMCU ESP32. Acompañada de un relé se encargará de activar

una entrada de la caja de conexiones del SCARA.

Partiendo del esquema eléctrico del módulo relé ESP-01S [45], se diseña un módulo relé para adaptarlo

a la placa Node MCU ESP32. El esquema es el mismo dado que ESP-01S se basa en el MCU ESP8266,

versión anterior del ESP32 que cuenta con dos núcleos y duplica la velocidad de su hermano menor.

En cuanto a características del pinout ambos ofrecen un voltaje de 3.3 V en estado alto y proporcionan

una corriente media de 80 mA. [46] [47]

Page 41: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

33

Figura 35. Esquema eléctrico en EAGLE del módulo relé ESP32. (Fuente: propia)

Las partes para el esquema eléctrico y PCB se encuentran en [48]–[50].

El funcionamiento de este esquema se activa con el pin GPIO14 de la placa NodeMCU. Al recibir un

voltaje de 3.3V en la puerta (G), se establece una tensión puerta-fuente (VGS=3.3V) que hace circular

los electrones de drenador (D) a fuente (S), tal y como se observa en la gráfica de la hoja de datos del

fabricante Fairchild semiconductor. [51]

Figura 36. Corriente en el drenador en función del voltaje puerta-drenador. (Fuente:[51])

Al conectar drenador con fuente el relé y el diodo LED reciben 5V activándose. Además, el circuito

consta de un diodo protector que al activar el relé queda polarizado en inversa, pero que al desactivarlo

se polariza y es el camino por el que circula la intensidad parásita del relé, protegiendo así los demás

componentes. Esto es debido a que las bobinas tienen la propiedad de que, si se le retira bruscamente

Page 42: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

34

el flujo de corriente, cambia bruscamente la polaridad del voltaje entre sus terminales para intentar

que la corriente siga circulando [52]. El diodo 1N4148 es capaz de aguantar hasta 100V y 450mA.[53]

El diseño hecho con Eagle para la elaboración de la PCB es el siguiente.

Figura 37. Diseño en EAGLE de la PCB para el módulo relé. (Fuente: propia)

Una vez impresa la placa se sueldan todos los componentes y se comprueba su funcionamiento.

Figura 38. Módulo relé ESP32 (Fuente: propia)

Page 43: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

35

3.1.2.5. Luz de estado

Para reflejar el estado de movimiento del robot se instalará en el centro de la base superior de madera

una lámpara LED de la marca Withled serie 800 [54]. Esta lámpara dispone de 5 colores, rojo, verde,

azul, ámbar y blanco, su encendido puede ser fijo o intermitente y además incorpora un zumbador.

Figura 39. Esquema de conexionado de la lámpara L813BZ. (Fuente:[54] )

La conexión con ROBOTINO se hará a través de los dos relés presentes en la interfaz de entradas y

salidas y la alimentación de 24V. Dado que solo disponemos de dos relés solo se podrán reflejar dos

estados parado o en movimiento. Dichos estados se identificarán por verde fijo y ámbar intermitente,

respectivamente.

Para conseguir este funcionamiento se deberán interconectar, con ayuda de los relés, los cables verde

con negro y ámbar con gris. Para facilitar el conexionado se cambian los cables marrones de

alimentación a rojo y negro, verde y negro a azul y ámbar y gris a amarillo. Tal y como se muestra en la

siguiente imagen el conexionado final es el siguiente.

Figura 40. Conexionado de la lámpara en la interfaz de E/S. (Fuente: propia)

Esta lámpara se instala en la plataforma elevadora del apartado 3.1.2.2.

Page 44: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

36

3.1.2.6. Señal de avance en el proceso de reposición

En la función de reposición, dónde Robotino avanza hacia cada estación se necesita saber cunado el

operario ha retirado las piezas para que el robot avance a la siguiente estación. Aprovechando la

interfaz web podemos comunicarnos con el robot, ya que des de esta podemos activar las salidas

digitales de la interfaz de entradas y salidas usando un smarthpone conectado a la red de Robotino.

Figura 41. Captura del menú de E/S de la interfaz web de Robotino. (Fuente: propia)

Ahora bien, las salidas no son un valor legible des del entorno Robotino® View, así que se conectan las

salidas con las entradas. Con dos es suficiente.

Figura 42. Conexión de las salidas digitales 1 y 8 a las entradas digital 1 y 8. (Fuente: propia)

Page 45: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

37

3.2. Distribución de los elementos en la estación

Adoptadas todas las soluciones debemos adecuar el entorno de trabajo y distribuir los elementos en

el espacio disponible de forma estratégica.

La definición de la posición de la mesa para la paletización de los palés se ha adecuado a las posiciones

del proceso de paletizado siendo el condicionante el alcance del brazo. La marca fiducial se coloca

debajo del robot y su posición se puede ajustar ejecutando el subprograma de orientación en el eje X

de manera que Robotino quede centrado con el SCARA.

Dado que el espacio entre la parte inferior de la mesa y el suelo está vacío y este se necesita para el

acercamiento de Robotino se ha puesto una madera. Así el sensor óptico que se encuentra a esta altura

dispone de un obstáculo de referencia respecto al cual luego se ajustará la posición.

Figura 43. Distrbución de los elementos en la estación del robot SCARA. (Fuente: propia)

La zona de conexión es donde el microrruptor y el módulo relé se conectan al SCARA mediante la caja

de conexiones. Se ubica en esta posición por dos motivos. El primero es que la placa recibe

alimentación de la torre del ordenador que se encuentra detrás, el segundo es que no se quería

disponer de cables muy largos.

Page 46: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

38

Figura 44. Zona de conexión de las sensores para el Robot SCARA. (Fuente: propia)

Robotino usa como referencias para que el operario reponga las piezas en los alimentadores marcas

fiduciales colocadas en las estaciones FAS208, FAS204 y FAS202 como se observa en la figura 44.

Figura 45. Área de trabajo en el laboratorio. (Fuente: propia)

Page 47: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

39

3.3. Desarrollo software

3.3.1. Programación del NodeMCU en Arduino IDE

El chip integrado ESP32-WROOM-32 de la placa NodeMCU ofrece varios periféricos de comunicación,

por ejemplo, I2C, SPI, Bluetooth, WiFi, entre otros. Podemos ver las opciones disponibles en el

diagrama de bloques de la hoja de datos del fabricante.

Figura 46. Diagrama de bloques de los periféricos que incorpora el chip ESP32. (Fuente:[55])

Para esta aplicación buscamos una comunicación sin cables pudiendo ser esta comunicación Bluetooth

o WiFi. Dado que Robotino incorpora un router WiFi y dados los antecedentes [56] se plantea una

comunicación TCP/IP usando el protocolo de capa de transporte básico UDP. Es importante añadir que

la ESP32 no es capaz de conectarse a redes de 5GHz ya que trabaja con el estándar 802.11b/g/n que

establece una frecuencia de red de 2.4GHz. [55]

La programación UDP del chip ESP32 se puede realizar mediante comandos AT por el puerto serie.

Estas órdenes pertenecen a un estándar abierto de comandos para configurar y parametrizar estos

dispositivos. Los comandos para este chip se pueden consultar en [57].

Sin embargo, se ha configurado el entorno de desarrollo de Arduino para programar, a partir de este,

la placa NodeMCU ESP32. La ventaja de usar este entorno son los amplios recursos que nos ofrece,

como librerías, código abierto hecho por terceros que facilitan la programación.

Page 48: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

40

3.3.1.1. Configuración del ESP32 [58]

La programación de esta placa WiFi se hará mediante el IDE de Arduino siguiendo los pasos siguientes

Desde el menú Archivo accederemos a Preferencias

Figura 47. Captura del acceso a Preferencias des del menú Archivo. (Fuente: propia)

Nos aparecerá la siguiente ventana y en la casilla de “Gestor de URL’s adicionales de Tarjetas”

copiaremos el siguiente enlace https://raw.githubusercontent.com/espressif/arduino-esp32/gh-

pages/package_esp32_index.json

Figura 48. Captura de la ventana Preferencias. (Fuente: propia)

Page 49: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

41

Como podemos ver, en mi caso ya aparece otro enlace, si queremos conservar esta configuración

deberemos separar los enlaces con una coma. A continuación hacemos clic en “Ok”.

De esta manera hemos añadido la tarjeta en el gestor de tarjetas del IDE de Arduino.

Desde el menú Herramientas accederemos a Placa: “Nombre de la placa” → Gestor de Tarjetas como

se observa en la Figura X

Figura 49. Captura del acceso al Gestor de tarjetas des del menú Herramientas. (Fuente: propia)

Ahora buscamos en el gestor “esp32” e instalaremos el esp32 by Espressif Systems. Una vez instalada

cerramos la ventana.

Figura 50. Ventana del Gestor de tarjetas con el término de búsqueda esp32. (Fuente: propia)

Page 50: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

42

Por último, des del menú Herramientas debemos seleccionar la placa ESP32 Arduino como ESP32 Dev

Module.

3.3.1.2. Comunicación UDP

En la página web oficial de Arduino encontramos un tutorial [59] de cómo enviar y recibir un caracteres

por UDP usando las librerías WiFi.h y WiFiUDP.h [60].

Sin embargo, este código no compila así que se buscan las librerías en la carpeta de la documentación

de Arduino para entender sus funciones. Estas librerías también se pueden encontrar en la página

oficial [60].

Figura 51. Librería WiFiUdp.h en PIC C Compiler. (Fuente: propia)

El problema del primer código es que el envío de una respuesta por UDP usando la función write()

necesita una variable del tipo int, mientras que el mensaje de contestación era de tipo char. Solventado

el problema, se tenía que adaptar el programa a los recursos disponibles, así que, para las pruebas

usaremos un repetidor WiFi y la placa NodeMCU que activará un LED por el pin correspondiente al

relé; siguiendo el modelo de Priya en [61]. Para enviar y recibir paquetes UDP usaremos el software

Packet Sender[62].

3.3.1.2.1 Pruebas de comunicación

Para las primeras pruebas de comunicación usaremos un modelo híbrido entre [59] y [61]. El código

de este primer ensayo se encuentra en el anexo A.

El programa una vez se conecta a la red especificada nos dice la IP asignada a la placa NodeMCU

mediante el protocolo DHCP [63] que asigna automáticamente una IP a un dispositivo. Este método se

Page 51: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

43

conoce como asignación de IP dinámica. Además, nos dice el puerto en el que está escuchando,

previamente asignado en el código.

Figura 52. Respuesta del monitor serie al ejecutarse el programa. (Fuente:propia)

Mediante el software Packet Sender se envían paquetes UDP dados la IP y el puerto anterior.

Figura 53. Interfaz del software Packet Sender para el envío de datos UDP. (Fuente: propia)

El mensaje recibido se imprime en el monitor serie, así como la longitud del mensaje en bytes, la IP y

el puerto del dispositivo que envía el mensaje, estos últimos asignados de forma automática.

Figura 54. Respuesta en el monitor serie al envío de datos. (Fuente: propia)

Durante las diferentes pruebas se ha advertido la necesidad de establecer una dirección de IP estática

ya que si la conexión se reestablecía las direcciones IP también. De esta manera solo se configura una

única vez la IP, no depende de la asignación DHCP y nos permitirá trabajar siempre con la misma IP que

como veremos más adelante es necesario configurar en Robotino® View 4. Además, dado que el puerto

UDP ya está especificado, los datos se enviarán siempre a la misma IP y puerto.

Para realizar esta configuración usaremos la instrucción WiFi.config() [64] de la librería WiFi.h siguiendo

el programa de ejemplo.

Figura 55. Configuración de la IP, la puerta de enlace y la subred siguiendo el ejemplo de [64]. (Fuente: propia)

Page 52: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

44

Cabe resaltar que solo se establece la configuración estática de la placa WiFi, que el dispositivo que

envía el mensaje variara su IP y puerto pero que estos no son importantes dado que no es necesario

enviar una respuesta.

Para designar una IP estática podemos consultar el rango de direcciones IP que se asignan

automáticamente mediante DHCP y escoger una comprendida en este rango. La guía para consultar la

configuración de router de Robotino se encuentra en [65].

Figura 56. Configuración DHCP del punto de acceso de Robotino. (Fuente: propia)

3.3.1.3. Configuración en Robotino® View 4

El entorno gráfico de Robotino cuenta con un servicio de intercambio de datos UDP en la pestaña

Añadir situada en la parte inferior derecha.

Figura 57. Bloques adicionales del menú Añadir. (Fuente: propia)

Una vez añadido el servidor se puede configurar haciendo doble clic sobre este. Por defecto el puerto

mediante el cual el servidor escucha y envía datos es el 9180 y el intervalo de envío, tiempo

transcurrido entre envíos de datagrama, 100ms, pudiendo alcanzar los 1000ms. En el apartado de

receptores añadiremos la IP y el puerto de la placa NodeMCU. [56]

Page 53: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

45

Figura 58. Configuración del bloque de Intercambio de datos UDP. (Fuente: propia)

Como podemos ver, se puede activar el envío de datos para mensaje 0 y para mensaje 1

independientemente. Para esta aplicación solamente es necesario el mensaje 0. Estos mensajes son

los datagramas que conforman la estructura de datos del protocolo, cada uno es de 36 bytes y su

estructura interna es la de la siguiente figura.

Figura 59. Estructura de un mensaje UDP en Robotino® View 4. (Fuente: Ayuda de Robotino® View 4)

Page 54: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

46

Ahora que se ha configurado el canal de comunicación vamos a iniciar el envío de datos. Para ello se

programa un envío sencillo por la salida INT0 del mensaje 0.

Figura 60. Programa para el envío de un '1' por el INT0 del mensaje 0 a través de UDP. (Fuente: propia)

El entorno de Robotino solo puede enviar y recibir datos de tipo entero (int) así que adaptaremos el

programa de Arduino para comprobar qué se guarda en el buffer. Imprimiremos cada byte ahora como

entero, modificando el loop de la siguiente manera:

Figura 61. Modificación del bucle void loop() para el análisis del mensaje recibido. (Fuente: propia)

Por el monitor serie se observa el mensaje recibido de la IP 192.168.0.102 por el puerto 9180, mensaje

de 36 bytes proveniente de Robotino.

Page 55: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

47

Figura 62. Captura del monitor serie con el desglose byte a byte del mensaje. (Fuente: propia)

Este mensaje concuerda con la estructura de la figura 58 y como se observa se envía cada un segundo.

Dado que solo enviamos datos por el INT0 solo nos interesan los bytes 4-7.

En concreto, para activar el relé solo necesitamos saber si el mensaje del byte 4 es un 1 o un 0.

3.3.1.4. Programa final

El programa que se ejecuta en la placa es el adjunto en el anexo B.

Una vez se inicia el programa Robotino inicia la comunicación. La instrucción udp.parsePacket()

determina el tamaño del paquete recibido que debería ser 36. En caso de que no se reciba nada este

valor es 0 y por lo tanto no entraremos en el condicional if (paquete).

Cuando se recibe el mensaje de 36 bytes se almacena en una variable del mismo tamaño

(udp_buffer[36]). Como se ha mencionado anteriormente, el byte por el cual recibimos información es

el byte 4 así que de este depende la activación del relé.

Page 56: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

48

El paquete de datos se envía cada 100 ms y cómo podemos observar en la figura 62 hay muchos

mensajes que contienen la misma información. Cuando Robotino se encuentre girando se enviará un

0, un 1 comporta que Robotino está quieto. El envío del mensaje UDP se detalla en el apartado 3.3.2.9.

En conclusión, solo nos importa el cambio del byte 4 (udp_buffer[4])de ‘1’ a ‘0’, Robotino empieza el

giro, y de ‘0’ a ‘1’, Robotino se detiene. Por esta razón se implementa el uso de la variable flag

inicializada con un valor de 0. De esta manera solo cambiamos el estado del relé en los cambios de

nivel alto a bajo y viceversa.

Figura 63. Captura del monitor serie con la impresión del byte 4 del mensaje UDP recibido. (Fuente: propia)

3.3.2. Programación en Robotino®View4

3.3.2.1. Flujo de trabajo. GRAFCET

El esquema GRAFCET del programa principal se encuentra en el anexo C representa el proceso descrito

en el apartado 2.4.

La secuencia del proceso es la siguiente:

- Init: Se ejecuta el subprograma de inicialización y se continua al siguiente paso

Page 57: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

49

- Step 10: Se ejecuta el subprograma de posicionamiento. Continua una vez se cumple la

expresión “posicionado==1”

- Step 20: Se ejecuta el subprograma de odometría. Continua una vez se cumple la expresión

“posicionado==1”

- Step 21: En el caso de que se produzca un choque o se detecte una posible colisión

(choque+colision==1) durante el step 20, se ejecuta el subprograma de detección de colisión.

Una vez se cumple la expresión “(choque+colision)==0” vuelve al Step 20.

- Step 30: Se ejecuta el subprograma de orientación en el eje Z. Continua una vez se cumple la

expresión “orientado==1”

- Step 40: Se ejecuta el subprograma de orientación en el eje X. Continua una vez se cumple la

expresión “posicionado==1”

- Step 41: En el caso de que se produzca un choque o se detecte una posible colisión

(choque+colision==1) durante el step 40, se ejecuta el subprograma de detección de colisión.

Una vez se cumple la expresión “(choque+colision)==0” vuelve al Step 40.

- Step 50: Se ejecuta el subprograma de acercamiento en el eje Y. Continua una vez se cumple

la expresión “acercado==1”

- Step 60: Se ejecuta el subprograma de rotación en el eje Z. Continua una vez se cumple la

expresión “paletizado==1”

- Step 70: Se ejecuta el subprograma de orientación en el eje Z. Continua una vez se cumple la

expresión “orientado==1”

- Step 80: Se ejecuta el subprograma de alejamiento en el eje Y. Continua una vez se cumple la

expresión “alejado==1”

- Step 81: En el caso de que se produzca un choque o se detecte una posible colisión

(choque+colision==1) durante el step 80, se ejecuta el subprograma de detección de colisión.

Una vez se cumple la expresión “(choque+colision)==0” vuelve al Step 80.

- Step 90: Se ejecuta el subprograma de descarga en la FAS207. Continua una vez se cumple la

expresión “(posicionado*ejes)==1”

- Step 91: En el caso de que se produzca un choque o se detecte una posible colisión

(choque+colision==1) durante el step 90, se ejecuta el subprograma de detección de colisión.

Una vez se cumple la expresión “(choque+colision)==0” vuelve al Step 90.

- Step 100: Se ejecuta el subprograma de descarga en la FAS203. Continua una vez se cumple la

expresión “(posicionado*cojinetes)==1”

- Step 101: En el caso de que se produzca un choque o se detecte una posible colisión

(choque+colision==1) durante el step 100, se ejecuta el subprograma de detección de colisión.

Una vez se cumple la expresión “(choque+colision)==0” vuelve al Step 100.

- Step 110: Se ejecuta el subprograma de descarga en la FAS201 y se termina el programa

Page 58: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

50

3.3.2.2. Subprograma de Inicialización

El programa comienza con la inicialización de todas las variables, del mensaje de comunicación UDP,

de los datos de odemetría y de las salidas relé.

Figura 64. Subprograma de inicialización. (Fuente: propia)

3.3.2.3. Subprograma de Posicionamiento

Inicialmente se coloca el robot en una zona determinada de forma manual. Para que Robotino parta

siempre del mismo punto se hará un posicionamiento respecto a los sensores 6 y 3. Robotino se irá

acercando a la pared en tanto que los valores de estos sensores sean menores o iguales a una distancia

de 11cm. El bloque de comparación si la distancia es mayor a 11cm da un valor de ‘0’ o false que

selecciona la entrada 0 del multiplexor donde se encuentran las velocidades en x e y para el bloque de

omniaccionamiento. Cuando se cumpla ambas condiciones el valor arrojado en la comparación será

true o ‘1’, se seleccionan las entradas cuya velocidad es 0 y se activará el reinicio de los datos de

odometría, así como la variable posicionado, dando paso al siguiente subprograma.

En la parte superior podemos observar la configuración del estado de ambos relés de la interfaz de E/S.

En este subprograma estará activada la luz verde fija. Reservaremos la luz intermitente para

desplazamientos largos y/o a mayores velocidades.

Page 59: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

51

Figura 65. Subprograma de posicionamiento. (Fuente: propia)

3.3.2.4. Subprograma de Odometría

El subprograma de odometría se basa en el cálculo de la distancia recorrida en mm para alcanzar una

pose deseada. Después de cálculos y pruebas se ha estimado esta distancia en 4 m en x y -2.6m en y.

El cálculo de la odemetría ha presentado variaciones en la pose alcanzada de los diferentes ensayos y

es por ello que esta pose no es la pose final de paletización ya que el robot SCARA requiere una pose

fija.

Las entradas del bloque controlador de posición reciben la posición a alcanzar y los datos actuales de

odometría que anteriormente se habían reiniciado. Este bloque arroja las velocidades para cada eje

conectadas al bloque de omniaccionamiento. Una vez alcanzada la posición la variable posicionado se

pone a ‘1’. En este desplazamiento se activará la luz amarilla intermitente.

Page 60: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

52

Figura 66. Subprograma de odometría, primera parte para la navegación. (Fuente: propia)

Por otro lado, en el mismo subprograma, tenemos algunos sensores de distancia que evitaran una

colisión y el bumper que, en caso de no poder evitar la colisión, por ejemplo, si el obstáculo se acerca

con mucha velocidad, detecta el choque. En estas situaciones la secuencia del programa se desvía al

subprograma de Detección de colisión.

Figura 67. Subprograma de odometría, segunda parte para la detección de colisión. (Fuente: propia)

Page 61: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

53

3.3.2.5. Subprograma de Detección de colisión

Este subprograma evalúa si existen obstáculos alrededor del robot o si el obstáculo con el que ha

chocado aún sigue en contacto con él. Si alguna de estas condiciones se cumple la secuencia del

programa permanecerá en este subprograma. Una vez el camino está libre se realiza un salto al

programa del cual se proviene.

Figura 68. Subprograma de detección de colisión. (Fuente: propia)

3.3.2.6. Subprograma de Orientación en el eje Z

Cuando Robotino se encuentra frente a la estación gracias al sistema de marca fiducial [33] que nos

proporciona la posición relativa a esta, Robotino se coloca paralelo a la mesa con un giro en el eje z.

Para ello se evalúa mediante un LUA Script la variable ‘a’ del bloque Marker position.

En este desplazamiento se activará la luz verde fija.

Page 62: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

54

Figura 69. Subprograma de orientación en el eje Z. (Fuente: propia)

3.3.2.7. Subprograma de Orientación en el eje X

Una vez paralelo a la mesa Robotino se centra respecto a la marca fiducial en su eje Y. El eje Y del robot

corresponde al eje X de la marca y se evalúa mediante un LUA Script la variable ‘x’ del bloque Marker

position.

En este desplazamiento se activará la luz amarilla intermitente.

Page 63: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

55

Figura 70. Subprograma de orientación en el eje X. (Fuente: propia)

3.3.2.8. Subprograma de Acercamiento en el eje Y

Centrado y paralelo a la mesa es hora de acercarse. En este desplazamiento se activará la luz amarilla

intermitente. El acercamiento a la mesa corre a cuenta del sensor 1. Cuando la distancia medida por el

sensor es mayor a 6 la salida del multiplexor, a su vez conectada a la vx del robot, se conecta con la

entrada de velocidad.

Figura 71. Subprograma de acercamiento en el eje Y. (Fuente: propia)

Page 64: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

56

3.3.2.9. Subprograma de Rotación en el eje Z

Este subprograma sigue un ciclo de 36.5 segundos valor medido y ajustado del tiempo que conlleva el

paletizado de base y palé por parte del SCARA, más el tiempo de giro necesario para ubicar las bases

en el palé. Al inicio de cada ciclo Robotino gira 2.575 s a una velocidad establecida de 10 grados/s esto

quiere decir que gira 25.75 grados dejando espacio suficiente para la colocación de otra base en la

plataforma.

Mientras el tiempo no es mayor a 2.575s, en otras palabras, mientras gira, se envía un ‘0’ al mensaje

UDP, al relé 1 indicando que la luz verde esta apagada y al multiplexor seleccionando así la entrada de

la velocidad. Con un bloque NOT se envía un ‘1’ al relé 2 encendiendo la luz amarilla intermitente.

Cada vez que se completa un ciclo se incrementa en 1 un contador y se reinicia el cronometro del

subprograma. Dado que gira 25.75 grados puede realizar 13.98 giros para cumplir los 360. Como el

contador solo lee números enteros lo dejaremos en 13 que a su vez serán las bases que puede colocar

el SCARA en la plataforma.

Figura 72. Subprograma de rotación en el eje Z. (Fuente: propia)

Page 65: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

57

3.3.2.10. Subprograma de alejamiento en el eje Y

Al igual que en el acercamiento, en este desplazamiento se activará la luz amarilla intermitente y

depende del sensor 1. Cuando la distancia medida por el sensor es menor a 30 la salida del multiplexor,

a su vez conectada a la vx del robot, se conecta con la entrada de velocidad. Además, este subprograma

incorpora la detección de algún obstáculo en su parte posterior por los sensores 4, 5, 6 y 7.

Figura 73. Subprograma de alejamiento en el eje Y. (Fuente: propia)

3.3.2.11. Subprograma de descarga en la FAS207/3/1

Una vez alejado Robotino se dirige a las estaciones FAS207, FAS203 y FAS201 empleando este

subprograma. El funcionamiento es sencillo, Robotino se desplaza hacia la estación en su eje Y. Cuándo

detecta la marca fiducial de la estación se centra respecto a ella. Las marcas son la 31, 32 y 33 para la

FAS207, FAS203 y FAS201 respectivamente.

Para dar paso a la siguiente estación un operario una vez repuesto el material a la estación deberá

activar la salida digital 1 o 8 para las estaciones FAS207 y FAS203 mediante la interfaz web desde un

smartphone. Esto no es aplicable para la FAS201 ya que aquí termina el programa.

Durante el desplazamiento se activará la luz amarilla y una vez alcanzada la posición cambiará de color

a verde. Además, de una estación a otra existe también una detección de colisión a cargo de los

sensores laterales 2, 3, 4, 7, 8, y 9 y el bumper.

Page 66: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

58

Figura 74. Subprograma de descarga en la FAS207. (Fuente: propia)

Figura 75. Subprograma de descarga en la FAS203. (Fuente: propia)

Page 67: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

59

Figura 76. Subprograma de descarga en la FAS201. (Fuente: propia)

Figura 77. Detección de colisión dentro de los subprogramas de descarga en las estaciones (Fuente: propia)

Page 68: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

60

3.3.2.12. Acondicionamiento del sensor óptico

El bloque de sensor óptico nos proporciona un valor de voltaje comprendido entre 0 y 3V y la

orientación del sensor en cuestión, 40º para el sensor 2 y 360º para el noveno.

Figura 78. Bloque del sensor de distancia 2. (Fuente: propia)

Para determinar la distancia a partir del valor de voltaje se parametriza la función de la gráfica

distancia/voltaje que presenta el fabricante en la hoja de datos. [9]

Tabla 6. Distancia y voltaje según la gráfica de la hoja de datos. (Fuente:[9])

Distancia 30 28 26 24 22 20 18 16 14 12 10 8 6 4

Voltaje 0.4 0.45 0.5 0.55 0.6 0.65 0.75 0.8 0.95 1.08 1.3 1.59 2 2.7

Mediante la herramienta de ajuste de curvas, Curve Fitting Tool [66], de MATLAB elaboramos dos

modelos de interpolación, polinómica y exponencial.

Gracias a esta herramienta interactiva se puede ir variando el grado del polinomio de interpolación y

el que más se ajusta, según el criterio del coeficiente de determinación R, es el de grado 4.

Page 69: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

61

Figura 79. Resultado del modelo polinómico para el ajuste de la curva del sensor. (Fuente: propia)

Seguidamente se realiza un modelo exponencial.

Figura 80. Resultado del modelo exponencial para el ajuste de la curva del sensor. (Fuente: propia)

Page 70: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

62

Según el criterio del coeficiente de determinación R el modelo polinómico, con una R de 0.9991, es

mejor que el exponencial, con una R de 0.9989.

Estos modelos se evalúan en la práctica con un bloque definido por el usuario Script Lua. Se coloca el

robot a distancias conocidas y se compara la medida de ambos modelos.

Finalmente se determina que el modelo polinomial es el más aproximado al valor real de medida.

Figura 81. Bloque definido por el usuario, Script Lua, con los modelos de interpolación. (Fuente: propia)

3.3.2.13. Ajuste de los bloques de marca fiducial

Los bloques de marca fiducial de Robotino®VIEW arrojan datos no acordes a las distancias relativas

entre marca y robot. No existe documentación del funcionamiento de estos bloques y según

MuhammadAli empleado experto en software de FESTO los resultados de las posiciones arrojadas por

estos bloques son equívocos y se recomienda combinar estos bloques con otros sensores, por ejemplo,

los de distancia. [67]

Page 71: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

63

Figura 82. Valores e imagen del bloque "Marker Postion". (Fuente: propia)

Como se puede observar a una distancia de más de un metro los valores resultantes en metros son

demasiado pequeños. Después de varias pruebas se determina que el valor de la arista de la marca la

deberemos insertar en mm y no en metros, así podemos obtener un valor que, aunque inexacto,

presenta un mayor rango de valores pudiendo alcanzar números enteros a diferencia que lo que se

observa en la figura 81.

Figura 83. Entradas al bloque "Marker detection". (Fuente: propia)

Así pues, solamente con el uso de las marcas no se puede establecer una posición x,y,z relativa exacta.

Sin embargo, se ha comprobado que los grados de rotación sí son exactos y que el origen del sistema

de referencia de la marca fiducial es alcanzable. Con ensayos se determinan los siguientes ejes de

coordenadas.

Page 72: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

64

Figura 84. Ejes de coordenadas de la marca fiducial y del Robotino®. (Fuente: propia)

Recordemos que la marca fiducial nos da la posición y orientación del robot en relación a ella misma y

que se usa para situar el robot en la posición de paletización. Para lograr alcanzar la posición utilizamos

la variable del eje x (y en el robot) y la variable “a” (rotación en z) del bloque Marker position.

La variable “a” que determina los grados de giro en el eje z es objeto de estudio ya que determina el

paralelismo del robot con la marca y por ende con la mesa. Se necesita que este valor sea 0 pero al

intentar fijar la posición de Robotino este no se queda fijo. Esto es debido a que, aunque se puede

llegar a un valor de 0 las variables no se quedan fijas a lo largo del tiempo.

El bloque de osciloscopio arroja los datos introducidos en forma de gráfica y texto y nos permite

estudiar variables. A partir de los datos se determina que la variable “a” oscila entre valores de -0.1 y

0.1 valores que establecen el lindar dentro del cual se considera que el robot está paralelo a la mesa.

Page 73: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

65

Figura 85. Imagen del bloque osciloscopio para la evolución de la variable 'a'. (Fuente: propia)

La posición en eje X tampoco se queda fija en 0 a lo largo del tiempo. Después de estudiar esta variación

se establece el mismo lindar para esta variable.

3.3.3. Programación en MELFA IV

El programa para el robot RH-3FH-D sigue el proceso descrito en el apartado 2.4. Su programación en

MELFA IV es la siguiente y esta explicada paso a paso.

1 'PROGRAMA PARA LA PALETIZACIÓN DE BASE Y PALÉ'

5 M1=1 'índice para la posición del pale'

10 M0=-22 'índice para el nivel del pale'

20 WHILE (M0<=66) 'bucle mientras no se hayan paletizado todos los pales'

25 HClose 1 'salida de aire apagada'

30 Ovrd 40 'velocidad a 40'

35 Mov PXYZBASE, +30 'colocarse por encima de la posición de la base'

40 Wait M_In(20)=1 'esperar que el microrruptor detecte pieza al final de la cinta'

41 Wait M_In(18)=1 'esperar a que el Robotino este quieto'

45 Ovrd 5 'velocidad a 5'

50 Mov PXYZBASE 'moverse a la posición de la base'

55 HOpen 1 'salida de aire abierta para la recogida de la base'

60 Dly 2.0 'retardo de 2 s'

65 Mov PXYZBASE, +30 'colocarse por encima de la posicion de la base'

70 Ovrd 40 'velocidad a 40'

75 Mov PROBOT, +35 'colocarse por encima de la posición del Robotino'

80 Ovrd 5 'velocidad a 5'

85 Wait M_In(18)=1 'esperar a que el Robotino este quieto'

90 Mov PROBOT 'mover a la base del Robotino'

Page 74: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

66

95 HClose 1 'dejar la pieza'

100 Dly 1.0 'retardo de 1 s'

105 Mov PROBOT, +35 'colocarse por encima de la posición del Robotino'

110 Ovrd 40 'velocidad a 40'

115 HClose 1 'salida de aire apagada'

120 Mov PXYZPALE, +30 'colocarse por encima de la posición del pale'

125 Wait M_In(20)=1 'microrruptor detecta pale al final de la cinta'

130 Ovrd 5 'velocidad a 5'

135 Mov PXYZPALE 'moverse a la posición del pale'

140 HOpen 1 'salida de aire abierta para la recogida del pale'

145 Dly 2.0 'retardo de 2 s'

150 Mov PXYZPALE, +30 'colocarse por encima de la posición del pale'

155 Ovrd 40 'velocidad a 40'

160 MOV PINI 'moverse a una posición por encima del pale'

165 SELECT M1 'inicio de salto condicional según M1'

170 CASE 1 'caso M1==1'

175 PALET=P1 'PALET es la posición 1 del pale 1'

180 M1 =M1+1 'sumamos 1 a M1 para que en la siguiente iteración sea 2'

181 M0 = M0+22 'subimos 22mm (altura del pale) cuando se ha completado el nivel'

185 CASE 2 'caso M1==2'

190 PALET=P2 'PALET es la posición 2 del pale 1'

195 M1 =M1+1 'sumamos 1 a M1 para que en la siguiente iteración sea 3'

200 CASE 3 'caso M1==3'

205 PALET=P3 'PALET es la posición 3 del pale 1'

225 M1 =1 'reestablecemos M1 a 1 para que vuelva a comenzar'

235 END SELECT 'fin del salto condicional'

240 PALET.Z = PALET.Z + M0 'PALET es la posición anteriormente designada más la variable

del nivel en Z'

245 Ovrd 10 'velocidad a 10'

250 Mov PALET, +25 'moverse a 25mm por encima de la posición PALET'

251 Ovrd 5 'velocidad a 5'

255 Mov PALET 'moverse a la posición PALET'

260 HClose 1 'dejar el pale'

265 Dly 1.0 'retardo de 1 s'

270 Mov PALET, +25 'moverse a 30mm por encima de la posición PALET'

275 WEND 'fin del bucle while

Page 75: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

67

4. Conclusiones

Este proyecto ha conseguido con éxito los objetivos planteados en el capítulo de introducción. A

medida que avanzaba el proyecto surgían problemas hardware y software a las que se ha dado solución

y para los cuales se ha tenido que usar el ingenio, la perspicacia, la perseverancia y los conocimientos

previos impartidos en el grado de electrónica.

El gran reto, que ha comportado el mayor trabajo, ha sido usar Robotino y sus interfaces. Aunque es

una gran herramienta con mucho potencial educacional, flaquea en términos de documentación y es

por este motivo que dicho potencial no se puede explotar al máximo. Así que no solo se usan

conocimientos sino que se adquieren a base de trabajo y esfuerzo y de los resultados se obtiene la

mayor satisfacción.

Cabe mencionar que, aunque las soluciones desarrolladas son óptimas y nos han permitido lograr los

objetivos, existen mejoras y recomendaciones que pueden ser implementadas en un futuro. Por

ejemplo, establecer una comunicación bidireccional entre Robotino® y SCARA. Esto sería utilizar una

salida de la caja de conexiones del SCARA que se conecte a la placa WiFi y des de aquí enviar una señal

a Robotino®. Esta señal activaría el giro en el proceso de rotación que actualmente depende del tiempo

y no considera cualquier inconveniente como por ejemplo un choque del brazo.

Otra mejora que se podría incorporar es la evasión de obstáculos. Actualmente se pueden detectar

pero no evitar. Por último, se recomienda cambiar el punto de partida, ahora mismo ubicado en un

punto específico, por la base de carga de Robotino. Cargar las baterías puede resultar engorroso y

limita el tiempo de trabajo así que, además de tener un punto de partida fijo, aumentamos las horas

de trabajo.

Page 76: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …
Page 77: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

69

5. Presupuesto y/o Análisis Económico

El gasto económico que acarrea este proyecto no es más que el de diseño hardware, que a su vez utiliza

software con licencia, y el coste ingenieril. No obstante, la mayoría del material ha sido facilitado por

la universidad a través de los maestros de taller del laboratorio de electrónica, así como el software

facilitado por la universidad o con licencia de estudiante gratuita. A continuación, se desglosa el diseño

hardware para analizarlos basados en un precio aproximado de mercado sin tener en cuenta estas

facilidades.

• Sensor de palé basado en un microrruptor

Microrruptor…………………………………………………………………………………… 2.19 €

1 m cable ……………………………………………………………………………………….. 0.28 €/m

Conectores Banana x3………………………………………………………………………1.273€/u

10.1g de PLA …………………………………………………………………………………... 0.019€/g

1 h de diseño 3D……………………………………………………………………………... 20€/h

Coste Total (IVA incluido) ___________________________________ 26.48€

• Plataforma elevadora

Tablero de aglomerado 60x120………………………………………………………. 10.49€

Tornillos M4……………………………………………………………………………………. 0.15 (x15)

354,8 g de PLA ………………………………………………………………………………… 0.019€/g

8 h de diseño 3D……………………………………………………………………………... 20€/h

Coste Total (IVA incluido) ___________________________________ 179.48€

• Modulo relé ESP32

NodeMCU ESP32..…………………………………………………………………………… 8.29€

1 m cable ……………………………………………………………………………………….. 0.28 €/m

Conectores Banana x3………………………………………………………………………1.273€/u

Transistor 2n700……………………………………………………………………………… 0.292€

Diodo 1N4748…………………………………………………………………………………. 0.35€

Diodo LED ………………………………………………………………………………………. 0.54€

Relé 5V …………………………………………………………………………………………… 3.65€

Zócalo para PCB ……………………………………………………………………………… 0.95€

Placa PCB ……………………………………………………………………………………….. 3.47€

Conector PCB………………………………………………………………………………….. 0.59€

Resistencias(x3)………………………………………………………………………………. 0.013€

3h de Diseño PCB……………………………………………………………………………. 15€/h

Coste Total (IVA incluido) ___________________________________ 67.24€

Page 78: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Memoria

70

• Luz de estado

Lámpara RGB Withled..…………………………………………………………………… 55€

6 m cable ……………………………………………………………………………………….. 0.28 €/m

Soporte de fijación………………………………………………………………………..… 4.05€

Tubo de fijación 38 mm….…………………………………………………………….… 5.80€

Tornillos M4……………………………………………………………………………………. 0.15 (x4)

Coste Total (IVA incluido) ___________________________________ 67.13€

• Mesa paletizado

Liston de madera 9x18 mm..……………………………………………………………. 1.19€

Tablero metacrilato 892.5cm2……………………………….………………………... 0.005 €/cm2

Tornillos M4……………………………………………………………………………………. 0.10 (x4)

Coste Total (IVA incluido) ___________________________________ 6.09€

Software Coste

licencia (€)

Tiempo de

uso (meses)

Tiempo de

licencia (meses)

Coste de

amortización (€)

Solidworks Student

Edition*

99 4 12 33

Eagle* 347 1 12 29

RT Toolbox 2* 205 4 12 68

Robotino®View 0 - - 0

Matlab* 69 1 12 5.75

Coste Total € 135.75

*Gratuito con licencia de estudiante o facilitado por la universidad

A este proyecto se le añaden los costes de las horas de dedicación de aproximadamente 490

hora. A un precio de 20€/hora sumaría un total de 9800

El precio de este proyecto está entorno a los 10283.92 €.

Page 79: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

71

6. Bibliografía

[1] J. Francisco, G. Caro, J. Francisco, G. Caro, M. Lluva, and T. Serra, “Guía docente 295202 - ISA - Integración de Sistemas Automáticos,” pp. 7–10, 2021.

[2] SMC, FAS-200 Sistema de ensamblaje flexible. .

[3] “Festo Didactic InfoPortal.” [Online]. Available: https://ip.festo-didactic.com/InfoPortal/Robotino/Overview/EN/index.html. [Accessed: 15-Jun-2021].

[4] M. Ersoy, D. Tsakas, and C. Deppe, “Robotino ® 4.0, Instrucciones de utilización,” 2019.

[5] “GR 42X40 Motor.” [Online]. Available: https://ip.festo-didactic.com/InfoPortal/Robotino/document/robotinomotorstechnicaldescription_en_de.pdf. [Accessed: 15-Jun-2021].

[6] Rotacaster Wheel limited, “Omnidirectional wheels.” [Online]. Available: https://ip.festo-didactic.com/InfoPortal/Robotino/document/robotinowheelsproductspecification.pdf. [Accessed: 15-Jun-2021].

[7] Dunkermotoren, “Incremental Encoder for GF/G Motors.” [Online]. Available: https://ip.festo-didactic.com/InfoPortal/Robotino/document/robotinoencoderstechnicaldescription_en_de.pdf. [Accessed: 15-Jun-2021].

[8] MAYSER Polymer Electric, “Bumper SK EKS 011.” [Online]. Available: https://ip.festo-didactic.com/InfoPortal/Robotino/document/robotinostossleistedatenblatt.pdf. [Accessed: 15-Jun-2021].

[9] SHARP, “GP2Y0A41SK0F, Analog Output Type Distance Measuring Sensor,” 25-Apr-2005. [Online]. Available: https://ip.festo-didactic.com/InfoPortal/Robotino/document/robotinodistancesensorsspecification.pdf. [Accessed: 15-Jun-2021].

[10] SHARP, “GP2Y0A41SK0F, Distance Measuring Sensor.” [Online]. Available: http://www.farnell.com/datasheets/2364614.pdf. [Accessed: 15-Jun-2021].

[11] “R6093U SPECIFICATION Ver1.2 Microinfinity Confidential.”

[12] “Intel ® RealSense TM D400 Series Product Family Datasheet Intel ® RealSenseTM Vision Processor D4, Intel ® RealSenseTM Vision,” 2019.

[13] FESTO, “Fibre-optic unit 165 326 SOEG-L-Q30-P-A-K-2L.” [Online]. Available: https://ip.festo-didactic.com/InfoPortal/Robotino/document/robotinoopticalsensoroperatinginstructions.pdf. [Accessed: 15-Jun-2021].

[14] Festo AG and Co KG, “Näherungssensor SIEA-M12B-UI-S.”

[15] “TL-WR902AC | Router de Viaje Inalámbrico AC750 | TP-Link Iberia.” [Online]. Available:

Page 80: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Annexos

72

https://www.tp-link.com/es/home-networking/wifi-router/tl-wr902ac/v3/#overview. [Accessed: 15-Jun-2021].

[16] “Tipos de tarjetas de expansión mas utilizadas | Informacion Ordenadores.” [Online]. Available: https://oam2012revuelta.wordpress.com/2012/08/03/tipos-de-tarjetas-de-expansion-mas-utilizadas/. [Accessed: 15-Jun-2021].

[17] “Festo Didactic InfoPortal, Power Suplpy.” [Online]. Available: https://ip.festo-didactic.com/InfoPortal/Robotino/Hardware/Supply/EN/index.html. [Accessed: 15-Jun-2021].

[18] “Festo Didactic InfoPortal, Laser scanner.” [Online]. Available: https://ip.festo-didactic.com/InfoPortal/Robotino/Hardware/Modules/EN/Laser.html. [Accessed: 15-Jun-2021].

[19] “Festo Didactic InfoPortal, Software .” [Online]. Available: https://ip.festo-didactic.com/InfoPortal/Robotino/Software/Programming/EN/index.html. [Accessed: 15-Jun-2021].

[20] “Festo Didactic InfoPortal, Simulation.” [Online]. Available: https://ip.festo-didactic.com/InfoPortal/Robotino/Software/Simulation/EN/index.html. [Accessed: 15-Jun-2021].

[21] “Lua 5.1 Reference Manual.” [Online]. Available: http://www.lua.org/manual/5.1/manual.html#2.5.1. [Accessed: 15-Jun-2021].

[22] S. Tornil Sin, “Robótica Industrial i Visión por Computador Práctica 1 El robot RH-3FH y el entorno de programación RT Toolbox2,” pp. 1–15, 2021.

[23] “Datos técnicos - Mitsubishi Electric Factory Automation - Spain.” [Online]. Available: https://es3a.mitsubishielectric.com/fa/es/shared/img/producttables/2013_148_1?distributor=1. [Accessed: 15-Jun-2021].

[24] Mitsubishi, “Industrial Robots, product catalog.” [Online]. Available: https://www.mitsubishielectric.com/fa/dctlg/catalog/04/pdf/rbt.pdf. [Accessed: 15-Jun-2021].

[25] D. Pons and A. Freixa, “Informació caixa connexions.” .

[26] D. Pons and A. Freixa, “COMUNICACIÓ ETHERNET AMB CONTROLADOR CR750.” .

[27] S. Tornil Sin, “Robótica Industrial i Visión por Computador Práctica 2 Programación del robot ( I ),” no. I, 2021.

[28] R. Loredo, “Programacion Melfa Iv.” [Online]. Available: https://es.slideshare.net/ruben_loredo/programacion-melfa-iv. [Accessed: 15-Jun-2021].

[29] “Industrial/Collaborative Robots-MELFA Robots CAD Data Downloads | MITSUBISHI ELECTRIC FA.” [Online]. Available: https://www.mitsubishielectric.com/fa/download/cad/rbt/robot/index.html. [Accessed: 15-Jun-2021].

Page 81: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

73

[30] “Robotino robot | 3D CAD Model Library | GrabCAD.” [Online]. Available: https://grabcad.com/library/robotino-robot-2. [Accessed: 15-Jun-2021].

[31] “3D ContentCentral - Modelos CAD en 3D gratuitos, dibujos 2D y catálogos de proveedores.” [Online]. Available: https://www.3dcontentcentral.es/parts/supplier/UNIVERSAL-ROBOTS.aspx. [Accessed: 15-Jun-2021].

[32] I. A. Muhammad, A. Tenhunen, T. Oksanen, and K. Cheremetiev, “Final Report Project # 34 Flexible Factory Floor with Mobile Robots and Wireless Communication,” 2018.

[33] M. Krogius, A. Haggenmiller, and E. Olson, “Flexible Layouts for Fiducial Tags.”

[34] “protocolo | Definición | Diccionario de la lengua española | RAE - ASALE.” [Online]. Available: https://dle.rae.es/protocolo?m=form. [Accessed: 15-Jun-2021].

[35] A. Adrover Llinás, “Introducción al funcionamiento de las redes TCP/IP.” [Online]. Available: https://www.linkedin.com/learning/redes-tcp-ip-esencial/introduccion-al-funcionamiento-de-las-redes-tcp-ip. [Accessed: 15-Jun-2021].

[36] “rfc6335.” [Online]. Available: https://datatracker.ietf.org/doc/html/rfc6335. [Accessed: 15-Jun-2021].

[37] “Service Name and Transport Protocol Port Number Registry.” [Online]. Available: https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml. [Accessed: 15-Jun-2021].

[38] “UDP - Protocolos de la familia Internet.” [Online]. Available: http://personales.upv.es/rmartin/TcpIp/cap02s11.html. [Accessed: 15-Jun-2021].

[39] R. Montañana, “Curso de Redes. 8.2 La cabecera IP. - YouTube.” [Online]. Available: https://www.youtube.com/watch?v=twfTrXFCQYc&list=PLomN84AdULIBcoI8Rb98dnompliIktJk9&index=109. [Accessed: 16-Jun-2021].

[40] “rfc760.” [Online]. Available: https://datatracker.ietf.org/doc/html/rfc760#page-5. [Accessed: 16-Jun-2021].

[41] “UDP: ¿qué es UDP? - IONOS.” [Online]. Available: https://www.ionos.es/digitalguide/servidores/know-how/udp-user-datagram-protocol/. [Accessed: 16-Jun-2021].

[42] “RFC 768-UDP.” [Online]. Available: https://dl.acm.org/doi/pdf/10.17487/RFC0768. [Accessed: 16-Jun-2021].

[43] “PROYECTOS DE TECNOLOGÍA: Microrruptor o final de carrera.” [Online]. Available: https://elblogdelprofesordetecnologia.blogspot.com/2016/02/microrruptor-o-final-de-carrera.html. [Accessed: 16-Jun-2021].

[44] “MICRORRUPTOR PALANCA 53MM 16A.” [Online]. Available: https://diotronic.com/microrruptores-final-de-carrera/12373-microrruptor-palanca-53mm-16a. [Accessed: 16-Jun-2021].

Page 82: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Annexos

74

[45] “ESP-01S Relay v1.0 1. Description.”

[46] Espressif Systems, “ESP8266EX Datasheet.” [Online]. Available: https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf. [Accessed: 16-Jun-2021].

[47] Espressif Systems, “ESP32-WROOM-32 Datasheet.” [Online]. Available: https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32_datasheet_en.pdf. [Accessed: 16-Jun-2021].

[48] “ESP32-DEVKITC-32D footprint & symbol by Espressif Systems | SnapEDA.” [Online]. Available: https://www.snapeda.com/parts/ESP32-DEVKITC-32D/Espressif Systems/view-part/. [Accessed: 16-Jun-2021].

[49] “2N7000 footprint & symbol by STMicroelectronics | SnapEDA.” [Online]. Available: https://www.snapeda.com/parts/2N7000/STMicroelectronics/view-part/?company=Polytechnic+University&amp;welcome=home. [Accessed: 16-Jun-2021].

[50] “RELAY SRD-05VDC-SL-C · GitHub.” [Online]. Available: https://github.com/dvdnhm/Maker-Tools-Eagle-Libraries/find/master. [Accessed: 16-Jun-2021].

[51] “2N7002 pdf, 2N7002 description, 2N7002 datasheets, 2N7002 view ::: ALLDATASHEET :::” [Online]. Available: https://pdf1.alldatasheet.com/datasheet-pdf/view/559974/FAIRCHILD/2N7002.html. [Accessed: 16-Jun-2021].

[52] “¿Por qué poner un diodo en paralelo con un relé? - Electrónica Unicrom.” [Online]. Available: https://unicrom.com/por-que-se-pone-un-diodo-en-paralelo-con-un-rele/. [Accessed: 16-Jun-2021].

[53] “1N4148; 1N4448 Datasheet.” [Online]. Available: http://j5d2v7d7.stackpathcdn.com/wp-content/uploads/2019/04/PH4148.pdf. [Accessed: 16-Jun-2021].

[54] Withled, “Catálogo lámparas LED serie 800.” [Online]. Available: https://www.e-merchan.com/media/pdf/LP80010.pdf. [Accessed: 16-Jun-2021].

[55] Espressif Systems, “ESP32 Series Datasheet,” 2021.

[56] A. J. Paucar Ati, “ANÁLISIS E IMPLEMENTACIÓN DE UN SISTEMA INALÁMBRICO CON PROTOCOLO DE COMUNICACIÓN UDP ENTRE EL ROBOTINO, BRAZO ROBÓTICO Y LA MESA DE TRABAJO PARA REALIZAR PROCESOS DE PALETIZACIÓN,” 2015.

[57] Espressif Systems, “ESP32 AT Instruction Set and Examples,” 2019.

[58] J. Astoraque, “SERIE ESP32 # 2: PROGRAMAR ESP32 CON ARDUINO IDE - YouTube.” [Online]. Available: https://www.youtube.com/watch?v=NmVA8XSt3yQ. [Accessed: 16-Jun-2021].

[59] “Send and Receive UDP String | Arduino.” [Online]. Available: https://www.arduino.cc/en/Tutorial/WiFiSendReceiveUDPString. [Accessed: 16-Jun-2021].

[60] “Arduino - WiFi.” [Online]. Available: https://www.arduino.cc/en/Reference/WiFi. [Accessed:

Page 83: INTEGRACIÓN DE PLATAFORMA ROBÓTICA MÓVIL EN SISTEMA DE …

Integración de plataforma robótica móvil en sistema de ensamblaje académico

75

16-Jun-2021].

[61] Priya, “Client Server Communication over UDP Protocol : IOT Part 31.” [Online]. Available: https://www.engineersgarage.com/client-server-communication-over-udp-protocol-iot-part-31/. [Accessed: 16-Jun-2021].

[62] “Packet Sender - Download.” [Online]. Available: https://packetsender.com/download#show. [Accessed: 16-Jun-2021].

[63] “¿Qué es DHCP y cómo funciona un servidor DHCP? - IONOS.” [Online]. Available: https://www.ionos.es/digitalguide/servidores/configuracion/que-es-el-dhcp-y-como-funciona/. [Accessed: 16-Jun-2021].

[64] “Arduino - WiFiConfig.” [Online]. Available: https://www.arduino.cc/en/Reference/WiFiConfig. [Accessed: 16-Jun-2021].

[65] “TL-WR902AC V3 User Guide | TP-Link.” [Online]. Available: https://www.tp-link.com/us/user-guides/tl-wr902ac_v3/chapter-3-set-up-internet-connection-via-quick-setup-wizard#ug-sub-title-1. [Accessed: 16-Jun-2021].

[66] “Curve Fitting Toolbox - MATLAB.” [Online]. Available: https://es.mathworks.com/products/curvefitting.html. [Accessed: 16-Jun-2021].

[67] “Robotino View Marker Position | Distance not calculated right - openrobotino.” [Online]. Available: https://forum.openrobotino.org/forum/main-forum/software/12344-robotino-view-marker-position-distance-not-calculated-right. [Accessed: 16-Jun-2021].