SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT. Diego Andrés Garzón Villa Jesús David Cardona Cuesta

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT. Diego Andrés Garzón Villa Jesús David Cardona Cuesta Trabajo De Gra
Author:  Eduardo Ruiz Rojas

0 downloads 76 Views 749KB Size

Recommend Stories


Por un medio ambiente mejor
Procesos sostenibles Por un medio ambiente mejor Opciones de reciclaje de componentes aislantes Robert Sekula, Till Ruemenapp, Marlene Ljuslinder, Be

MANUAL DEL SISTEMA DE CALIDAD MEDIO AMBIENTE
ICA Fluor Daniel, S. de R. L. de C. V. NO. AQ9-01 MANUAL DEL SISTEMA DE CALIDAD MEDIO AMBIENTE Y REV. 11 FECHA: 08-NOV-02 HOJA 1 DE 1 HOJA DE REV

Story Transcript

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT.

Diego Andrés Garzón Villa Jesús David Cardona Cuesta

Trabajo De Grado Presentado Como Requisito Parcial Para Optar Por El Título De Tecnólogo En Electrónica

José Bestier Padilla Bejarano Director De Trabajo De Grado

Universidad Del Quindío Facultad De Ciencias Básicas Y Tecnologías Programa De Tecnología En Electrónica Septiembre 13 Del 2013 Armenia, Quindío

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

RESUMEN

La implementación de robots ha permitido desde años atrás mejorar la calidad de vida del ser humano mediante su reemplazo en actividades que requieren ser repetitivas, con altos grados de dificultad o que presentan entornos peligrosos para la integridad física. En este trabajo de grado se desarrolló e implementó un sistema el cual permite el direccionamiento de un brazo robótico remotamente y sin ningún elemento invasivo. Las funciones del brazo robótico son generadas y transmitidas desde un ordenador vía inalámbrica utilizando el protocolo Zigbee; la trayectoria del robot se generara mediante el Kinect, el cual se utiliza como sensor de reconocimiento de movimientos del usuario; una vez realizado el procesamiento adecuado de la información captada, se transmiten los datos de forma inalámbrica utilizando módulos Xbee Serie 2 hacia el brazo robótico, el que se encuentra compuesto por un sistema de recepción y un circuito microcontrolado que permite la manipulación del mismo. El sistema permite una manipulación de elementos rápida y segura desde un lugar remoto, así proteger la integridad física del operador.

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

GLOSARIO

Android: android es un sistema operativo basado en Linux, diseñado principalmente para móviles con pantalla táctil como teléfonos inteligentes o tabletas inicialmente desarrollados por Android, Inc. Androide: denominación que se le da a un robot u organismo sintético antropomorfo que, además de imitar la apariencia humana, imita algunos aspectos de su conducta de manera autónoma. ASCII: código de caracteres basado en el alfabeto latino, tal como se usa en inglés moderno y en otras lenguas occidentales. Bluetooth: especificación industrial para Redes Inalámbricas de Área Personal (WPAN) que posibilita la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los 2,4 GHz. Hardware: todas las partes tangibles de un sistema informático. IP: protocolo usado para la comunicación de datos a través de una red. Kinect: es un controlador de juego libre y de entretenimiento desarrollado por Microsoft para la videoconsola Xbox 360, que 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. LAN: red local o LAN (del inglés local área network) es la interconexión de varias computadoras y periféricos. Su extensión está limitada físicamente a un edificio o a un entorno de 200 metros, o con repetidores podría llegar a la distancia de un campo de 1 kilómetro. PWM: modulación por ancho de pulso o modulación de la duración de pulso, es una técnica de modulación que se ajusta la anchura del pulso, formalmente la duración del pulso, sobre la base de información de la señal moduladora. Robótica: ciencia o rama de la tecnología, que estudia el diseño y construcción de máquinas capaces de desempeñar tareas realizadas por el ser humano o que requieren del uso de inteligencia.

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

SDK: conjunto de herramientas de desarrollo de software que le permite al programador crear aplicaciones para un sistema concreto, por ejemplo ciertos paquetes de software, frameworks, plataformas de hardware, computadoras, videoconsolas, sistemas operativos, etc. Software: equipamiento lógico o soporte lógico de un sistema informático, que comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas. USB: universal Serial Bus. En ordenadores, un bus es un subsistema que transfiere datos o electricidad entre componentes del ordenador dentro de un ordenador o entre ordenadores. Un bus puede conectar varios periféricos utilizando el mismo conjunto de cables. Vlan: método de crear redes lógicas e independientes dentro de una misma red física. Wifi: mecanismo de conexión de dispositivos electrónicos de forma inalámbrica. Los dispositivos habilitados con Wi-Fi, tales como: un ordenador personal, una consola de videojuegos, un Smartphone o un reproductor de audio digital, pueden conectarse a Internet a través de un punto de acceso de red inalámbrica. Xbee: Nombre comercial de Digi International para una familia de módulos de radio compatibles con factor de forma. Las primeras radios XBee se introdujeron bajo la MaxStream marca en el año 2005 y se basaron en el estándar 802.15.4 diseñado para comunicaciones punto a punto y la estrella en más-el airevelocidades de transmisión de 250 kbit / s. Zoomorfo: calificativo a cualquier objeto que presenta forma o estructura animal. Zigbee: protocolo de comunicaciones inalámbrico basado en el estándar de comunicaciones para redes inalámbricas IEEE_802.15.4.

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

TABLA DE CONTENIDO

1. DESCRIPCION DEL PROBLEMA ................................................................... 1 2. OBJETIVOS ..................................................................................................... 2 2.1

GENERAL .................................................................................................. 2

2.2

ESPECIFICOS ........................................................................................... 2

3. MARCO TEORICO ........................................................................................... 3 4. METODOLOGIA ............................................................................................. 11 4.1 ESTUDIO ESTADO DEL ARTE......................................................... 11 4.2 DESARROLLO E IMPLEMENTACIÓN ............................................. 15 4.2.1 CONSTRUCCIÓN DEL BRAZO ............................................................ 15 4.2.2 PROGRAMACIÓN................................................................................. 19 4.2.3 TRANSMISIÓN ...................................................................................... 26 4.2.4 MONITOREO ......................................................................................... 28 5. RESULTADOS ............................................................................................... 29 6. CONCLUSIONES ........................................................................................... 34 7. BIBLIOGRAFIA .............................................................................................. 36

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

LISTA DE FIGURAS

Figura 1. Sensor Kinect

11

Figura 2. Entorno Visual Studio 2010 Ultímate

12

Figura 3. Módulo Xbee

13

Figura 4. Aplicación 3CX-DroidDesktop

14

Figura 5. Brazo robótico S300123

16

Figura 6. Servomotor

17

Figura 7. Controlador de servo en serie SSC-32

18

Figura 8. Brazo construido

19

Figura 9. Entorno bajo aplicaciones WPF Lenguaje C#

20

Figura 10. Puntos de interés del usuario

21

Figura 11. Desacople cinemático

22

Figura 12. Ángulos afectados por el primer grado

23

Figura 13. Angulo 2 y 3 con respecto al eje Y

23

Figura 14. Angulo 4, 5 y 6 con respecto al eje X, Y y Z respectivamente

25

Figura 15. Entorno de programación para el Xbee X-CTU

27

Figura 16. Conexión módulo Xbee

28

Figura 17. Obtención de la información por medio del kinect

