Brazo robótico controlado con Kinect

July 8, 2017 | Autor: I. Gutiérrez Huerta | Categoria: Arduino, Kinect
Share Embed


Descrição do Produto

Brazo robótico controlado con Kinect Isaac Gutiérrez Huerta;Alexis Gilberto Hernández Zapata Instituto Tecnológico de San Luis Potosí San Luis Potosí, México [email protected] [email protected] “La tecnología se ha hecho algo cotidiano y necesario dentro de nuestras vidas”. El objetivo principal del proyecto es brindar un control básico a dispositivos del hogar de manera remota. Se han combinado los conocimientos de ingenieros en sistemas en cuanto a programación y electrónica. Utilizando un Arduino MEGA 2560 (rev3) y un Kinect como herramientas de hardware y con ayuda de los entornos de desarrollo Arduino IDE y Processing, además de las librerías de OpenNI+NITE y el SDK de Kinect, se ha logrado crear un brazo robótico que responde intuitivamente a nuestros movimientos naturales, queda pendiente la Interacción en tercera dimensión para hacer que el brazo gire sobre sí mismo y hacer aún más intuitivo el movimiento del brazo.

I.

INTRODUCCIÓN

Con ayuda de las nuevas tecnologías se planea desarrollar un brazo robótico que nos ayude en tareas simples del hogar y poder controlarlo de manera remota. A su vez, este robot se controla de manera intuitiva entendiendo nuestros movimientos naturales. Como hemos visto en nuestros días la vida digital está dando un salto increíble, lo cual nos facilita nuestra vida cotidiana y no solo eso en la industria nos permite realizar procesos que eran largos y costos. “La tecnología se ha hecho algo cotidiano y necesario dentro de nuestras vidas”. Para aprovechar el alcance de las nuevas tecnologías, un curso de electrónica y los conocimientos necesarios de programación se convierten en necesarios para cualquiera que tenga la ambición y curiosidad de crear cosas nuevas.

II.    

A.

OBJETIVOS ESPECÍFICOS

Brindar una combinación entre el uso de las TIC´S y el hogar. Se aclara que no es una casa inteligente, esto nos ayudará con tareas simples y específicas. Brindar control básico a dispositivos del hogar de manera remota. Nos permite relazar varios trabajos a la vez ahorrándonos tiempo.

Y no solo eso hemos visto accidentes en hogares a causa de aparatos encendidos, estufas prendidas y no solo eso a los pequeños del hogar causar algún daño debido a su curiosidad debido al querer conocer el mundo que vive así nos evitaría estos problemas que no solo causan daños materiales, sino hasta daños en las pequeñas personas del hogar.

B.

Justificación

Actualmente la tecnología está disponible para todos, es por ello que se necesita explotar este recurso y que mejor si nos puede facilitar problemas que a simple vista son sencillos pero la solución es de gran utilidad.

C.

Visión general del proyecto

Generamos un pequeño robot que no solo es para una casa inteligente es controlado vía remota y con ayuda de Kinect, nos ayuda a correr cortinas, tomar objetos, en si tareas básicas del hogar. Básicamente combinamos nuestros conocimientos que tenemos como ingenieros en sistemas y los que obtuvimos a lo largo de nuestros cursos que son sencillos pero a la vez muy eficientes de electrónica nos sirven para poder desarrollar lo que nosotros estamos proponiendo.

III.

MARCO TEÓRICO

A. Arduino MEGA 2560 El Nuevo Arduino Mega 2560 (rev3) viene con más memoria para el programa, más RAM y más pines. 100% compatible con la versión UNO o Duemilanove. En ésta novedosa versión, se utiliza un potente procesador de AVR ATMEGA2560 con un amplio espacio de memoria para programar y corriendo a 16Mhz. Es ideal para proyectos de robótica ya que lo más destacado es su elevada cantidad de pines de entrada y salida y sus 4 puertos UART por hardware. (1)

Planteamiento del problema

Uno de los principales problemas que notamos y por el cual decidimos realizar el proyecto es para que los usuarios puedan salir de casa y no preocuparse por llegar temprano o dejar las luces prendidas desde antes esto con el fin de que se crea que hay gente en la casa o si olvidaron apagar la tv puedan apagarla sin necesidad de regresar.

Figura 1. Diagrama de Arduino Mega 2560 en Fritzing

