Está en la página 1de 71

RPC-SO-30-No.

507-2019

OP C I Ó N D E
T I T U L A C I O N:

PROYECTO DE DESARROLLO

T E M A :
DESARROLLO DE UN SISTEMA DE LOCALIZACIÓN
DE OBJETOS MEDIANTE UN BRAZO ROBÓTICO
CONTROLADO POR COMANDOS DE VOZ Y VISIÓN
ARTIFICIAL EN EL CONTEXTO DE LA INDUSTRIA 4.0

AUTOR:
WILMAN GIOVANNY SALAZAR PATIN

DIRECTOR:

CHRISTIAN RAUL SALAMEA PALACIOS

GUAYAQUIL–ECUADOR
2022
Autor:
Wilman Giovanny Salazar Patin
Ingeniero Electrónico.
Candidato a Magíster en Electrónica y Automatización,
Mención en Informática Industrial por la Universidad
Politécnica Salesiana - Sede Guayaquil.
wsalazar@est.ups.edu.ec

Dirigido por:

Christian Raul Salamea Palacios


Ingeniero electrónico
Máster en diseño, gestión y dirección de proyectos
Doctor en el programa oficial de doctorado en ingeniería de
sistemas electrónicos
csalamea@ups.edu.ec

Todos los derechos reservados.

Queda prohibida, salvo excepción prevista en la Ley, cualquier forma de


reproducción, distribución, comunicación pública y transformación de esta
obra para fines comerciales, sin contar con autorización de los titulares de
propiedad intelectual. La infracción de los derechos mencionados puede ser
constitutiva de delito contra la propiedad intelectual. Se permite la libre
difusión de este texto con fines académicos investigativos por cualquier
medio, con la debida notificación a los autores.

DERECHOS RESERVADOS
©2022 Universidad Politécnica Salesiana.
GUAYAQUIL – ECUADOR – SUDAMÉRICA
WILMAN GIOVANNY SALAZAR PATIN

DESARROLLO DE UN SISTEMA DE LOCALIZACIÓN


DE OBJETOS MEDIANTE UN BRAZO ROBÓTICO
CONTROLADO POR COMANDOS DE VOZ Y VISIÓN
ARTIFICIAL EN EL CONTEXTO DE LA INDUSTRIA 4.0
Índice general

Índice de Figuras V

Índice de Tablas VIII

Resumen IX

Abstract IX

1. Introducción 1
1.1. Descripción general del problema . . . . . . . . . . . . . . . . 2
1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . 4
1.2.2. Objetivos específicos . . . . . . . . . . . . . . . . . . . 4
1.3. Contribuciones . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4. Organización del manuscrito . . . . . . . . . . . . . . . . . . . 5

2. Marco teórico referencial 6


2.1. Estado del Arte . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1. Visión artificial . . . . . . . . . . . . . . . . . . . . . . 7
2.1.2. Reconocimiento de colores con visión artificial . . . . . 7
2.1.3. Binarización de imágenes RGB . . . . . . . . . . . . . 9
2.1.4. Tratamiento de imágenes en HSV . . . . . . . . . . . . 9
2.1.5. Sistema de Iluminación . . . . . . . . . . . . . . . . . 9
2.1.6. Ventajas y Desventajas de la Iluminación Frontal . . . 11
2.1.7. Brazo Robótico . . . . . . . . . . . . . . . . . . . . . . 11
2.1.8. Grados de libertad . . . . . . . . . . . . . . . . . . . . 12
2.1.9. Brazo robótico LewanSoul . . . . . . . . . . . . . . . . 12
2.1.10. Control de brazos robóticos . . . . . . . . . . . . . . . 13
2.1.11. Diseño y programación en aplicación móvil . . . . . . 14
2.1.12. Diseño de programa en arduino . . . . . . . . . . . . . 14

III
ÍNDICE GENERAL IV

2.1.13. Cámara Web . . . . . . . . . . . . . . . . . . . . . . . 15


2.1.14. Reconocimiento de voz . . . . . . . . . . . . . . . . . . 16
2.1.15. Android . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.16. Principales componentes del sistema operativo Android 16
2.1.17. Android para reconocimiento de voz . . . . . . . . . . 17
2.1.18. Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2. Definiciones Previas . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.1. Cinemática directa . . . . . . . . . . . . . . . . . . . . 18
2.2.2. Método Geométrico . . . . . . . . . . . . . . . . . . . 18
2.2.3. Método Denavit-Hartenberg . . . . . . . . . . . . . . . 19
2.2.4. Cinemática inversa . . . . . . . . . . . . . . . . . . . . 20
2.2.5. Método Geométrico . . . . . . . . . . . . . . . . . . . 20
2.2.6. Matriz de transformación homogénea . . . . . . . . . . 21
2.3. Formulación del Problema . . . . . . . . . . . . . . . . . . . . 23

3. Marco metodológico 25
3.1. Diseño del experimento . . . . . . . . . . . . . . . . . . . . . . 27
3.1.1. Delimitación del área de trabajo . . . . . . . . . . . . 27
3.1.2. Cinemática del robot LewanSoul . . . . . . . . . . . . 27
3.1.3. Aplicación de los Parámetros de Denavit-Hartenberg . 27
3.1.4. Cinemática Directa . . . . . . . . . . . . . . . . . . . . 28
3.1.5. Cinemática Inversa . . . . . . . . . . . . . . . . . . . . 33
3.2. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.1. Control del robot LewanSoul . . . . . . . . . . . . . . 35
3.2.2. Control mediante Matlab . . . . . . . . . . . . . . . . 36
3.2.3. Control mediante comandos de voz . . . . . . . . . . . 39
3.2.4. Control mediante reconocimiento de color . . . . . . . 44
3.3. Resultados y Discusión . . . . . . . . . . . . . . . . . . . . . . 48
3.3.1. Pruebas de la Cinemática Directa . . . . . . . . . . . . 48
3.3.2. Pruebas de la Cinemática Inversa . . . . . . . . . . . . 48

4. Conclusiones 54

5. Recomendaciones 56

6. Anexos 57
Índice de Figuras

2.1. Descomposición de la luz blanca, [Matías et al., 2018] . . . . . 8


2.2. Planos de color RGB representados como tres matrices
bidimensionales, [Martinez, 2012] . . . . . . . . . . . . . . . . 8
2.3. Representación del espacio de color HSV, [Bustamante, 2014] 10
2.4. Tipos de iluminación: a) frontal y b)
retroiluminación, [González Marcos et al., 2006] . . . . . . . . 10
2.5. Partes de un brazo robot, [Gonzales, 2004] . . . . . . . . . . . 11
2.6. Brazo robot LewanSoul, [Candy-ho, 2022] . . . . . . . . . . . 13
2.7. Programación para una app en Inventor, [Makers, 2014] . . . 15
2.8. Cámara Web Logitech-c920, [TECNIT, 2022] . . . . . . . . . 16
2.9. Logotipo del sistema Android, [Aveda, 2022] . . . . . . . . . . 17
2.10. Representación gráfica de la cinemática directa, [la Mancha,
2022] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.11. Robot cilíndrico, [García Abella, 2018] . . . . . . . . . . . . . 19
2.12. Cinemática directa, [la Mancha, 2022] . . . . . . . . . . . . . 20
2.13. Método geométrico, [clic, 2022] . . . . . . . . . . . . . . . . . 21
2.14. Robot esférico de 3GDL, [Barrientos et al., 2007] . . . . . . . 22
2.15. Robot esférico de 3GDL girado 90◦ en la articulación
2, [Barrientos et al., 2007] . . . . . . . . . . . . . . . . . . . . 22

3.1. Arquitectura del sistema de localización de objetos mediante


un brazo robot comandado por voz y visión artificial. . . . . . 26
3.2. Posiciones y medidas del área de trabajo del sistema de
localización de objetos. . . . . . . . . . . . . . . . . . . . . . . 28
3.3. Cantidad de luz que recibe el área de trabajo. . . . . . . . . . 29
3.4. Valor medido por la app Luxómetro Digital. . . . . . . . . . . 29
3.5. Posición de las articulaciones rotacionales y medidas de los
eslabones móviles que conforman el brazo robot de LewanSoul. 30

V
ÍNDICE DE FIGURAS VI

3.6. Posición de los sistemas de coordenadas auxiliares en cada uno


de los ejes de rotación articular orientados en la posición de
reposo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.7. Posición y orientación del efector final (X5, Y5, Z5) con
respecto al sistema de referencia fijo (X0, Y0, Z0). . . . . . . 34
3.8. Geometría analizada para resolver el cálculo de la cinemática
inversa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.9. Interfaz gráfica de usuario creada en MATLAB para controlar
el brazo del robot. . . . . . . . . . . . . . . . . . . . . . . . . 37
3.10. Interfaz gráfica de inicio creada en MATLAB para acceder al
controlador del brazo robótico. . . . . . . . . . . . . . . . . . 38
3.11. Diagrama de flujo del algoritmo creado para controlar el brazo
robótico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.12. Pantalla inicial de la aplicación móvil para seleccionar el
dispositivo Bluetooth que se encuentra conectado al Arduino. 39
3.13. Interfaz gráfica de la aplicación móvil utilizada para el
reconocimiento de palabras. . . . . . . . . . . . . . . . . . . . 41
3.14. Diagrama de conexión del módulo Bluetooth HC06 con el
arduino. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.15. Diagrama de flujo de algoritmo creado en el dispositivo móvil
para reconocer los comandos de voz. . . . . . . . . . . . . . . 43
3.16. Diagrama de flujo de algoritmo creado en el Arduino para
recibir los comandos y reenviarlos a MATLAB. . . . . . . . . 43
3.17. Diagrama de flujo de algoritmo creado en MATLAB para
controlar el brazo mediante comandos de voz. . . . . . . . . . 44
3.18. Reconocimiento de color amarillo (A), rojo (B) y azul (C)
desde arriba hacia abajo respectivamente. . . . . . . . . . . . 45
3.19. Diagrama de flujo del algoritmo creado en MATLAB para
reconocer el color amarillo, rojo y azul. . . . . . . . . . . . . . 47
3.20. Diagrama de flujo del algoritmo creado en MATLAB para
detectar los objetos de color verde pintados en la pinza del
robot y de esa manera corregir la posición de la pinza si no
está bien ubicada. . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.21. Mediciones realizadas con un flexómetro para comprobar la
posición del efector final con respecto al sistema de referencia
fijo (X0, Y0, Z0). . . . . . . . . . . . . . . . . . . . . . . . . . 49

6.1. Anexo A: Vista superior del espacio de trabajo del proyecto. . 57


6.2. Anexo B: Ubicación de las lámparas Leds y la cámara web
sobre el espacio de trabajo. . . . . . . . . . . . . . . . . . . . 58
ÍNDICE DE FIGURAS VII

6.3. Anexo C: Caja contenedora del Arduino y el adaptador de


corriente del brazo robot. . . . . . . . . . . . . . . . . . . . . 58
Índice de Tablas

2.1. Transformaciones básicas. . . . . . . . . . . . . . . . . . . . . 19


2.2. Parámetros DH para el robot cilíndrico de la Figura 2.11. . . 20
2.3. Parámetros DH para el robot cilíndrico de la Figura 2.15. . . 21

3.1. Parámetros de Denavit y Hartenberg (DH) para la


configuración del brazo robot representados en la Figura 3.5. . 31
3.2. Tabla comparativa de las coordenadas teóricas y reales de la
posición del efector final con la cinemática directa. . . . . . . 49
3.3. Cálculo del porcentaje de error de la posición del efector final
con la cinemática directa. . . . . . . . . . . . . . . . . . . . . 50
3.4. Tabla comparativa de las coordenadas teóricas y reales de la
posición del efector final con la cinemática inversa con el color
rojo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.5. Cálculo del porcentaje de error de la posición del efector final
con la cinemática inversa con el color rojo. . . . . . . . . . . . 51
3.6. Tabla comparativa de las coordenadas teóricas y reales de la
posición del efector final con la cinemática inversa del color
amarillo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.7. Cálculo del porcentaje de error de la posición del efector final
con la cinemática inversa. . . . . . . . . . . . . . . . . . . . . 52
3.8. Tabla comparativa de las coordenadas teóricas y reales de la
posición del efector final con la cinemática inversa del color
azul. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.9. Cálculo del porcentaje de error de la posición del efector final
con la cinemática inversa. . . . . . . . . . . . . . . . . . . . . 53