29

Figura 18. Módulo de alimentación y transmisión para el Xbee

30

Figura 19. Interfaz diseñada para el monitoreo

32

Figura 20. Sistema implementado

33

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

Figura 21. Si Error obtención de datos

35

AGRADECIMIENTOS Agradecemos inicialmente a Dios, por darnos el conocimiento y la fortaleza para llevar a cabo cada etapa de este proceso.

A nuestras familias por ser nuestro aliento, pilar emocional y apoyo en todos los aspectos.

A Claudia Lorena Martínez, Laura Gómez y Laura González

A nuestro director José Bestier Padilla Bejarano por dirigir nuestro trabajo, por sus correcciones y sugerencias y por ser nuestra guía en todo el proceso.

A los docentes Álvaro Andrés Navarro y Ramiro Arango por su disposición para colaborar en el desarrollo de este trabajo y en todo el proceso académico.

A nuestros amigos John Jaime Ramírez, David Manrique, Yenifer Hernández, Juan Sebastián Arias, Andrés Felipe Rincón y Duvan Ramírez por ocupar papeles trascendentales en los momentos en los que más lo necesitamos

Al GIDET por el préstamo oportuno de los equipos e instalaciones y su colaboración en las fases de laboratorio.

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

1

1. DESCRIPCION DEL PROBLEMA

La robótica es un instrumento importante en el desarrollo del ser humano, ya que es ésta quien actualmente substituye al ser humano en tareas complejas, monótonas y agotadoras como en los procesos industriales. Por esto también el uso o la necesidad de la robótica en la vida humana se vuelven cada vez mayor, como por ejemplo en industrias de automoción y fabricación de maquinaria en serie, el almacenamiento, carga y descarga de objetos, inspecciones en lugares inaccesibles y manipulación de residuos tóxicos o peligrosos. De esta manera, la robótica representa una solución clara a situaciones en las cuales la vida humana se vea amenazada, en la medida en que no solo reemplaza al individuo en el proceso, sino que lleva a cabo todas las acciones necesarias para alcanzar tal fin.

Actualmente los robots más comunes que se desarrollan y distribuyen son los de tipo androide, móvil, industrial, medico, poliarticulado y zoomórfico; el teleoperado a pesar de ser un tipo de robot reconocido por proyectos como los aviones no tripulados, no son muy comunes por sus altos costos tanto de equipo, como de operación y mantenimiento; paralelo a esto, las herramientas que se utilizan para controlar estos tipos de robots son invasivas y complejas, lo cual dificulta la manipulación del mismo.

Con base a lo anterior, en este proyecto de grado se plantea como alternativa la creación de un sistema, software y hardware, que permitan direccionar las funciones de un brazo robótico, generadas y transmitidas desde un ordenador vía inalámbrica, de una manera simple, económica, portátil y no invasiva.

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

2

2. OBJETIVOS

2.1 GENERAL

Diseñar e implementar un sistema con su respectivo software y hardware, el cual no sea invasivo y que permita dirigir los movimientos de un brazo robótico remotamente.

2.2 ESPECIFICOS



Construir un brazo robótico accionado por servomecanismos.



Establecer una interfaz de comunicación entre el sensor kinect y el ordenador, utilizando la plataforma de programación Visual Studio 2010.



Desarrollar un código que procese la información suministrada por el kinect y enviar la información procesada al módulo de transmisión inalámbrica Xbee.



Hacer que una tarjeta basada en un microcontrolador, interprete la información captada por el módulo de recepción inalámbrica y accione los respectivos servomotores del brazo robótico.



Establecer una interfaz gráfica mediante una cámara IP desde el brazo robótico hacia operador, que permita visualizar la manipulación del brazo.

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

3

3. MARCO TEORICO Para apoyar la parte teórica y conceptual de nuestro trabajo, es preciso tener conocimiento acerca de los trabajos realizados años atrás a partir de los cuales fue posible la manipulación de robots y que nos sirven como base para la comparación de nuestro diseño experimental y su éxito en el proceso y para la interpretación de los resultados obtenidos a partir de dicha metodología. Abordando esta parte desde los trabajos más relevantes encontramos a Guillén, quien realizó el control local y remoto del brazo robótico Staubli RX-90 consistente en un servidor, que publica una página Web para el control y monitoreo del brazo robótico; página desde la cual se pueden cambiar los parámetros y mover el brazo robótico desde cualquier computadora por medio de un navegador de Internet. Su vez, Incorporó una aplicación, desarrollada previamente, de reconocimiento de imágenes en dos dimensiones, para la ubicación de objetos por parte del brazo robótico y así ser ejecutada de manera remota. Las pruebas de acceso remoto realizadas en este laboratorio fueron exitosas debido a que la computadora que controló el brazo robótico se encontró directamente en la misma VLAN que las computadoras del Laboratorio de control automático. [1] Mencias, con su trabajo “Control de una hormiga robótica mediante el microcontrolador Motorola ColdFire 5272” usa este microcontrolador integrado en la plataforma Antares desarrollada por el departamento de Ingeniería Electrónica de la Universidad Politécnica de Madrid, con el fin de controlar y manejar una hormiga robótica hexápoda con capacidad para adaptarse a las posibles deformaciones y alteraciones del terreno sobre el que se desplaza. Se utilizan controladoras de servos del mercado como la S310175, con el fin de simplificar el control de los servos del robot en la medida en que esta permite controlar un conjunto de servomotores mediante una única línea de transmisión, agrupando también las líneas de alimentación y masa; además, algunas controladoras de servos ofrecen características adicionales, como es información del consumo de corriente de cada servo o par motor ejercido por los servos, control de la velocidad SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

4

entre muchas otras. Para la interfaz de usuario usaron el teclado hexadecimal como recurso de interacción entre el usuario y la máquina con el objetivo de conseguir un interfaz cómodo y sencillo de usar; para lograr tal funcionamiento se asignaron diversas funciones a cada tecla. [2] En el año 2007 se realizó el “ Diseño y control de robots móviles”, en el cual se presentó una descripción de los diferentes tipos de control usados en el campo de los robots móviles aplicando dos de las técnicas de control, la primera implicando un robot con ruedas y la segunda a uno con patas hexápodas; de esta manera, muestran claramente el diseño del control y los resultados para ambas aplicaciones; igualmente construyen un robot de tres ruedas para el cual se implementan algoritmos de seguimiento y planeación de trayectorias. En los robots con ruedas, los diseños holonómicos son aquellos en los cuales el robot puede maniobrar en cualquier dirección desde cualquier dirección arbitraria. El vehículo robótico

omnidireccional

holonómicos

tiene

3

movimientos

planares

independientes, dos para traslación y uno para rotación. Esto permite que las estrategias de control sean más sencillas de implementar. Para los vehículos noholonómicos, el movimiento es producido por dos desplazamientos independientes y el espacio de configuración es de dimensión tres; esto hace que las estrategias de control se vuelvan más complejas pero el aspecto de diseño mecánico es más sencillo. Por su parte, el control de robots con patas está inspirado en sistemas biológicos por lo cual el reto de diseño que se presenta para este tipo de estructuras corresponde al diseño de la pata, el número de patas y la coordinación de patas múltiples; de esta manera, el diseño del control para este tipo de sistemas es complejo tanto si se tiene un número menor de patas (en el cual un factor clave sería la estabilidad) o si se aumenta el número de patas (en el cual el factor clave se concentra en la sincronización del movimiento). [3] El estudio del funcionamiento del sensor Kinect y sus aplicaciones podemos apreciarlo por Mathe, trabajo en el cual se le dio una aplicación para la bioingeniería enfocándolo en la construcción de un brazo robótico para SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

