Aplicación de Algoritmos de Deep Learning en un Sistema Embebido para el control de una Mano Robótica

Los sistemas embebidos son muy útiles para aplicaciones, ya que son compactos y sencillos de aprender a programar, pero a pesar de estas características tiene un problema, el cual son muy limitados debido a su baja capacidad de procesamiento para llevar a cabo tareas de Deep Learning. Otros de los p...

Full description

Autores:
Cuervo Restrepo, Juan Camilo
Chavarro Hurtado, Harlinsson Javier
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2018
Institución:
Instituto Tecnológico Metropolitano
Repositorio:
Repositorio ITM
Idioma:
spa
OAI Identifier:
oai:repositorio.itm.edu.co:20.500.12622/4015
Acceso en línea:
http://hdl.handle.net/20.500.12622/4015
Palabra clave:
Algoritmos de control
Raspberry pi
Automatización
Python
OpenCV
Caffe
Mano
Robótica
Redes neuronales convolucionales
Automata
Neural networks (Computer science)
Embedded systems
Robots
Redes neurales (Computador)
Sistemas embebidos
Rights
License
http://creativecommons.org/licenses/by-nc-nd/4.0/
Description
Summary:Los sistemas embebidos son muy útiles para aplicaciones, ya que son compactos y sencillos de aprender a programar, pero a pesar de estas características tiene un problema, el cual son muy limitados debido a su baja capacidad de procesamiento para llevar a cabo tareas de Deep Learning. Otros de los problemas es el comportamiento de los módulos de PWM de las Raspberry no es óptimo, debido a que no es capaz de mantener un periodo constante, por ende, cada uno de los actuadores mantiene un pequeño movimiento mientras están energizados. El presente trabajo de investigación se fundamentó en implementar una arquitectura de redes neuronales profundas - Deep Learning (DNN, por sus siglas en inglés) sobre el sistema embebido Raspberry pi, el cual se encarga de controlar una mano robótica. ¿Pero cómo lo hace? Por medio de una cámara se adquiere una imagen del objeto a detectar, y el DNN se encarga de reconocer el objeto y entregar el rectángulo delimitante sobre la imagen. Luego se procede a ordenar la activación de los mini servos para hacer cerrar los dedos de la mano robótica de una manera precisa para lograr agarrar el objeto adecuadamente. Para un mejor rendimiento del algoritmo Deep Learning en la Raspberry se utiliza un modelo pre entrenado con pocas clases, es decir, un modelo que es capaz de reconocer pocos objetos. La programación se realizó en Python, apoyándonos con librerías como OpenCV y Caffe, ya que estas fueron las que dieron mejores resultados sobre la Raspberry pi. Se probaron otros modelos de librerías diferentes, pero requerían de mucho procesamiento o simplemente no funcionaban sobre el sistema operativo Raspbian de la Rasberry Pi. Para el diseño de la mano robótica nos apoyamos en un modelo ya existente, al cual se le realizo modificaciones para una mejor movilidad, se redimensionaron piezas y se añadieron nuevos modelos, también se cambiaron algunos materiales para dar mayor rendimiento al movimiento de la mano, el diseño del color fue escogido de tal manera que resaltara a la vista del público. Actualmente hay muchas personas apostándole al Deep Learning sobre dispositivos embebidos, ya que estos dispositivos dependiendo de las aplicaciones son mucho más flexibles al implementar determinadas tareas debido a su tamaño reducido y bajo costo.