VIII
Resumen

El presente proyecto detalla los métodos seguidos para obtener un sistema


de localización de objetos gracias al reconocimiento de colores con visión
artificial y comandos de voz. El objetivo principal de este trabajo fue
específicamente localizar un objeto dentro de un área de trabajo para recoger
y trasladarlo desde un punto hacia otro. Con el aporte expuesto en este
documento un usuario es capaz de comandar un brazo robótico mediante
comandos de voz dictados a un dispositivo móvil. Los colores escogidos para
realizar este proyecto fueron el amarillo, azul y rojo.
Para lograr posicionar los objetos, se utilizó un brazo robótico de la
marca Lewan Soul de cinco grados de libertad, en cuanto para el análisis
de imágenes se aprovechó las herramientas de visión artificial que ofrece
MATLAB que en conjunto con una cámara de alta resolución se consiguió
el objetivo de identificar los colores. Para el envío de órdenes se generó una
aplicación con el sistema operativo Android en un dispositivo móvil y con la
ayuda del reconocimiento de voz de Google permiten reconocer las palabras
pre-establecidas para funcionamiento del mismo.
El presente documento esta ordenado de la siguiente manera. Primero, se
presentan los antecedentes, objetivos y justificación del trabajo desarrollado.
A continuación, se expone la teoría básica utilizada en el presente proyecto.
Luego, se explica con detalle la metodología utilizada para desarrollar este
proyecto. Por último, se presenta el resultado de los análisis experimentales
cuando el brazo robótico está en marcha. Y finalmente, concluye el proyecto
con algunas observaciones y recomendaciones.
PALABARAS CLAVE: Brazo robot. Control por voz. Visión Artificial.
Reconocimiento de colores.

IX
Abstract

This project details the methods followed to obtain an object location


system thanks to color recognition with artificial vision and voice commands.
The main objective of this work was specifically to locate an object within
a work area to pick it up and move it from one point to another. With the
contribution exposed in this document, a user is able to command a robotic
arm through voice commands dictated to a mobile device. The colors chosen
for this project were yellow, blue and red.
In order to position the objects, a robotic arm of the Lewan Soul brand
with five degrees of freedom was used, while for the image analysis the
artificial vision tools offered by MATLAB were used, which together with
a high resolution camera was achieved. the purpose of identifying colors. To
send orders, an application was generated with the Android operating system
on a mobile device and with the help of Google’s voice recognition, it allows
recognizing the pre-established words for its operation.
This document is organized as follows. First, the background, objectives
and justification of the work developed are presented. Next, the basic theory
used in this project is presented. Then, the methodology used to develop
this project is explained in detail. Finally, the result of the experimental
analyzes is presented when the robotic arm is running. And finally, the
project concludes with some observations and recommendations.
KEY WORDS: Robot arm. Voice control. Artificial Vision. Color
recognition.

X
Capítulo 1

Introducción

Los brazos robóticos en la industria han tomado gran importancia en


las últimas décadas, ya que, gracias a ellos se han conseguido automatizar
varios procesos repetitivos que en el pasado conllevaban gran esfuerzo por
personal operativo y muchos gastos para la empresa. La automatización y la
robótica han ganado su prestigio a medida que la tecnología y los avances en
investigación han ido avanzando. Uno de los avances de la tecnología hoy en
día es el control por comandos de voz, ya que permite al usuario comandar
un proceso por medio de órdenes habladas.
Además de lo dicho en el párrafo anterior, otra tecnología que está ganando
atención en la industria es la visión artificial, ya que esta tecnología se puede
utilizar para dotar a los robots de capacidades de visión específicas. Sin duda,
la combinación de estas dos tecnologías, optimiza el sistema siendo de vital
importancia su aplicación para el desarrollo de sistemas automatizados en la
línea de producción.
La función del proyecto refiere en localizar un objeto dentro del área de
trabajo para sujetarlo y trasladarlo desde un punto hacia otro utilizando
técnicas de visión artificial para reconocer colores y diferenciar un objeto
de otro, y usando también comandos de voz para dar órdenes habladas al
brazo robot. Con el aporte expuesto en este documento un usuario es capaz
de comandar un brazo robótico mediante comandos de voz pre establecidos
dictados por medio un dispositivo móvil.

1
1.1. DESCRIPCIÓN GENERAL DEL PROBLEMA 2

1.1. Descripción general del problema


La comunicación por voz son actividades cotidianas de comunicación
interpersonal. Esto se debe a que la información puede fluir entre muchas
personas. Se requieren al menos dos personas para intercambiar información.
Uno envía el mensaje, el otro lo recibe [Pérez and Portilla, 2014].
Para el reconocimiento por comandos de voz se debe captar la señal para
ser procesada por diversas etapas y posteriormente deben ser filtradas, en
vista que la voz humana tiene diversas variaciones se deben aplicar métodos
de extracción de sus características mediante intervalos cortos de tiempos,
los cuales pueden ser de 20 a 30 milisegundos los cuales no presentan
excesivamente cambios en la práctica porque se considera que la velocidad
depende del tracto vocal y comúnmente se establece en este intervalo de
tiempo según [Pérez and Portilla, 2014].
En el contexto de la Industria 4.0, los beneficios que se obtienen al incluir
el reconocimiento de voz en los brazos robóticos son: primero, el sistema no
necesita al operador en todo el proceso, solo para iniciar y operar el robot;
segundo, mejor desempeño en el posicionamiento de objetos, tratando de
evitar que el operador se encuentre en conjunto con el brazo robótico en
algunos casos en entornos peligrosos.
En el campo industrial se presenta varias solicitudes o necesidades que
requieren de soluciones específicas para el control de diferentes procesos
automatizados desde el más sencillo hasta el más sofisticado y para
eso necesitan del soporte de Ingenieros electrónicos que se ocupan en
implementar tecnologías adecuadas para obtener sistemas óptimos que
ayudan al proceso de fabricación [Wilamowski and Irwin, 2011].
Los sistemas que están implementados en una línea de fabricación
industrial automatizada son de alta complejidad siendo necesario el uso
de tecnología inteligente como el reconocimiento de voz, visión artificial,
algoritmos de procesamiento y que son de vital importancia para un eficiente
proceso de fabricación [Wilamowski and Irwin, 2011]. En los procesos
industriales se ha observado un gran avance al utilizar la tecnología de
reconocimiento de voz y visión artificial, aunque actualmente están en
proceso de desarrollo. En la actualidad las industrias se enfocan en obtener
productos de alta gama a bajo costos y para eso requieren de sistemas con
tecnología inteligentes que elaboren productos de manera eficiente, pero a su
vez de manera autónoma con poca intervención del operario.
Los sistemas autónomos requieren de interfaces con alta eficiencia
en su diseño que incluyan tecnologías sensoriales para que ejecuten las
1.1. DESCRIPCIÓN GENERAL DEL PROBLEMA 3

actividades programadas ya sea de manera remota o in situ. Si el sistema


automatizado responde a las necesidades con alto grado de desempeño con
poca intervención del usuario y mínimos ajustes del proceso de fabricación,
se puede definir al sistema como autónomo.
El sistema automatizado se encamina en la tecnología hombre-maquina,
con la implementación de interfaces de reconocimiento de voz y visión
artificial, generando un proceso optimo en la línea de producción, pero en
algunos casos el sistema de reconocimiento de voz en la industria se ve
afectado su rendimiento por múltiples razones:
La tecnología es nueva, pero muy bien desarrollada para ser
implementadas en procesos industriales. El entorno industrial presenta un
ambiente con mucho ruido que no permiten una buena adquisición de señal
de sonido. Las interfaces que se utilizan en las industrias son limitadas en
sus características, porque no cuentan con computadoras de alto grado de
procesamiento de datos dedicados a la tecnología hombre-maquina.
Los diseñadores de esta tecnología de reconocimiento de voz continúan
desarrollando mejoras a la interfaz hombre-máquina que permita comprender
la naturaleza de los sonidos e interpretar el ruido del entorno, sin
embargo, se siguen generando herramientas adicionales como los motores
de procesamiento de voz que ayuden a fortalecer el sistema mediante otras
aplicaciones [Pires, 2005].
Los sistemas de reconocimiento de voz son muy utilizados en procesos de
control de celdas de producción industrial, pero el ambiente industrial que
en todo momento está generando ruido sigue siendo un problema para la
adquisición de patrones de voz, teniendo como solución el uso de palabras
pre-establecidas especificas previos [Mosquera Araujo, 2019].
La visión artificial viene presentando avances a pasos agigantados en
múltiples aplicaciones, gracias a la creación de herramientas que permiten la
simulación de objetos y que las maquinas puedan observar e ir identificando
las características propias de los elementos o entorno [Sobrado Malpartida,
2003].
Actualmente es común observar en diferentes campos tecnológicos la
utilización de brazos robóticos que sean teleoperados remotamente con la
ayuda de tecnologías instaladas en el mismo, como el reconocimiento de voz,
visión artificial y algoritmos inteligentes [Lopez-Juarez, 2000].
Al utilizar estas tecnologías reduce los sinnúmeros de procesos de cálculos
complejos que solo consume tiempo para diseño computacional. Un sistema
más robusto y auto adaptativo, inevitablemente mejorará el rendimiento
1.2. OBJETIVOS 4

y la flexibilidad en aplicaciones colaborativas con manipuladores robóticos


mediante el uso de un sistema multimodal que recibe información de
diferentes modos sensoriales con fines de fabricación [Peña et al., 2004].
En líneas de producción que integran brazos robóticos con reconocimiento
de voz y visión artificial permiten realizar funciones de localización y
posterior posicionamiento de objetos, siendo un punto principal para
la investigación y desarrollar sistemas de fabricación inteligente. Los
diseñadores de estos sistemas con visión de automatización van mejorando la
afinidad de precisión y velocidad, pero considerando la cinemática del brazo
robótico es de vital importancia proveer de capacidades sensoriales flexibles
para que todo el sistema sea autónomo [Peña et al., 2004].
Los sistemas que cuentan con Inteligencia artificial requieren de
algoritmos de procesamiento inteligentes que permitan ejecutar tareas
comunes como: identificación de patrones, entendimiento de voz natural,
interpretación de imágenes que además incluyan una planificación de tareas
involucradas [Salazar and Mesa, 2019].
El presente trabajo agrupa todos los conceptos expuestos para comandar
un brazo robótico en base de información de audio y video. El sistema
resultante para conseguir este objetivo consta principalmente de dos
fases: el reconocimiento de voz y la adquisición de las imágenes para
el posicionamiento. El proceso de reconocimiento de voz envía la orden,
trabajando en conjunto con la adquisición de imágenes, que se realiza
mediante la cámara. Como proceso final, el logaritmo inteligente procesará
la información interpretando las imágenes adquiridas, extrayendo todas las
características del elemento o entorno y presentar resultados de acuerdo a la
necesidad.

1.2. Objetivos
1.2.1. Objetivo general
Desarrollar un sistema de localización de objetos mediante un brazo
robótico controlado por comandos de voz y visión artificial en el contexto de
la Industria 4.0.

1.2.2. Objetivos específicos


Diseñar un algoritmo para comandar al brazo robot de (5GDL) a
través de instrucciones por voz, utilizando arquitectura cliente- servidor
1.3. CONTRIBUCIONES 5

mediante un micrófono para muestrear la señal de audio o comando


enunciado por el usuario.

Diseñar un algoritmo capaz de localizar objetos cúbicos de colores


primarios, mediante técnicas basadas en el tratamiento de imágenes,
para conocer las coordenadas del objeto dentro del área de trabajo.

Evaluar el rendimiento del sistema, mediante la simulación de órdenes


de posicionamiento, que integren, tanto, el sistema de reconocimiento
de voz e imágenes.