5

laparoscopia; se desarrollaron dos aplicaciones que sirvieron como punto de inicio para el proyecto: La primera aplicación proporciona un entorno de ensayos capaz de evaluar todos los componentes del sensor en tiempo real y la segunda aplicación permite registrar y guardar trayectorias del cuerpo de una o varias personas pudiendo reproducirlas luego en cualquier momento. Este sensor fue utilizado puesto que su cámara RGB genera un mapa en 3D de la imagen que tiene en su campo visual y reconoce humanos en movimiento entre los objetos de la imagen a partir de diferentes segmentos de las articulaciones del cuerpo y un esquema en escala de grises; al mismo tiempo el sensor Kinect puede llegar a distinguir la profundidad de cada objeto con una resolución de 1 centímetro y las estimaciones de la altura y anchura con una exactitud de aproximadamente 3 milímetros. Con el fin de obtener todas las trayectorias que realiza una persona, es necesario registrar y archivar los 20 puntos que entrega el dispositivo, es por esto, que ésta es la funcionalidad más importante que tiene el sensor para la aplicación buscada, dado que otorga la posibilidad de tener la posición tridimensional en cada instante de tiempo y si se toma una sucesión dinámica de estas entregas, se podrá obtener todas las trayectorias de todas las partes del cuerpo de una persona. Al mismo tiempo se implementaron kids de desarrollo basados en una librería oficial (SDK 1.0) lanzada por Microsoft para el Kinect para la programación de las aplicaciones, gracias a su ordenada documentación y amplia información en la web. [4] En el año 2010 construyeron y desarrollaron un dispositivo sensórico que permite el manejo inalámbrico del brazo robótico Mitsubishi RV-M1 mediante el sensado de movimientos del brazo humano. Para el desarrollo del proyecto se inició con la captura de los datos (sensado), luego se realizó la implementación del software para la representación virtual del robot, la comunicación inalámbrica para manipular a distancia la estación remota (robot), y la interfaz de interacción con el robot. Para la construcción y el diseño del dispositivo sensórico se decidió hacer un sensor para cada una de las articulaciones que lograse manipular cada una de

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

6

ellas ubicado en el brazo de la persona que realiza la manipulación; para el desarrollo de la interfaz gráfica que permite visualizar los movimientos del robot en 3D, se utilizaron librerías de opengl (Open Graphics Library), usadas en un compilador de alto nivel como lo es el Microsoft Visual 6.0; se realizaron cada una de las partes del robot teniendo en cuenta sus magnitudes físicas reales como largo, ancho y profundidad, en algunas ocasiones estas partes fueron moldeadas o enderezadas manualmente y en otras se utilizaron figuras predeterminadas del 3D Max Studio. La información de los sensores se obtuvo a partir de conversores análogos-digitales ubicados en el microcontrolador; debido a la cantidad de información a transmitir al PC, se decidió armar una trama de datos que permitieran saber a cuál sensor correspondían los datos. Finalmente para el desarrollo de la transmisión inalámbrica, se usaron módulos Xbee con el fin de reemplazar la conexión serial por cable, ya que es la configuración más sencilla posible y no requiere una mayor configuración. De acuerdo a lo anterior, fue posible concluir que la comunicación inalámbrica implementada presenta una alta fiabilidad en la transmisión de datos, a distancias menores o iguales a 120 metros para interiores. [5] En el año 2011 se diseñó y construyó una mano robótica capaz de emular los movimientos básicos de una mano humana controlada por un guante sensorizado; este último definido como un elemento provisto con sensores fotoeléctricos que determinaron la posición de cada dedo de una mano diestra; para controlar las señales de entrada y de salida tanto de la mano robótica como las del guante sensorizado usó el microcontrolador PIC 16F877A programado en la plataforma MICROCODE, puesto que soporta comunicación serial, tiene amplia memoria para datos y programas, y ésta es reprogramable; y para establecer la recepción y el envío de los datos uso la plataforma XBEE como dispositivo inalámbrico que usa comunicación serial (RX y TX). Esta plataforma se usó como medio de transmisión para enviar la información del estado de activación de los sensores del guante a la mano robótica, de esta manera, se usaron dos dispositivos inalámbricos Xbee,

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

7

uno como emisor colocado en el guante con los sensores y el otro como receptor colocado en la mano robótica con los micro servomotores. Finalmente, las pruebas mostraron que la mano robótica imita los movimientos básicos de la mano humana, por lo tanto se concluyó que el sistema construido logra el control de la mano robótica. [6] Soriano, en su trabajo “Diseño y programación de algoritmos para robot móviles. Aplicación al robot LEGO-NXT”, el cual propone el uso de nuevas tecnologías mecánicas y electrónicas como el robot LEGO por medio de últimas tecnologías en comunicación y el estudio de la automatización de seguimiento y generación de trayectorias de vehículos móviles; en este trabajo se estableció la comunicación vía Bluetooth con medio de comunicación inalámbrico. [7] Posteriormente, Delgado, en su trabajo “Diseño de un módulo de comunicación inalámbrica para un robot móvil” realizo un sistema inalámbrico para el control de un robot que permitiese independizarlo de los cables que lo atan al computador, adicionalmente, implemento una aplicación Web basada en Servlets de Java para realizar el monitoreo y control de los movimientos del robot vía internet. [8] Según

la

información

reportada

por

los

anteriores

autores

podemos

contextualizarnos respecto a los temas que involucra este proyecto. En los últimos años la robótica ha despertado un creciente interés en la medida en que esta facilitada por un movimiento autónomo logrado mediante técnicas de control con la ayuda de software y hardware modernos. Es difícil especificar cuantas y cuáles son las clases de robots en la medida en que aun los autores no se ponen de acuerdo respecto a esta tema, sin embargo de forma general una de las clasificaciones involucra los robots industriales, manipuladores, de repetición o aprendizaje, con control por computador, inteligentes, micro-robots y móviles. Nuestro trabajo se centra en la utilización de un brazo robótico que se encuentra dentro de la clasificación de los robots móviles. Una de las definiciones para esta clase de robot la encontramos en la teoría clásica como “Un vehículo de

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

8

propulsión autónoma y movimiento (re) programado por medio de control automático para realizar una tarea específica. [3]

En primer lugar este robot se encuentra compuesto de una estructura correspondiente a un esqueleto que funciona como soporte fundamental y que constituye la forma y la funcionalidad del robot; en segundo lugar encontramos los sensores como medios para captar la información que después de ser analizada permite el control del robot por parte de sus actuadores; en tercer lugar se posicionan los actuadores como sistema de accionamiento que permite los movimientos articulados del robot. Generalmente el control de sus funciones se realiza mediante un ordenador industrial potente conocido como unidad de control o controlador, que realiza este control con elementos continuos si su finalidad es realizar un control continuo o con elementos digitales como el ordenador cuando se pretende realizar un proceso discreto; para este último es necesario digitalizar los valores para su procesamiento y volver a convertirlos, tareas realizadas en nuestro caso por un sistema microcontrolado. [7]