B. Kinect Kinect para Xbox 360, o simplemente Kinect (originalmente conocido por el nombre en clave «Project Natal»), es «un controlador de juego libre y entretenimiento» creado por Alex Kipman, desarrollado por Microsoft para la videoconsola Xbox 360, y desde junio del 2011 para PC a través de Windows 7 y Windows 8. Kinect permite a los usuarios controlar e interactuar con la consola sin necesidad de tener contacto físico con un controlador de videojuegos tradicional, mediante una interfaz natural de usuario que reconoce gestos, comandos de voz, y objetos e imágenes. El dispositivo tiene como objetivo primordial aumentar el uso de la Xbox 360. (2) Para utilizar el Kinect para desarrollos de proyectos, serán necesarios varios archivos descritos en Software dentro de los Materiales del proyecto.

posteriormente que había formado equipo con Asus para desarrollar un dispositivo compatible para PC similar a la Kinect, que se llamó Wavi Xtion y está programado para el lanzamiento en el segundo trimestre de 2012. Su software está siendo usado actualmente en una variedad de proyectos de código abierto dentro del mundo académico y la comunidad de aficionados. Recientemente, las empresas de software han intentado expandir la influencia de OpenNI simplificando el funcionamiento e integración con la tecnología. Tras la adquisición de PrimeSense por Apple, se anunció que el sitio web OpenNI.org sería cerrado el 23 de abril de 2014. Tras el cierre, las organizaciones que utilizaban OpenNI conservaron la documentación y los binarios para su uso futuro, como en la página Structure.io (3) Esto último hace difícil encontrar las librerías para que funcionen junto con Processing, pero la versión 2.2 de ésta funciona perfectamente para nuestro proyecto.

IV. Figura 2 Kinect para Xbox 360

Para poder utilizar el Kinect con fines de desarrollo en PC, es necesario un adaptador que convierte la entrada del Kinect hacia un adaptador de CA y a un puerto USB para el PC. Este adaptador se muestra en la Figura 3.

Figura 3. Adaptador AC para Kinect con conector USB estándar

A.

OpenNI, acrónimo de Open Natural Interaction, es una organización sin ánimo de lucro impulsada por la industria centrada en la certificación y mejora de la interoperabilidad de la interfaz natural de usuario y la interfaz orgánica de usuario para dispositivos de interacción natural, las aplicaciones que usan estos dispositivos y el middleware que facilita el acceso y uso de tales dispositivos. 1) Historia La organización fue creada en noviembre de 2010 y el sitio web se publicó el 8 de diciembre. Uno de los miembros principales era PrimeSense, la empresa que creó la tecnología utilizada en la Kinect, un periférico de entrada que actúa como sensor de movimiento para la videoconsola Xbox 360 de Microsoft. En diciembre de 2010, PrimeSense liberó sus propios drivers de código abierto junto con un middleware de detección de movimiento denominado NITE. PrimeSense anunció

Materiales

1) Hardware  Arduino MEGA 2560 (rev3)  Kinect  Abate lenguas (Palitos de paleta)  Cable DuPont  4 servomotores  1 Protoboard  Fuete de 5v 2) Software  Arduino IDE 1.6.4  Kinect Developer Toolkit 1.8  Kinect Runtime 1.8  Kinect SDK 1.8  Processing 2.2.1

B. C. OpenNI + NITE

DESARROLLO

Ensamblado

1)

Creación del prototipo Se inició perforando los abate lenguas insertando los servos, cada uno en posición distinta ya que cada servo lleva movimiento diferente y tomando en cuenta que solo su giro es de 180°. El siguiente diagrama muestra la posición de los servos respecto a los abate lenguas.

4)

Servo Pinza Servo Muñeca

Creando el programa para Processing El desarrollo de aplicaciones en Processing se basa en aprender a base de ejemplos incluidos en cada una de las librerías que descargamos. Entonces es fácil empezar a diseñar aplicaciones de gran complejidad en poco tiempo. OpenNI+NITE son las librerías que utilizamos para que el Kinect pueda ser reconocido por Processing, de ahí en adelante la aplicación consta de:  

Servo Codo

 



Servo Hombro

Figura 4. Servos en el brazo

La Figura anterior nos muestra el brazo robótico donde los servomotores de 90g, pueden girar de 0 a 180 grados a través de su eje. En la programación se ha configurado para que el Servo Hombro sólo pueda girar de 30 a 130 grados, para evitar que caiga todo el brazo y dañe la estructura del mismo. 2)