1.3. Contribuciones
La contribución a la industria en el presente trabajo se enfocó en el
área de manipulación de objetos, los cuales son procesos repetitivos. Dichos
procesos pueden ser elaborados por robots manipuladores que se asemejan
a la morfología de un brazo humano, es decir, cuentan con brazo, codo,
antebrazo, muñeca, etc. Además, se ha incursionado en la utilización de visión
artificial, la cuál puede ayudar a reconocer objetos de acuerdo a su color de
forma autmática. Finalmente, el presente trabajo cuenta con comandos de
voz para que el usuario comande el brazo robótico utilizando un algoritmo
de reconocimiento de palabras proporcionado por Google. En conclusión, se
consigue unir todas estas tecnologías para que trabajen de forma conjunta y
recnozcan y clasifiquen objetos marcados con colores primarios.

1.4. Organización del manuscrito


El presente documento está ordenado de la siguiente manera. Primero, se
presentan los antecedentes, objetivos y justificación del trabajo desarrollado.
A continuación, se expone la teoría básica utilizada en el presente proyecto.
Luego, se explica con detalle la metodología utilizada para desarrollar este
proyecto. Por último, se presenta el resultado de los análisis experimentales
cuando el brazo robótico está en marcha. Y finalmente, concluye el proyecto
con algunas observaciones y recomendaciones.
Capítulo 2

Marco teórico referencial

En este capítulo se describe de forma breve la teoría y los conceptos


utiizados en el presente trabajo. Se comienza describiendo la visión artificial
y las técnicas que este proceso conlleva. A continuación, se describe
brevemente la teoría de los brazos robóticos junto con sus principales
procesos matemáticos. También se presenta los conceptos de programación
de aplicaciones móviles en Android para realizar reconocimiento de voz y
enviar datos a un computador mediante comumnicación Bluetooth.

6
2.1. ESTADO DEL ARTE 7

2.1. Estado del Arte


2.1.1. Visión artificial
La visión artificial (VA) es la ciencia y tecnología que se encuentra dentro
de la rama de la inteligencia artificial (IA), la cual es capaz de extraer
información del mundo real mediante imágenes para poderlas analizar y
procesar con códigos de programación del computador, también queda
definida como modelos apropiados que permite leer información espacial a
través de imágenes digitales para poder resolver alguna actividad en la cual
se encuentre monitoreando en tiempo real, actualmente la visión artificial se
encuentra en los campos industriales y médicos permitiendo así reaccionar a
diversos manipuladores en un espacio desconocido con una precisión exacta
gracias a la realidad aumentada [De La Rosa Mejillón, 2014].
La visión artificial es la combinación de software y hardware que ayuda
controlar los diversos dispositivos acoplados simultáneamente para cumplir
una función específica, utilizando el procesamiento de imágenes, consta de
sensores digitales incluidos dentro de las cámaras para procesar, analizar y
medir variables para aumentar la calidad, productividad y obtener menores
costos de producción de algún producto [COGNEX, 2018].
La visión artificial consta de cuatros procesos importantes como son
guiado, identificación, calibración e inspección los cuales permite a un
controlador dirigirse a una pieza de manera exacta y precisa en un espacio de
3D, permite identificar caracteres en un producto para poder inspeccionar
si existe o no algún defecto funcional, el manipulador se puede ubicar
geométricamente en el objeto realizando comparaciones para no cometer
ningún error [COGNEX, 2018].

2.1.2. Reconocimiento de colores con visión artificial


Al atravesar luz solar por un prisma, se observa que no es una luz blanca
si no que está formada por siete colores que va desde el color rojo al violeta,
así como podemos ver en la imagen (Figura 2.1).
Según la CIE (Comisión Internacional de la Iluminación) define los
siguientes términos:

Luminosidad (brillo): propiedad de efecto visual según la cual una


superficie parece emitir más o menos luz.

Matiz (tono): propiedad del color.


2.1. ESTADO DEL ARTE 8

Figura 2.1: Descomposición de la luz blanca, [Matías et al., 2018]

Figura 2.2: Planos de color RGB representados como tres matrices


bidimensionales, [Martinez, 2012]

Saturación: propiedad visual que permite estimar la proporción de color


cromático puro contenido en la sensación visual [Matías et al., 2018].
Una imagen está compuesta por un parámetro sumamente importante
que es la resolución, el cual es un conjunto de puntos de colores que integran
una matriz de datos para aplicaciones digitales, dichos puntos se denomina
pixeles, una de las aplicaciones que se puede utilizar en una imagen es un
filtro con el cual obtener información más detallada de ella.
Para poder definir una imagen de color, donde cada pixel esta descrito y
codificado de la siguiente manera para un espacio de color RGB se representa
cada pixel como una unidad de color, esta se puede interpretar como una
matriz de color de tres niveles de intensidad, donde cada nivel corresponde a
la intensidad de color de las componentes rojo, azul, verde, así como podemos
ver en la Figura 2.2 [Aguirre, 2013].
Para poder obtener la imagen deseada se procede con lo siguiente:
2.1. ESTADO DEL ARTE 9

Suavizar imagen: minimizar los colores que contiene mayor intensidad.

Eliminar ruido: elimina colores con deformaciones que carecen de


forma.

Detectar bordes: identifica la forma que tiene mayor pronunciación.

2.1.3. Binarización de imágenes RGB


La binarización es el proceso de transformación de los píxeles solo blancos
o negros de varias imágenes, para ello se calcula la intensidad de cada uno de
los píxeles y se convierte en blanco si se encuentran por debajo del umbral
y negro si se encuentra por arriba del umbral.

2.1.4. Tratamiento de imágenes en HSV


El HSV es un sistema que modifica las características del color, creando
diferentes colores, además identifica el matiz y la saturación. El matiz
identifica los colores azul, naranja, rojo entre otros, la saturación hace
referencia la cantidad de blanco en un matiz.
El HSV se analiza mediante un sistema de coordenadas cilíndrico o
pirámide de seis lados. La parte frontal del cono hexagonal refiere a V=1,
donde se encuentra los colores brillantes.
El matiz es medido mediante el ángulo del lado vertical, el rojo en los 0◦
y el verde en 120◦ , etc. En el modelo HSV los colores complementarios están
opuestos en 180◦ entre sí, como se observa en la imagen (Figura 2.3).

2.1.5. Sistema de Iluminación


La iluminación del espacio de trabajo debe proyectarse de manera
correcta.
Se puede proyectar la iluminación en dos maneras, mismo que se observa
en la Figura 2.4.

Iluminación delantera: La luz se proyecta encima del objeto, de manera


vertical, horizontal, oblicua o difusa.

Iluminación trasera: La luz se proyecta en una pantalla que permite


solo conocer alrededor del objeto en forma sombra. El objeto puede
estar ubicado delante o detrás de la pantalla.
2.1. ESTADO DEL ARTE 10

Figura 2.3: Representación del espacio de color HSV, [Bustamante, 2014]

Figura 2.4: Tipos de iluminación: a) frontal y b)


retroiluminación, [González Marcos et al., 2006]

Iluminar de manera frontal ayudan a mejorar la detección de


características de los objetos, obteniendo los detalles mínimos que mejoran
los resultados de interpretación. La retroiluminación solo ayuda detectando
contornos de los objetos sin muchos detalles que permita la mejor
interpretación [González Marcos et al., 2006].
2.1. ESTADO DEL ARTE 11

Figura 2.5: Partes de un brazo robot, [Gonzales, 2004]

2.1.6. Ventajas y Desventajas de la Iluminación Frontal


Iluminar los objetos ayudan a diferenciar las características propias del
mismo, pero en algunos casos puede repercutir en su interpretación. Al
iluminar objetos de manera directa mediante proyectores de luz, puede
generar dos situaciones que afectaría la interpretación como son las: sombras
y reflejos Las sombras son creadas por proyectores de luz, siendo un problema
la identificación de la característica del objeto, aun cuando son de color
oscuro. Cuando se utiliza proyectores de luz para iluminar objetos que emiten
brillo también presenta problema para detectar formas y características de
los objetos [González Marcos et al., 2006].

2.1.7. Brazo Robótico


Un Brazo robótico está formado por eslabones unidos por articulaciones
que permite el desplazamiento consecutivo entre cada uno de los enlaces,
por lo general esta conserva una similitud con las articulaciones humanas,
en este caso; el manipulador se asemeja a un brazo humano, teniendo en
cuenta algunas de sus partes que guardan parecido con el robot tales como:
el cuerpo, brazo, codo y muñeca, mismo que se observa en la Figura 2.5
[Aguilar Romero, 2012].
El brazo robótico no es nada más que la combinación de diversos elementos
como una estructura metálica y sistema electrónico el cual es manipulado
2.1. ESTADO DEL ARTE 12

desde un computador, realiza tareas secuenciales y consecutivas para la


producción en masa de diversos productos a nivel industrial.
Una de las partes más esenciales del brazo es su controlador que consta
de señales de entrada y salida enviándolas a un computador, este ayuda a
contrastar cada una de sus articulaciones y almacenar la información tomada
de cada una de las posiciones.
Es un manipulador multifuncional reprogramable el cual consta de
6 grados de libertad que ayuda a la ejecución de diversas tareas
programadas para transportar herramientas, piezas y elementos especiales
con movimientos precisos [Valero, 2006]

2.1.8. Grados de libertad


Son los movimientos independientes de cada uno de los acoplamientos del
brazo, cabe mencionar que las articulaciones más utilizadas en el trabajo
son las de rotación, el número de grados de libertad (GDL) es la suma de
las articulaciones de la cual está constituido, por lo general coincide con
el número de eslabones que contiene el mismo, para este caso tendremos 6
GDL [Aguilar Romero, 2012].

2.1.9. Brazo robótico LewanSoul


Para realizar el presente trabajo se escogió el brazo robot de 5 grados de
libertad de la maraca LewanSoul, mismo que se observa en la Figura 2.6. Sus
características mecánicas lo hacen un brazo robot práctico en cuanto a sus
dimensiones y peso. Por otro lado, sus prestaciones tecnológicas permiten
conectarse con el robot a través de Bluetooth y conexión serial. Además, su
precio en el mercado bordea la cantidad de 250 dólares.
LewanSoul tiene tres métodos de programación: programación de interfaz
de computadora, programación móvil y programación manual fuera de lineal.
Programación de interfaz de computadora: se puede añadir bloques pre
establecidos por la interfaz para posterior ingreso de los ángulos de los servos
y de esa manera obtener la posición que se requiera.

Programación móvil: mediante un teléfono móvil se puede generar


acciones de movimientos y obtener una posición ideal.

Programación manual fuera de lineal: mediante un joystick se puede


generar movimientos de manera manual e ir guardando las posiciones
para luego reproducir y obtener el posicionamiento.
2.1. ESTADO DEL ARTE 13

Figura 2.6: Brazo robot LewanSoul, [Candy-ho, 2022]

LewanSoul tiene como características principales:

ARM como CPU

Modulo Bluetooth incorporado y memoria de 16 M

Velocidad: 0.16 sec/60◦ (5v); 0.15sec/60◦ (6v)

Par de apriete: 15 kg ·cm(208oz·in) a 6v; 17 kg·cm(236oz·in) a 7.4v

Adaptador de corriente input: 100 V 240 V, 50/60 Hz, salida: 7.5V /


5A [ho ELECTRONICS, 2022].

2.1.10. Control de brazos robóticos


El control del brazo robótico se realiza mediante dos sistemas, diseño
y programación en una aplicación móvil y diseño de programa en
arduino [Javier and Esteban Escaño, 2018].
Los módulos de control cuentan con características que son ideales para
su funcionamiento como son:
2.1. ESTADO DEL ARTE 14

Adaptabilidad: Se adapta al entorno variable sin necesidad del operador


para ejecutar acciones.

Polivalencia: Es multivariable en sus funciones.

Grado de automatismo: Capacidad de ejecutar tareas sin recurrir a un


operador humano [Villa Escudero, 2017].

2.1.11. Diseño y programación en aplicación móvil


App Inventor es una aplicación gratuita adoptada por Google con el fin
de crear apps para dispositivos Android las cuales son programadas por los
usuarios. La gran popularidad que han tomado las aplicaciones en los últimos
años ha provocado que los programas como App Inventor se desarrollen de
forma rápida y sean plataformas gratuitas, esta característica junto la gran
cantidad de información disponible en la red hicieron que App Inventor se
convierta en una herramienta de ayuda en este trabajo. Para el uso de esta
aplicación se debe disponer de un computador con sistemas operativos tales
como: Windows, Mac y Linux con acceso a internet mediante una cuenta en
Google.
Para realizar una app se debe tomar las siguientes consideraciones:

1. Generador de pantallas: en esta sección se realizará ventanas las cuales


constan con imágenes, botones y textos en la cual se puede modificar
sus características.

2. Editor de bloques: se la realiza mediante códigos de bloques adecuando


parámetros de cada una de sus características.

3. Generador de app: una vez finalizado la programación se la puede


descargar o escanearla mediante un código QR al celular para poder
instalarla en el mismo y previamente para su uso.

Para el control del brazo debemos realizar el diseño de bloques en una app,
como se puede observar en la Figura 2.7, donde se puede desarrollar cualquier
aplicación para poder enviar señales que sean captadas por el arduino [Javier
and Esteban Escaño, 2018].

2.1.12. Diseño de programa en arduino


La plataforma de Arduino es una plataforma Open Source la cual puede
ser instalada en cualquier sistema operativo ya sean estos: Windows, Mac OS
2.1. ESTADO DEL ARTE 15

Figura 2.7: Programación para una app en Inventor, [Makers, 2014]

y Linux, esta consta de herramientas que permiten al desarrollador grabar


un código en el arduino que funcione de una manera eficiente.
En el IDE de arduino nos permite escribir, grabar, depurar y editar de
manera fácil por el usuario y es compatible con cualquier placa de arduino.
Se debe diseñar un código en Arduino para que pueda captar la
información enviada desde la app y a su vez enviar a los servomotores del
robot [Javier and Esteban Escaño, 2018].

2.1.13. Cámara Web


En el campo de la visión artificial la cámara es unos de los elementos
más importantes y sofisticados, puesto que captura imágenes estáticas o
movimiento con una inspección total de tiempos, sensibilidad, señales y
velocidad en un campo visual, por lo general las cámaras van conectadas
a un computador o a la red mediante un puerto USB [Jiménez Martínez,
2018].
Los componentes de las cámaras web son por lo general los siguientes:

Elemento fotosensible: es un componente sensible a la luz.

Visor: el visor permite encuadrar la imagen capturada.

Enfoque: aparato que ayuda enfocar una imagen a una distancia corta.
2.1. ESTADO DEL ARTE 16

Figura 2.8: Cámara Web Logitech-c920, [TECNIT, 2022]

Diafragma: es el elemento que obstaculiza el ingreso de la luz y regula


la apertura del sistema óptico [Jiva, 2019].

2.1.14. Reconocimiento de voz


Con el desarrollo de la tecnología, el reconocimiento de voz en la
actualidad se ha ido incrementando de una manera significativa generándose
plataformas donde el ser humano puede interactuar con sistemas robóticos,
para realizar la comunicación automática entre el hombre y el robot existe
sensores que puede ayudar al desarrollo de la misma [Correa Álvarez, 2020].
El sistema de reconocimiento de voz permite a una persona tener
una comunicación directa con un computador, en la cual existe una
transformación del lenguaje del ser humano a un lenguaje máquina la cual
fomenta resolver un problema, considerándola a esta como una herramienta
necesaria en el caso de una persona que tenga alguna discapacidad [Suárez
et al., 2020].

2.1.15. Android
Android es un sistema operativo que fue desarrollado para dispositivos
móviles, tablets, televisores y relojes los cuales en su mayoría constan de
pantallas táctiles, fue implementado por Google, Linux y otros softwares
libres que ofrecen un sin número de aplicaciones [Aveda, 2022].

2.1.16. Principales componentes del sistema operativo


Android
Núcleo Linux: El núcleo del sistema es Linux que interactúa entre el
hardware del dispositivo y las apk instaladas.
2.1. ESTADO DEL ARTE 17

Figura 2.9: Logotipo del sistema Android, [Aveda, 2022]

Runtime: Incluye un conjunto de herramientas y usa un lenguaje de


programación basado en Java.

Bibliotecas: El sistema operativo Android incluye un conjunto de


bibliotecas de C o C++ que son utilizadas por varios componentes
del sistema [Aveda, 2022].

2.1.17. Android para reconocimiento de voz


Android en sus inicios podía reconocer diez dígitos utilizando una sola voz,
con el desarrollo de las tecnologías se ha ido mejorando considerablemente
el grado de precisión de las palabras hasta reconocer millones de dígito, así
como Google y Apple han desarrollado varias aplicaciones para lograr esto.
Para que un computador entienda las palabras es indispensable convertir
la señal analógica a digital. Esta señal digital es separada en partes pequeñas,
donde estas son comparadas con fonemas, a esto se le conoce como idioma
seleccionado, adicional a esto es aplicado un algoritmo estadístico que busca
las frases comparándola con los fonemas encontrados [Vázquez et al., 2010].
La aplicación puede reconocer el español y el inglés de manera gratuita, su
soporte puede ser previsto a futuras actualizaciones y es posible personalizar
comando escritos por el usuario [Revuelta Hoz et al., 2020].

2.1.18. Matlab
Matlab es un software donde se puede programar mediante códigos
de programación, el cual realiza procesos de diseños y análisis iterativos,
consta de Live Editor para crear scripts que combinan códigos, salidas
2.2. DEFINICIONES PREVIAS 18

Figura 2.10: Representación gráfica de la cinemática directa, [la Mancha,


2022]

y textos, además entres sus prestaciones encontramos la manipulación de


matrices, la implementación de algoritmos, interfaz de usuario (GUI), la
comunicación con otros programas y dispositivos, asimismo se puede ampliar
la capacidad con las cajas de herramientas(toolboxes) y los paquetes de
bloques [MathWorks, 2022].

2.2. Definiciones Previas


2.2.1. Cinemática directa
La cinemática directa permite analizar los movimientos. Las variables a
considerar son la posición, velocidad y aceleración del robot. Aplicando este
método, se hace posible encontrar la posición y orientación del efector final
del brazo robótico mediante la localización de cada uno de los eslabones con
respecto a un sistema de coordenadas usando arreglos matemáticos. [De La
Rosa Mejillón, 2014].

2.2.2. Método Geométrico


El método geométrico permite obtener la posición y orientación del
extremo del brazo usando relaciones geométricas, se complica cuando existen
2.2. DEFINICIONES PREVIAS 19

Tabla 2.1: Transformaciones básicas.


1 Rotación φi Alrededor del eje Zi-1
2 Traslación di A lo largo del eje Zi-1
3 Traslación ai A lo largo del eje Xi
4 Rotación αi Alrededor del eje Xi

Figura 2.11: Robot cilíndrico, [García Abella, 2018]

muchos grados de libertad [García Abella, 2018].

2.2.3. Método Denavit-Hartenberg


Es un método matricial que permite obtener un sistema de coordenadas
Si asociado a un eslabón i de una cadena articulada de manera
sistemática, permite pasar de un sistema de coordenadas a otro mediante
4 transformaciones básicas que dependen de las características del eslabón,
tal como se puede ver en la siguiente Tabla 2.1 [García Abella, 2018].
2.2. DEFINICIONES PREVIAS 20

Tabla 2.2: Parámetros DH para el robot cilíndrico de la Figura 2.11.


Articulación φ d a α
1 φ1 l1 φ φ
2 90◦ d2 0 90◦
3 0 d3 0 0
4 φ4 l4 0 0

Figura 2.12: Cinemática directa, [la Mancha, 2022]

2.2.4. Cinemática inversa


La cinemática inversa permite encontrar las coordenadas de cada una de
las articulaciones y su posición a partir de la posición final del robot, además
deducir las variables de los eslabones del brazo con respecto a la posición y
orientación del efector final [García Abella, 2018].

2.2.5. Método Geométrico


El método geométrico en la cinemática inversa se descompone en múltiples
planos para resolverlos por trigonometría y encontrar el número necesario
de relaciones geométricas para posicionar el extremo del robot utilizando
coordenadas (x, y), sus coordenadas articuladas (θ1, θ2, θ3) y sus eslabones
2.2. DEFINICIONES PREVIAS 21

Figura 2.13: Método geométrico, [clic, 2022]

Tabla 2.3: Parámetros DH para el robot cilíndrico de la Figura 2.15.


Articulación φ d a α
1 q1 l1 0 90◦
2 q2 0 0 -90◦
3 0 q3 0 0

(l1, l2, l3).

2.2.6. Matriz de transformación homogénea


Para la resolución de la matriz homogénea se tomará como punto de
partida al robot con 3 GDL de configuración esférica (dos giros y un
desplazamiento), el cual tiene una referencia en un plano determinado por el
ángulo q1 como se lo puede observar a continuación [Barrientos et al., 2007].
Como primer punto, se obtiene la matriz T que relaciona la base del robot
S0 asociado con S3) que corresponde a su extremo. Se obtiene la asignación de
referencias mediante el método de Denavit-Hartenberg con el robot situado
en la posición de partida (q1=q2=0) como se puede visualizar en la siguiente
imagen [Barrientos et al., 2007].
Como segundo punto, se obtienen los parámetros de Denavit-Hartenberg
en la siguiente tabla.
2.2. DEFINICIONES PREVIAS 22

Figura 2.14: Robot esférico de 3GDL, [Barrientos et al., 2007]

Figura 2.15: Robot esférico de 3GDL girado 90◦ en la articulación


2, [Barrientos et al., 2007]

Aplicando cálculos obtenemos la matriz T:


2.3. FORMULACIÓN DEL PROBLEMA 23

 
C1 C2 −S1 −C1 S2 −q3 C1 S2
 S1 C2 C1 −S1 S2 −q3 C1 S2 
T =
 S2
 (2.1)
0 C2 q3 C2 + l1 
0 0 0 1

T = A01 .A12 .A23 .A34 .A45 (2.2)


 
Py
q1 = arctan (2.3)
Px
p !
P x2 + P y 2
q1 = arctan (2.4)
l1 − P z
p
q3 = C2 (P z − l1 ) + S2 P x2 + P y 2 (2.5)

2.3. Formulación del Problema


Los sistemas que están instalados en los procesos industriales, a lo largo
del tiempo vienen evolucionando gracias a las tecnologías innovadoras que
permiten automatizar las líneas de fabricación. Actualmente la visión de los
procesos industriales es implementar tecnologías que ayuden a los operarios
a monitorear y ejecutar actividades de manera remota mediante sistemas de
reconocimiento de voz y visión artificial, siendo esto el punto de partida para
la investigación donde está en constante desarrollo [Pires, 2005].
Los brazos robóticos han evolucionado en el campo industrial, mejorando
su sistema mecánico y modo de operación. Su rendimiento se centra en
el control de posición y resolviendo los problemas dinámicos y estáticos,
obteniendo ejecución de actividades precisas, aceptables, reproducibles,
adaptándose al entorno cambiante [Pires, 2005]. La implementación de
inteligencia artificial en los brazos robóticos ayuda a los operadores a ejecutar
actividades en entornos impredecibles. El diseño de los algoritmos inteligentes
debe adquirir y almacenar información del entorno, comprender el habla del
ser humano, estar en constante aprendizaje, planificar y la toma de decisiones
para resolver problemas. El rendimiento del sistema es medido por el tiempo
de respuesta en ejecutar las acciones [Mosquera Araujo, 2019].
Los sistemas que incluyen la tecnología robótica están en constante
auge, debiéndose a la investigación e infinidad de aplicaciones diseñadas
para fortalecer los brazos robóticos en los diferentes campos utilizados. En
2.3. FORMULACIÓN DEL PROBLEMA 24

el campo industrial actual, se van desarrollando e implementando nuevas


aplicaciones que mejoren las capacidades y rendimiento del mismo, no solo en
actividades cíclicas sino también en acciones que requieren la mejor decisión
sin ayuda del monitoreo del operador [Pires, 2005].
Al incluir capacidades sensoriales a los brazos robóticos para el
reconocimiento de voz y visión artificial, resultará un sistema eficiente y
autónomo que podrán interactuar entre operario y máquina, siendo de esta
manera un gran alcance para el desarrollo investigativo para la toma de
decisiones del sistema [Peña et al., 2004].
Hoy en día los múltiples sistemas de fabricación flexible de la Industria 4.0
que integran el reconocimiento de voz y visión artificial, se ha corroborado un
buen desempeño en la ejecución de tareas. Este es el marco de este proyecto,
donde se aplique el reconocimiento de voz para generar movimiento al brazo
robótico, localizar los objetos conocidos que están presente dentro del área
de trabajo, sin importar la ubicación del objeto, gracias a la tecnología de la
visión artificial y de esa manera contar con un sistema optimo y autónomo.
Capítulo 3