Para comprender el funcionamiento de un robot es importante considerar uno de los implementos que favorece tal funcionamiento. Para mayor facilidad en lo que se refiere a la utilización de motores para un brazo robótico, se consideran fáciles de programar y controlar su funcionamiento a los servomotores, además nos proveen de un torque alto, lo cual es de gran importancia ya que se requiere de ello para un correcto movimiento del brazo. Por otro lado, los motores de corriente continua forman parte importante de la investigación ya que el giro en ambos lados permite mayor movilidad al brazo. Según lo anterior, el servo es un dispositivo con eje de rendimiento controlado, que puede llevarse a condiciones angulares especificas mientras se envía un señal codificada, para que esto ocurra, el servo mantiene la posición angular del engranaje de tal forma que cuando cambia la señal cambia también la posición angular de los piñones [11].

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

9

En los sistemas de control y los diversos métodos de comunicación que permiten el direccionamiento de las funciones de un robot, pero antes es importante mencionar y reconocer la base del proyecto que permite captar la información y transformarla para ser transferida a la mecánica del robot. El Kinect es el sistema que posibilita este proceso mediante su propiedad de detección de los diversos movimientos de las partes del cuerpo. [9]

El Kinect es el dispositivo con el cual se desarrollara el proyecto, contiene un láser infrarrojo y una cámara de vídeo RGB con la cual se obtienen las imágenes del ambiente. La cámara de vídeo tiene resolución SVGA de 640x480 y resolución en color de 8 bits y muestreo a 30 muestras por segundo. El láser de infrarrojos se combina con un sensor CMOS monocromo que captura datos 3D del entorno. Para obtener los datos 3D, el sensor infrarrojo dispara una nube de puntos contra el entorno. Cada píxel de profundidad es calculado entonces a través de la diferenciación de los píxeles distribuidos a más resolución. Este valor es inversamente proporcional al radio de la Gaussiana sobre cada punto, el cual es linealmente proporcional a la profundidad real de cada píxel. La sensibilidad del sensor ha sido testeada en un rango de entre 1 a 3,5 metros, con un angular de 57 y 43 grados en los ejes horizontal y vertical, respectivamente. [10]

Respecto a los tipos de comunicación que permiten la interacción con el PC podemos mencionar los siguientes: USB como puerto de comunicación de periféricos a un computador, comunicaciones inalámbricas Wifi como sistema de comunicación de datos inalámbrico flexible utilizado como alternativa en las redes LAN cableadas o como extensión de estas y que tiene propiedades claves como la movilidad, la facilidad de instalación y la flexibilidad, Bluetooth es otra de las formas de comunicación inalámbrica considerada estándar global que posibilita la transmisión de voz, imágenes y datos entre diferentes dispositivos. Otras de las alternativas de comunicación inalámbrica son el conjunto de protocolos de alto nivel de comunicación o estándar Zigbee, muy similar al Bluetooth utilizados en

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

10

radios digitales de bajo consumo y que tiene como objeto las aplicaciones que requieren conexiones seguras con bajas tasas de envío de datos y maximización de la vida útil de sus baterías. [7]

La conexión de computadoras mediante Ondas de Radio o Luz Infrarroja, actualmente está siendo ampliamente investigada. Las Redes Inalámbricas facilitan la operación en lugares donde la computadora no puede permanecer en un solo lugar, como en almacenes o en oficinas que se encuentren en varios pisos. Mientras que las redes inalámbricas actuales ofrecen velocidades de 2 Mbps, las redes cableadas ofrecen velocidades de 10 Mbps y se espera que alcancen velocidades de hasta 100 Mbps. Los sistemas de Cable de Fibra Óptica logran velocidades aún mayores y pensando futuristamente se espera que las redes inalámbricas alcancen velocidades de solo 10 Mbps [13].

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

11

4. METODOLOGIA Para llevar a cabo los objetivos propuestos en el proyecto se dividió en fases: 

4.1 Fase 1: Estudio estado del arte Como primera instancia del proyecto, nos enfocamos en adquirir la información teórica que nos permitió comprender el funcionamiento de cada una de las herramientas y componentes que son necesarios para desarrollar el sistema. Gracias a las tecnologías manejadas y conocidas durante la carrera de tecnología en electrónica, se consigue un cómodo proceso de selección y recopilación de información de los materiales y sistemas necesarios para llevar a cabo este proyecto. Uno de los objetivos principales y llamativos de este sistema, es la obtención de las posiciones del brazo del usuario con un sensor que sea nulamente invasivo, así el eslabón robótico reproducir en tiempo real los movimientos del brazo del usuario sin que el sensor deje de ser económico y portátil, uno de los pocos equipos que cumple los anteriores requisitos es el Kinect (figura 1), que permite que sea posicionado en un lugar común, como un mesón, trípode o sitios que cumplan características parecidas a la de los anteriores, así ser portátil y poder utilizarlo en diferentes ambientes [12].

Figura 1. Sensor Kinect

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

12

La plataforma de programación que se utiliza para manejar este equipo será el entorno basado en lenguaje C Visual Studio 2010 versión Ultímate (figura 2), puesto a que es un sistema que trabaja bajo la licencia de Microsoft al igual que el sensor Kinect, facilitando la obtención de ayudas en línea de programas correspondientes a esta plataforma, se trabajó en lenguaje de programación C# el cual tiene las misma raíces que el lenguaje C++, el que es utilizado a lo largo de la carrera de tecnología en electrónica, así facilita el desarrollo del código de programación del software que se empleó en el proyecto.

Figura 2. Entorno Visual Studio 2010 Ultímate

Para el enlace entre el ordenador y el módulo de control de los servomotores, se utilizó los módulos de recepción inalámbrica Xbee (figura 3) que trabaja bajo el protocolo Zigbee, ya que este protocolo permite comunicaciones seguras con baja tasa de envío de datos y maximización de la vida útil de sus baterías, al igual que los módulos Xbee son económicos, poderosos y fáciles de utilizar [8].

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

13

Figura 3. Módulo Xbee

Para el movimiento de los eslabones del robot existen diversas herramientas que pueden llevar a cabo esta función, como los pistones hidráulicos, que a pesar de ofrecer un gran fuerza, son pesados y su accionamiento es complicado y poco preciso; los motores paso a paso están constituidos de diferentes bobinas los cuales posicionan el núcleo del motor, pero sin embargo son pesados, su tiempo de reacción es pobre y el envió de comando es numeroso; El brazo robótico está constituido por 7 servomotores, los cuales ofrecen un posicionamiento preciso y veloz, son de poco peso, ofrecen una considerable fuerza de torque a pesar de su tamaño y el número de líneas para él envió de comandos son pocas. En cada una de las articulaciones que conforman el brazo se encuentra por lo menos un servomotor, el cual debe de tener un posicionamiento totalmente independiente a los demás y tener la capacidad de accionarlos en cualquier momento única o simultáneamente, para el control de estos motores se requiere de un microcontrolador el cual disponga de por lo menos 7 salidas PWM o poder manejar este número de salidas desde el mismo; los microcontroladores que se utilizan comúnmente en prácticas de laboratorio como manejo de displays, de sensores resistivos y manejo de servomotores, disponen de 2 salidas PWM, tanto PIC (18f4550) como en ATMEGA 16, lo cual no es suficiente para el manejo del brazo robótico,

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

14

como alternativa se dispuso del módulo servo controlador SSC-32 el cual contiene 32 salidas PWM mas que necesarias para este proyecto [12].