Conectando los Servomotores al Arduino Se conectaron lo servos al Protoboard tomando a este como puente para la corriente y tierra como se muestra la Figura 5.

Importación de la librería OpenNI Activar la cámara de Kinect para que reconozca al usuario. Iniciar la conexión Serial con Arduino Reconocimiento de los vectores de nuestros brazos en tres dimensiones para después quitar la de profundidad y dejar sólo los ángulos de nuestro codo y hombro. Envío de los grados obtenidos al Arduino.

La programación de nuestro proyecto en Processing es mucho más extensa que la de Arduino, debido a que se debe controlar el cálculo de los ángulos de nuestros brazos, gracias a la librería OpenNI nos ahorramos cálculos vectoriales y sólo utilizamos las funciones de OpenNI. El resultado al correr la aplicación una vez que el Kinect esté conectado muestra, una vez Kinect reconoce nuestros brazos, aparecen en pantalla el valor del ángulo que hacemos con nuestros brazos, y dicho número es enviado por conexión Serial al Arduino que lee en forma de arreglo los ángulos y los envía a cada uno de los pines para girar cada servo.

C.

Instrucciones de uso del Brazo Robótico

Con el brazo derecho poniéndola en un ángulo de 90° al alzar el hombro se controla el hombro del brazo robótico, si se mueve el codo de igual forma se mueve el codo del brazo robótico Con el brazo izquierdo al abrir el codo se cierra la pinza al cerrar el codo se abre la pinza del brazo robótico, si se alza el hombro se mueve la muñeca del brazo robótico.

V.

Figura 5. Conexión de los Servos al Arduino

Y para lograr el movimiento de los servomotores su tercera salida es conectada a los pines digitales 9, 10, 11 y 12 que contiene el Arduino. 3)

Creando el programa para Arduino Gracias a la facilidad de codificación en Arduino, el programa es sencillo de desarrollar y entender. Básicamente consiste en crear una conexión Serial que permitirá al Arduino recibir las señales enviadas por el Kinect, después la solución propuesta consistió en crear un arreglo que contiene los ángulos de cada Servo, y estos son enviados uno a uno a cada PIN del Arduino.

CONCLUSIONES

Este ha sido un excelente proyecto para reunir varias tecnologías y herramientas en una solución simple para un problema común. Parte de los códigos de Processing y Arduino pueden ser encontrados en los libros mostrados en las Referencias. (4) (5) En las consideraciones del proyecto por hacer quedan pendientes:  

Interacción en tercera dimensión para hacer que el brazo gire sobre sí mismo. Hacer mas intuitivo el movimiento, como se vio en las Instrucciones de uso del Brazo Robótico, se puede apreciar que estas no son las más sencillas de manejar.

RECONOCIMIENTOS Especial agradecimiento a Pedro García Guerrero, que nos brindó amablemente acceso al libro Arduino and Kinect Projects. Design, Build, Blow Their Minds y nos guío para buscar las herramientas necesarias para el proyecto. Reconocimiento también a Ariel Benjamín de la Rosa Zapata por darnos la tarea de realizar un proyecto que realmente solucionara algun problema y fuera bueno, útil e innovador. A Kenya Sharon Yakin Galicia Rodríguez y a Juan Uribe Herrera por formar parte del equipo de trabajo que desarrolló el proyecto, pues sin ellos no podría haberse terminado en tiempo y forma.

REFERENCIAS 1. Tienda BricoGeek. Arduino MEGA 2560. Tienda BricoGeek. [En línea] http://tienda.bricogeek.com/arduino/306arduino-mega-2560.html. 2. Colaboradores de Wikipedia. Kinect. Wikipedia, La enciclopedia libre. [En línea] 17 de Mayo de 2015. http://es.wikipedia.org/wiki/Kinect. 3. colaboradores de Wikipedia. OpenNI. Wikipedia, La enciclopedia libre. [En línea] 4 de Enero de 2015. http://es.wikipedia.org/wiki/OpenNI. 4. Borenstein, Greg. Making Things See. Primera. s.l. : O'Reilly Media, Inc., 2012. 5. Ramos Melgar, Enrique y Castro Díez, Ciriaco. Arduino and Kinect Projects. Design, Build, Blow Their Minds. New York : apress, 2012. 6. Cuenca, Danny. Como instalar Kinect en PC para trabajar en Processing. YouTube. [En línea] 7 de Mayo de 2015. https://www.youtube.com/watch?v=WuSafDup3gw.

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.