Marco metodológico

En el presente capítulo se explica la metodología utilizada para cumplir


con los objetivos del presente trabajo. Para empezar con el desarrollo del
trabajo se tomó en cuenta primero que el sistema que se desea obtener
debe localizar objetos de colores primarios (amarillo, azul y rojo) utilizando
un brazo robótico de cinco grados de libertad comandado por voz y visión
artificial
De acuerdo con los objetivos mencionados en el párrafo anterior se definió
la siguiente arquitectura mostrada en la Figura 3.1. En dicha arquitectura
se observa la relación que existe entre el brazo robot, la cámara web y el
dispositivo móvil utilizado para el reconocimiento de voz. Cada uno de los
pasos realizados para poner el sistema en funcionamiento se presenta en este
capítulo ordenado de la siguiente manera. Se comenzó delimitando el espacio
de trabajo. Luego, se presentan la cinemática y los cálculos matemáticos.
A continuación, los métodos de control utilizados en este proyecto son
explicados de forma detallada. Finalmente, se presentan los resultados y las
conclusiones del presente trabajo.

25
Cap 3. Marco metodológico 26

Figura 3.1: Arquitectura del sistema de localización de objetos mediante un


brazo robot comandado por voz y visión artificial.
3.1. DISEÑO DEL EXPERIMENTO 27

3.1. Diseño del experimento


3.1.1. Delimitación del área de trabajo
El área de trabajo se delimitó sobre una mesa de superficie plana de 60 x
59.8 milímetros teniendo presente el alcance de cobertura de la cámara web
y del brazo robot utilizado en este trabajo y mencionado en la arquitectura
en la introducción del presente capítulo.
Uno de los aspectos estratégicos de la preparación del área de trabajo
es la intensidad de luz que evita un ambiente fluctuante en la lectura
e interpretación de los colores con la visión artificial. Por esta razón, se
colocaron cuatro lámparas leds de 2400 lúmenes cada uno, en las cuatro
esquinas superiores de la mesa del área de trabajo aplicando la iluminación
frontal y de esa manera minimizar las sombras. La Figura 3.2 muestra las
medidas del área de trabajo y la ubicación de los elementos que intervienen
en el área de trabajo del sistema como son, la cámara web, el brazo robot y
las lámparas leds.
Se utilizó una app Luxómetro Digital, para asegurar que la cantidad de
luz cubra toda el área de trabajo por las lámparas leds, como se muestra en
la Figura 3.3 y Figura 3.4, y de esa manera obtener una iluminación óptima
para el reconocimiento de imagen, considerando la iluminación frontal.

3.1.2. Cinemática del robot LewanSoul


Las restricciones cinemáticas del brazo robot juegan un papel importante
en el desarrollo del presente trabajo, ya que, si se desea localizar objetos
para sujetarlos, éstos últimos deben estar situados dentro del área del espacio
de trabajo del robot. Por lo tanto, es estrictamente importante conocer las
dimensiones y los tipos de articulaciones con los que cuenta el brazo robot.
Con el preámbulo mencionado en el párrafo anterior se presenta en la
Figura 3.5 la posición de las cinco articulaciones rotacionales y las medidas
de los eslabones en centímetros. Cabe mencionar que algunas de las medidas
de los eslabones móviles se han aproximado a valores enteros para facilitar
el cálculo matemático que conlleva la cinemática.

3.1.3. Aplicación de los Parámetros de Denavit-Hartenberg


De acuerdo con la cinemática del brazo robot presentado en la sección
anterior en la Figura 3.5 se seleccionó la posición de reposo que se muestra
en la Figura 3.6. Aplicando los parámetros de Denavit y Hartenberg (DH) se
3.1. DISEÑO DEL EXPERIMENTO 28

Figura 3.2: Posiciones y medidas del área de trabajo del sistema de


localización de objetos.

colocaron los sistemas de coordenadas auxiliares en cada eje de articulación


rotacional tal como se muestra en la Figura 3.6. Después, con los parámetros
DH se obtuvo la Tabla 3.1 donde se observan las variables encontradas para
cada articulación rotacional.

3.1.4. Cinemática Directa


En síntesis, la cinemática directa es un proceso matemático que
permite obtener las coordenadas cartesianas (Px, Py, Pz) que describen
matemáticamente la posición del efector final (la posición del sistema auxiliar
3.1. DISEÑO DEL EXPERIMENTO 29

Figura 3.3: Cantidad de luz que recibe el área de trabajo.

Figura 3.4: Valor medido por la app Luxómetro Digital.


3.1. DISEÑO DEL EXPERIMENTO 30

Figura 3.5: Posición de las articulaciones rotacionales y medidas de los


eslabones móviles que conforman el brazo robot de LewanSoul.

Figura 3.6: Posición de los sistemas de coordenadas auxiliares en cada uno


de los ejes de rotación articular orientados en la posición de reposo.
3.1. DISEÑO DEL EXPERIMENTO 31

Tabla 3.1: Parámetros de Denavit y Hartenberg (DH) para la configuración


del brazo robot representados en la Figura 3.5.
Articulación φi di ai αi
1 θ1 L1 0 90◦
2 θ2+90 ◦ 0 L2 0
3 θ3-90 ◦ 0 L3 0
4 θ4+90◦ 0 0 90◦
5 θ5 L4 0 0

(X5, Y5, Z5) de la pinza) a partir de los valores conocidos de las articulaciones
rotacionales (θ1, θ2, θ3, θ4, θ5) con respecto al sistema de referencia fijo (X0,
Y0, Z0).
Una de las formas de obtener la posición y la orientación del efector final
del brazo robot es el método de las matrices de transformación homogénea.
Con este método se puede encontrar una matriz de transformación
homogénea total (T) al multiplicar secuencialmente las matrices de
transformación homogénea de cada articulación del brazo robot. Cabe
recalcar que hay otros métodos matemáticos para encontrar la posición y
orientación del efector final, pero en el presente trabajo se utilizó el método
de la transformación homogénea por su simplicidad computacional.
La matriz total de transformación homogénea (T) se puede observar
expresada en la matriz de la ecuación 2-2. Para obtener la matriz T, se
realizaron las multiplicaciones secuenciales de las matrices de transformación
homogénea de cada articulación (Ai) expresada en la Ecuación 3.1. La
Ecuación 3.2 por otro lado permite calcular la matriz total (T) haciendo
multiplicaciones progresivas de cada articulación (Ai).
 
cosθi −cosαi senθi senαi senθi ai cosθi
senθi cosαi cosθi −senαi cosθi ai senθi 
Ai−1
i =  0
 (3.1)
senαi cosαi di 
0 0 0 1

T = A01 .A12 .A23 .A34 .A45 (3.2)

Para conocer la orientación del efector final se observó la matriz (3x3)


ubicada en la esquina superior izquierda de la matriz de transformación
homogénea total encontrada mediante el método transformación homogénea
que se encuentra multiplicando secuencialmente las matrices de cada
3.1. DISEÑO DEL EXPERIMENTO 32

articulación del brazo. Los puntos de coordenadas cartesianas a los que se


puede llegar con el efector final del brazo robot se pueden obtener observado
la columna (3x1) ubicada en la parte superior derecha de la matriz de
transformación homogénea total. Cabe mencionar, que las articulaciones
rotacionales en este caso permiten alcanzar un espacio de trabajo reducido
a una semicurva, es decir, el área de trabajo trazada en la superficie de la
mesa es redonda.
A manera de ejemplo, a continuación, se presenta la matriz de
transformación homogénea total (T) de la posición de reposo. Dicha posición
es donde el brazo robot tiene en cada una de sus articulaciones rotacionales
un valor de θi=0, es decir, la articulación rotacional uno es igual a cero,
la articulación rotacional dos es igual a cero y así sucesivamente hasta la
articulación cinco. Las matrices de transformación homogénea (Ai) de cada
articulación (en este caso rotacionales) de la posición de reposo del brazo
se presentan en las Ecuaciones 3.3, 3.4, 3.5, 3.6 y 3.7. De la misma
manera, la matriz de transformación homogénea total (T) se presenta en la
Ecuación 3.8.
Cabe recalcar que el procedimiento del cálculo a mano es extenso, por
lo cual es preferible ayudarse de una herramienta de cálculo como lo es
MATLAB.
 
1 0 0 0
0 0 −1 0
A01 = 0 1 0 7
 (3.3)
0 0 0 1
 
0 −1 0 0
1 0 0 10
A01 = 0 0 1 0 
 (3.4)
0 0 0 1
 
0 1 0 0
−1 0 0 −10
A01 = 0 0 1
 (3.5)
0 
0 0 0 1
 
0 0 1 0
1 0 0 0
A01 = 
0 1 0 0
 (3.6)
0 0 0 1
3.1. DISEÑO DEL EXPERIMENTO 33

 
1 0 0 0
0 1 0 0 
A01 =  (3.7)


0 0 1 13,5
0 0 0 1
 
0 0 1 23,5
0 −1 0 0 
T = 1 0
 (3.8)
0 17 
0 0 0 1

En la matriz total T se puede apreciar la posición cartesiana del efector


final con respecto a los sistemas de referencia (X0, Y0, Z0) observando
la columna (3x1) ubicada en la esquina superior derecha de esta matriz.
Cabe recalcar, que la posición del efector final depende directamente de las
longitudes de los eslabones móviles, por lo tanto, en la Figura 3.7 se observa
que en el eje X0 hay un valor de 23.5 cm hasta el centro del efector final.
De la misma manera, se observa que en el eje Y0 el valor es cero, ya que
no se ha desplazado en ese eje. Por último, se puede observar que en el eje
Z0 el valor es de 17 cm hasta el centro del efector final, este último valor se
considera como la altura del efector final con respecto a la mesa.
Por otra parte, la orientación se observa en la matriz de (3x3) de la esquina
superior izquierda de la matriz de transformación homogénea total señalada
en la Figura 3.7. En dicha figura, se observa que el eje X5 que representa
la columna 1 solo tiene valores positivos en el eje Z0, lo que significa que se
extiende a lo largo del eje Z0 positivo. Del mismo modo, se observa que el
eje Y5 que representa la columna 2 solo contiene valores negativos en el eje
Y0, y por esa razón se extiende a lo largo del eje Y0 negativo. Por último, el
eje Z5 que representa la columna 3 solo contiene valores positivos en el eje
X0, por esa razón se extiende a lo largo del eje X0 positivo.

3.1.5. Cinemática Inversa


Para entender de mejor manera el propósito de la cinemática inversa a
continuación se presenta una breve explicación sobre la función que cumple
este método. En resumen, la cinemática inversa es un proceso matemático
donde se obtiene los valores de las articulaciones rotacionales (θ1, θ2, θ3,
θ4, θ5) a partir de las coordenadas cartesianas conocidas en (Px, Py, Pz)
que describen matemáticamente la posición del efector final (la posición
del sistema auxiliar (X5, Y5 , Z5) de la pinza) con respecto al sistema de
referencia fijo (X0, Y0 , Z0).
3.1. DISEÑO DEL EXPERIMENTO 34

Figura 3.7: Posición y orientación del efector final (X5, Y5, Z5) con respecto
al sistema de referencia fijo (X0, Y0, Z0).

Con el fin de simplificar los cálculos computacionales de la cinemática