Por último se requiere de una interfaz gráfica desde el brazo robótico hacia la interfaz de usuario en el ordenador, actualmente se encuentran varias alternativas como cámaras IP y cámaras WIFI, entre otros; hoy en día es muy común contar con celulares inteligentes, los que contienen una serie de aplicaciones para infinitos fines, en particular los celulares con sistema operativo android, el cual en su plataforma de Play Store, disponen con cientos de miles de aplicaciones para este tipo de dispositivos, entre ellas el programa 3CX-DroidDesktop (figura 4), la cual cuenta con funciones como la de interactuar con el escritorio del celular, sus aplicaciones y funciones, desde un ordenador remotamente por medio de conexión IP, así poder observar lo captado por la cámara del celular en tiempo real desde una página web, por lo tanto se decidió enlazar esta aplicación con la interfaz de usuario, y satisfacer la necesidad de contar con una interfaz desde el brazo robótico con un dispositivo el cual es muy común y económico.

Figura 4. Aplicación 3CX-DroidDesktop

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

15



4.2 Fase 2: Desarrollo e implementación 4.2.1 Fase 2.1: Construcción del brazo La principal función que realiza el brazo robótico es la imitación del brazo del usuario, por tal motivo, el eslabón robótico tiene que asemejarse a esta parte corporal del humano. En la industria actualmente se encuentran miles de robots industriales, muchos de estos cumplen funciones las cuales anteriormente se ejecutaban por mano de obra humana, por tal motivo estos robots son muy semejantes a la morfología que constituye un brazo humano, así al adoptar esta forma, presentan un gran desempeño a la hora de realizar el trabajo; con base a lo anterior se tomó como ejemplo la mecánica de los brazos manipuladores industriales, la cual está provista de 5 articulaciones que le ofrecen diferentes alternativas de movilidad, para que el extremo final o “muñeca” del brazo pueda llegar a un punto en un espacio definido en coordenadas específicas[14].

El brazo robótico se construyó en base de polimetilmetacrilato conocido comúnmente como acrílico, puesto que este material plástico ofrece resistencia a la intemperie, transparencia, resistencia al rayado, alta resistencia al impacto, ligero, dureza similar a la del aluminio y gran facilidad de mecanización y moldeo; por estas cualidades es utilizado en la industria del automóvil, iluminación, cosméticos, espectáculos, construcción y óptica, entre muchas otras. Los moldes para la construcción de las piezas del brazo robótico, fueron obtenidos de uno similar el S300123 (figura 5), el cual fue adquirido gracias a la universidad tecnológica de Pereira.

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

16

Figura 5. Brazo robótico S300123 Los mecanismos de accionamientos estas compuestos por un total de 7 servomotores, este es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición. Un servomotor es un motor eléctrico que consta con la capacidad de ser controlado, tanto en velocidad como en posición, los servos se utilizan frecuentemente en sistemas de radio control y en robótica, estos servos constituyen 5 grados de libertad más el eslabón final que es la pinza del brazo robótico; para el primer grado de libertad (la base), el tercer grado (el codo) y el cuarto (la muñeca, arriba y abajo) se utilizó el servomotor Hitec HS-311 con un torque de 3,50 kg-cm ; para el segundo grado de libertad (el hombro) se manejó dos servomotores Hitec HS-422 con un torque de 4,1 Kg-cm, ya que sobre este vector se concentra mayor peso, por lo tanto se necesita cantidad de fuerza suficiente para poder desplazar el eslabón final. El quinto (muñeca, giro) y sexto (pinza) grado de libertad se utilizaron para cada grado un mini servomotor Hitec HS-81 [15].

Estos servomotores están conformados por un motor, una caja reductora y un circuito de control (figura 6), también potencia proporcional para cargas mecánicas; un servo por consiguiente, tiene un consumo de energía

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

17

reducido la corriente que requiere depende del tamaño del servo, normalmente el fabricante indica cuál es la corriente que consume, la que depende principalmente del par y puede exceder un amperio si el servo está enclavado, pero no es muy alta si el servo está libre o desanclado, en otras palabras, un servomotor es un motor especial al que se ha añadido un sistema de control (tarjeta electrónica), un potenciómetro y un conjunto de engranajes. Los servomotores son comúnmente usados en modelismo como aviones, barcos, helicópteros y trenes para controlar de manera eficaz los sistemas motores y los de dirección.

Figura 6. Servomotor Los servomotores hacen uso de la modulación por ancho de pulsos (PWM) para controlar la dirección o posición de los motores de corriente continua. Los servos que se utilizan para el brazo robótico trabajan en la frecuencia de los cincuenta hercios, así las señales PWM tendrán un periodo de veinte milisegundos. La electrónica dentro del servomotor responderá al ancho de la señal modulada. Si los circuitos dentro del servomotor reciben una señal de entre 0,5 a 1,4 milisegundos, éste se moverá en sentido horario; entre 1,6 a 2 milisegundos moverá el servomotor en sentido anti horario; 1,5 milisegundos representa un estado neutro para los servomotores estándares [15]. SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

18

El SSC-32 (controlador de servo de serie) el cual se utilizara en este proyecto (Figura 7), es un pequeño controlador servo preensamblado con algunas grandes características. Tiene alta resolución (1uS) para la colocación exacta y movimientos suaves. El rango de tiempo en alto es de 0.50mS a 2,50 ms para una gama del servomotor alrededor de alrededor de 180°. El control de movimiento puede ser de respuesta inmediata, velocidad controlada, movimiento sincronizado, o una combinación. Un único grupo de movimiento permite cualquier combinación de servos para comenzar y terminar el movimiento, al mismo tiempo incluso si los servos tienen que desplazarse a distancias diferentes. La posición o el movimiento del servo se pueden consultar para proporcionar información a la computadora. La entrada DB9 tiene verdaderos niveles RS-232 para su uso más practico con una PC [13].

Figura 7. Controlador de servo en serie SSC-32 Baterías LiPo (polímero de litio) son una línea de evolución de las archiconocidas Li-Ion, en las que se ha sustituido el electrolito líquido orgánico por un compuesto sólido, abaratando costes de producción. Se fabrican en formato rectangular, en lugar de cilíndrico, por lo que al construir un pack de baterías se ahorra mucho espacio que con el formato cilíndrico se desaprovecha entre batería y batería, además de tener un peso considerablemente menor al de las baterías basadas en Níquel, lo que

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

19

redunda en un mejor rendimiento en aplicaciones robóticas lo cual es necesario para este proyecto.

Al integrar todos los componentes nombrados anteriormente en la fase 2.1, se construyó el brazo robótico (figura 8) el cual puede ser controlado desde cualquier ordenador con un puerto serial DB9, lo cual brinda facilidad de manipulación al usuario.

Figura 8. Brazo construido

4.2.2

Fase 2.2: Programación Uno de los objetivos consiste en realizar la reproducción en tiempo real de los movimientos el brazo del usuario mediante un sensor que posea características como ser económico, portátil y no invasivo. Por esta razón se utilizó el sensor Kinect, para la obtención de imágenes en la medida en que éste permite una visión tridimensional. En relación a la implementación del sistema que gestiona la comunicación entre el ordenador y el Kinect, se SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

20

