UCF7875_01

download UCF7875_01

of 83

Transcript of UCF7875_01

  • 7/22/2019 UCF7875_01

    1/83

    Pontificia Universidad Catlica de ValparasoFacultad de Ingeniera

    Escuela de Ingeniera Informtica

    DESARROLLO SISTEMA DE CONTROL ROBTICOMEDIANTE KINECT

    AGUSTN NICOLS ROMERO SALAZAR

    INFORME FINAL DE PROYECTOPARA OPTAR AL TTULO PROFESIONAL DE

    INGENIERO DE EJECUCIN EN INFORMTICA

    Marzo 2013

  • 7/22/2019 UCF7875_01

    2/83

    Pontificia Universidad Catlica de ValparasoFacultad de Ingeniera

    Escuela de Ingeniera Informtica

    DESARROLLO SISTEMA DE CONTROL ROBTICO

    MEDIANTE KINECT

    AGUSTN NICOLS ROMERO SALAZAR

    Ivn Mercado BermdezProfesor gua

    Wenceslao Palma MuozProfesor Co-referente

    Marzo 2013

  • 7/22/2019 UCF7875_01

    3/83

    i

    Dedicatoria

    A mi familia, amigos y en especial a los que siempre creyeron

  • 7/22/2019 UCF7875_01

    4/83

    ii

    Agradecimientos

    A mi familia, por ser el pilar fundamental para desarrollarme como persona yprofesional a lo largo de mi existencia, gracias por todo el apoyo brindado a lo largo de estelargo camino universitario, sin Uds. ninguna de mis metas seran cumplidas.

    A mis amigos, por entregarme ese amor incondicional da a da. Gracias por su apoyoy por levantarme tantas veces cuando lo necesite, sin Uds. es imposible obtener este logro.

    A mis profesores , que a lo largo de la carrera me han entregado todas lasherramientas necesarias para ser un profesional, agradecer los valores inculcados durante

    este largo proceso y el apoyo brindado en momentos difciles.

  • 7/22/2019 UCF7875_01

    5/83

    iii

    Resumen

    Kinect en la actualidad es una de las tecnologas ms revolucionarias e innovadoras delltimo tiempo. Este controlador naci para la manipulacin de manera natural sobre los

    videojuegos de la consola Xbox 360. Hoy, esta tecnologa, no solo es utilizada para laindustria de los videojuegos, su uso se ha expandido a diversas ramas como la educacin,medicina, sistemas de seguridad, sistemas informticos, transporte y ms all.

    De esta forma se plantea la creacin de un prototipo de interaccin natural entreuna persona y un robot, donde ste imite los movimientos que realiza la persona, todo estoser posible gracias al controlador Kinect mediante un cdigo fuente, que se realizar para elxito de este estudio.

    Abstract

    Nowadays Kinect is one of the most revolutionary and innovative technologies inrecent times. This driver was born to handle naturally on the video games Xbox 360 console.Now this technology not only used to the videogames industry, its use has spread to othersbranches, such as education, medicine, security systems, computer systems, transport andbeyond.

    This would result in the creation of a prototype natural interaction between a person

    and a humanoid robot, where the robot mimics the movements done by one person.

    All these will be possible thanks to driver source kinect to be held for the success ofthis study.

  • 7/22/2019 UCF7875_01

    6/83

    iv

    ndice

    Dedicatoria ................................................................................................................................................ i

    Agradecimientos ...................................................................................................................................... ii

    Resumen .................................................................................................................................................. iii

    Abstract ................................................................................................................................................... iii

    ndice ....................................................................................................................................................... iv

    ndice de figuras y tablas ................................................................................................................ vii

    Captulo I: Introduccin ........................................................................................................................... 9

    1.1 Motivacin. .............................................................................................................................. 9

    1.2 Objetivo General .................................................................................................................... 10

    1.3 Objetivos Especficos ................................................................................................................... 101.4 Metodologa. ................................................................................................................................ 10

    1.5 Plan de trabajo. ............................................................................................................................. 11

    1.6 Estructura del documento. ............................................................................................................ 13

    Captulo II Robtica .............................................................................................................................. 15

    2.1 Introduccin. ................................................................................................................................ 15

    2.2 Concepto ...................................................................................................................................... 15

    2.3 Historia de la Robtica ................................................................................................................. 16

    2.3 Clasificacin de los robots ........................................................................................................... 172.3.1 Clasificacin General ............................................................................................................ 17

    2.3.2 Clasificacin segn la Federacin Internacional de Robtica. .............................................. 23

    2.3.3 Clasificacin segn generacin ............................................................................................ 23

    2.4 Componentes de los robots .......................................................................................................... 23

    2.5 Robophilo . Caractersticas y componentes. ................................................................................ 24

    2.5.1 Componentes Kit comercial .................................................................................................. 25

    2.5.2 Caractersticas Robophilo. .................................................................................................... 25

    2.6 LEGO Mindstorms NXT. ............................................................................................................ 27

    2.7.1 Componentes kit Mindstorms NXT. .................................................................................... 27

    2.7.2 Garra mecnica que simula el movimiento de una gra....................................................... 31

    2.7.3 NxtNET (SDK LEGO NXT) ................................................................................................ 33

    2.7.3.1 Detalles tcnicos de la librera........................................................................................ 33

    2.7.3.2 Conexin con el robot mediante Bluethoot. ................................................................... 33

  • 7/22/2019 UCF7875_01

    7/83

    v

    2.7.4 Mindsqualls Versin 2.0 C# ................................................................................................ 34

    2.7.3.1 Clases Librera Mindsqualls. .......................................................................................... 35

    2.7.3.2 Clase de protocolo de comunicacin .............................................................................. 36

    Captulo III Interaccin natural .............................................................................................................. 39

    3.1 Introduccin ................................................................................................................................. 39

    3.2 Kinect ........................................................................................................................................... 39

    3.2.1 Componentes de Kinect. ..................................................................................................... 40

    3.2.2 Funcionamiento Kinect ......................................................................................................... 41

    3.2.2.1 Eskeleton Tracking ......................................................................................................... 43

    3.2.3 SDK Kinect ........................................................................................................................... 45

    3.2.3.1 Requerimientos de Hardware ......................................................................................... 46

    3.2.4. Osceleton, Skeleton Tracking............................................................................................... 47

    3.3 Guiado gestual de un robot humanoide mediante sensor Kinect ................................................ 47

    3.3.1 Programacin del simulador de coordenadas de Kinect. ...................................................... 48

    3.3.2 Programacin del escalado de las coordenadas obtenida tras el cambio se sistema dereferencia ........................................................................................................................................ 49

    3.3.3 Comparacin con el proyecto. ............................................................................................... 50

    Captulo IV Anlisis y diseo de la solucin. ........................................................................................ 52

    4.1 Introduccin ................................................................................................................................. 52

    4.2 Caso de Estudio o de Prueba. Kinect y Robophilo. ...................................................................... 52

    4.3 Caso de Estudio o de Prueba. Kinect y Lego Mindstorm NXT. .................................................. 54

    4.3.1 Diagramas UML de la aplicacin .......................................................................................... 56

    4.3.1.1 Diagrama de caso de uso (Escenario: Usuario frente al sensor)..................................... 56

    4.3.1.2 Diagrama de actividades. ............................................................................................... 57

    4.3.2 Descripcin de la Aplicacin. .............................................................................................. 58

    4.4 Entorno de desarrollo para la aplicacin ...................................................................................... 63

    Captulo V Estudio de factibilidad. ........................................................................................................ 66

    5.2 Factibilidad Econmica ............................................................................................................... 66

    5.2.1 Costos de produccin. ........................................................................................................... 66

    5.2.1 Costos de operacin .............................................................................................................. 66

    5.2.3 Costo total del proyecto. ........................................................................................................ 67

    5.3 Factibilidad Tcnica. .................................................................................................................... 67

    5.3.1 Hardware ............................................................................................................................... 67

  • 7/22/2019 UCF7875_01

    8/83

    vi

    5.3.1.1 Requerimientos de Hardware SDK Kinect ................................................................... 67

    5.3.1.2 Requerimientos de Hardware SDK RoboPhilo ............................................................ 68

    5.3.1.3 Adaptador infrarrojo con puerto USB. ........................................................................... 68

    5.3.1.4 Adaptador USB cable serial RS232. ............................................................................. 68

    5.3.1.5 Adaptador Bluethoot USB Plug And Play 2.0 .............................................................. 69

    5.3.2 Software ................................................................................................................................ 69

    5.3.2.1 SDK RoboPhilo. ............................................................................................................. 70

    5.3.2.2 SDK Kinect .................................................................................................................... 70

    5.3.2.3 C++ ................................................................................................................................. 70

    5.3.2.4 C# ................................................................................................................................... 70

    5.3.2.5 Microsoft Visual C++ 2010........................................................................................... 71

    5.4 Anlisis de riesgo. ....................................................................................................................... 71

    5.4.1 Orden de prioridad riesgos ms importantes.- ........................................................................... 71

    Captulo VI Plan de pruebas y resultados ............................................................................................. 74

    6.1 Etapas plan de prueba .................................................................................................................. 74

    6.1.1 Implementacin de aplicacin como controlador de los servomotores del robot NXT Lego 74

    6.1.1.1 Resultados ...................................................................................................................... 74

    6.1.2 Implementacin librera skeleton tracking a travs de SDK Kinect. .................................... 75

    6.1.2.1 Resultados ...................................................................................................................... 75

    6.1.3 Implementacin de la unin de ambas aplicaciones en un simulador final de interaccin

    natural ............................................................................................................................................. 75

    6.1.3.1 Resultados ...................................................................................................................... 76

    Captulo VII Conclusiones .................................................................................................................... 77

    Referencias ............................................................................................................................................. 79

  • 7/22/2019 UCF7875_01

    9/83

    vii

    ndice de figuras y tablas

    Figura 2. 1 Robot manipulador industrial [Ollero, 2001]. ...................................................................... 18

    Figura 2. 2 Robot de repeticin [Lerma, 2010] ...................................................................................... 18Figura 2. 3 Robot controlado por un computador en una ciruga [Arroyo, 2005].................................. 19Figura 2. 4 Robot inteligente [Ramirez, 2011] ...................................................................................... 19Figura 2. 5 Micro-Robot [Deyle, 2009] ................................................................................................. 20Figura 2. 6 Robot estacionario ............................................................................................................... 20Figura 2. 7 Robot telemanipulador [Arroyo, 2005] ................................................................................ 21Figura 2. 8 Androide [Ramirez, 2011] ................................................................................................... 21Figura 2. 9 Humanoide Philo [Robophilo, 2007] ................................................................................... 22Figura 2. 10 Robot mvil [Ollero, 2001] ............................................................................................... 22Figura 2. 11 Esquema general de un robot [Roberto Alvarez, 2008] ..................................................... 23Figura 2. 12 RoboPhilo [Robophilo, 2007] ........................................................................................... 25

    Figura 2. 13 Servomotor RoboPhilo [Robophilo, 2007] ........................................................................ 26Figura 2. 14 Cerebro NXT [Edubrick, 2006] ......................................................................................... 28Figura 2. 15 Sensor de tacto LEGO [Edubrick, 2006] ........................................................................... 28Figura 2. 16 Sensor de sonido LEGO [Edubrick, 2006] ........................................................................ 29Figura 2. 17 Sensor de luz LEGO [Edubrick, 2006] .............................................................................. 29Figura 2. 18 Sensor ultrasnico LEGO [Edubrick, 2006] ...................................................................... 29Figura 2. 19 Sensor de color LEGO [Edubrick, 2006] .......................................................................... 30Figura 2. 20 Sensor de aceleracin e inclinacin LEGO [Edubrick, 2006] ........................................... 30Figura 2. 21 Servomotor LEGO [Edubrick, 2006] ................................................................................. 30Figura 2. 22 Garra mecnica vista lateral ............................................................................................... 32

    Figura 2. 23 Garra mecnica vista trasera .............................................................................................. 32Figura 2. 24 Diagrama de clases librera Mindsqualls ........................................................................... 35Figura 2. 25 Diagrama de clases protocolo de comunicacin. ............................................................... 36Figura 2. 26 Vista de configuracin dedispositivos en Windows 7 ....................................................... 37Figura 2. 27 Vista configuracin dispositivo Bluetooth Plug and Play 2.0 ........................................... 38

    Figura 3. 1 Kinect [Jarret Webb, 2011] .................................................................................................. 39Figura 3. 2 Componentes Kinect [Jarret Webb, 2011] ........................................................................... 40Figura 3. 3 Kinect para Windows Arquitectura ..................................................................................... 41Figura 3. 4Haz de luz infrarroja que emite Kinect ................................................................................. 43

    Figura 3. 5 Funcionamiento 3D de Skeleton Tracking .......................................................................... 44Figura 3. 6 Puntos del cuerpo que reconoce Kinect ............................................................................... 44Figura 3. 7 Coordenadas que entrega el sensor ...................................................................................... 48Figura 3. 8 Coordenadas traspasadas de Kinect al Robot ...................................................................... 49

    http://c/Users/Pelao/Desktop/proyecto%201%20final%202.docx%23_Toc336026017http://c/Users/Pelao/Desktop/proyecto%201%20final%202.docx%23_Toc336026017
  • 7/22/2019 UCF7875_01

    10/83

    viii

    Figura 4. 1 Esquema funcionamiento sistema de control robtico mediante Kinect y roboPhilo ......... 53Figura 4. 2 Esquema funcionamiento sistema de control robtico mediante Kinect y LEGO NXT ..... 55Figura 4. 3 Diagrama de caso de uso del sistema ................................................................................... 56Figura 4. 4 Diagrama de actividades ...................................................................................................... 57Figura 4. 5 Inicio del simulador a travs del ejecutable ......................................................................... 58

    Figura 4. 6 Reconocimiento de articulaciones ....................................................................................... 59Figura 4. 7 Reconocimiento de gesto bajar la mano .............................................................................. 60Figura 4. 8 Reconocimiento de gesto levantar mano derecha ................................................................ 61Figura 4. 9 Reconocimiento levantar mano iquierda. ............................................................................ 61Figura 4. 10 Reconocimiento de gesto mover hacia la derecha. ............................................................ 62Figura 4. 11 Reconocimiento de gesto mover hacia la iquierda............................................................. 63Figura 4. 12 Vista de la creacin de un proyecto WPF en Visual studio 2010 ...................................... 64Figura 4. 13Vista de realizar una referencia a la biblioteca de Kinect ................................................... 65Figura 4. 14 Referencia a la biblioteca del SDK de Kinect 1.5 .............................................................. 65

    Tabla 5. 1 Costos de produccin del proyecto ....................................................................................... 66Tabla 5. 2 Costos de operacin del proyecto.......................................................................................... 66Tabla 5. 3Tabla de anlisis de riegos y grado de exposicin ................................................................. 72Tabla 5. 4 Plan de mitigacin de riesgos ............................................................................................... 73

  • 7/22/2019 UCF7875_01

    11/83

    9

    Captulo I: Introduccin

    1.1Motivacin.En el ao 2009 Microsoft Research [Jarret Webb, 2011] anuncia que luego de 20 aos deestudio finalmente se lanzar al mercado una nueva forma de interactuar con los videojuegos,una manera distinta a lo que se vena utilizando hasta ese entonces, donde la personainteractuaba con el videojuego por medio de un control. Esta nueva forma de interactuar conun videojuego corresponde a un sensor llamado Kinect que segn sus creadores Microsoft,corresponde a Un controlador de juego libre y de entretenimiento desarrollado porMicrosoft para la videoconsola Xbox 360. Kinect permite a los usuarios controlar einteractuar con la consola sin necesidad de tener un contacto fsico con un controlador devideojuegos tradicional, mediante una interfaz natural de usuario que reconoce gestos,comandos de voz, y objetos e imgenes [Microsoft, 2012].

    Sin embargo el uso de este controlador puede ir ms all y no solo encasillarse en ungnero como el de los videojuegos, sino que, ser un real aporte para la ciencia y las diversasramas que esta posee.

    Para efectos de este proyecto se centrar en lo que respecta a la Robtica .sta es unadisciplina que consta de 2 vertientes: terica y prctica. En el aspecto terico se anan laautomtica, informtica e inteligencia artificial. En el lado prctico o tecnolgico hay

    aspectos de construccin (mecnica, electrnica).

    Segn el Checo Robota significa servidumbre o trabajador forzado , en el momentocuando se tradujo al ingls se convirti en el trmino robot, como se trata de que el robot

    cumpla labores es necesario que estos robots imiten las articulaciones del cuerpo humano pararealizarlas de manera ms natural.

    Este estudio est enfocado principalmente en que la robtica manipulada, especialmentepor interaccin natural. Puede aplicarse a un sin fin de objetivos y distintos campos, ya seacomo estudio o ser una ayuda para estos. As por ejemplo , gracias a un robot humanoide ms

    el sensor Kinect de la videoconsola Xbox360, se puede crear un estudio de reconocimiento delos movimientos que puedan realizar personas discapacitadas, a travs del robot y de losresultados que arroja el software de Kinect, que nos muestra detalladamente el movimiento delas articulaciones de la persona, es decir, la persona que se encuentra en tratamiento, se leindica una rutina de ejercicios a realizar, el sensor kinect capturar los movimientos ymanipular el robot , permitiendo al discapacitado realizar dichos trabajos de una maneramucho ms didctica y a la vez permitir a los expertos analizar los datos que arroja el sensor

  • 7/22/2019 UCF7875_01

    12/83

    10

    por medio del software instalado en el equipo. Esto mismo se puede llevar a cabo en eltratamiento mdico de personas de la tercera edad, se pueden detectar avances, retrocesos eincluso cadas en el tratamiento.

    Por, ltimo, y en otra rama de estas tecnologas pueden ser aplicadas perfectamente

    para mbitos militares, donde por medio de interaccin natural, es decir, sin la necesidad dealgn control remoto, se pueden controlar los robots para el uso que se estime convenientedentro de este campo.

    1.2Objetivo GeneralEl objetivo principal del proyecto consiste en implementar una solucin que permita

    controlar un robot mediante el sensor Kinect de Microsoft.

    1.3 Objetivos Especficos

    Una vez definido el objetivo general del proyecto, ste se descompone de los siguientesobjetivos especficos:

    Prototipo de captura de datos de las articulaciones del usuario: Es necesariorepresentar los datos para poder controlar los datos con precisin.

    Prototipo de interpretacin de datos para los movimientos del robot: Esnecesario comprobar en una primera instancia los movimientos del robot y quecoincidan con el simulador del esqueleto.

    Aplicacin final que utilice las funciones de los prototipos para que cumpla elobjetivo general del estudio.

    Validacin y verificacin del prototipo final de la aplicacin desarrollada.

    1.4 Metodologa.

    El concepto de metodologa hace referencia al plan de investigacin que se llevar acabo para finalmente cumplir los objetivos planteados .Esta es una herramienta que permitirIdentificar, analizar, recopilar la informacin. Para efectos de este estudio se pretende utilizarla metodologa de investigacin cientfica clsica. Esta metodologa tiene 3 caractersticasprincipales. Es sistemtica, es decir, planificada, metdica, no hay nada al azar; emprica, serecolectan y se analizan los datos de la investigacin y adems crtica donde constantementese est evaluando y mejorando.

  • 7/22/2019 UCF7875_01

    13/83

    11

    La metodologa cientfica consta principalmente de las siguientes etapas:

    En una primera etapa se debe tener una concepcin de la idea central del tema ainvestigar, luego se debe plantear el problema a desarrollar por medio de los objetivos,cuestionamientos asociados y justificaciones referentes a la viabilidad del problema.

    En el apartado anterior se identifican los objetivos para este estudio.

    Una vez planteado el problema es necesario la construccin del marco terico, dondeeste contextualiza el problema y lo sustenta tericamente por medio de la recopilacinde informacin donde se recopilan antecedentes vlidos, teoras, enfoques tericos,investigaciones previas, experimentos y ms. Esto se asocia directamente con lasreferencias utilizadas en la investigacin e investigaciones anteriores se vernreflejadas en apartados del estudio. Una vez construido el marco terico se deberevisar, refinar o en casos redefinir las preguntas de investigacin.

    Se desarrolla una hiptesis de trabajo o un planteamiento de trabajo sobre laproblemtica. Una hiptesis es una explicacin tentativa del problema observadodonde aporta con evidencias a favor de la teora planteada. Se deben especificar lasvariables del problema de modo conceptual y operacional, adems se establece si elproblema se abordar experimentalmente. Por lo tanto, una hiptesis surge deldesarrollo del marco terico.

    Finalmente se propone una metodologa para desarrollar una solucin al problemaplanteado, donde se debe considerar el procesamiento de los datos, la definicin y

    recoleccin de datos de prueba para validar la hiptesis propuesta.

    La metodologa debe considerar, para todo el proceso de investigacin la elaboraciny presentacin de informes de investigacin adecuados.

    1.5 Plan de trabajo.

    En consecuencia a los objetivos planteados en los apartados 1.2 y 1.3 la planificacin

    del estudio consta de las siguientes etapas:

    1.-Etapa de recoleccin de informacin y anlisis: En esta primera etapa en unprincipio se recolecta la informacin de las fuentes seleccionadas, luego se realiza un anlisisde esta informacin viendo cada una de las referencias investigadas, luego se selecciona culde estas referencias son las de ms relevancia y las que se utilizarn en este estudio. De estas

  • 7/22/2019 UCF7875_01

    14/83

    12

    referencias se pretende llegar a obtener el marco terico y comprender la problemtica deltema a estudiar.

    Los hitos de esta etapa sern la obtencin del marco terico y estado de arte , tanto derobtica como de Kinect , una vez obtenido este se podr determinar finalmente cual es el

    prototipo de solucin del estudio para luego pasar a la siguiente etapa.

    Para esto es necesario cumplir las siguientes sub-etapas:

    Investigacin: Tema a desarrollar, estado del arte, marco terico, las tecnologas ymetodologas a utilizar.

    Identificacin de tpicos. Redaccin del marco terico y estado del arte. Identificar alcance y problemtica del proyecto.

    2.-Anlisis, desarrollo y construccin de modelos: Con la informacin obtenida yanalizada en la etapa anterior, se procede al anlisis, desarrollo y construccin de modelos.Para lograr un buen modelo es necesario en una primera instancia una buena captura derequerimientos del problema planteado, una vez realizado esto, se procede a la construccindel modelo de la solucin, haciendo los respectivos anlisis u observaciones que surjan en elproceso.

    La segunda etapa se divide en las siguientes sub-etapas:

    Anlisis de requerimientos. Formalizacin de los requerimientos. Modelado del sistema (diagramas). Desarrollo en SDK Kinect. Utilizacin de la librera para el robot LEGO. Anlisis de factibilidad del proyecto.

    3.- Implementacin formal de los modelos y etapas de pruebas finales: En base a

    los modelos y prototipos obtenidos se desarrolla un software (Firmware en este caso) paraobtener la solucin al problema planteado .Una vez desarrollado el cdigo fuentes serealizarn sus posteriores pruebas en base a las distintas ejecuciones del middleware que serealicen y se compararn los resultados de este hasta ver cul es la solucin ms ptima.

    La tercera etapa se divide en las siguientes sub-etapas:

  • 7/22/2019 UCF7875_01

    15/83

    13

    Desarrollo del prototipo de captura del esqueleto para el sensor kinect. Desarrollo de prototipo de aplicacin para el robot a utilizar. Reconocimiento de gestos en una aplicacin. Unin de los prototipos sealados. Desarrollo de la aplicacin final. Pruebas Deteccin de errores. mejoras

    1.6 Estructura del documento.

    El documento est dividido en diferentes captulos, cada uno de ellos tocan temticasdiferentes pero con un cierto grado de cohesin como lo veremos en algunos captulos quetrata sobre el marco terico de la solucin al problema. Para ello se puede apreciar en estetpico un resumen de cada uno de ellos:

    Captulo 1: Es un captulo introductorio al tema a investigar, en l se encuentran ladefinicin del problema y los objetivos tanto el general como especfico de este. Tambin secompone de la planificacin del estudio y la metodologa de investigacin ms adecuada aseguir.

    Captulo 2: En este captulo se aprecia todo el marco terico relacionado con larobtica, en una primera instancia se define lo que es el concepto para dar paso luego a lahistoria de la Robtica , donde se enfoca principalmente al origen de la palabra y las 3 leyes deesta. Adems se distinguen los componentes de un robot y la clasificacin de estos. En unaultima instancia se dedica un apartado para los tipos de robot a utilizar en el proyecto, dondebsicamente son corresponden a 2 que son el roboPhilo y el robot Lego NXT, en este ltimose describe el modelo a utilizar en el proyecto luego de acoplar las piezas.-

    Captulo 3: En este captulo se aprecia todo el marco terico con lo que respecta almedio de comunicacin entre la persona y el robot, este medio es el sensor de MicrosoftKinect. En una primera instancia se define el concepto de interaccin natural para dar paso atoda la investigacin del sensor. Se dedica un apartado al funcionamiento de Kinect dondecomo informacin principal se aprecia el algoritmo de inteligencia artificial con el que seobtiene los datos del esqueleto humano y poder interpretarlos.

    Captulo 4: En este captulo se explica detalladamente y en forma de un diagrama culel caso de estudio de la solucin al problema. Para poder entender cmo ser la solucin, es

  • 7/22/2019 UCF7875_01

    16/83

    14

    necesario, determinar de qu manera interactan las tecnologas estudiadas en el marco tericodel estudio, para eso, se ha formulado un diagrama donde se muestran a los actoresinteractuando tanto con el sensor como con el robot y con las herramientas que estos poseen.

    Captulo 5: En este captulo se realiza un estudio de factibilidad del proyecto el cul se

    divide en un estudio de factibilidad econmica, otro de factibilidad tcnica y finalmente serealiza un estudio de anlisis de riesgo para determinar qu riesgo pone ms en peligro elcorrecto desarrollo del proyecto.

    Captulo 6: En este captulo y una vez obtenido el producto final, se describen lasdistintas pruebas a las que fueron sometidas el software, para esto en una primera instancia esnecesario dividir cada prueba en etapas para garantizar el xito de estas y poder detectar demejor forma los errores que se identifiquen.

  • 7/22/2019 UCF7875_01

    17/83

    15

    Captulo II Robtica

    2.1 Introduccin.

    La robtica es una rama de la ciencia que abarca el diseo y la implementacin demquinas capaces de emular o imitar el comportamiento de los seres humanos u otro ser vivo ,esta se complementa con otras ramas como la inteligencia artificial, la lgica, el lgebra , queayudan a dar mejores soluciones a los problemas que surgen en esta rama.

    Para lograr comprender de que se trata esta rama de la ciencia primero es necesarioconocer algo de su historia donde la evolucin de los robots han permitido que estas mquinaspuedan ser de ayuda en la vida cotidiana de los seres humanos para realizar labores que estosno pueden realizar como enviar robots a la superficie lunar y planetas para un estudio

    detallado, robots manipuladores en la industria que transportan grandes pesos y los puedentransportar de un lugar a otro sin mayores inconvenientes.

    En los siguientes apartados se profundizara ms sobre esta importante rama de laciencia, donde obteniendo el marco terico de la robtica sustentar las bases para la solucindel problema planteado anteriormente, donde tambin se dedica un apartado a las herramientasde entorno de desarrollo para generar el prototipo de cdigo fuente y realizar las pruebaspertinentes para determinar la solucin ms ptima

    2.2 Concepto

    La robtica es una rama de la ciencia o de la tecnologa, que estudia el diseo yconstruccin de mquinas que sean capaces de desempear tareas realizadas por el ser humanoo que requieren el uso de inteligencia. De manera ms global el concepto de robtica seentiende como el conjunto de conocimientos tericos y prcticos que permiten concebir,realizar y automatizar sistemas basados en estructuras mecnicas poli articuladas, dotado decierto grado de inteligencia y destinado a la produccin industrial o a la sustitucin delhombre en diversas tareas[Ricardo Lizcano, 2005].

    Un sistema robtico puede describirse como aquel que es capaz de recibirinformacin, de comprender su entorno a travs del empleo de modelos , de formar y ejecutarplanes y de controlarlo o supervisar su operacin[Ricardo Lizcano, 2005]. La Robtica esesencialmente pluridisciplinaria ya que se encuentra en muchas disciplinas de la ciencia o enla vida cotidiana pero se apoya en los progresos de la microelectrnica y la informtica, as delas nuevas disciplinas como el reconocimiento de patrones y la inteligencia artificial.

  • 7/22/2019 UCF7875_01

    18/83

    16

    2.3 Historia de la Robtica

    Durante siglos el hombre ha construido mquinas que imiten partes del cuerpohumano. Los egipcios unieron brazos mecnicos a las estatuas de los dioses. Estos brazos

    eran operados por los sacerdotes de la poca quienes clamaban que el movimiento de estos sevieran representado el actuar de los dioses, a su vez los griegos construyeron estatuas queoperaban con sistemas hidrulicos, las cuales se utilizaban para adorar a los dioses. El hombredesde ese entonces comenz a creer que era importante dar vida a seres artificiales querealicen tareas repetitivas y ayuden en las tareas difciles o pesadas a realizar por un serhumano [Ricardo Lizcano, 2005].

    Durante los siglos XVII y XVII en Europa fueron construidos muecos mecnicos quetenan algunas caractersticas de lo que hoy en da conocemos como robots. Jacques deVauncansos construy varios tteres de tamao humano a mediados del siglo XVIII.

    Esencialmente se trataban de robots mecnicos diseados para un propsito especfico: ladiversin. En 1805, Henri Maillardert construy una mueca mecnica que era capaz de hacerdibujos, en la cual, una serie de levas eran el sistema principal de control para que esta pudieseescribir y dibujar. Hubo otras invenciones mecnicas durante la revolucin industrial, muchasde las cuales estaban dirigidas al sector de la produccin textil, entre ellas se puede citar lahiladora giratoria de Hargreaves (1770), la hiladora mecnica de Crompton (1779), el telarmecnico de Cartwright (1785), el telar de Jacquard (1801), entre otros [Ricardo Lizcano,2005].

    El desarrollo en la tecnologa, donde se incluyen las computadoras electrnicas, los actuadores

    de control retroalimentados, transmisin de potencia a travs de engranajes, y la tecnologa ensensores, han contribuido a facilitar la construccin de mecanismos autmatas paradesempear tareas dentro de la industria. Entindase como autmata toda mquina quecontiene un mecanismo que le permite realizar determinados movimientos. [RAE, 2012]. Sonvarios los factores que intervienen para que se desarrollaran los primeros robots en la dcadade los cincuenta; la investigacin en inteligencia artificial desarroll maneras de emular elprocesamiento de informacin humana con computadoras electrnicas y proporciono unavariedad de mecanismos para probar sus teoras.

    Una obra Checoslovaca publicada en 1917 por Karel Kapek, denominada Rossums

    Universal Robots, dio lugar al trmino robot. La palabra checa Robota significa servidumbreo trabajador forzado, en el momento en que se tradujo al ingls se convirti en el trminorobot [Roberto Alvarez, 2008].Entre los escritores de ciencia ficcin, Isaac Asimovcontribuy con varias narraciones relativas a robots, comenz en 1939, a l se atribuye elacuamiento del trmino Robtica. La imagen de robot que aparece en su obra es el de unamquina bien diseada y con una seguridad garantizada que acta de acuerdo con tresprincipios:

  • 7/22/2019 UCF7875_01

    19/83

    17

    Un robot no puede actuar contra un ser humano o, mediante la inaccin, que un serhumano sufra daos [Roberto Alvarez, 2008].

    Un robot debe obedecer las rdenes dadas por los seres humanos, salvo que estn enconflictos con la primera ley [Roberto Alvarez, 2008].

    Un robot debe proteger su propia existencia, a no ser que est en conflicto con las dosprimeras leyes [Roberto Alvarez, 2008].

    As, inicialmente, se defina un robot como un manipulador reprogramable ymultifuncional diseado para trasladar materiales, piezas, herramientas o aparatos a travsde una serie de movimientos programados para llevar a cabo una variedad de tareas. Eldesarrollo en la tecnologa, donde se incluyen las poderosas computadoras electrnicas, losactuadores de control retroalimentados, transmisin de potencia a travs de engranes, y latecnologa en sensores han contribuido a flexibilizar los mecanismos autmatas paradesempear tareas dentro de la industria. Son varios los factores que intervienen para quese desarrollaran los primeros robots en la dcada de los 50's. La investigacin eninteligencia artificial permite el desarrollo de maneras de emular el procesamiento deinformacin humana con computadoras electrnicas e invento una variedad demecanismos para probar sus teoras [Roberto Alvarez, 2008].

    Actualmente, el concepto de robtica ha evolucionado hacia los sistemas mvilesautnomos, que son aquellos que son capaces de desenvolverse por s mismos en entornosdesconocidos y parcialmente cambiantes sin necesidad de supervisin. Es decir que nonecesita control remoto o una persona que los manipule.

    2.3 Clasificacin de los robots

    Existen muchos tipos de clasificacin de los robots dependiendo de su grado decontrol, inteligencia, arquitectura, grados de libertad, forma, fin para el que son desarrollados,y an ms . Algunas clasificaciones son las siguientes: [Roberto Alvarez, 2008].

    2.3.1 Clasificacin General

    Manipuladores: La mayor parte del robot industrial actual son esencialmente brazosarticulados. De hecho segn la definicin del Robot Institute of America, un robotindustrial es un manipulador programable multifuncional diseado para movermateriales, piezas, herramientas o dispositivos especiales, mediante movimientos

  • 7/22/2019 UCF7875_01

    20/83

    18

    variados, programados para la ejecucin de distintas tareas. En la figura 2.1 se puedeobservar la forma de brazo mecnico para mover los materiales o piezas.

    Figura 2. 1 Robot manipulador industrial [Ollero, 2001].

    Robots de repeticin: Son manipuladores que se limitan a repetir una secuencia demovimientos, previamente ejecutada por un operador humano, haciendo uso de uncontrolador manual o un dispositivo auxiliar. El operario en la fase de enseanza sevale de programacin con diversos pulsadores o teclas , o bien de joysticks .En lafigura 2.2 se aprecia el dispositivo con que se manipula el robot

    Figura 2. 2 Robot de repeticin [Lerma, 2010]

    Robots controlados por computadoras: Son manipuladores, controlados por uncomputador, que habitualmente suele ser un microcomputador. En este tipo de robot ,el programador no necesita mover realmente el elemento de la mquina, cuando laprepara para realizar el trabajo. El control por computador dispone de un lenguaje

  • 7/22/2019 UCF7875_01

    21/83

    19

    especfico, compuesto por varias instrucciones adaptadas al robot. En la figura 2.3 seprecio varios robots manipuladores controlados por 2 computadores.

    Figura 2. 3 Robot controlado por un computador en una ciruga [Arroyo, 2005]

    Robots inteligentes: Similares a los del grupo anterior, pero adems son capaces derelacionarse con el mundo que les rodea a travs de sensores y tomar decisiones entiempo real (auto programable).De momento solo se encuentran en fase experimental yson muy poco conocidos en el mercado. En la figura 2.4 se aprecia un robot inteligentecapaz de aprender a tocar un violn por medio de inteligencia artificial.

    Figura 2. 4 Robot inteligente [Ramirez, 2011]

  • 7/22/2019 UCF7875_01

    22/83

    20

    MicroRobots o de servicio: Con fines educacionales, de entretenimiento oinvestigacin, existen numerosos robots de formacin o micro-robots a un precio muyasequible, y cuya estructura y funcionamiento son similares a los de aplicacinindustrial o manipuladores. En la figura 2.5 se aprecia un micro-robot donde se puedeapreciar su increble tamao.

    Figura 2. 5 Micro-Robot [Deyle, 2009]

    Dentro de los robots de servicio se encuentran:

    Robot estacionario: Son robots que se fijan a su posicin. Tiene las articulacionesmviles de mueca, codo, cintura y hombro. Son tambin ampliamente utilizados en elsector de la industria donde son asignados para tareas especficas donde no requieraque este se movilice. En la imagen 2.6 se aprecia un robot estacionario en labores

    industriales.

    Figura 2. 6 Robot estacionario

    Telemanipuladores: Robots dedicados a la manipulacin de entornos inaccesibles. Seutilizan mayoritariamente en la medicina para cirugas complejas. Se caracterizanprincipalmente por la precisin que estos poseen y las distintas ramas donde pueden

  • 7/22/2019 UCF7875_01

    23/83

    21

    cumplir su funcin. En la figura 2.7 se aprecia un robot tele manipulador utilizado encirugas complejas.

    Figura 2. 7 Robot telemanipulador [Arroyo, 2005]

    Androides: Son con forma humana, imitan el comportamiento de las personas, suutilidad hoy en da es de experimentacin debido a que se busca que tambin puedanser seres inteligentes , tarea muy compleja de realizar ya que son desarrollados conalgoritmos de inteligencia artificial. En la figura 2.8 se aprecia un robot androide conrasgos idnticos a los de un ser humano.

    Figura 2. 8 Androide [Ramirez, 2011]

    Humanoides: Es un tipo de robot con apariencia similar a la del cuerpo humano,permitiendo la interaccin con humanos, herramientas y/o entornos. La diferencia conlos robots androides es que no buscan estticamente parecerse a un ser humano. En la

  • 7/22/2019 UCF7875_01

    24/83

    22

    figura 2.9 se aprecia un robot humanoide (Robo Philo) que es el que se utilizar en esteestudio.

    Figura 2. 9 Humanoide Philo [Robophilo, 2007]

    Mviles: Estos robots se desplazan mediante una plataforma rodante (ruedas);aseguran el transporte de piezas u otro elemento de un punto a otro ayudando en granmedida a las labores que se deben realizar sobre todo en el campo de la industria.Actualmente tambin son muy utilizados en estudios espaciales para recorre lasuperficie de planetas .En la figura 2.10 se aprecia un robot mvil utilizado en elcampo de la industria

    Figura 2. 10 Robot mvil [Ollero, 2001]

  • 7/22/2019 UCF7875_01

    25/83

    23

    2.3.2 Clasificacin segn la Federacin Internacional de Robtica.

    Esta clasificacin sale a la luz en el ao 1988 enfocada principalmente para el sectormanufacturero. Es de las clasificaciones ms generales y una de las ms utilizadas [Roberto Alvarez,

    2008].

    Tipo A: Manipulador que se controla manualmente o por control remoto. Tipo B: Manipulador automtico ajustado (accionamiento neumtico, elctrico o hidrulico). Tipo C: Robot programable con trayectoria punto a punto .

    2.3.3 Clasificacin segn generacin

    Primera Generacin: Repite programas secuencialmente sin tomar en cuenta elentorno.

    Segunda Generacin: Acta en consecuencia de la informacin que recolecta de suentorno.

    Tercera Generacin: Se programa a travs de lenguaje natural.

    2.4 Componentes de los robots

    Figura 2. 11 Esquema general de un robot [Roberto Alvarez, 2008]

  • 7/22/2019 UCF7875_01

    26/83

    24

    En la figura 2.11 se muestra el esquema bsico de un robot. En ella se identifican unsistema mecnico, actuadores, sensores y el sistema de control como elemento bsiconecesario para cerrar la cadena actuacin-medidas-actuacin. En el sistema mecnico puededistinguirse entre el rgano terminal, el brazo articulado y un vehculo . En la mayor parte delos robots industriales no existe el vehculo, estando fija la base del brazo.

    Control de movimiento: Desde el punto de vista del procesamiento de lainformacin, en robtica se involucran funciones de control de movimiento,percepcin y planificacin. Estas son coordenadas en las que el robot se va adesplazar, pueden ser cartesianas, cilndricas o polares.

    Sistema de Control: El sistema de control involucra tanto bucles deretroalimentacin de la informacin suministrada por los sensores internoscomo su entorno.

    Sensores Internos: Los sensores internos miden el estado de la estructuramecnica y, en particular, giros o desplazamientos relativos entre

    articulaciones, velocidades, fuerzas y pares. Estos sensores permiten cerrarbucles de control de las articulaciones de la estructura mecnica.

    Sensores externos: Los sensores externos permiten dotar de sentidos al robot.La informacin que suministran es utilizada por el sistema de percepcin paraaprender la realidad del entorno. Este sistema de percepcin hace posible queun robot pueda adaptar automticamente su comportamiento en funcin de lasvariaciones que se producen en su entorno, haciendo frente a situacionesimprevistas.

    Sistemas de percepcin: El desarrollo de un sistema de percepcin en losrobots surge a partir de los procesos tecnolgicos en sensores como visin ,tacto , incluso audicin . Sin embargo percepcin no solo involucra captacinde la informacin sensorial, sino que tambin su tratamiento e interpretacin[Ollero, 2001].

    2.5 Robophilo . Caractersticas y componentes.

    La versin comercial de este robot fue lanzada en Febrero de 2007 , esta versin es

    lanzada por roboPhilo Company y busca tener las mismas funcionalidades de un robothumanoide a gran escala pero a un costo mucho menor .Este robot posee caractersticas que lodiferencian de los dems adems de componente que sern descritos en los prximosapartados [Robophilo, 2007].

  • 7/22/2019 UCF7875_01

    27/83

    25

    2.5.1 Componentes Kit comercial

    El kit comercial de RoboPhilo se compone de lo siguiente [Robophilo, 2007]:

    Altura Robot: 33 cms. Peso: 1,2 Kg (1200 gramos) con batera.

    Unidad de PCB. Controlador de 36 KHZ. 36 KHZ del receptor. 6V batera Ni-MH. Cargador 7.2V 1000 ma. Software grfico de movimiento (SDK). Soporte de suspensin. Calcomanas.

    2.5.2 Caractersticas Robophilo.

    Para efectos de este estudio roboPhilo ser el robot a utilizar, debido a su bajo costo yque posee casi las mismas caractersticas a un robot humanoide de alto costo para poderrealizar las pruebas pertinentes al conectarlo con el sensor Kinect.

    Figura 2. 12 RoboPhilo [Robophilo, 2007]

  • 7/22/2019 UCF7875_01

    28/83

    26

    Como se aprecia en la figura 2.12 roboPhilo se clasifica como un robot humanoide,intenta asemejar a lo que es un ser humano y las funciones que este realiza, pero si nos vamosa las clasificaciones globales realizadas en el estudio tambin puede corresponder a un robotmanipulador o a un micro-robot ,debido a que este fu creado con fines de entretenimiento yestudio, este Robot fue lanzado el ao 2007 revolucionado el mercado de robot humanoides

    debido a su bajo costo y lo intuitivo de este . Robophilo mide 33 cms,pesa 1,2 kilos y ofrecemoverse como el mejor es una adicin ms el incipiente mercado de robots humanoides, suprincipal caracterstica es que puede desarrollar muchas de las actividades que hoy en diarealizan robots del mismo tipo pero con presupuestos millonarios, Robophilo al contrario es demuy bajo costo y puede ser adquirido por el comn de la personas y/ organizaciones quedeseen investigar con este robot. Para mantener estos bajos costos Robophilo utiliza losmarcos de plstico en lugar de aluminio, adems posee servos aficionados y no digitales dealta precisin. Por supuesto algo de rendimiento es sacrificado, pero Robophilo lo compensade muchas maneras. Para empezar es un robot muy bien articulado. Posee 20 servos,

    incluyendo la cadera y la rotacin de cintura. Las articulaciones de la cintura y la cadera, estnarticuladas por los sistemas de traccin indirecta donde la carga se coloca directamente en losejes de los servos.Adems posee 24 canales para los servos y 8 interfaces de E/S. Un ncleode interrupcin especializado se utiliza para controlar el movimiento del robot adems de uncontrol remoto. Con el este control remoto a distancia conectado pro sensores infrarrojos alrobot permite alrededor de 121 movimientos y se pueden controlar hasta 4 robots de formaindependiente. Robophilo es fcilmente programable desde un computador que permitirpersonalizar los movimientos como el usuario lo desee [Robophilo, 2007].

    Figura 2. 13 Servomotor RoboPhilo [Robophilo, 2007]

    La figura 2.13 muestra uno de los servomotores del roboPhilo, este permite que laarticulacin del brazo se pueda mover. Estos servomotores tambin se encuentran en laspiernas, cabeza y en el tronco del robot.

  • 7/22/2019 UCF7875_01

    29/83

    27

    2.6 LEGO Mindstorms NXT.

    Lego Mindstorms es un juego de robtica para nios fabricado por la empresa Lego, elcul posee elementos bsicos de las teoras robticas, como la unin de piezas y la

    programacin de acciones, en forma interactiva. Este robot fue comercializado por primeravez en septiembre de 1998.

    Lego Mindstorms puede ser usado para construir un modelo de sistema integrado conpartes electromecnicas controladas por computador. Prcticamente todo puede serrepresentado con las piezas tal como en la vida real, como un elevador o robots industriales.

    El bloque NXT es una versin mejorada a partir de LEGO Mindstorms RCX, quegeneralmente se considera la predecesora y precursora de los bloques programables de Lego.

    Debido a la comercializacin de los bloques programables, LEGO vendi lageneracin NXT en dos versiones: Retail Version y Education Base Set. Una ventaja de laversin Educacional es que se inclua las bateras recargables y el cargador, pero esta mismaversin deba comprar el software segn el tipo de licencia: Personal, Sala de clases, Sitio.[Beland, 2000].

    2.7.1 Componentes kit Mindstorms NXT.

    El juego tiene 4 partes importantes:

    El microprocesador (tambin llamado NTX). Los sensores (luz, sonido, tacto, color, rotacin, ultrasonido).

    Los servomotores. Los elementos technic. (o sea las piezas).

    LEGO NXT: El ladrillo inteligente LEGO NXT, es el cerebro del robot, bsicamentees un microprocesador, con puertas de entradas, de salida y memoria para almacenarlos programas, se comunica con el computador a travs de un puerto USB oBluetooth. Es muy importante sealar para efectos de este estudio , los medios de

    comunicacin que este posee , ya que ,el NXT se conectar con el sensor Kinect pormedio de Bluetooth donde se le enviarn las rdenes desde el cdigo fuente de lasacciones que este debe realizar [Edubrick, 2006].

  • 7/22/2019 UCF7875_01

    30/83

    28

    Tres puertas de salida: A (Motor parafuncin extra),B(Motor Izquierdo), C (Motorderecho).

    Puerta de comunicacin USB. Pantalla de Cristal Lquido. Miniparlantes. Botones de encendido, apagado,

    navegacin.

    Cuatro puertas de salida,1(Sensor detacto), 2(Sensor de Sonido), 3(Sensor de Luz) y4(Sensor de ultrasonido). Sensor de tacto: Proporciona al robot el

    sentido del tacto, tanto cuando se presiona comocuando se suelta. El sensor de contacto permite

    detectar si el bloque que lo posee ha colisionadoo no con algn objeto que se encuentre en sutrayectoria inmediata. Al tocar una superficie,

    una pequea cabeza externa se contrae, permitiendo que una pieza dentro del bloquecierre un circuito elctrico comience a circular energa .Tambin puede ser utilizadopara ciclos completos de presionar y soltar [Edubrick, 2006].

    Figura 2. 15 Sensor de tacto LEGO [Edubrick, 2006]

    Sensor de sonido: Le permite al robot escuchar. El sensor de sonido puede detectartanto decibeles (dB), como decibeles ajustados (dBA). Decibel es una medida de lapresin de sonido.

    dBA: La sensibilidad del sensor es ajustada al odo humano.

    FIgura 2. 1 Cerebro NXT [Edubrick, 2006]Figura 2. 14 Cerebro NXT [Edubrick, 2006]

  • 7/22/2019 UCF7875_01

    31/83

    29

    db: La sensibilidad del sensor, no est ajustada y puede escuchar sonidos por debajo

    o por encima de la capacidad del odo humano [Edubrick, 2006].

    Figura 2. 16 Sensor de sonido LEGO [Edubrick, 2006]

    Sensor de Luz: Le proporciona al robot el sentido de la visin. Le permite al robotdistinguir entre luz y oscuridad. El sensor es monocromtico, es decir puede distinguir

    entre el blanco y el negro pasando por una gama de grises, la lectura la entrega enporcentaje [Edubrick, 2006].

    Figura 2. 17 Sensor de luz LEGO [Edubrick, 2006]

    Sensor ultrasnico: Tambin le proporciona al robot un sentido de visin. El sensoremite un sonido y mide el tiempo que la seal tarda en regresar, para luego calcular ladistancia, a la cual se encuentra el objeto u obstculo.

    Es el mismo principio utilizado por los murcilagos y el sonar de las naves, tiene unrango de 0 a 255 cm con una precisin de +/- 3 cm [Edubrick, 2006].

    Figura 2. 18 Sensor ultrasnico LEGO [Edubrick, 2006]

  • 7/22/2019 UCF7875_01

    32/83

    30

    Sensor de color: Le permite al robot ver colores. No slo blanco y negro, este es unsensor capas de distinguir colores reales [Edubrick, 2006].

    Figura 2. 19 Sensor de color LEGO [Edubrick, 2006]

    Sensor de inclinacin y aceleracin: Le permite al robot saber que inclinacin tiene.Dispone de un acelermetro en los tres ejes (X; Y y Z) con un rango entre 2g y +2g,lo cual le permite calcular la inclinacin [Edubrick, 2006].

    Figura 2. 20 Sensor de aceleracin e inclinacin LEGO [Edubrick, 2006]

    Servomotor: Los motores incluyen un sensor de rotacin, con una precisin de +/- 1grado, tambin se puede montar el motor en un eje y utilizarlo como sensor derotacin. Para el movimiento de un modelo motorizado el firmware (el sistemaoperativo interno del NXT), dispone de un sofisticado algoritmo PID, el cual permiteque el modelo se desplace con precisin. Tambin es posible utilizar los motores,estndar LEGO, mediante el cable adaptador [Edubrick, 2006].

    Figura 2. 21 Servomotor LEGO [Edubrick, 2006]

    Piezas: El Lego Mindstorms, a diferencia de algunas de los juegos que vende Lego,trae algunas piezas extras que permiten entregar flexibilidad y movimiento al robot quese est construyendo.

  • 7/22/2019 UCF7875_01

    33/83

    31

    Para clasificar las piezas, se sugiere una clasificacin entre las piezas mviles, flexibles yde fijacin, las cuales son las que incluye el Lego Mindstorms para desarrollar cualquierrobot en especial.

    Piezas mviles: Las piezas mviles que dispone Lego Mindstorms se centran

    principalmente en la rotacin de bloque, para lograr que las ruedas se muevan en unmovimiento circular con respecto al bloque completo. Estas piezas mviles se puedenclasificar en dos:

    Pieza de rotacin, permite rotar un bloque de Lego con respecto a otro, siendo huecoen el centro del mismo, y con la patas de conexin; lo cual permite aadir ms piezasen la parte superior del bloque de rotacin. Este bloque se usa fundamentalmente enlos robots de movimiento o donde se realiza una cinta de transporte de materiales, y seconecta a uno de los motores para que provea el giro del bloque

    Pieza de giro: A diferencia de la pieza de rotacin, la pieza de giro permite girar unbloque en el espacio, permitiendo una simulacin de ojos de un robot. Esta pieza noposee una utilidad real, pero sirve de adorno para el robot.

    Piezas flexibles: Las piezas flexibles permiten recrear una articulacin de un sistemaarticulado, donde se requiere que el robot deba realizar un movimiento no rgido enforma especfica, como el brazo robot o el brazo clasificador de piezas. Las piezasflexibles por lo general son tubos de plstico capaces de conectarse con dos bloquesque no se encuentren separados a una distancia mayor de 4 cm

    Piezas de fijacin: Las piezas de fijacin, son aquellas que sirven para fijar los ejes derotacin producidos por las piezas de rotacin, lo cual implica que son usadas en elcentro de las ruedas que posee el Lego. Por lo general, son tubos de 0.5 mm dedimetro el cual se puede poner en la punta de una barra que acta como eje central dela rueda, fijando que la misma no se salga durante la ejecucin de un programa[Edubrick, 2006].

    2.7.2 Garra mecnica que simula el movimiento de una gra.

    El robot a utilizar simula los movimientos de una gra con una garra en la partesuperior de este, tambin se asimila al movimiento de un brazo mecnico. Los movimientosque el robot NXT realiza son sencillos, arriba, abajo, mover el brazo hacia la izquierda ytambin derecha , una vez ajustada la posicin del brazo de puede realizar el movimiento de lagarra, que puede tomar una pelota u otro utensilio que caiga dentro de esta y transportarlagracias a los movimiento antes descritos.

  • 7/22/2019 UCF7875_01

    34/83

    32

    Las piezas han sido acopladas segn manuales oficiales de la pagina Web de Lego, laestructura del robot consta principalmente de 3 servomotores, el controlador NXT y la garraen cuestin.

    Luego del acoplamiento de las piezas, la apariencia del robot es la siguiente:

    Figura 2. 22 Garra mecnica vista lateral

    Figura 2. 23 Garra mecnica vista trasera

  • 7/22/2019 UCF7875_01

    35/83

    33

    2.7.3 NxtNET (SDK LEGO NXT)

    NXT.NET es una biblioteca. NET escrito en C # 3.0 que permite a las aplicacioneshost para controlar el Lego Mindstorms NXT desde el cdigo desarrollado en Visual Studio

    para el sensor Windows por medio de la conexin Bluetooth sin tener la necesidad de utilizarlos sensores que posee el robot Lego Mindstorms. NXT.NET es creado por el Centro deCompetencia de Hungra MSDN (y no por el Grupo LEGO), dentro de paquete de descarga deesta librera se encuentra la documentacin correspondiente adems de ejemplos de cdigofuente. [CodePlex,2008].

    2.7.3.1 Detal les tcnicos de la l ibrera.

    NXT.NET est compilado con Visual Studio 2008 para. NET 3.5 plataforma. El cdigo fuente

    de la biblioteca est compilado como una biblioteca de escritorio. NET Framework 3.5 ytambin como una biblioteca mvil para. NET Compact Framework 3.5. La aplicacin deescritorio es una aplicacin de Windows Forms La documentacin de ayuda HTML (CHM) secompila con NDoc 1,3 y el Taller de Ayuda HTML de Microsoft XML utilizando ladocumentacin extensa en el cdigo fuente de C #. NXT.NET, utiliza la clase NETFramework SerialPort para comunicarse con el Robot NXT a travs de una conexinBluetooth que se simula como un puerto COM en el PC o Pocket PC. El mando a distancia selleva a cabo con los comandos directos del NXT y permite el movimiento del robot segn elcdigo fuente escrito en la aplicacin a desarrollar.

    2.7.3.2 Conexin con el robot mediante Bluethoot.

    A travs del cdigo fuente de la aplicacin en el proyecto WPF C# de Visual Studio, se puederealizar la conexin con el Bluethoot instalado en el computador para que este luego transmitalos datos al robot LEGO por medio del siguiente cdigo C#.

    if(flagConexion){this._nxt = newNxt();this._nxt.Connect("COM7");msjConexion.Text = "Lego Conectado!";

    flagConexion = false;Motor = newThread(newThreadStart(detenerse));Motor.Start();

    Thread.Sleep(1000);}

  • 7/22/2019 UCF7875_01

    36/83

    34

    Para establecer la conexin entre el PC y el robot LEGO es recomendable utilizar unBluetooth genrico 2.0 Plug and Play por conexin USB.

    Una vez que ambos dispositivos (tanto como el del robot como el del computador)

    estn encendido y funcionando de manera correcta es necesario emparejarlos, es decir queambos puertos COM coincidan, esto se realiza en la configuracin de los dispositivos dentrodel sistema operativo.

    2.7.4 Mindsqualls Versin 2.0 C#

    Es una biblioteca .NET para el control remoto del robot Lego Mindstorms NXT 2.0desde el computador a travs de una conexin bluetooth o USB.

    Est escrito en el lenguaje de programacin C#, pero se puede utilizar con cualquiera de loslenguajes .NET para Windows. Los cdigos pueden ser compilados desde una PDA o undispositivo mvil.

    MindSqualls ofrece soporte completo para todos los "comandos directos". Soporte parael sensor de color de 2,0 NXT. Apoyo a la HiTechnic sensor Compas, el sensor de colorHiTechnic, y el HiTechnic sensor NXT aceleracin / Tilt [Handest., 2011].

    Esta librera contiene la documentacin correspondiente acerca de las funcionalidadesque se pueden realizar desde el PC con el robot Lego, para efectos del estudio se dar masimportancia a la clase para controlar el motor del robot y adems de la conexin por Bluetooth

    con el respectivo protocolo codificado dentro de un mtodo de la clase a utilizar.

    Las clases principales del proyecto de esta biblioteca se describen en el siguienteapartado.

  • 7/22/2019 UCF7875_01

    37/83

    35

    2.7.3.1 Clases L ibrera Mindsqual ls.

    Figura 2. 24 Diagrama de clases librera Mindsqualls

    El diagrama de clases, bsicamente muestra como est desarrollada la librera autilizar, la clase NxtPollable Implementa la funcionalidad comn para el sondeo de un sensor

    o un motor para el sensor de entrada.

    Luego 3 clases heredan los atributos y comportamientos de la clase principal, para elproyecto solo se utilizarn 2 de las 3, estas corresponden a la clase NxtMotor que permitirmanipular los motores A,B,C del robot NXT y la clase NxtBrick que bsicamente identifica elcerebro NXT donde se deben enviar los datos. De esta clase tambin heredan 3 nuevas clasesque son las que permiten la comunicacin entre el dispositivo bluetooth o conexin USB y susrespectivos protocolos para el envi o recepcin de datos. En el prximo apartado seprofundiza acerca de estas clases.

  • 7/22/2019 UCF7875_01

    38/83

    36

    2.7.3.2 Clase de protocolo de comunicacin

    Figura 2. 25 Diagrama de clases protocolo de comunicacin.

    En esta clase, se aprecia la jerarqua entre las clases que permitirn la comunicacindel PC con el robot por medio de conexin bluetooth o USB.

    La conexin con el robot Lego se realizar por medio de Bluetooth, por lo tanto esnecesario implementar la clase NxtBluetoothConecciton con su correspondientecomportamiento que se distingue en el diagrama de clases.

    Antes de desarrollar algn tipo de cdigo, es necesario, realizar algunasconfiguraciones de hardware en cuanto al dispositivo Bluetooth Plug and play 2.0. Una vezconectado el adaptador de Bluetooth al computador, se deben empareja el adaptador de

    Bluetooth con el del robot Lego, para esto, ambos dispositivos deben estar encendidos; steemparejamiento, se consigue mediante la configuracin del dispositivo en la pestaa depuertos COM de la configuracin del adaptador, luego, slo basta con comprobar los puertosde entrada y de salida, donde se debe visualizar el robot identificado con el nombre.

  • 7/22/2019 UCF7875_01

    39/83

    37

    Figura 2. 26 Vista de configuracin de dispositivos en Windows 7

    Para efectos de programacin solo basta en fijarse en el puerto de COM de salida deBluetooth que ser el encargado de enviar las ordenes al robot.

  • 7/22/2019 UCF7875_01

    40/83

    38

    Figura 2. 27 Vista configuracin dispositivo Bluetooth Plug and Play 2.0

    Una vez identificado el puerto de salida y emparejados ambos hardware ya se puedecodificar las instrucciones de conexin y luego la posterior manipulacin del robot.

    NxtBrickbrick = newNxtBrick(4);

    Con este mtodo se puede enviar informacin al robot sol con sealar el puerto COMen que este se encuentra emparejado que en este caso es el puerto COM 4.

    Todo lo sealado anteriormente se desarrolla en el lenguaje de programacin C# con elentorno de desarrollo visual Studio 2010, slo es necesario referenciar la libreracorrespondiente en el cdigo de la kinect y se podrn utilizar las clases para la manipulacin

    del robot desde el mismo cdigo.

  • 7/22/2019 UCF7875_01

    41/83

    39

    Captulo III Interaccin natural

    3.1 Introduccin

    Entendamos en un principio interaccin como la accin recproca entre 2 o msobjetos, sustancias, persona o agentes [RAE, 2012]. Si se habla de interaccin natural paraefecto de este estudio, nos referimos a la comunicacin entre el robot y la persona sin lanecesidad de manipular directamente el robot o controlar este por medio de un software. Lainteraccin entre la persona y el robot se realiza por medio de sensores , donde la persona nomanipula ningn tipo de control remoto , si no que con el movimiento de sus articulaciones elrobot realizara las acciones que la persona haga. Kinect reconocer estos movimientos graciasa un complejo software que este posee y arrojara los resultados pudiendo el programador

    adaptar los movimientos de la persona a los movimientos que desee que realice el robot atravs de esa informacin [Jarret Webb, 2011]

    Para lograr este tipo de interaccin se utilizar una tecnologa recientemente salida almercado que ha revolucionado la industria desde su lanzamiento, sta corresponde alcontrolador Kinect cuyo estudio del marco terico se encuentra en el siguiente apartado.

    3.2 Kinect

    Figura 3. 1 Kinect [Jarret Webb, 2011]

    En la figura 3.1 se aprecia el sensor Kinect, que es una barra horizontal deaproximadamente 23 cms conectada a una pequea base circular con un eje de articulacin dertula, y est diseado para ser colocado longitudinalmente por encima o por debajo deltelevisor [Jarret Webb, 2011].

    En el ao 2010 sale al mercado este interesante sensor, comercialmente llamadoKinect , lanzado por Microsoft , que segn la definicin de estos mismos se trata de un

  • 7/22/2019 UCF7875_01

    42/83

    40

    controlador de juego libre y entretenimiento para la videoconsola Xbox 360 .Kinect permite alos usuarios controlar e interactuar con la consola sin necesidad de tener contacto fsico conun controlador de videojuegos tradicional, mediante una interfaz natural de usuario quereconoce gestos, comandos de voz, y objetos e imgenes.1

    En Julio de 2011 Microsoft libera de manera oficial el Kinect SDK , donde incluyelibfreenect, una nueva librera que ayudara a los hackers de la comunidad OpenKinect yOpenNI , desarrollada principalmente por PrimeSense, uno de los principales vendedores deesta tecnologa [Jarret Webb, 2011]. Con la liberacin del SDK para estas comunidades se dainicio al primer paso para el desarrollo de nuevas tecnologas pese a que personas en mesesanteriores ya haban logrado Hackear Kinect, desarrollando controladores para poder serutilizado en otros dispositivos como laptops, ipad, etc.

    En febrero de 2012 Microsoft decide ampliar an ms el uso de este sensor y lanza almercado Kinect for Windows, de iguales caractersticas para el de consolas pero con soporte

    para Windows 7 y la diferencia de poder manipular el controlador a 40 cms de distancia, adiferencia del sensor de Xbox 360 que para su funcionamiento correcto de este necesita unadistancia de 2 mts y 30 cms.

    3.2.1 Componentes de Kinect.

    Un emisor de infrarrojos. Una cmara tradicional (Resolucin 640 X 480 RGB 30 fps VGA). Una cmara de infrarrojos.

    Un motor. 4 micrfonos.

    Figura 3. 2 Componentes Kinect [Jarret Webb, 2011]

    1 Jarret Webb, J. A. (2011).Beginning Kinect Programming with te Microsoft Kinect SDK.apress

  • 7/22/2019 UCF7875_01

    43/83

    41

    En la imagen 3.2 se identifica que en el centro se encuentra la cmara RGB que puedealcanzar hasta los 30 fps, en los costados se encuentran 2 sensores de profundidad, el de ms ala izquierda proyecta un haz de luz infrarroja en la habitacin donde se encuentra Kinect ,luego al costado derecho se encuentra el sensor de profundidad que calcula la distancia de unpunto determinado en funcin del tiempo que tarda la luz infrarroja en regresar al sensor.

    Luego en la parte inferior del sensor Kinect se encuentra la matriz de micrfonos. Uno estsituado a la izquierda del sensor infrarrojo. Los otros tres estn espaciados uniformemente a laderecha de la cmara de profundidad, estos cuatro micrfonos servirn para captar lossonidos del ambiente adems del reconocimiento de voz del usuario. Finalmente en la parteposterior se encuentra el motor que se encarga de ajustar el ngulo de la cmara que puedellegar a los 27 hacia arriba y los 27 hacia abajo.

    3.2.2 Funcionamiento Kinect

    Kinect utiliza una complicada tecnologa y un complejo sistema de reconocimientocorporal, donde este no slo lee los movimientos corporales, si no que toda la posicin delcuerpo humano en relacin con el fondo y los objeto que lo rodean, adems posee lacapacidad de reconocer la voz del usuario y convertir sus comandos verbales en accionesdentro del videojuegos o en una interfaz.

    Todo esto se genera en una cmara, un sensor de profundidad y un conjunto demicrfonos que trabajan sobre un software, desarrollado especialmente para este sistema, quereconoce los movimientos en 3D de un cuerpo completo y los comandos de voz. Con este

    "reconocimiento de voz" nos referimos a que Kinect puede localizar y ubicar fuentes sonoras ysuprimir el ruido ambiental del lugar en el que se est utilizando. Por otro lado el sensor deprofundidad est equipado con un proyector infrarrojo y un sensor CMOS monocromticodonde este detecta la luz permitiendo el control de luminosidad, conversor de contraste o unconversor analgico digital por lo que resulta importante en ocasiones el tipo de ropa queutiliza el usuario, ya que los colores claros se reconocen mucho mejor que los colores oscuros,adems proporciona informacin sobre la altura y anchura del jugador en metros. Para poderutilizar de manera correcta Kinect se necesita de una distancia de 2,5 mts entre el sensor y lapersona.

    Figura 3. 3 Kinect para Windows Arquitectura

  • 7/22/2019 UCF7875_01

    44/83

    42

    En la figura 3.3 se identifica bsicamente los 3 tipos de funcionalidades que posee elsensor. En un primer lugar se encuentra la captura de imagen donde gracias a las libreras sepuede obtener video por medio de la cmara RGB.

    Luego se encuentra el sensor de profundidad que bsicamente es una salida de videopero tomando tonalidades distintas para indicar cuando la persona se aleja o se acerca alsensor , mientras ms cerca se encuentre la tonalidad ser ms oscura y a la inversa cuando lapersona se aleja .Se pueden cambiar las tonalidades perfectamente desde el cdigo fuente queimplemente los mtodos de profundidad.

    Finalmente y el ms importante para trminos de este proyecto es el reconocimientodel esqueleto que permite a Kinect reconocer a las personas y seguir sus acciones. Msadelante se explicar en un apartado de este captulo el detalle de cmo funciona y de que estconstituido Skeleton Tracking.

    Luego de las 3 principales funcionalidades del sensor se encuentra la API conocidacomo NUI (Natural User Interface, est diseada para que sea compatible esencialmente con

    Windows. A travs de ella se puede acceder a los datos de los sensores y crear las distintasaplicaciones con los datos que entrega el sensor Kinect. Tiene soporte para los lenguajes C++,C# y Visual Basic, los 2 anteriores exclusivos de Windows.

    Todo este conjunto de componentes por separados, al integrarlos uno a uno se puedecrear diversas aplicaciones con el sensor, donde este a travs del cdigo fuente desarrollado enel entorno de programacin contendr las instrucciones de la aplicacin gracias a la API NUIdel sensor con las que se pueden programar las 3 funcionalidades principales del sensor einnovar en nuevas ideas y llevarlas a una aplicacin.

    Pero la verdadera magia ocurre en el software que posee Kinect, este est desarrollado encierta tecnologa de inteligencia artificial conocida como Exemplar System , diseada paraprocesar, analizar y aprender por s misma la manera en que est constituido el cuerpohumano y la forma en que este puede moverse, no es de extraarse que Microsoft por muchosaos estuvo desarrollando este software observando mltiples videos de personas comunes ycorrientes para as ensear al software las distintas posturas que estas realizaban.

    Todo este proceso le permite al desarrollador ensear al software identificar lasrodillas, los codos, manos, cara y otras 44 partes del cuerpo y llevarlo a aprender la manera enla que cada una de las articulaciones se mueve, con ello se crea una base de estadsticas yprobabilidades con respecto a lo que el cuerpo humano puede hacer. Esto ayuda para quecuando Kinect obtiene la imagen del usuario este posee la base estadsticas que le informa quecierto pixel tiene 50% de probabilidades de pertenecer al brazo y 40% de pertenecer a la

    mano, y basado a esto , saber la posicin en que se encuentra la persona , no puede cruzarsecon el pixel que tiene el 70% de posibilidades de pertenecer al tobillo .

    Para conocer la distancia que se encuentra cada pixel de la imagen de profundidad seemite una constelacin de puntos con el emisor infrarrojo:

  • 7/22/2019 UCF7875_01

    45/83

    43

    Figura 3. 4Haz de luz infrarroja que emite Kinect

    Como muestra la figura 3.3cuando la persona se para frente al controlador Kinect , esteproyecta millones de pequeos haces de luz sobre todo lo que se encuentra frente a l y separalas formas humanoides del fondo , tras lo cual el software mide y juzga las distancias que hayentre los diferentes puntos del cuerpo y crea una especie de contorno rudimentario querepresenta una superficie en 3D; posteriormente , identifica las partes del cuerpo de la personaque est frente al sensor y basado en la experiencia con la forma humana y elcomportamiento habitual que tiene el usuario crea la imagen en el controlador con las partesdel cuerpo que reconoci.

    3.2.2.1 Eskeleton Tracking

    Traducido al espaol es, seguimiento del cuerpo (esqueleto), del usuario en tiemporeal. Una vez que Kinect sabe dnde est la rodilla y los dems puntos de articulacin , buscaun esqueleto con 20 de estos puntos , que se adapte a la postura del usuario y lo sobrepone alcontorno antes creado para cubrirlo con textura , ropa , cabello y todo lo dems que el juegodetermine lo que se tiene que ver en pantalla , solo para volver a realizar este algoritmo porms de 29 veces en el mismo segundo , de manera que los movimientos sean transmitidos a laconsola Xbox 360 o al computador y esta los use para controlar el juego y tener unaexperiencia realmente fluida.

  • 7/22/2019 UCF7875_01

    46/83

    44

    Figura 3. 5 Funcionamiento 3D de Skeleton Tracking

    En la figura 3.4 se ve el tratamiento de los datos de imagen de profundidad paraestablecer las diferentes posiciones de las articulaciones del esqueleto en una forma humana.Por ejemplo el Skeleton Tracking determina el lugar donde se encuentra la cabeza del usuario,adems de sus manos y su centro de masa. Skeleton Tracking proporciona X, Y y Zcoordenadas para cada uno de estos puntos del esqueleto.

    Figura 3. 6 Puntos del cuerpo que reconoce Kinect

  • 7/22/2019 UCF7875_01

    47/83

    45

    La figura 3.5 [Jarret Webb, 2011] muestra los 20 puntos del cuerpo que el sensorKinect reconoce del cuerpo humano gracias a su algoritmo Skeleton Tracking, se aprecia queel funcionamiento del sensor se basa en las principales articulaciones del cuerpo

    Actualmente con el lanzamiento al mercado de Kinect for Windows viene incorporado

    el SDK propio para utilizar Kinect donde viene incluido skeleton tracking , con lo cual se hacreado una serie movimientos organizacionales para la creacin de nuevos drivers yaplicaciones para Kinect opensource.

    3.2.3 SDK Kinect

    El SDK de Kinect para Windows es el conjunto de bibliotecas que permite programaraplicaciones en una variedad de plataformas de desarrollo para Microsoft utilizando el sensor

    Kinect como entrada. Con l es posible programar aplicaciones de WPF, Winforms ,aplicaciones de XNA y con un poco ms de trabajo incluso aplicaciones basadas ennavegadores, pero aunque parezca extrao no se pueden crear juegos de Xbox 360 con el SDK[Jarret Webb, 2011].Con el SDK se puede sacar el mximo provecho a las capacidades deaudio de Kinect, adems posee aplicaciones adicionales de reconocimiento de voz con laplataforma Speech API. Al instalar SDK automticamente se instalarn estos componentesadicionales. Es importante mencionar que las caractersticas de Kinect como reconocimientode profundidad y seguimiento del esqueleto son componentes funcionales ya estn incluidosen el SDK.

    Tras dos versiones betas, es liberada la versin 1.0 , esta versin incluye algunasmejoras en comparacin a sus predecesoras , con este SDK ser posible conectar hasta 4dispositivos Kinect en un mismo computador.

    En Mayo de 2012 es lanzada la ltima versin 1.5 del SDK , sta versin ser lautilizar en el proyecto y presenta nuevas mejoras con respecto a sus predecesoras facilitando elproceso de desarrollo para las aplicaciones que se pretendan desarrollar: Las mejorasimportantes en esta versin son las siguientes:

    Kinect Studio: Esta nueva herramienta permite a los desarrolladores grabar yreproducir datos del Kinect, acortando y simplificando el ciclo de vida del desarrollode una aplicacin de Kinect. Ahora un desarrollador puede grabar clips de los usuariosen el entorno de destino de la aplicacin y luego reproducir los clips de pelcula en unmomento posterior para pruebas y desarrollo [Kinect, 2012].

    Seguimiento Facial: ofrece una malla 3D en tiempo real de caractersticas faciales, elseguimiento de la posicin de la cabeza, la ubicacin de las cejas, la forma de la boca,etc. Significativas adiciones y mejoras de cdigo de ejemplo. Hay muchas nuevas

  • 7/22/2019 UCF7875_01

    48/83

    46

    muestras, tanto en C + + y C #, adems de un "bsico" serie de muestras con lacobertura de idiomas en C + +, C # y Visual Basic [Kinect, 2012].

    Seguimiento del esqueleto sentado : Realiza un seguimiento de la cabeza adems de 10articulaciones , los hombros o los brazos del esqueleto, haciendo caso omiso la pierna

    y articulaciones de la cadera. No se limita a las posiciones de sentado, sino quetambin realiza un seguimiento de cabeza / hombros y los brazos cuando una personaest de pie. Esto hace posible la creacin de aplicaciones que estn optimizadas paralos escenarios sentados (como el trabajo de oficina con el software de productividad ode interactuar con los datos en 3D) o escenarios de pie en el que la parte inferior delcuerpo no es visible para el sensor (por ejemplo, la interaccin con un kiosco o cuandose navega a travs de datos de resonancia magntica en una sala de operaciones)[Kinect, 2012].

    Finalmente en esta nueva versin, se ha dividido en 2 herramientas fundamentales elSDK de Kinect . La primera es Kinect Toolkit, herramienta que permitir a losdesarrolladores ingresar a la documentacin oficial y cdigos de ejemplo para el posteriordesarrollo de aplicaciones personalizadas por parte del desarrollador. Adems posee lasherramientas como Kinect Studio con su respectiva documentacin y esta podr serinstalada en el computador de manera fcil y prctica.

    3.2.3.1 Requer imientos de Hardware

    Computador con procesador dual-core , 2.66 GHZ o superior. Windows 7 compatible con tarjetas grficas y soporte de Microsoft DirectX 9.0 2GB de RAM (4GB es lo recomendado) Kinect for Windows o Kinect Xbox360. Adaptador USB (solo en caso que se utilice Kinect pra XBOX 360) [Kinect, 2012]..

    Para desarrollar se necesita el entorno de desarrollo visual studio 2010 Express u otrasediciones 2010. Adems se necesita tener DirectX 9.0 instalado en el computador. Lasversiones posteriores de directX posteriores no son compatibles. Tambin por supuesto senecesita la versin 1.0 del SDK de Kinect, el instalador del SDK instalar en el computador

    los controladores de Kinect, as como ejemplos de cdigo que servirn de ayuda para losprimeros pasos en el desarrollo de nuevas aplicaciones.

  • 7/22/2019 UCF7875_01

    49/83

    47

    3.2.4. Osceleton, Skeleton Tracking

    Osceleton Tracking es un pequeo programa que hace uso de los dato del esqueletoproporcionados por el OpenNiFramework para enviar por protocolo OSC las coordenadas

    correspondientes.

    Un protocolo OSC (Open Sound Control) es un protocolo pensado para comunicarinstrumentos musicales, dispositivos multimedia y ordenadores en tiempo real. Comnmentees transportado por UDP.

    Las caractersticas de este protocolo son:

    Ampliable, dinmico. Esquema de nombres simblicos tipo URL. Datos numricos simblicos y de alta resolucin. Lenguaje de coincidencia de patrones para especificar mltiples receptores de un nico

    mensaje. Marcas de tiempo (time tags) de alta resolucin. Mensajes empaquetados para aquellos eventos que deben ocurrir simultneamente Sistema de interrogacin para encontrar dinmicamente las capacidades de un servidor

    OSC y obtener documentacin.

    3.3 Guiado gestual de un robot humanoide mediante sensorKinect

    Estudio realizado por un alumno memorista [Pfeiffer, 2011] de la Facultad deInformtica de la Universidad de Barcelona. El objetivo principal del estudio es bsicamentecontrolar los brazos de un robot humanoide (Bioloid) a travs del sensor Kinect. Para esto,logr implementar un firmware para poder controlar los actuadores del robot.

    La comunicacin entre el ordenador y el robot se realiza por serie (usando unadaptador USBserie en este caso). Con lo cual cuanto ms cortos y sencillos sean los mensajesmejor reaccionaran las articulaciones.

    En la etapa de implementacin, se programa el firmware del robot biolid para el accesoa los dynamixel, esto quiere decir, que se capturan las coordenadas que entrega el sensor y

    luego estas son traspasadas al robot e interpretadas en el cdigo fuente de este sabiendo quemovimientos debe realizar segn el formato de coordenadas XX YYYY que arroja el sensor.

    Donde XX es el nmero identificador del Dynamixel que debe recibir la orden eYYYY es la cantidad de movimiento o el ngulo en que se quiere que vaya el motor.

    Esta cantidad de movimiento esta codificada en una escala de 0 a 1023 representandolos 360grados [Pfeiffer, 2011].

  • 7/22/2019 UCF7875_01

    50/83

    48

    3.3.1 Programacin del simulador de coordenadas de Kinect.

    Se necesitarn las coordenadas de las manos en el mismo sistema de coordenadas en elque se encuentra la simulacin. Para ello el primer paso es conseguir las coordenadas de las

    manos en referencia al pecho del usuario del Kinect. En este caso se toma el origen decoordenadas en el hombro izquierdo por comodidad. Luego solo hace falta hacer unatraslacin de coordenadas para situarlo en el origen del simulador (el centro del cubo querepresenta el torso [Pfeiffer, 2011].

    Procedimiento:

    Sean (x,y,z) las coordenadas del punto respecto a los ejes de coordenadas X-Y-Z.Sean (x0, y0, z0) las coordenadas del origen de coordenadas de los ejes X-Y-Z respecto alnuevo sistema de coordenadas X'-Y'-Z'.

    Sean a,b,c el ngulo que se gira el eje X' respecto a los ejes X-Y-Z, sean d, e, f el ngulo quese gira el eje Y' respecto a los ejes X-Y-Z, y sean g, h, i el ngulo que se gira el eje Z' respectoa los ejes XY-Z.

    En la figura 3.6 [Pfeiffer, 2011] se observa el sistema de coordenadas obtenidos atravs de los datos que entrega el sensor por medio de su algoritmo Skeleton Tracking

    Figura 3. 7 Coordenadas que entrega el sensor

  • 7/22/2019 UCF7875_01

    51/83

    49

    () () ()

    () () ()

    () () ()

    Sera el sistema de ecuaciones que nos dar las coordenadas de nuestro punto en referencia alnuevo sistema de coordenadas.

    3.3.2 Programacin del escalado de las coordenadas obtenida tras el cambiose sistema de referencia

    Dado que el cuerpo humano es distinto al cuerpo del Bioloid (principalmente el antebrazosumado a la mano, es ms largo que el brazo, mientras en el Bioloid pasa al contrario) senecesita hacer un escalado de las coordenadas del punto teniendo esto en cuenta.

    Para el brazo izquierdo (el proceso es muy similar para el derecho):La figura 3.7 [Pfeiffer, 2011] muestra el sistema de coordenadas interpretado por el

    sensor Kinect y el robot Bioloid.

    Figura 3. 8 Coordenadas traspasadas de Kinect al Robot

    Hombro izquierdo, codo izquierdo, mano izquierda se refiere a las coordenadas deestos puntos:

  • 7/22/2019 UCF7875_01

    52/83

    50

    d_brazo = distancia (hombro izquierdo, codo izquierdo)d_antebrazo = distancia