inversa en primera instancia se eligió el método geométrico. Con este mismo
concepto de simplificar y parametrizar el cálculo de la cinemática inversa
en segunda instancia se establecieron restricciones de movimiento. Estas
restricciones, obligan al brazo robot a moverse de manera que el efector
final, es decir la pinza, permanezca siempre paralela a la mesa de trabajo
como se muestra en la vista lateral de la Figura 3.8. Con las restricciones, no
solo se logra simplificar el cálculo, sino que también se asegura que la pinza
manipule los objetos de forma perpendicular a ellos. Esto último, asegura que
el objeto sea sujetado de manera que no se caiga mientras se lo transporta
de un lugar a otro y que al momento de recogerlos y depositarlos los objetos
se encuentren parados sobre la mesa.
La Figura 3.8 presenta la geometría utilizada en la cinemática inversa.
Como se puede apreciar las articulaciones rotacionales que necesitan ser
calculadas son solo cuatro, exceptuando la última articulación que es la que
gira la pinza. Como ya se dijo, al conocer los valores cartesianos del punto
(Px, Py, Pz) donde se quiere colocar el efector final se pueden calcular los
valores de las articulaciones rotacionales θi. A continuación, se explica cómo
se obtuvieron las ecuaciones para la cinemática inversa.
En primer lugar, se encontró θ1 con la Ecuación 3.9 al observar que la
3.2. DESARROLLO 35

primera articulación rotacional solo gira en el plano cartesiano (X0, Y0)


como lo muestra la vista superior de la Figura 3.8 en la vista superior
del brazo robot. Luego, observando o la vista lateral de la Figura 3.8 se
llegó a la conclusión que θ2 es calculable mediante un triángulo rectángulo
acotado por L2 y d1 relacionados en la Ecuación 3.10. La distancia d1
se encuentra mediante la hipotenusa (hip) formada por Px y Py con la
Ecuación 3.11. Considerando que d1 es igual a d2 y que L1 es igual a L2 se
logra calcular el valor de θ3 con la Ecuación 3.12. Por último, θ4 se encontró
relacionando el valor del ángulo θ2 mediante procedimientos trigonométricos
en la Ecuación 3.13.
 
Py
θ1 = arctg (3.9)
Px
 
d1
θ2 = arcsen (3.10)
L2
D hip − L4
d1 = d2 = = (3.11)
2 2

θ3 = 180 − (2θ2 ) (3.12)

θ4 = θ2 + (90 − (2θ2 )) (3.13)

3.2. Desarrollo
3.2.1. Control del robot LewanSoul
El control aplicado en este trabajo combina las técnicas de guiado
mediante una interfaz gráfica realizada en una computadora y comandos de
voz mediante un dispositivo móvil inteligente. A estas técnicas se las combinó
con procesos de visión por computador con la finalidad de crear un sistema
automático de localización de objetos de colores.
La interfaz fue realizada en MATLAB utilizando las herramientas que
este software provee para crear una interfaz gráfica de usuario (GUI por
sus siglas en ingles). Para integrar el control mediante comandos de voz se
utilizó las herramientas gratuitas de Google en una aplicación creada para
un dispositivo de Android. Para el reconocimiento de objetos de color se
utilizó las herramientas que provee MATLAB para crear procesos de visión
artificial. Todas estas técnicas fueron combinadas y codificadas en MATLAB.
3.2. DESARROLLO 36

Figura 3.8: Geometría analizada para resolver el cálculo de la cinemática


inversa.

3.2.2. Control mediante Matlab


Para desarrollar el presente trabajo fue necesario empezar diseñando un
controlador principal para mover el brazo robot. Con este objetivo y con
la ayuda de las herramientas disponibles en la plataforma de MATLAB
se desarrolló una interfaz gráfica de usuario para controlar el brazo robot
mediante pulsadores deslizantes. Es así, que la ventana de control fue
diseñada para observar mediante una cámara web los movimientos que realiza
el brazo al manipular los controles deslizantes.
La Figura 3.9 presenta la apariencia de la ventana de control. Como se
puede observar, tiene una interfaz sencilla y fácil de entender. Esto hace que
la manipulación de los controles sea fácilmente interpretada por el usuario.
Para activar el control remoto del brazo, la ventana de control cuenta con
un pulsador de inicio pintado de color verde. Al presionar el pulsador de
arranque el programa enlaza el brazo robot, activa la cámara web y conecta
el Arduino. De la misma manera, para desactivar el control remoto del brazo
se ubicó un pulsador de paro pintado de color rojo. Una vez que se ha activado
el controlador desde la interfaz gráfica el usuario es capaz de mover el brazo
robot mediante los pulsadores deslizantes. También, una vez que se activa
la ventana de control se observan dos líneas curvas que señalan el espacio
donde el brazo alcanza y manipula los objetos, es decir, estas líneas señalan
3.2. DESARROLLO 37

Figura 3.9: Interfaz gráfica de usuario creada en MATLAB para controlar el


brazo del robot.

el área donde se debe colocar los objetos. Por otra parte, si por error el
usuario intentara mover el brazo con los pulsadores deslizantes el software le
notificará que no tiene activado el controlador.
Por otro lado, en la Figura 3.9 también se observa una ventana de amarillo
transparente en la cual se muestran los mensajes que el programa devuelve al
usuario ante su interacción con los controles de la pantalla. Esta parte sirve
de ayuda visual para notificar al usuario sobre las acciones que el software va
realizando. También se debe aclarar que para acceder a esta ventana gráfica
de control primero se debe acceder por una primera ventana de inicio que
tiene la forma que se observa en la Figura 3.10.
En cuanto a la lógica de programación se puede decir que no presenta
mucha complejidad ya que su finalidad es solo mover el brazo robot mediante
controles deslizantes y observar la posición del efector final a través de la
cámara web. Con este preámbulo se puede observar el proceso que se siguió
3.2. DESARROLLO 38

Figura 3.10: Interfaz gráfica de inicio creada en MATLAB para acceder al


controlador del brazo robótico.

Figura 3.11: Diagrama de flujo del algoritmo creado para controlar el brazo
robótico.

con la ayuda del diagrama de flujo mostrado en la Figura 3.11.


3.2. DESARROLLO 39

Figura 3.12: Pantalla inicial de la aplicación móvil para seleccionar el


dispositivo Bluetooth que se encuentra conectado al Arduino.

3.2.3. Control mediante comandos de voz


De acuerdo con uno de los objetivos del presente trabajo se desarrolló un
controlador para el brazo robot mediante comandos de voz. Los algoritmos
para reconocimiento de palabras son bastante complejos para desarrollarlos
desde cero. Para solventar las dificultades que conlleva el reconocimiento de
comandos de voz se optó por utilizar herramientas gratuitas y disponibles
en la red. Una de las herramientas que se puede utilizar es Google, ya que
proporciona una plataforma de reconocimiento de voz a través de internet.
Aunque una de las desventajas es que se depende directamente de internet,
lo que no es un obstáculo para trabajar con esta herramienta, ya que el
ambiente donde se desenvuelve el brazo robot es la industria y por lo tanto
el internet es imprescindible. La lógica de programación de este controlador
creado en MATLAB se puede observar en la Figura 3.17.
3.2. DESARROLLO 40

De la misma manera se creó una aplicación de Android en un dispositivo


inteligente portable con la finalidad de poder trasladarlo con el usuario. Se
creó una aplicación en Android debido a que es una plataforma gratuita. La
interfaz gráfica de la aplicación móvil tiene la apariencia que se muestra en la
Figura 3.13. Para utilizar esta aplicación se debe tener conectado Bluetooth
ya que los datos se envían mediante este canal hacia un Arduino. El algoritmo
detecta automáticamente que el dispositivo móvil tenga conexión a internet y
Bluetooth caso contrario notifica al usuario que debe conectar estos servicios.
Al iniciar la aplicación es necesario seleccionar desde una lista el módulo
Bluetooth al cual se desea conectar tal como se observa en la Figura 3.12.
Luego, si todo se ha conectado de forma adecuada aparecerá en la pantalla
principal que se observa en la Figura 3.13. Para reconocer los comandos de
voz se utiliza el pulsador colocado en la parte inferior central de la pantalla
principal de la aplicación. Este pulsador activa el servicio de reconocimiento
de voz de Google y detecta las palabras dictadas por el usuario para enviarlos
mediante Bluetooth.
Para controlar el brazo robot se determinaron comandos específicos de voz.
Para alertar al sistema de que es una orden se antepuso la palabra Robot a
todos los comandos. De esta manera, el usuario es capaz de mover el brazo
y colocarlo en un punto específico hablando naturalmente al micrófono del
dispositivo móvil. Cada comando de voz puede mover una articulación a la
vez. Dichos comandos fueron pensados con el propósito de que se facilite el
trabajo por parte del usuario y que la acción que se desea realizar tenga una
respuesta rápida. Las órdenes que se utilizan son las siguientes:

Robot motor N derecha G grados

Robot motor N izquierda G grados

Robot motor N arriba G grados

Robot motor N abajo G grados

Robot objeto amarillo

Robot objeto azul

Robot objeto rojo

Robot reposo

Robot abrir pinza


3.2. DESARROLLO 41

Figura 3.13: Interfaz gráfica de la aplicación móvil utilizada para el


reconocimiento de palabras.

Robot cerrar pinza

En la lista anterior se observa en negrilla una “N” y una “G”, dichas letras
muestran la posición donde se debe dictar los valores numéricos del motor y
de los grados respectivamente que se desea mover. Por ejemplo, para mover
la articulación número 1 en sentido de las manecillas del reloj 30 grados, el
usuario debe dictar el comando “robot motor 1 derecha 30 grados”. En este
caso el usuario debe estar ubicado frente a la pantalla de la interfaz de control
del robot para referirse a su derecha ya que el motor 1 mueve el efector final
del robot de forma horizontal. En otro ejemplo, con el comando “robot motor
2 arriba 30 grados” se mueve el efector final del robot hacia arriba 30 grados.
Los otros comandos están destinados a dar órdenes para que el brazo robot
recoja un objeto de un color seleccionado utilizando visión artificial o que
realice una acción específica, tal como ir a su posición de reposo, abrir pinza
o cerrar pinza. Cabe recalcar que para que el comando sea escuchado y se
3.2. DESARROLLO 42

Figura 3.14: Diagrama de conexión del módulo Bluetooth HC06 con el


arduino.

ejecute la acción es necesario anteponer la palabra “robot” a todas las ordenes


que dicten mediante el micrófono del dispositivo móvil.
Para enviar el comando de voz desde el dispositivo móvil hacia MATLAB
se conectó el diagrama electrónico que se observa en la Figura 3.14. El
dispositivo móvil reconoce los comandos de voz y los transforma en texto
para enviarlos mediante conexión de Bluetooth hacia el Arduino. El módulo
Bluetooth que se utilizó es el HC06 que se comunica con el Arduino mediante
comunicación serial. En el Arduino, el programa desarrollado se encarga de
recibir el texto plano de las palabras por medio de comunicación Bluetooth
y reenviarlos de la misma manera hacia MATLAB mediante comunicación
serial a través del cable USB que a su vez provee de energía al Arduino.
La lógica seguida para crear el algoritmo en el dispositivo móvil de Android
se muestra en la Figura 3.15. Para desarrollar la aplicación móvil se utilizó la
plataforma de programación de APP Inventor. De la misma manera, la lógica
seguida para crear el algoritmo en el Arduino se muestra en la Figura 3.16.
Para desarrollar el algoritmo de Arduino se utilizó la plataforma de la misma
empresa. Ambas plataformas, tanto la de APP Inventor y la de Arduino son
de acceso libre al público.
3.2. DESARROLLO 43

Figura 3.15: Diagrama de flujo de algoritmo creado en el dispositivo móvil


para reconocer los comandos de voz.

Figura 3.16: Diagrama de flujo de algoritmo creado en el Arduino para recibir


los comandos y reenviarlos a MATLAB.
3.2. DESARROLLO 44

Figura 3.17: Diagrama de flujo de algoritmo creado en MATLAB para


controlar el brazo mediante comandos de voz.

3.2.4. Control mediante reconocimiento de color


De acuerdo con el otro objetivo del presente trabajo se desarrolló un
algoritmo en MATLAB para reconocer los colores primarios como son el
amarillo, azul y rojo utilizando técnicas de visión artificial y las herramientas
que proporciona MATLAB para este fin. El objetivo en concreto de esta
etapa es que el brazo pueda localizar un objeto dentro del área de trabajo
utilizando una cámara web para sujetarlo y trasladarlo desde un punto hacia
otro.
El algoritmo es capaz de detectar un color de acuerdo con el comando
recibido desde la aplicación móvil de reconocimiento de voz mencionada
en la sección anterior. Una vez que el algoritmo conoce el color utiliza las
técnicas de reconocimiento de colores por medio de los parámetros HSV (hue,
saturation, value) que en español serían (matiz, saturación, valor) y RGB
(red, green, blue) que en español serían (rojo, verde, azul) para determinar
si en el espacio de trabajo está presente un objeto con las características
solicitadas. Un ejemplo de reconocimiento del color amarillo, rojo y azul se
3.2. DESARROLLO 45