utiliza las librerías de libre distribución SDK (Software Development Kit) de Windows para Kinect, dentro del entorno gráfico de programación Visual Studio 2010 basado en lenguaje C# en aplicación tipo WPF (figura 9), puesto que es un sistema que trabaja bajo la licencia de Microsoft al igual que el sensor Kinect, facilitando la obtención de ayudas en línea de programas correspondientes a esta plataforma; cabe mencionar a demás que este kit facilita el desarrollo del código de programación del software que se empleó en el proyecto [16].

Figura 9. Entorno bajo aplicaciones WPF Lenguaje C# Se utilizaron técnicas de fotogrametría digital, las cuales permiten realizar medidas reales sobre la imagen enfocada en un ángulo libre, es decir, se realiza medidas tridimensionales precisas sin tener que colocar la cámara de una forma específica, tan solo enfocando el objetivo a realizar las medidas. Esta libre localización de la posición de la cámara nos permite una gran portabilidad del sistema, permitiendo su utilización en escenarios de diferentes dimensiones. El usuario no debe realizar ninguna calibración para obtener medidas precisas, ya que este es realizado previamente con el

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

21

fin de obtener los parámetros intrínsecos de la cámara y los diferentes coeficientes de distorsión de la misma. Una de las partes más importantes se refiere al proceso de automatización de captación de los puntos de interés del usuario, donde intervienen técnicas de visión por computador [12]. Al contar con la información confiable y precisa de los puntos de interés con los cuales se desea trabajar en el usuario, como: las palmas de las manos, las muñecas, codos, hombros, el punto central de la cadera y la cabeza (figura 10); posiciones que representan la cinemática directa del brazo robótico, se realizó el procesamiento adecuado para transmitir la información. La cinemática inversa, consiste en encontrar los valores que deben adoptar las coordenadas articulares del robot, para que su extremo se posicione y oriente según una determinada localización espacial.

Figura 10. Puntos de interés del usuario La cinemática inversa, consiste en encontrar los valores que deben adoptar las coordenadas articulares del robot, para que su extremo se posicione y oriente según una determinada localización espacial, igualmente permite

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

22

calcular el ángulo que debe tomar cada articulación para que el efector final llegue al punto determinado, dado en coordenadas [Px, Px, Pz] y orientación en ángulos. Teniendo en cuenta que el brazo robótico utilizado cuenta con cinco grados de libertad, más la pinza, es necesario para su modelado matemático realizar desacople cinemático (figura 11), es decir, los primeros tres grados de libertad (partiendo desde la base) son utilizados para el posicionamiento, los dos restantes se utilizan para la orientación del efecto final. El sexto grado permite abrir y cerrar la pinza, en consecuencia no se tiene en cuenta para los cálculos de la cinemática inversa, ya que no aporta cambios en la posición ni en la orientación del efector final.

Figura 11. Desacople cinemático Para obtener el modelo cinemático inverso se recurrió al método geométrico. Las ecuaciones que conforman el modelo geométrico inverso para los seis grados de posicionamiento Ɵ1, Ɵ2, Ɵ3, Ɵ4, Ɵ5 y Ɵ6, se obtienen de las relaciones geométricas. Para el ángulo uno se separó las dos dimensiones (X y Z) que involucran directamente este grado de libertad, puesto que es el primero y no es afectado por ningún otro ángulo, como se muestra en la figura 12 y se detalla en la ecuación 1.

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

23

Figura 12. Ángulos afectados por el primer grado

Ecuación (1) Para el ángulo 2 y 3, se calculan los ángulos que forman cada uno de los dos puntos (articulación codo y muñeca) partiendo desde el origen (articulación hombro) con respecto al eje Y, el cual es el que está comprometido al efectuar los movimientos de desplazamiento por estos dos grados de libertad, como se demuestra en la figura 13 y las ecuaciones 2 y 3.

Figura 13. Angulo 2 y 3 con respecto al eje Y

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

24

Ecuación (2)



Ecuación (3)

√ Para la manipulación de los últimos tres grados de libertad (muñeca y pinza), no se pueden efectuar simultáneamente con la de los tres primeros (brazo y antebrazo), puesto a que la ubicación de los puntos efectores en el brazo del usuario para el accionamiento de los tres últimos grados, están muy cercanos y el área que los compromete es muy pequeña a la ves; por lo que lamentablemente el kinect a pesar de su buena resolución, no permite leer datos lo suficientemente precisos como los que son necesarios para los ángulos que comprenden la muñeca y los dedos. Por lo que se recurrió a un segundo plano en el que se puedan accionar estos tres últimos servomotores con el movimiento del brazo y antebrazo del usuario, realizando con estas extremidades la función que quiera que ejecuten los últimos tres grados de libertad emulando la muñeca y dedos (pinza) del usuario; la pinza se cerrara y abrirá dependiendo de la profundidad en la que se encuentre el hombro del usuario con respecto a la posición del kinect, entre más profundo se encuentre se cierra la pinza y entre más cercano se encuentre se abre, el accionamiento de los dos servomotores que corresponden a la muñeca, si son semejantes al movimiento normal de esta articulación, ya que si el brazo se mueve hacia arriba, abajo, derecha o izquierda, los grados de libertad 5 y 6 seguirán estas posiciones. Así según lo anterior la identificación de los ángulos para los grados de libertad 4, 5 y 6, se hallaran con las ecuaciones 4, 5 y 6 ilustradas en la figura 14.

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

25

Figura 14. Angulo 4, 5 y 6 con respecto al eje X, Y y Z respectivamente

Ecuación (4)



Ecuación (5)



Ecuación (6)

√ Ya establecidos los ángulos y las acciones correspondientes para imitar el brazo del usuario por medio del brazo robótico, se procede a la creación del código que será enviado al módulo de control de los servomotores para el accionamiento de estos mismos, así realizar la emulación de los movimiento del usuario; todos los comandos SSC-32 deben terminar en un carácter de retorno de carro (ASCII 13), se pueden ejecutar varios comandos del mismo tipo de forma simultánea, todos los comandos SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

26

incluidos en un grupo de comandos se ejecutarán después de recibir el retorno de carro. Además, los argumentos numéricos para todos los comandos SSC-32 deben ser cadenas ASCII de los números decimales, por ejemplo, "1234". El formato de ASCII no es sensible al uso de mayúsculas o minúsculas, su pueden usar cuantos bytes sean necesarios y se ignorarán los espacios, tabuladores y saltos de líneas. Un ejemplo de una línea de código ASCII para el movimiento de un servomotor es: "#5 P1600 ". El ejemplo moverá el servo en el canal 5 a la posición 1600 es decir el PWM será de 1.6 us [13]. Ya establecido la forma como se deben enviar los datos y los valores correspondientes, se procede a establecer que ancho de pulso se debe enviar al servomotor para que se posicione en el ángulo correspondiente, se dedujo que 1° de desplazamiento de una de las articulaciones del usuario corresponde a una señal PWM de 0.01 us para el servomotor.

4.2.3

Fase 2.3: Transmisión Una buena forma de agregar conectividad inalámbrica al proyecto es utilizando los módulos Xbee de MaxStream. Los módulos Xbee proveen 2 formas amigables de comunicación: Transmisión serial transparente (modo AT) y el modo API. Los módulos Xbee pueden ser configurados desde el PC utilizando el programa X-CTU. Los Xbee pueden comunicarse en arquitecturas punto a punto, punto a multi punto o en una red mesh. La recepción en el brazo robótico de la información previamente procesada, se consiguió gracias al módulo XBEE serie 2, el cual se le integró el circuito integrado max232 para adecuar los niveles de tensión entre el módulo de recepción y el módulo de control ssc-32, el cual tiene un conector db9 que utiliza RC232C, un estándar que designa una norma para el intercambio de una serie de datos binarios entre un equipo terminal de datos y un equipo de comunicación de datos.

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

27

Los módulos de comunicación Xbee se programan con la interfaz X-ctu de Digi electronics (figura 15). Este programa tiene 4 pestañas principales que le permiten navegar por las configuraciones actuales, enviar comandos de texto o datos en bruto a la XBee, realizar una prueba de rango con otro XBee o para configurar la forma en que su PC local debe comunicarse con el módulo XBee. La estaña principal será "Configuración del módem", porque este es el lugar donde se habilitaran las características avanzadas de la Xbee [17].

Figura 15. Entorno de programación para el Xbee X-CTU La velocidad en baudios predeterminada que utilizan módulos Xbee es de 9600, pero se podrá cambiar la velocidad de comunicación serie RS232 estándar con el clic de un ratón, para este proyecto será de 115200. si se pasea por todas las diferentes opciones, como la creación de redes y seguridad, interfaz serial y diagnóstico, se encontrará una gran cantidad de SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

28

diferentes opciones que puede cambiar. Algunos tendrán un efecto inmediato en el XBee, otros serán más etéreos. Los Xbee requieren una conexión (figura 16) sencilla tanto de alimentación como de transmisión, pues ya previamente configurados actúan como un ente transparente de comunicación entre dispositivos.

Figura 16. Conexión módulo Xbee

4.2.4

Fase 2.4: Monitoreo La interfaz gráfica se realizó gracias a la aplicación para teléfono celular Android 3CX-DroidDesktop, la cual logra la comunicación mediante una conexión inalámbrica a una red Wi-Fi y las imágenes en video transmitidas desde la cámara de un celular a una página web se verán en el ordenador mediante la interfaz diseñada para este proyecto.

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

29

5. RESULTADOS Después de la construcción del brazo robótico se procedió a implementar la fase de programación por medio de la cual fue posible interpretar la información obtenida por el kinect y a partir de ella usar procedimientos matemáticos que más adelante arrojarían resultados cuantitativos por medio de los cuales fue posible dar órdenes de movimiento al brazo robótico de acuerdo a los grados obtenidos mediante los procesos matemáticos. Según lo anterior, para la obtención de los datos matemáticos iniciamos con los movimientos de un brazo humano captados por el Kinect por medio de los cuales fue posible obtener las respectivas coordenadas de los movimientos con la utilización de las librerías de libre distribución SDK de Windows a partir de las cuales se estimaron los siguientes algoritmos para los respectivos puntos de interés del brazo robótico (Figura 17).

Figuras 17. Obtención de la información por medio del kinect. La utilización del Kinect ha sido empleada ampliamente para el desarrollo y ejecución de proyectos que involucran la necesidad de dar movimientos a robots; en este sentido, y con el fin de comparar nuestro diseño experimental y los resultados obtenidos a partir de el con otros trabajos, podemos mencionar a

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

30

Mathe, cuyo trabajo tuvo como objetivo la utilización del sensor Kinect como una aplicación para permitir el movimiento de un brazo robótico para Laparoscopia. Según lo anterior, al igual que en nuestro trabajo se realizó la ubicación espacial de los brazos del usuario y de esta manera se planifico la trayectoria del brazo robótico valiéndose de la adquisición de imágenes en el espectro visible y de la formación del plano tridimensional del objeto resultado de la información otorgada por el espectro infrarrojo. Con este procedimiento fue posible obtener y visualizar resultados satisfactorios que permiten no solo la realización de movimientos concretos y precisos por parte del robot, sino a demás reconocer información avanzada acerca del funcionamiento del sensor Kinect y las demás aplicaciones que este puede tener [4]. Después de obtener los datos de las anteriores ecuaciones, correspondientes a los datos iniciales entregados por el sensor Kinect, se procede a enviar los datos hacia el brazo robótico por vía inalámbrica mediante los módulos de comunicación XBEE serie 2 acoplados al Max 232 permitiendo una correcta transmisión de la información (figura 18). Finalmente el microcontrolador recibe la información y de esta manera direcciona órdenes a los diferentes servomotores a partir de los cuales son posibles los movimientos.

Figura 18. Módulo de alimentación y transmisión para el Xbee

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

31

Los procedimientos anteriores podemos compararlos con los realizados por Alvarado quien propuso el diseño y construcción de una mano robótica inalámbrica mediante la utilización de servomotores, cuya entrada y salida de señales fue controlada mediante microcontroladores y a su vez, el envío y recepción de los datos fue establecido mediante dispositivos inalámbricos XBEE que utilizan comunicación serial. Por medio de este proceso se logró ejercer un control de forma eficaz, se ahorró energía y se maximizó la producción; ventajas que este proyecto de esta forma puede otorgar [6]. A su vez, el proyecto anteriormente mencionado cuenta, como en este proyecto, con la utilización de algoritmos de control y señales de control tipo PULSO que son enviadas a la etapa de control de los servomotores y de esta manera se posibilita el movimiento de la mano robótica. Como complemento, nuestro proyecto hace uso del acrílico para la construcción del brazo robótico, que tal como lo menciona el mismo autor, presenta la ventaja de fácil manipulación, mejor presentación y mayor resistencia. Por otra parte Luengas, usaron módulos XBEE para el desarrollo de la transmisión inalámbrica satisfaciendo la necesidad de transmitir información con baja interferencia, gran alcance y fácil adaptación al dispositivo; a su vez los módulos se caracterizan por ser de bajo costo, bajo consumo de potencia, uso de bandas de radio libres, redes flexibles y extensibles. De esta manera confirmamos que optar por la utilización de este tipo de módulos para la transmisión de información a nuestro brazo robótico fue la decisión adecuada [5]. Se implementó una interfaz gráfica que supervisa los movimientos del robot mediante la utilización de una cámara de un teléfono celular con sistema Android, favorecidos por la conexión a internet por medio de la aplicación 3DX ANDROIDDESKTOP la cual permitió la visualización precisa de los movimientos del brazo (Figura 19).

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

32

Figura 19. Interfaz diseñada para el monitoreo Guillen propone el control local y remoto de un brazo robótico mediante un servidor que publica una página web por medio de la cual se hace posible el control y las órdenes de movimiento desde cualquier computadora. Este tipo de procedimiento puede compararse con la utilización de la aplicación que se le ha dado al sistema Android como método para ejecutar la interfaz gráfica y la respectiva visualización [1]. Sin embargo, éste último presenta la ventaja de visualización desde un teléfono celular, de tal forma que optimizando los materiales con aquellos que permitan un transporte de la información sin tener una distancia tan restringida, es posible realizar un monitoreo desde cualquier punto donde se encuentre el usuario. Finalmente, habiendo superado las falencias y dificultades presentadas a lo largo del montaje, ensayo y desarrollo del protocolo metodológico, fue posible obtener resultados satisfactorios en la creación y funcionamiento del sistema que permite la manipulación inalámbrica de un brazo robótico (figura 20). Al mismo tiempo, es importante reconocer las ventajas de la creación de un sistema que puede ser monitoreado a distancia siempre y cuando se cuenten con los materiales y equipos que faciliten su funcionamiento.

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