Figura 3.18: Reconocimiento de color amarillo (A), rojo (B) y azul (C) desde
arriba hacia abajo respectivamente.

puede observar en la Figura 3.18.


Mediante pruebas realizadas con la iluminación establecida en el espacio
de trabajo y utilizando los parámetros de HSV se encontró el rango de matiz
del color amarillo, verde y rojo como se presenta a continuación:
Amarillo
H = 0 - 0.17
S = 0.96 - 1
V = 0.68 - 0.9
3.2. DESARROLLO 46

Verde

H = 0.2 - 0.3

S = 0.45 - 0.85

V = 0.5 - 0.95

Rojo

H = 0 - 0.1

S = 0.7 - 1

V = 0.5 - 0.8

Para el color azul se utilizó los parámetros RGB que mediante la


diferenciación de matrices que separa los objetos con tono azul. Cabe
mencionar que no se podía realizar el trabajo solo con parámetros RGB
ya que al realizar pruebas se observó que los comandos con esta técnica en
MATLAB no eran suficientes. Además, con la intensidad de luz conseguida
era necesario una sintonización de color de acuerdo con las características
luminosas, y esto fue posible hacerlo con los parámetros HSV.
Una vez que el algoritmo detecta el color deseado dentro del área de
trabajo calcula la posición del objeto en coordenadas cartesianas y se las
envía al método de cinemática inversa para encontrar los valores de las
articulaciones que posicionan el efector final del robot sobre el objeto. Con
el fin de evitar una lectura errónea de objetos con características similares
se establecieron restricciones en la localización de un objeto. Primero y muy
importante, el objeto debe estar ubicado dentro del área de trabajo del brazo
robot, caso contrario el brazo no podría alcanzar el objeto. Para esto, se
utilizó el cálculo de la hipotenusa (hip) con las coordenadas cartesianas en
el eje “X” y el eje “Y” del punto medio del objetivo. Segundo, el objeto debe
tener un área dentro de los límites del rango permitido para reconocerlo
como objetivo. La lógica de programación seguida en este proceso se puede
observar en el diagrama de flujo de la Figura 3.19.
También, se estableció un control de posicionamiento del efector final
del brazo utilizando marcas de color verde colocadas en las puntas de la
pinza. Esto evita que la pinza choque con el objetivo debido al error de
posicionamiento. El algoritmo implementado se muestra de forma lógica en
la Figura 3.20. En resumen, se compara que las coordenadas del centro del
objeto no estén tan cerca del centro de cada una de las marcas de color
3.2. DESARROLLO 47

Figura 3.19: Diagrama de flujo del algoritmo creado en MATLAB para


reconocer el color amarillo, rojo y azul.

Figura 3.20: Diagrama de flujo del algoritmo creado en MATLAB para


detectar los objetos de color verde pintados en la pinza del robot y de esa
manera corregir la posición de la pinza si no está bien ubicada.

verde colocadas en las puntas de la pinza. Si la distancia entre las puntas


de la pinza y el centro del objeto es corta se envía dos grados de corrección
para que el brazo se posicione de tal forma que al bajar no choque con el
objeto, luego, utilizando una segunda comprobación se descarta que el brazo
siga mal posicionado.
3.3. RESULTADOS Y DISCUSIÓN 48

3.3. Resultados y Discusión


En este capítulo se detallarán los resultados obtenidos del desarrollo de
un sistema de localización de objetos mediante un brazo robótico controlado
por comando de voz y visión artificial en el contexto de la industria 4.0,
describiendo cada paso para llegar al resultado final del sistema planteado.
En la presente sección se muestran las pruebas de cinemática realizadas
para calcular el porcentaje de error en la localización de los objetos. A
continuación, se presentan las pruebas de la cinemática directa y más
adelante se presentan las pruebas de la cinemática inversa.

3.3.1. Pruebas de la Cinemática Directa


Para aplicar las pruebas en el movimiento de la cinemática directa del
brazo robótico digitamos los valores de los ángulos q1,q2,q3 y q4 con una
interacción de 10 muestras desde la interfaz de MATLAB. Moviendo el
brazo robótico hacia una posición determinada se fueron obteniendo como
resultado los valores de las coordenadas x, y, z teóricas. Una vez que el brazo
se ubicaba en la posición final tomamos medidas reales del robot con un
flexómetro obteniendo las distancias exactas en tiempo real como se puede
ver la Figura 3.21, y las comparamos con los valores teóricos en la Tabla 3.2.
Previo al movimiento del robot con las coordenadas teóricas y las reales
se puede visualizar el rango de error entre las dos distancias en la siguiente
Tabla 3.2. Para calcular este error se utilizó la fórmula del error experimental
que se observa en la Ecuación 3.14. De esta manera se puede apreciar el error
de cada eje en cada una de las filas de la Tabla 3.3.

valor|terico − valor|real
Eex = (3.14)
valor|terico

3.3.2. Pruebas de la Cinemática Inversa


Para mover al robot se debe tomar en cuenta que este distingue un objeto
de distintos colores (rojo, amarillo, azul y verde), se tiene un área de trabajo
la cual está representada por cuadriculas de 5 cm por lado, que al momento
de colocar el objeto el brazo distinguirá el color y su distancia exacta.
Para las pruebas, primero se debe definir el punto de depósito del objeto.
Esto último es posible ya que la interfaz gráfica de control en MATLAB
permite ingresar los valores de X, Y en centímetros. La coordenada en Z no
se digita ya que se ha definido como fija y representa la altura entre el robot
3.3. RESULTADOS Y DISCUSIÓN 49

Figura 3.21: Mediciones realizadas con un flexómetro para comprobar la


posición del efector final con respecto al sistema de referencia fijo (X0, Y0,
Z0).

Tabla 3.2: Tabla comparativa de las coordenadas teóricas y reales de la


posición del efector final con la cinemática directa.
N ANGULOS COORDENADAS TEORICAS CORDENADAS REALES
q1 q2 q3 q4 X(cm) Y(cm) Z(cm) X(cm) Y(cm) Z(cm)
1 0 0 0 0 23,5 0,2 17 23 0,2 16,9
2 10 0 0 0 23,1 4,08 17 23 4 17
3 -10 -10 -20 0 21 -3,71 12,7 20,95 -3,61 12,5
4 -30 -30 0 20 23,3 -13,4 8,31 23 -13,1 8,2
5 40 -30 0 20 20,6 -17,3 8,31 20 -17 8,1
6 20 -30 0 30 25,5 9,28 10,6 25 9 10,4
7 35 -30 0 30 22,2 15,5 10,6 22 15,3 10,4
8 -40 -30 0 30 20,7 -17,4 11,8 20,3 -17,4 11,6
9 -20 -30 0 40 25,3 -9,21 13 25 -9,1 12,8
10 0 -30 0 40 26,9 0,2 13 27 0,2 13

y el área de trabajo, dicha medida se ha fijado en 7cm. Luego, mediante


los comandos de voz se envió el color deseado para recoger el objeto. La
programación respetará el color mencionado y con la ayuda de la visión
artificial comenzará el robot a trasladar los objetos empezando por aquellos
que están en la derecha de la pantalla de MATLAB y recorrerá hacia la parte
3.3. RESULTADOS Y DISCUSIÓN 50

Tabla 3.3: Cálculo del porcentaje de error de la posición del efector final con
la cinemática directa.
PORCENTAJE DE ERROR
error X ( %) error Y ( %) error Z ( %)
2,13 0,00 0,59
0,43 1,96 0,00
0,24 2,70 1,57
1,29 2,24 1,32
2,91 1,73 2,53
1,96 3,02 1,89
0,90 1,29 1,89
1,93 0,00 1,69
1,19 1,19 1,54
0,37 0,00 0,00

izquierda de la misma.
Las pruebas se realizaron escribiendo 10 valores diferentes en la aplicación
de MATLAB para que el robot traslade las piezas a las posiciones designadas.
En cada iteración se anotó el valor teórico y el valor real tomado con
flexómetro, así como se puede observar en las siguientes tablas Tabla 3.4,
Tabla 3.6 y Tabla 3.8.
Luego de haber registrado las coordenadas obtenidas mediante la fórmula
de la cinemática inversa en la tabla, procedemos a calcular el error
experimental con los valores anotados en la Tabla 3.5.
Analizando la Tabla 3.5 de los objetos de color rojo se tiene un error en X
de 0,60 % en promedio y un máximo de 1,33 %, para Y con error de 0,75 %
en promedio y un máximo 1,40 % los cuales son mínimos frente al 5 % que es
considerado como máximo de tolerancia de error según [Alonzo Villegas et al.,
2014]. Estos resultados demuestran que el robot funciona de una manera
correcta al tener un error mínimo.
De la misma manera se procedió para el color amarillo y el color azul.
Las diferencias entre las medidas teóricas y las medidas reales se pueden
observar en las Tabla 3.6 y Tabla 3.8. Y los errores experimentales de los
colores amarillo y azul se pueden ver en las tablas Tabla 3.7 y Tabla 3.9
respectivamente.
Analizando la Tabla 3.7 de los objetos de color amarillo se tiene un error en
X de 0,51 % en promedio y un máximo de 1,25 %, para Y con error de 0,57 %
3.3. RESULTADOS Y DISCUSIÓN 51

Tabla 3.4: Tabla comparativa de las coordenadas teóricas y reales de la


posición del efector final con la cinemática inversa con el color rojo.
N° COORDENADA TEORICA COORDENADA REAL
X(cm) Y(cm) Z(cm) X(cm) Y(cm) Z(cm)
1 17 15 7 16,92 14,89 7
2 10 5 7 10,11 5,01 7
3 15 20 7 15,2 19,9 7
4 22 25 7 21,97 25,1 7
5 13 27 7 13,09 27,3 7
6 30 5 7 29,95 5,04 7
7 18 10 7 18,2 10,07 7
8 24 8 7 23,78 8,05 7
9 21 13 7 21,1 12,87 7
10 30 15 7 29,86 14,79 7

Tabla 3.5: Cálculo del porcentaje de error de la posición del efector final con
la cinemática inversa con el color rojo.
PORCENTAJE DE ERROR
error X ( %) error Y ( %) error Z ( %)
0,47 0,73 0,00
1,10 0,20 0,00
1,33 0,50 0,00
0,14 0,40 0,00
0,69 1,11 0,00
0,17 0,80 0,00
1,11 0,70 0,00
0,92 0,63 0,00
0,48 1,00 0,00
0,47 1,40 0,00

en promedio y un máximo 1,43 % los cuales son mínimos frente al 5 % que es


considerado como máximo de tolerancia de error según [Alonzo Villegas et al.,
2014]. Estos resultados demuestran que el robot funciona de una manera
corrector al tener un error mínimo.
Analizando la Tabla 3.9 de los objetos de color azul se tiene un error en X
de 0,69 % en promedio y un máximo de 1,50 %, para Y con error de 0,66 %
3.3. RESULTADOS Y DISCUSIÓN 52

Tabla 3.6: Tabla comparativa de las coordenadas teóricas y reales de la


posición del efector final con la cinemática inversa del color amarillo.
N° COORDENADA TEORICA COORDENADA REAL
X Y Z X Y Z
1 30 5 7 29,98 4,97 7
2 10 8 7 10,05 8,07 7
3 33 13 7 33,14 12,97 7
4 27 25 7 26,7 24,84 7
5 12 15 7 11,85 15,03 7
6 25 7 7 24,88 6,9 7
7 19 27 7 19,05 27,08 7
8 37 20 7 36,99 19,95 7
9 17 36 7 17,15 36,18 7
10 24 15 7 24,03 15,1 7

Tabla 3.7: Cálculo del porcentaje de error de la posición del efector final con
la cinemática inversa.
PORCENTAJE DE ERROR
error X ( %) error Y ( %) error Z ( %)
0,07 0,60 0,00
0,50 0,88 0,00
0,42 0,23 0,00
1,11 0,64 0,00
1,25 0,20 0,00
0,48 1,43 0,00
0,26 0,30 0,00
0,03 0,25 0,00
0,88 0,50 0,00
0,13 0,67 0,00