33

Figura 20. Sistema implementado Se logró el desarrollo de una plataforma robótica móvil con brazo, que permite el mando y operación vía inalámbrica desde un PC; la selección apropiada de hardware y software constituyó una pieza clave para la eficiencia del sistema de control del robot. En el diseño de un sistema robótico es necesario tener en cuenta la accesibilidad necesaria para realizar la tarea, la eficiencia energética, la relación peso/carga, las dimensiones y el modelo dinámico. La programación de robots puede realizarse a diferentes niveles, desde un nivel inferior en el cual se especifican movimientos de cada una de las articulaciones como es el caso de este proyecto, o a niveles superiores en los que la programación se realiza a nivel de tarea.

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

34

6. CONCLUSIONES

•Se realizó la caracterización del Kinect como dispositivo de adquisición de imágenes en diferentes entornos y con diferentes usuarios, lo que nos llevó a ver la necesidad de tener espacios controlados (luz, distancia y objetos). •Se logró establecer una interfaz gráfica entre el sensor y el ordenador a través de la plataforma de programación Visual Studio 2010, y de esta manera, se consiguió obtener las información y captar en tiempo real las imágenes que contienen simultáneamente posiciones espaciales en Y, X y Z de las articulaciones del brazo robótico. •La distancia máxima teórica que ofrecen teóricamente los módulos de comunicación XBEE Serie 2 entre si es aproximada a 120 Mts., sin embargo, se comprobó en la práctica que este resultado es muy difícil de conseguir, puesto que dependiendo del ambiente en que se implemente la aplicación las interferencias son diversas; la distancia máxima que se consiguió en un espacio abierto entre edificios fue de 35 Mts., dentro de la estructura del edificio fue aproximadamente 17 Mts. •Se consiguió implementar la tarjeta basada en un microcontrolador (módulo SSC32) que interpreto la información captada por el módulo de recepción inalámbrica (XBEE), el controlador se servomotores serie (SSC-32) es muy útil en este tipo de proyectos y básicamente en los relacionados con robótica, puesto que nos permite manejar hasta 32 servomotores en forma simultánea y totalmente independiente uno de otro, con una forma de comunicación muy común en todo tipo de plataforma, proporcionando una respuesta rápida del sistema ante él la recepción de la información. •Se recomienda que para que el sistema tenga un mayor rendimiento la distancia que el usuario debe de tener con respecto al sensor está entre los 2 y 2.5 metros

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

35

puesto que el Kinect tiene un rango de profundidad, entre los 1.5 y 3.5 metros, que puede afectar el funcionamiento óptimo del sistema. •La altura en la que se posiciona el Kinect es muy importante, esta debe de estar entre 1 y 1.5 metros, puesto que si este se ubica a una altura muy baja o muy alta no captara una imagen completa del usuario, factor fundamental para el reconocimiento de los puntos de interés del cuerpo humano por parte del sistema; cabe señalar que el posicionamiento del sensor tendrá que ser en una superficie firme y a nivel con respecto al piso. •El entorno en el que se utiliza el sensor es crucial a la hora de obtener un buen funcionamiento, la luz afecta las mediciones del sensor siempre y cuando le llegue directamente o reflejada en espejos y objetos que produzcan reflexión, esta luz puede ser natural o artificial; los objetos como mesas, sofás, sillar, comedores, etc. pueden afectar las mediciones del dispositivo cuando esos objetos se encuentren cerca del usuario (figura21), puesto que cualquiera de estos cuerpos son tomados por el sistema como una parte de alguna de las extremidades del usuario.

Figura 21. Error obtención de datos

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

36

7. BIBLIOGRAFIA

[1] G. GUILLEN, 2006. “Monitoreo y control del brazo robótico Staubli RX -90.” Instituto tecnológico de Costa Rica, Escuela de Tecnología Electrónica. [2] F. MENCIAS MORANTE, 2006. “Control de una hormiga robótica mediante el microcontrolador

Motorola

ColdFire

5272”.

En:

http://lsed.die.upm.es/public/tutoriales/TutorialHormiga.pdf [3] M. AGUILERA, and M. IRUEGAS, 2007. “Diseño y control de robots móviles.” Dpto. de Ingeniería Eléctrica y electrónica, Instituto Tecnológico de Nuevo Laredo. [4] L. MATHE, D. SAMBAN, and G. GOMEZ, 2007. “Estudio del funcionamiento del sensor Kinect y aplicaciones para bioingeniería.” Grupo de robótica y sistemas integrados de la Universidad Nacional de Córdoba. [5] L. LUENGAS, G. SANCHEZ, S. ENCISO, and D. TORRES, 2010. “Dispositivo sensórico para el manejo inalámbrico del brazo robótico Mitsubishi RV-M1.” En: http://www.iiis.org/CDs2011/CD2011IMC/CICIC_2011/PapersPdf/CB832SN.pdf [6] F. ALVARADO, 2011. “Mano robótica inalámbrica. Universidad Politécnica Salesiana Sede Guayaquil.” Facultad de ingeniería. Tesis de grado. [7] A. SORIANO, 2005. “Diseño y programación de algoritmos para robots móviles. Aplicación al robot LEGO-NXT.” Universidad Politécnica de Valencia, Escuela Técnica Superior de Ingeniería. [8] N. DELGADO, 2008. “Diseño de un módulo de comunicación inalámbrica para un

robot

móvil”.

Universidad

de

Antioquia.

En:

http://electronica.udea.edu.co/academicos/proyectos/digitales/Nestor_Delgado/pap er_modulo_inalambrico_robot_movil.pdf

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

37

[9] M. REYES, M. RAMIREZ, L. REVILLA, and S. RADEVAL, 2012. “ADIBAS: Sistema multisensor de adquisición automática de datos corporales objetivos, robustos y fiables para el análisis de la postura y el movimiento.” Universidad del Barcelona: Depart. De Matemática Aplicada y Análisis. [10] D. GARZON, J. PADILLA, and R. ARANGO, 2012. “Sistema de exploración musical basado en el Kinect.” Evento: XVII Simposio de tratamiento de señales, imágenes y visión artificial STSIVA 2012. [11] C. Esparza, S. Carvajal, and V. García, 2010. “Evaluación de un sistema de control para un brazo robótico de cinco grados de libertad utilizando una red canbus,” Unidades Tecnológicas de Santander, vol.1, num.5, [reset-uts, ISSN 1909258x]. [12] S. SKEAN, J. HALL, and P. PERRY, 2011. “Meet the Kinect.” ISBN-13 (electronic) 978-1-4302-3889-8. [13] J. FRYE, 2009. “Manual de SSC-32 Ver 2.01XE”. [14] J. DEL SOLAR, and R. SALAZAR, 2005 “Introducción a la robótica,” Universidad de Chile: Departamento de ingeniería en electrónica. [15] J. ARENAS VELAZQUEZ, J. GUERRO MEDINA, D. MORALES, and L. VALQUEZ, 2007. “Brazo robótico,” Universidad del Valle de México: Campus Tlalpan. [16] T. WILLIS, and B. NEWSOME, 2010. “Beginning Microsoft Visual Basic”. [17] Digi International 2008 “X-CTU Configuration & Test Utility Software”.

SISTEMA PARA MANIPULACIÓN INALÁMBRICA DE UN BRAZO ROBÓTICO POR MEDIO DEL KINECT

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.