en promedio y un máximo 1,67 % los cuales son mínimos frente al 5 % que es


considerado como máximo de tolerancia de error según [Alonzo Villegas et al.,
2014]. Estos resultados demuestran que el robot funciona de una manera
corrector al tener un error mínimo.
3.3. RESULTADOS Y DISCUSIÓN 53

Tabla 3.8: Tabla comparativa de las coordenadas teóricas y reales de la


posición del efector final con la cinemática inversa del color azul.
N° COORDENADA TEORICA COORDENADA REAL
X Y Z X Y Z
1 26 14 7 25,98 13,89 7
2 18 19 7 18,06 19,1 7
3 9 24 7 9,08 24,07 7
4 15 28 7 14,8 27,88 7
5 30 11 7 29,78 11,01 7
6 17 15 7 17,09 15,25 7
7 10 27 7 10,15 27,05 7
8 28 23 7 27,7 22,67 7
9 19 8 7 19,03 8,05 7
10 24 14 7 24,06 14,08 7

Tabla 3.9: Cálculo del porcentaje de error de la posición del efector final con
la cinemática inversa.
PORCENTAJE DE ERROR
error X ( %) error Y ( %) error Z ( %)
0,08 0,79 0,00
0,33 0,53 0,00
0,89 0,29 0,00
1,33 0,43 0,00
0,73 0,09 0,00
0,53 1,67 0,00
1,50 0,19 0,00
1,07 1,43 0,00
0,16 0,63 0,00
0,25 0,57 0,00
Capítulo 4

Conclusiones

Se diseñó un algoritmo capaz de controlar el brazo robot de (5GDL) a


través de instrucciones por voz mediante un micrófono de un dispositivo
móvil de Android y el reconocimiento de voz de Google para muestrear
la señal de audio o comando enunciado por el usuario. De esta manera se
puede apreciar una forma sencilla de manejar el robot sin la necesidad de
tener una computadora para comandar el brazo robot permitiendo así a los
operarios el desplazamiento libre por los alrededores del espacio permitido
del área de trabajo. Y ya que los servos motores cuentan con un circuito de
control interno las respuestas del brazo robot a los comandos solicitados son
adecuadas para posicionar y sujetar los objetos dentro de la mesa de trabajo.
Se asimiló que el muestreo del audio enviado por el usuario es procesado
por la programación de la aplicación móvil utilizando el algoritmo de
reconocimiento de palabras proporcionado por Google de forma gratuita,
consiguiendo así que el robot reaccione de acuerdo con la orden enviada por
la aplicación del celular.
Se desarrolló un algoritmo capaz de localizar objetos cúbicos de colores
primarios (amarillo, rojo, azul, verde), mediante técnicas basadas en el
tratamiento de imágenes, para conocer las coordenadas del objeto dentro
del área de trabajo de luz artificial controlada usando una cámara web.
Con las pruebas desarrolladas de la localización de objetos se observó que
cada uno de los motores del robot reaccionan de acuerdo con las ordenes
enviadas por el usuario, consiguiendo de esta manera que la cámara web, la
aplicación móvil y el brazo robot trabajen de forma conjunta y localicen un
objeto para transportarlo de un lugar a otro.
Mediante comprobación visual de los valores calculados utilizando la
cinemática inversa con MATLAB (denominados como COORDENADAS

54
Cap 4. Conclusiones 55

TEÓRICAS en las tablas de la sección de resultados) y contrastándolos


con los valores conseguidos por el algoritmo que integra el sistema
de reconocimiento de voz y el de imágenes (denominados como
COORDENADAS REALES en las tablas de la sección anterior) se observó
que el sistema es capaz de calcular valores aproximados en grados en cada
articulación y posicionar cada servo motor en dicho valor para localizar
un objeto de un color deseado dentro del área de trabajo para sujetarlo
y trasladarlo de un lugar a otro.
En las pruebas de cinemática directa de la sección de resultados se observó
que el promedio de error experimental de los tres ejes en el posicionamiento es
de 1.35 % por debajo del 5 % que es considerado como máximo de tolerancia
permitido según [Alonzo Villegas et al., 2014] y considerando que para este
caso un porcentaje de 5 % no altera notablemente la posición del efector final
del brazo por lo que se ha observado en las pruebas realizadas. Además, cabe
recalcar que para evitar un mal posicionamiento del efector final se dotó al
brazo con la capacidad de corregir su posición mediante visión artificial si
esta última no permite recoger el objeto como se explicó en la sección de
desarrollo. Por otro lado, en las pruebas de cinemática inversa de resultados
se observó que el promedio de error experimental de los tres ejes en el
posicionamiento en general para los tres colores es de 0.63 % por debajo
del 5 % que es considerado como máximo de tolerancia permitido como ya
se explicó antes en el presente párrafo. En conclusión, de acuerdo con los
valores de los errores observados en las pruebas de los apartados mencionados
anteriormente se puede apreciar que el trabajo consigue el objetivo principal
que es localizar y trasladar un objeto de un determinado color de un lugar
a otro.
Capítulo 5

Recomendaciones

Para el reconocimiento de los comandos por voz, se diseñó un algoritmo


utilizando un dispositivo móvil de Android y el reconocimiento de voz de
Google para muestrear la señal de audio y reconocer el comando enunciado
por el usuario. Por tal motivo, se recomienda que el brazo sea instalado en
un lugar con cobertura de internet inalámbrico.
En el reconocimiento de los objetos cúbicos se desenvuelve un algoritmo
capaz de localizar objetos cúbicos de colores primarios (amarillo, rojo, azul,
verde), mediante técnicas basadas en el tratamiento de imágenes. Por lo
tanto, se recomienda que el área de trabajo donde se ubican los objetos tenga
una luz artificial controlada para que el tratamiento de imágenes funcione
de manera correcta.
Además, en el reconocimiento de los objetos cúbicos de colores se
recomienda que no se altere el ancho y el alto de estos, ya que el
algoritmo tiene configurada las restricciones de reconocimiento, y una de
estas restricciones es el tamaño del área del objeto reconocido. Cabe recalcar
que, al cambiar la altura del objeto o las dimensiones del ancho de este, el
área se ve alterada en la visión artificial.
En la sujeción del objeto en el área de trabajo se recomienda colocar los
objetos dentro del espacio de alcance del brazo robot marcado con la curva
de color celeste en la cámara de la interfaz gráfica de control de MATLAB.

56
Capítulo 6

Anexos

Figura 6.1: Anexo A: Vista superior del espacio de trabajo del proyecto.

57
Cap 6. Anexos 58

Figura 6.2: Anexo B: Ubicación de las lámparas Leds y la cámara web sobre
el espacio de trabajo.

Figura 6.3: Anexo C: Caja contenedora del Arduino y el adaptador de


corriente del brazo robot.
Bibliografía

A. Aguilar Romero. Diseño, impresión, montaje y control de un manipulador


robótico. B.S. thesis, 2012.

N. Aguirre. Implementación de un sistema de detección de señales de tráfico


mediante visión artificial basado en fpga, 2013.

F. M. Alonzo Villegas, M. E. Bravo Valencia, et al. Diseño, construccuón y


control de un brazo robótico. B.S. thesis, Quito: USFQ, 2014, 2014.

R. Aveda. Qué es android: todo sobre el sistema operativo de google, 2022.

A. Barrientos et al. Fundamentos de robótica. 2007.

S. Bustamante. Algoritmos de procesamiento de imágen aplicados a la


detección de figuras geométricas y sus propiedades espaciales, 2014.

E. Candy-ho. Kit armar brazo robotico lewansoul xarm 6dof full metal pc,
2022.

P. clic. Matlab robot toolbox 4-cinemática inversa del brazo robótico, 2022.

COGNEX. Introducción a la visión artificial. una guía para la


automatización de procesos y mejorar la calidad. 2018, 2018.

P. J. Correa Álvarez. Cancelación de ruido y reverberación para


reconocimiento de voz en interacción humano robot. 2020.

N. De La Rosa Mejillón. Brazo robot, para el reconocimiento y manipulación


de objetos, controlado mediante inteligencia artificial, como complemento
de tecnología robótica en la carrera de electrónica y telecomunicaciones de
la universidad estatal península de santa elena año 2014. B.S. thesis, La
Libertad: Universidad Estatal Península de Santa Elena, 2014., 2014.

59
BIBLIOGRAFÍA 60

M. García Abella. Diseño, construcción y control por ordenador de un brazo


robótico. PhD thesis, Universitat Politècnica de València, 2018.

V. Gonzales. Estructura de un robot industrial. Página web, 2004.

A. González Marcos, F. Martínez de Pisón Ascacíbar, A. Pernía Espinoza,


F. Alba Elías, M. Castejón Limas, J. Ordieres Meré, and
E. Vergara González. Técnicas y algoritmos básicos de visión artificial.
Universidad de La Rioja, Logroño, 2006.

C. ho ELECTRONICS. Kit armar brazo robotico lewansoul xarm 6dof full


metal pc. Página web, 2022.

A. M. J. Javier and J. Esteban Escaño. Diseño electrónico y software de


control para brazo robótico de 6 grados de libertad. 2018.

I. Jiménez Martínez. Control remoto de movimiento de cámara web con


trackerpod en c++. 2018.

E. I. Jiva. Desarrollo de la teleoperación de robots industriales y


colaborativos mediante técnicas avanzadas de visión artificial. 2019.

C. la Mancha. Cinemática directa e inversa, 2022.

I. Lopez-Juarez. On-line learning for robotic assembly using artificial neural


networks and contact force sensing. Nottingham Trent University (United
Kingdom), 2000.

Makers. Crear app para arduino con app inventor, 2014.

E. Martinez. Operaciones básicas con imágenes, 2012.

MathWorks. Matlab - mathworks, 2022.

J. M. Matías, J. L. Hernández, and M. Hernández. Búsqueda del mejor


espacio de color para el reconocimiento de frutas utilizando visión artificial.
COMITÉ CIENTÍFICO CICOM 2018, page 125, 2018.

D. E. Mosquera Araujo. Proyecto de diseño de una aplicación para el control


de movimientos de un robot abb mediante reconocimiento de voz. Master’s
thesis, Universitat Politècnica de Catalunya, 2019.

M. Peña, I. López-Juárez, J. Corona, and K. Ordaz. Manufactura inteligente


utilizando vision para robots. 2004.
BIBLIOGRAFÍA 61

E. D. Pérez and B. M. L. Portilla. Sistema de reconocimiento de voz para


aplicaciones de control en una vivienda, 2014.

J. N. Pires. Robot-by-voice: experiments on commanding an industrial robot


using the human voice. Industrial Robot: An International Journal, 2005.

D. Revuelta Hoz et al. Extensión de una app para transportistas con servicio
de voz y reconocimiento de actividad. 2020.

R. D. V. Salazar and A. A. C. Mesa. Dispositivos de asistencia para la


movilidad en personas con discapacidad visual: una revisión bibliográfica.
Revista Politécnica, 15(28):107–116, 2019.

E. Á. Sobrado Malpartida. Sistema de visión artificial para el reconocimiento


y manipulación de objetos utilizando un brazo robot. 2003.

L. G. M. Suárez, L. E. V. Waltero, J. A. G. Albarracín, J. C. V. Hurtado,


and L. A. T. Ariza. Sistema de reconocimiento de voz para personas
en condición de discapacidad motriz. In Gamificación y Discapacidad:
Una alternativa socialmente responsable. Volumen II, pages 82–122.
Universidad Politécnica Territorial de Falcón “Alonso Gamero”, 2020.

TECNIT. Webcam camara web full hd 1080p logitech c920 de 15mp con
microfono incorporado. 2022.

P. J. S. Valero. Introducción a la robótica inteligente, 2006.

P. G. Vázquez, J. P. Baeza, and F. A. C. Herías. Redes y transmisión de


datos. Universidad de Alicante, 2010.

I. C. Villa Escudero. Modelamiento y simulación de un algoritmo para el


control del brazo robótico. 2017.

B. M. Wilamowski and J. D. Irwin. The industrial electronics handbook-five


volume set. CRC Press, 2011.

También podría gustarte