SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

67
SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE MOVIMIENTO AUTORES: JUAN SEBASTIÁN MÉNDEZ RUBIANO LUIS EDUARDO SALAZAR BADEL UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN BOGOTÁ D.C JUNIO 2010

Transcript of SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

Page 1: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE MOVIMIENTO

AUTORES:

JUAN SEBASTIÁN MÉNDEZ RUBIANO

LUIS EDUARDO SALAZAR BADEL

UNIVERSIDAD DE LOS ANDES

FACULTAD DE INGENIERÍA

DEPARTAMENTO DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN

BOGOTÁ D.C

JUNIO 2010

Page 2: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

SISTEMA ROBÓTICO TELEOPERADO POR CAPTURA DE MOVIMIENTO

AUTORES:

JUAN SEBASTIÁN MÉNDEZ RUBIANO

LUIS EDUARDO SALAZAR BADEL

Proyecto de grado para optar por el título de

Ingeniero de Sistemas y Computación

PROFESOR ASESOR

Fernando De la Rosa, Ph.D.

UNIVERSIDAD DE LOS ANDES

FACULTAD DE INGENIERÍA

DEPARTAMENTE DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN

BOGOTA D.C

JUNIO 2010

Page 3: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

3

TABLA DE CONTENIDOS

TABLA DE ILUSTRACIONES ........................................................................................................ 5

0. RESUMEN ......................................................................................................................... 7

1. INTRODUCCIÓN ................................................................................................................. 8

2. DESCRIPCIÓN GENERAL ..................................................................................................... 9

2.1 Objetivos ....................................................................................................................... 9

2.1.1 Objetivos generales ................................................................................................ 9

2.1.2 Objetivos específicos .............................................................................................. 9

2.2 Antecedentes (Estado del arte) .................................................................................. 10

2.3 Identificación del problema y de su Importancia ....................................................... 13

3. DISEÑO Y ESPECIFICACIONES ........................................................................................... 15

3.1 Definición del problema.............................................................................................. 15

3.2 Especificaciones .......................................................................................................... 16

3.2.1 Requerimientos funcionales ................................................................................ 16

3.2.2 Requerimiento no funcionales ............................................................................. 17

4. DESARROLLO DEL DISEÑO ................................................................................................ 18

4.1 Subsistema de Detección/Identificación Gestual ....................................................... 21

4.1.1 PhaseSpace Impulse Motion Capture System ..................................................... 22

4.1.2 Configuración del sistema Impulse de PhaseSpace ............................................. 25

4.1.3 Software de apoyo del subsistema de captura de movimiento .......................... 25

4.1.4 VRPN ..................................................................................................................... 27

4.2Subsistema de captura de video .................................................................................. 31

4.2.1 Cámara de video Logitech Quickcam Pro 9000.................................................... 32

4.3 Subsistema de Robot .................................................................................................. 32

4.3.1 Robot Pioneer P3DX ............................................................................................. 33

4.3.2 Sensor Láser Hokuyo URG-04LX ........................................................................... 34

4.4 Sistema central ........................................................................................................... 35

4.5 Alternativas de diseño ................................................................................................ 36

5. IMPLEMENTACIÓN .......................................................................................................... 37

5.1 Subsistema Detección/Identificación Gestual ............................................................ 39

Page 4: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

4

5.2 Subsistema de Captura de Video ................................................................................ 40

5.3 Subsistema de Robot .................................................................................................. 43

5.4 Resultados esperados ................................................................................................. 45

6. VALIDACIÓN .................................................................................................................... 46

6.1 Método ....................................................................................................................... 46

6.2 Encuesta proyecto de grado ....................................................................................... 47

6.3 Validación de resultados ............................................................................................. 48

7. CONCLUSIONES ............................................................................................................... 52

7.1 Discusión ..................................................................................................................... 52

7.2 Trabajo futuro ............................................................................................................. 53

8. REFERENCIAS .................................................................................................................. 54

9. APÉNDICES ...................................................................................................................... 56

A. Código fuente ............................................................................................................ 56

B. Configuración inicial del sistema de captura de movimiento ................................. 57

1. Energía del sistema ............................................................................................... 57

2. Configuración inicial – Crear perfil ....................................................................... 58

3. Configuración inicial - Codificar ............................................................................ 62

C. Calibración del sistema de captura de movimiento ................................................ 64

Page 5: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

5

TABLA DE ILUSTRACIONES

Figura 1. Estructura de solución final. División funcional……………………..……………………..18

Figura 2. Estructura básica de la solución final. Diagrama de despliegue……………………..19

Figura 3. Usuario probando el sistema………………………………………………………………………...20

Figura 4. Usuario en ambiente de interacción final………………………………………………………21

Figura 5. Diagrama de caja negra de subsistema de captura de movimiento………………..22

Figura 6. Dispositivos del sistema PhaseSpace IMPULSE………………………………………………24

Figura 7. Topología del sistema de captura de movimiento…........................................25

Figura 8. Software de apoyo del sistema PhaseSpace IMPULSE……................................27

Figura 9. Diagrama de caja negra de subsistema de captura de video………………………..31

Figura 10. Diagrama de caja negra de subsistema de robot………………………………………..32

Figura 11. Robot P3DX……………………….………………………………………………………..................33

Figura 12. Sensor Láser Range Finder HOKUYO URG-04LX………………………………………34

Figura 13. Diagrama de caja negra del sistema central……………………………………………….35

Figura 14. Diagrama de secuencia del sistema central………………………………………………….38

Figura 15. Usuario usando el sistema…………………………………………………………………………..39

Figura 16. Grafo base de directShow utilizado para la captura de video……………………….41

Figura 17. Comparación vista externa y vista del robot………………………………………………..43

Figura 18. Implementación móvil seleccionada……………………………………………………………44

Figura 19. Aceptación general de la solución………………………………………………………………..48

Figura 20. Gráfico de apreciación de la aceptación. Mejora, del tipo de interacción…….48

Figura 21. Gráfico de apreciación del punto fuerte del proyecto………………………………….49

Figura 22. Gráfico de apreciación del punto a mejorar del proyecto…………………………….49

Page 6: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

6

Figura 23. Tiempo empleado por los usuarios de prueba……………………………………………..50

Figura 24. LED Driver conectado a la estación base…….………………………………………………..57

Figura 25. Pantalla principal del sistema de configuración. Pestaña LED devices………….58

Figura 26. Creación del perfil. Pantalla inicial……………………………………………………………….59

Figura 27. Creación del perfil. Elección del dispositivo………………………………………………….60

Figura 28. Crear perfil. Pantalla de configuración de la cadena de marcadores…………….61

Figura 29. Pantalla de codificación. Escogencia del perfil……………………………………………..62

Figura 30. Pantalla de codificación. Se escoge el dispositivo, la potencia, y se codifica…63

Figura 31. Pantalla de calibración. Vista principal…………………………………………………………64

Figura 32. Pantalla de calibración inicial…………………………………………………………………….65

Figura 33. Pantalla de calibración final…………………………………..…………………………………….66

Page 7: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

7

0. RESUMEN

Los sistemas robóticos teleoperados se están convirtiendo en sistemas muy usados en la

actualidad. Se usan cuando ocurre un desastre, en busca de supervivientes, en vigilancia, o

en el caso de lugares de difícil acceso para el ser humano, como el espacio exterior. Por lo

general, se usan estos sistemas para mejorar la seguridad de las personas que participan

en una tarea, muchas veces riesgosa.

Este documento trata sobre la implementación en el manejo de este tipo de sistemas,

enfocándose en un punto particular: la interacción entre humano y robot. Se explica el

proceso de diseño, implementación, y pruebas que llevo a hacer un sistema capaz de

reconocer movimientos gestuales del usuario para controlar el movimiento del robot

teleoperado. La motivación fue la de implementar un tipo de interacción que permitirá

sentir al operario control directo con la máquina de manera más inmersiva y natural. Es

decir, sintiéndose el robot. O que al menos, fuera una forma de control más divertida de

usar que la convencional basada en palancas y botones. Se explica de manera detallada

los elementos utilizados, así como las ideas planteadas para llevar a buen término el

proyecto. Al final, igualmente, se hace un análisis de los resultados obtenidos a partir de

pruebas de campo con usuarios ajenos al proyecto, se justifica el uso de este tipo de

interacción y se dan pautas para ampliar y mejorar estos resultados mediante trabajos

posteriores.

Page 8: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

8

1. INTRODUCCIÓN

Un sistema robótico teleoperado es un sistema que tiene como objetivo rastrear,

investigar e indagar en un lugar específico, por lo general poco accesible al ser humano,

con el fin de encontrar alguna cosa particular, o simplemente obtener información de un

sitio remoto para conocer sus condiciones. Así, por ejemplo, se tienen robots de

exploración espacial que no son más que sistemas que buscan recolectar material físico,

analizar cierta zona, o reconocer un lugar particular.

Por otro lado, la captura de movimiento es una técnica que permite almacenar

movimientos físicos de manera digital. Esto permite capturar gestos corporales, o sucesos

mecánicos en un computador para luego ser procesados e integrados en una aplicación de

computador. Por ejemplo, para hacer que una representación digital de una persona se

mueva de la misma forma que lo haría su par real.

La idea del proyecto es juntar estos dos conceptos y tecnologías de tal forma que se

pueda manipular un robot de exploración mediante la interacción con un sistema de

captura de movimiento. Es decir, que se pueda manejar un robot, de una forma más

intuitiva a la convencional, utilizando figuras gestuales hechas con los brazos y las piernas

de un operario. Esto, en teoría, permitiría un control más inmersivo y natural que el que

se utiliza actualmente mediante el uso de controladores a distancia, usando palancas y

botones.

El documento se divide en varios capítulos. Primero se plantean los objetivos del proyecto

y luego se explican antecedentes o proyectos relacionados, implementados por terceros.

Continúa con la identificación del problema y se analiza su importancia. Posteriormente se

define la problemática para luego especificarla según requerimientos funcionales y no

funcionales. Luego se muestra el desarrollo de diseño con una recolección de información

hardware y software y se describen las diferentes alternativas de diseño. A continuación

se muestra la implementación, mediante una descripción y un análisis previo de

resultados esperados. Y por último se presenta el método de validación, con los

resultados de una encuesta, y se discute ésta a modo de conclusión.

Page 9: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

9

2. DESCRIPCIÓN GENERAL

2.1 Objetivos

2.1.1 Objetivos generales

Estudiar la viabilidad de manejar un robot de exploración utilizando captura de

movimiento para el reconocimiento de posturas gestuales. Así, se exploran nuevos

ambientes de interacción. El usuario cuenta con retroalimentación visual (video) e

información sensorial (radar laser) del ambiente local del robot para poder tomar las

decisiones de movimiento que se transmiten al robot.

2.1.2 Objetivos específicos

• Desarrollar un sistema de reconocimiento gestual que permita identificar los

comandos del usuario. Esta aplicación computacional es un cliente que se conecta

al servidor del sistema de captura de movimiento (IMPULSE), toma los datos, y los

procesa para ser identificados. El resultado de la identificación genera una

discriminación de posibles movimientos a realizar por el robot.

• Desarrollar un sistema de retroalimentación al usuario. Este sistema va a mostrar

dos tipos de datos al usuario: Imagen capturada de una cámara web, y distancias

obtenidas por el sensorláser del robot.

• Desarrollar un cliente que sea capaz de dar comandos sencillos de movimiento al

robot.Dos tipos de comandos se utilizan en el sistema: comandos proporcionados

por el usuario, y comandos de seguridad del robot. El primero será el menos

prioritario, aunque se espera sea el más utilizado, mientras que el segundo es el

más prioritario y se utiliza como comportamientosde recuperación del robot. Es

decir, en cuanto el robot se vea vulnerado, ya sea con un objeto cercano, o con sus

llantas trabadas se ejecutara un conjunto de movimientos que hacen que el robot

se mantenga a salvo.

Page 10: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

10

• Estudiar la experiencia de usuario y la viabilidad a la hora de manejar este tipo de

sistemas con una interacción no convencional de captura de movimiento.

2.2 Antecedentes (Estado del arte)

En la actualidad la robótica se encuentra cada vez más inmersa en la sociedad. Esto brinda

nuevas oportunidades para aquellos que desarrollan estas tecnologías y supone nuevas

formas de interacción entre los humanos y los robots. Esto se debe a que cada día existen

nuevas formas de robots con diversas funcionalidades que obligan a los humanos a

interactuar asimismo de distintas formas.

Lo anterior no significa que toda la interacción entre humanos y robots sea directa,

existen varios tipos de interacción que se basan en el control remoto (control a distancia)

de los robots por parte de los humanos. Gran parte de la diversidad de los controles

utilizados varían de acuerdo a la tarea que se pretende realizar con el robot, lo cual

describe Song et al. [4]. En este trabajo se realiza un estudio sobre diferentes tipos de

interacción mediante varios controles convencionales para realizar algunas tareas,

intentando determinar qué tipo de control resulta más conveniente para el humano

dependiendo de la tarea a realizar. Concluyen, por ejemplo, que para una gran cantidad

de tareas, y utilizando los controles convencionales, lo más cómodo y aparentemente

adecuado es el comúnmente utilizado Joystick. Entiéndase por controles convencionales

al tipo de dispositivos de interacción entre humanos y robots que pueden ser fácilmente

utilizados con la ayuda de un computador personal, tales como el teclado, dispositivos con

comandos de botones, timón y pedales diseñados para juegos de carreras, Joystick o un

control de Wii, entre otros.

El último control mencionado, el control de Wii, ha causado un gran interés para la

robótica, ya que su flexibilidad ofrece varias oportunidades de control. Tal es el caso de lo

realizado por Guo y Sharlin [1], quienes utilizaron un control de Wii para interactuar con

un robot AIBO de Sony. Esto les permitió un control gestual del robot. Incluso si los gestos

de control eran limitados a, por decirlo de alguna forma, la “orientación” que tomaran los

Page 11: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

11

controles, la idea básica de utilizar posturas o gestos para controlar a un robot es algo que

está presente en la actualidad.

Aunque la manera como se le imponen órdenes a un robot es de vital importancia en la

interacción entre humanos y robots, los controles mencionados se diseñan teniendo en

mente una perspectiva total del panorama en el cual el robot se encuentra y realiza sus

tareas. Sin embargo, al diseñar un sistema de control para un robot teleoperado se debe

tener en cuenta la manera como el usuario percibe el entorno en el que se encuentre el

robot, ya que no siempre el usuario podrá ver al robot. Es por eso que a este tipo de

robots se les equipa con una variedad de sensores y cámaras.

Este tipo de operación lleva una nueva problemática y es la navegación efectiva del robot

que se está controlando. Nielsen y Goodrich [3] evalúan la conveniencia de navegar

mediante video y mapas en dos y tres dimensiones, concluyendo que una plataforma

híbrida en la cual se presente simultáneamente video y un mapa en tres dimensiones

resulta más conveniente para la navegación de un robot teleoperado. Esto se debe a que

muchas veces la transmisión de video puede tener retardos significativso mientras que un

mapa puede ser generado mediante el uso único de la información recibida por los

sensores, lo cual es más liviano para transmitir.

Todo lo anterior lleva a pensar que las nuevas formas de interactuar con los robots serán

formas de interacción no convencionales con respecto a lo conocido hoy en día.

Existe un proyecto el cual consiste en la identificación de posturas labiales para manipular

un robot con cuatro grados de libertad [5]. El sistema se creó pensando en una forma no

convencional, fácil de usar, e intuitiva (según los autores) de manipular un robot que

pudiera realizar la cirugía tradicional en laparoscopia. Normalmente, esta técnica de

operación se hace de manera manual con un endoscopio. Sin embargo, se dice que es

peligrosa ( y no óptima ) pues los instrumentos se mueven demasiado por los temblores

en la mano del cirujano. Esto hace que el procedimiento sea, finalmente, mal ejecutado

en muchas ocasiones.

Page 12: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

12

Para resolver este problema se ha pensado en la implementación de un Sistema de

Posicionamiento del Laparoscopio por un brazo robotizado (SPRL) con diferentes tipo de

interacción: Voz, movimientos de la cabeza, etc. En este caso, se centran en la interacción

con el robot mediante la identificación de cinco posturas labiales: boca relajada, boca

abierta, boca cerrada, y apretada, y la inclinación hacia la izquierda y hacia la derecha.

Esto se logra utilizando técnicas de adquisición de imágenes (video) y procesamiento de

diferentes tipos que logran aislar e interpretar los movimientos de esta región del rostro,

mandando órdenes específicas de movimiento al robot.

Personalmente se considera que este procedimiento es un intento interesante para el

manejo de un robot, pero tal vez no logra cumplir su objetivo. Es decir, se cree que puede

ser un buen sistema para otro tipo de aplicaciones que no sean procedimientos de

precisión, como lo es, en este caso, una cirugía. Además, no se ve tan intuitivo como

afirman los autores ya que se necesita de muchas horas de entrenamiento para lograr

acostumbrar al cirujano a utilizar y controlar una zona del cuerpo tan poco convencional.

Aun así, se considera que para robótica móvil, algo como lo implementado en este

documento podría ser interesante y útil.

Otro proyecto de interacción no convencional trata sobre la identificación y la

interpretación de gestos táctiles para el movimiento de robots [6]. El sistema se hizo

pensando en la necesidad de crear un nuevo paradigma a la hora de interactuar en el

mundo real con tareas de programación complejas sobres robots basados en un sistema

de expresión no verbal. Los autores de este proyecto argumentan que esta es una forma

intuitiva de manejar tareas sobre máquinas que requieran de transiciones, o secuencias

de operación. Por ejemplo, resulta sencillo trazar una ruta mediante gestos de tal forma

que el robot la interprete y la siga.

Esto no es fácil porque las expresiones gestuales no son exactas. Es evidente que la forma

en la que se hace un movimiento no puede ser repetida exactamente entre personas, e

incluso es difícil hacerlo con un solo usuario. Es en este punto donde este proyecto cobra

importancia y relevancia pues exponen ciertas técnicas y consideraciones que hay que

Page 13: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

13

tener en cuenta a la hora de realizar un trabajo de similares características. Por ejemplo,

muestran cómo es posible identificar figuras geométricas definidas (triángulos,

rectángulos, etc.) mediante el enfoque de unos puntos particulares: los vértices. Se

muestra que, para este tipo de figuras, se torna esencial el reconocimiento de éstos pues

con ellos se sabe que figura es la que se trata de representar. Así, si acaso son

identificados, por ejemplo, tres vértices, se está tratando inequívocamente con un

triángulo y no con un rectángulo. De igual forma se muestra que, una vez reconocida la

figura, lo que caracteriza el gesto no son los vértices, como en el caso anterior, sino la

longitud de las aristas.

En el trabajo no se emplea el sistema completo: La unión entre la interacción y el robot.

Pero aun así es una muy buena referencia a la hora de tener en cuenta puntos clave en la

comunicación mediante detección de gestos. Cabe aclarar que no se implementó el

sistema completo, por lo que no es posible estimar, con este trabajo, la viabilidad de este

tipo de comunicación.

2.3 Identificación del problema y de su Importancia

Los sistemas robóticos de exploración se están volviendo cada vez más comunes. Se han

ido convirtiendo en una gran herramienta y complemento a la hora de resolver tareas en

lugares de difícil acceso, o en circunstancias que conllevan peligro al ser humano. Por

ejemplo, no es extraño oír que para desactivar una bomba sea enviado un robot de

exploración, o que para explorar un terreno, luego de un desastre natural, sea enviado un

sistema de este tipo para la posible localización de sobrevivientes.

A pesar del gran auge que están teniendo estos sistemas, se considera aún pobre las

investigaciones referentes a la interacción con los mismos. Normalmente, se hace a partir

de un control a distancia con un video de retroalimentación, o utilizando caminos y

movimientos predeterminados diseñados por algún operario.

En este punto es donde el proyecto cobra importancia porque, si bien es cierto, el control

actual, basado en una palanca y botones, es relativamente cómodo, sigue siendo un tipo

Page 14: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

14

de interacción utilizado de hace muchos años, y probablemente obsoleto y poco natural.

Fue desarrollado, sin muchos cambios, desde el inicio de los proyectos de este tipo, como

concepto, y no se ha modificado significativamente desde entonces. Se piensa importante

probar la viabilidad de un tipo de interacción más natural al ser humano: Los gestos

corporales. Se utilizan las extremidades del cuerpo para dar diferentes comandos al robot

de exploración, olvidándose por completo de botones y palancas.

Es probable que el sistema de control actual esté tan arraigado que resulte difícil

introducir este tipo de interacción no tan convencional. Aun así, se considera apropiado y

pertinente probar otra alternativa al manejo de éstos.

Page 15: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

15

3. DISEÑO Y ESPECIFICACIONES

3.1 Definición del problema

El problema a resolver se puede definir como la falta de comodidad y naturalidad con la

que se manejan los sistemas teleoperados hoy día, además de la poca exploración de

alternativas implementadas exitosas para este fin. El proyecto se enfoca en dar una

aproximación de solución a este problema mediante la inserción de un nuevo tipo de

interacción, sin precedentes en este campo. Lo más parecido, y que se aproxima al

concepto utilizado en este desarrollo, es el de reconocer movimientos corporales

humanos para copiarlos en robots de forma humanoide. Por ejemplo, mover un brazo

robótico con la captura del movimiento de un brazo humano. El concepto, en este caso, es

diferente pues se desea mover un robot móvil (teleoperado) mediante la interpretación

de gestos y posiciones corporales, pero sin imitar. Es decir, se quiere interpretar poses

humanas normalmente utilizadas como comandos atómicos de un robot móvil. Todos

hemos visto como, por ejemplo, al ir conduciendo, algunos conductores que van a girar a

la izquierda extienden su brazo para indicar su intención. Este gesto es entendido por todo

el mundo pues de una u otra forma es natural. Y es justamente esto lo que se quiere

aprovechar en el desarrollo del concepto de este prototipo. El robot móvil, en condiciones

normales, no estará a la vista del usuario. Es por esto que se requiere tener información

local actualizada del ambiente del robot, para poder tele-operarlo. Adicionalmente, el

robot puede enfrentarse a situaciones de riesgo, como pasar cerca de objetos en el

ambiente, para lo que el robot debe reaccionar de forma autónoma y evitar riegos.

Page 16: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

16

3.2 Especificaciones

3.2.1 Requerimientos funcionales

Nombre Dar comando de movimiento al robot. Resumen Dado un gesto corporal del usuario el

sistema debe reconocerlo y diferenciarlo para mandarlo al robot teleoperado.

Entradas • Gesto corporal: movimiento de brazo derecho en alguna dirección cartesiana.

• Usuario en posición de uso del sistema, mirando hacia la pantalla.

Resultados Luego del procesamiento el robot debe moverse en la dirección que el operario le indica.

Nombre Mostrar video al usuario Resumen Para que la experiencia sea lo más

inmersiva posible, el usuario ha de ver lo que el robot tiene al frente. Esto se hace por medio de un servidor de video que captura y envía a un cliente las imágenes tomadas de una cámara web embarcada en el robot.

Entradas -- Resultados Se muestra en la pantalla del cliente,

proyectada en una pantalla, el video que captura la cámara web posicionada al frente del robot

Nombre Mostrar información sensorial local del robot.

Resumen Para dar más información al usuario de lo que sucede en el entorno local del robot, se muestra en pantalla un radar 2D con una representación de lo ubicado al frente del robot. Igualmente se muestran marcas que indican la distancia a los que se encuentran estos objetos.

Page 17: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

17

Entradas -- Resultados En la pantalla del cliente, en la parte

superior derecha, se muestra un pequeño recuadro en donde se ubica un radar. Éste muestra una representación e indica distancias de los objetos que están frente al robot. Las distancias abarcadas van desde los 20 cms hasta los 4 metros, aproximadamente.

Nombre Evitar peligro para el robot. Resumen Mantener la integridad del robot

teleoperado es una prioridad, por lo que evitar que éste sufra daños es primordial. El robot debe darse cuenta automáticamente que está en peligro, ya sea por objetos cercanos o por bloqueo de llantas, y debe actuar, obviando los comandos del operario, de acuerdo a la situación de tal manera que evite el peligro. Una vez finalizada la tarea se vuelve a dar control al usuario.

Entradas • Objeto cercano (<50cms). • Bloqueo de llantas.

Resultados El robot se mueve evitando el obstáculo. En el momento de esta tarea, el operario no tiene el control del robot. Una vez finalizada vuelve a él.

3.2.2 Requerimiento no funcionales

Tipo Compatibilidad Descripción La cámara utilizada en el robot debe ser

compatible con DirectShow.

Tipo Disponibilidad Descripción El robot puede moverse libremente por el

entorno de exploración siempre y cuando esté conectado a una red en la que se puede comunicar con el sistema central.

Page 18: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

18

4. DESARROLLO DEL DISEÑO

El proyecto se ha diseñado para ser una integración de varios subsistemas. Cada uno de

éstos con responsabilidades específicas. Funcionalmente, se tienen tres subsistemas: un

subsistema de captura de movimiento (con su respectiva detección gestual), un

subsistema de captura de video, y otro subsistema de robot. Para unir éstos, se ha

diseñado un sistema central que se encarga de gestionar estos tres subsistemas.

Figura 1. Estructura de solución final. División funcional.

Los cuatro componentes corresponden específicamente a cada una de las funciones que

hacen que el proyecto sea aplicable: la detección gestual, como sistema de interacción. La

captura de video para retroalimentar al usuario (junto con las detecciones láser) y el

sistema robot, como elemento a teleoperar.

Cada componente del diseño es un sistema distribuido entre una componente específica y

el sistema central, mediante varias arquitecturas básicas de cliente-servidor. La idea del

Captura video Sistema central

Robot Detección gestual

Información de los marcadores del traje

Recibir comando

Ejecutar comando

Identificación del gesto

Enviar comando

Recibir imagen Construir interfaz

Enviar datos láser

Obtener imagen

Enviar imagen

Recibir datos

Page 19: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

19

diseño es desacoplar tecnologías de tal manera que se pueda cambiar de implementación

fácilmente, por si se quiere mejorar las prestaciones de alguno de éstos.

El despliegue de las tareas de los subsistemas se hace sobre cuatro máquinas diferentes.

En total son 2 computadoras (una de ellas obligatoriamente un laptop), un servidor y un

robot. El servidor es el que tiene las herramientas necesarias para obtener información de

movimiento del usuario, La laptop contiene lo necesario para la implementación de un

servidor de video, que a su vez está montado sobre un robot (que envía información

sensorial láser). Y un computador, que está conectado a un proyector y muestra la

retroalimentación al usuario (construir interfaz), además de acoplar los sistemas.

Un diagrama de despliegue donde se muestra ésta información se ve en el siguiente

diagrama.

Figura 2. Estructura básica de la solución final. Diagrama de despliegue.

En las figuras 3 y 4 se muestran varios usuarios en el ambiente de trabajo normal. Se ve el

área de uso delimitado por las cámaras infrarrojas, del sistema de captura de movimiento,

así como la proyección (en la pared haciendo pruebas o en la pantalla del escenario final)

Sistema central Robot/Laptop

Captura de movimiento

Información de los marcadores del traje

Recibir comando

Ejecutar comando

Identificación del gesto

Enviar comando

Recibir datos

Recibir imagen Construir interfaz

Enviar datos Obtener

imagen

Enviar imagen

Page 20: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

20

de la retroalimentación provenientes del sistema central. El usuario se posiciona, dentro

del área de interacción, donde más cómodo se siente, mirando hacia la proyección

utilizando un traje especial de licra que tiene unos marcadores LED.

Figura 3. Usuario probando el sistema, usando el traje de captura de movimiento en el espacio delimitado por éste sistema. En este caso, el frente se encuentra mirando a la pared, donde se está proyectando la imagen de retroalimentación proveniente del robot.

Page 21: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

21

Para mayor detalle, a continuación se presenta un desglose de cada uno de los

subsistemas funcionales, así como de las partes que los componen y de los

usuario/elementos que intervienen en ellos.

4.1 Subsistema de Detección/Identificación Gestual

Este subsistema es el encargado de interpretar los movimientos hechos por el usuario. Si

el gesto hecho por éste hace parte del abanico de movimientos aceptados, el subsistema

se encarga de traducirlos a comandos que entienda el robot. En caso contrario,

simplemente los omite. Para entender el funcionamiento del mismo, se muestra en la

Figura 4. Usuario en ambiente de interacción final. En este caso, se usa una pantalla en donde se muestra la retroalimentación del robot. El área de trabajo es la misma pero con una

orientación diferente.

Page 22: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

22

figura 5 una representación de caja negra en donde se ven las entradas y salidas básicas

del subsistema.

Figura 5. Diagrama de caja negra de subsistema de detección/identificación gestual.

Los actores y elementos que intervienen en el manejo de este subsistema son los siguientes:

• Usuario • Sistema Impulse Motion Capture de PhaseSpace • Sistema central.

4.1.1 PhaseSpace Impulse Motion Capture System

El IMPULSE, es un sistema de captura de movimiento de la empresa PhaseSpace [7]que

provee las herramientas (hardware y software) necesarias para capturar datos de

movimiento a un bajo costo. Es el finalmente escogido y se basa en la lectura de unos

marcadores infrarrojos LED por medio cámaras infrarrojas. El sistema entrega la posición

3D de cada uno de los marcadores a 480 cuadros por segundo.

ESPECIFICACIONES

Dimensiones cámara 108 mm x 83 mm x 57 mm

Peso cámara 227 gr

Resolución de pixel 3600 x 3600

Megapixeles cámara 12.4

Subsistema de captura de movimiento

Movimiento gestual (usuario)

Comando de movimiento (al robot)

Page 23: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

23

Campo de visión 60 grados

Número de marcadores 256 independientes

Dimensiones marcador 20 mm x 14 mm x 3.2 mm

Peso marcador 4.5 gr

Frecuencia de captura 480 Hz (frames/sec)

Latencia 10 ms

Según el fabricante, los datos obtenidos por el sistema son tan confiables que no es

necesario agregar ninguna etapa de filtrado de datos. Esto hace que, a pesar de ser

relativamente económico, se acerque, en prestaciones, a sus homólogos más costosos.

El sistema completo del laboratorio consta de los siguientes elementos (Figura 6):

• Cámaras Infrarojas (8 unidades): El conjunto de cámaras identifican las posiciones

de los leds que usa el usuario.

• Marcadores infrarojos LED (6 unidades): Son los marcadores que se colocan en el

traje del usuario a nivel del brazo para identificar sus gestos.

• Traje de marcadores (1 unidad): Traje de licra en donde se posicionan y sostienen

los marcadores LED. En el proyecto, solo era necesario que el usuario se pusiera el

brazo derecho.

• Barra de calibración (1 unidad): Elemento rígido con marcadores LED que utiliza el

sistema para su calibración. Su uso se describe con más detalle en el apéndice C.

• LED Base Station: Este dispositivo es el encargado de sincronizar los “LED

controllers” con el servidor, además de transmitir nuevas configuraciones.

• LED Controller: transceptor RF que utiliza un microprocesador para controlar los

LEDs (hasta 72 en cada uno). Es el encargado de almacenar las configuraciones de

los marcadores, y de darle energía a los mismos.

• Servidor: Contiene todos los programas necesarios para el manejo del sistema.

Viene de fábrica con el sistema operativo SlackWare, una distribución de Linux.

Page 24: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

24

Figura 6. Dispositivos del sistema PhaseSpace IMPULSE (de arriba a abajo y de izquierda a

derecha): cámara infraroja, marcador infrarojo LED, traje de marcadores, barra de calibración, LED

Base Station, LED Controller, servidor.

Page 25: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

25

4.1.2 Configuración del sistema Impulse de PhaseSpace

La configuración del sistema es relativamente sencilla pues está diseñado para que el

servidor sea el que maneje absolutamente todo. A éste se conectan las cámaras en serie a

un puerto de red de los muchos que tiene el servidor. Igualmente, se conecta la estación

base. Los LED Controllers, por otro lado, son cargados por el usuario a la hora de hacer la

captura de movimiento. Solo es necesario conectarlo al servidor, por medio de la estación

base, a la hora de configurarlo (proceso que se describe en el anexo B).

4.1.3 Software de apoyo del subsistema de captura de movimiento

El sistema de captura de movimiento consta de tres tipos de aplicación: uno gráfico al

usuario, un servidor OWL, y un sistema de configuración. El primero es el encargado de

calibrar (con la aplicación de calibración) y mostrar los datos de manera visual (master). El

segundo es el que extrae los datos y los deja a disposición de las aplicaciones cliente. Y el

tercero es el que configura el sistema en su totalidad.

El software utilizado como apoyo al subsistema consta de los siguientes elementos (Figura

8):

Figura 7. Topología del sistema de captura de movimiento. Imagen tomada de [7].

Page 26: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

26

• Sistema de calibración: es el encargado de sincronizar, calibrar y ajustar los

diferentes componentes utilizados. Es el que detecta el número de cámaras

utilizadas y el que termina identificando la orientación de éstas. La manera como

se calibra el sistema es descrita en detalle en el apéndice C.

• Master:Actúa como el cliente “primario” del sistema IMPULSE. Se conecta al

servidor OWL y tiene como propósito grabar una secuencia de movimientos,

guardándolos en tipos de archivos .RPD o .C3D. Al ser el cliente primario, tiene la

posibilidad de que otros clientes se conecten a él para adquirir información. Sin

embargo, por simplicidad, en este proyecto no se utilizan estas posibilidades, sino

que el cliente creado se comunica directamente con el servidor OWL. Sin embargo,

ha sido empleado para verificar que el funcionamiento del sistema sea el correcto.

• Servidor OWL: es una aplicación que corre desde el arranque del sistema. Éste

toma los datos obtenidos por las cámaras infrarrojas y los procesa para hacerlos

disponibles a aplicaciones cliente por medio de una conexión TCP.Es posible

conectarse directamente a este servidor haciendo un programa en C, utilizando el

API que provee el fabricante. Sin embargo, se considera más práctico utilizar una

solución estándar como el VRPN.

• Sistema de configuración: es la interface principal para manipular y adaptar el

dispositivo a una disposición específica. Está escrito en PHP, y puede ser accesado

por medio de cualquier navegador web, tanto local como remotamente. En él se

configuran diferentes aspectos como la cantidad de “LED drivers” a utilizar,

además de la cantidad y disposición de los marcadores LED. La manera de

configurar el sistema IMPULSE se explica detalladamente en el anexo B.

Page 27: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

27

Figura 8. Software de apoyo del sistema PhaseSpace IMPULSE (de arriba a abajo y de izquierda a

derecha): Sistema de calibración, Master, Sistema de configuración.

4.1.4 VRPN

VRPN, como es descrito por sus creadores, “es un conjunto de clases dentro de una

librería y un conjunto de servidores diseñados para implementar interfaces de red

transparentes entre aplicaciones y dispositivos físicos (tracker, etc.) en sistemas de

realidad virtual. La idea es tener un PC u otro host en cada estación de realidad virtual que

controle los periféricos (tracker, dispositivos de botón, entradas análogas, sonido, etc.).

VRPN provee conexiones entre aplicaciones y todos los dispositivos usando la clase de

servicio apropiada para cada tipo que use una conexión.”

Page 28: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

28

Es decir, VRPN ofrece la posibilidad de manejar dispositivos de entrada remotamente

ofreciendo una capa de abstracción, transparente al usuario, que hace ver el conjunto de

dispositivos como si fueran uno solo.

El sistema IMPULSE de captura de movimiento está soportado como tracker en las

especificaciones del VRPN por lo que usarlo es relativamente sencillo. Es necesario instalar

el servidor VRPN en la máquina en la que está conectado el sistema de captura de

movimiento y crear un archivo de configuración. Éste último se pasa como parámetro a la

hora de ejecutarlo.

Para instalarlo, es necesario hacer una compilación del programa. El fabricante la

proporciona de esta forma pues es necesario utilizar librerías propias de los dispositivos

de entrada a los que se les va a dar soporte. En este caso, PhaseSpace proporciona en su

página web la librería con las cabeceras necesarias.

Una vez instalado, el sistema consta de dos partes: el servidor, y la aplicación cliente. El

primero es el que se encarga de enviar los datos, y el segundo el que adquiere los datos y

los procesa.

SERVIDOR

En el lado del servidor, es necesario crear un archivo de configuración que contenga la

información del dispositivo que se va a utilizar, así como algunos parámetros

característicos. El archivo es un texto plano con extensión .cfg que se ve de la siguiente

manera:

Page 29: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

29

La primera línea tiene tres campos: el primero identifica el tipo de tracker que va a utilizar

VRPN. En este caso el sistema IMPULSE de PhaseSpace; El segundo es el nombre público

del tracker que se va a utilizar a la hora de la adquisición de datos por red en el cliente; El

tercer campo corresponde a la dirección IP del servidor OWL.

La segunda línea tiene igualmente tres campos: el primero corresponde al número de

adquisiciones por segundo (normalmente múltiplo de 30fps). El segundo es un

componente binario que indica si luego de leer los datos más recientes se descartan las

adquisiciones anteriores (1 para descartarlos, 0 para conservarlos). El tercer campo

también es un componente binario e indica si el sistema se va a comportar en modo

esclavo (1) o en modo maestro (0). La diferencia entre los modos es que el modo maestro

hace que el sistema se conecte al servidor OWL directamente, mientras que el modo

esclavo lo hace por medio de una aplicación cliente, como el Master.

Las líneas siguientes definen, y configuran, la lista de marcadores que se van a utilizar en

la aplicación. Éstas empiezan con la etiqueta <owl> y tienen la siguiente estructura:

Número de sensor : Tipo de marcador ID_LED

La manera de ejecutar el servidor con el archivo de configuración, en la máquina utilizada

es la siguiente:

cd vrpn_phasespace7.13/vrpn/server_src/pc_linux ./vrpn_server –fconfiguracionPhase.cfg

CLIENTE

Page 30: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

30

El lado cliente es escrito en C++ y se encarga de pedir los datos, remotamente, para ser

procesados. Es relativamente sencillo el manejo del sistema pues solo es necesario utilizar

un objeto de tipo vrpn_tracker_remote que se encuentra en vrpn_tracker.h.

El objeto mencionado se configura pasándole al constructor una cadena de caracteres que

tiene la estructura: “nombre_publico@tcp://<dirección ip>”. Luego, simplemente se le da

el nombre a la función de callback que va a manejar los cambios en el tracker. Con esto, se

deja la aplicación en un loop que esté llamando constantemente al “mainloop” del

tracker.

Ahora, la función de callback se llama automáticamente cada vez que hay un cambio en

las componentes de los marcadores del tracker de VRPN. A ésta función le entra un objeto

de tipo vrpn_TRACKERCB que es la que finalmente contiene la información de la posición

de los marcadores.

Page 31: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

31

El objeto vrpn_TRACKERCB tiene todos los atributos necesarios para el manejo de la

información. De éste, se puede sacar el número de sensor, la posición x, y, y z, entre otras

cosas útiles al usuario.

4.2 Subsistema de captura de video

Este subsistema es el encargado de dar retroalimentación visual al usuario. La idea es

tener una cámara que transmita, en primera persona, imágenes actualizadas provenientes

del frente del robot. Para entender el comportamiento funcional del mismo, se muestra

en la figura 9 una representación de caja negra en donde se ven las entradas y salidas

básicas de este subsistema.

Figura 9. Diagrama de caja negra de subsistema de captura de video.

Los elementos implicados en este subsistema son:

• Laptop. • Cámara de Video Logitech Quickcam Pro 9000. • Sistema central.

Subsistema de captura de video Imagen capturada remotamente

Imagen lista para ser mostrada en el cliente

Page 32: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

32

4.2.1 Cámara de video Logitech Quickcam Pro 9000

La cámara de video utilizada es la Quickcam Pro 9000 fabricada por Logitech [12]. Esta es

una cámara web de altas prestaciones capaz de grabar video fluido en alta definición

(720p) así como tomar fotos de 8 megapixeles. Tiene auto focus de precisión y un

micrófono con cancelación de ruido. Además, esta cámara es compatible con directshow,

requisito indispensable para el manejo del video en la aplicación servidor del sistema

embarcado en el robot.

4.3 Subsistema de Robot

Este subsistema es el encargado de recibir y ejecutar los comandos de movimiento del

robot móvil, así como de transmitir a la aplicación cliente los datos obtenidos del sensor

láser. El funcionamiento básico del mismo se ve en la figura 9 donde se muestra una

representación de caja negra en donde se ven las entradas y salidas básicas de este

subsistema.

Figura 10. Diagrama de caja negra de subsistema de robot.

Los elementos involucrados en este subsistema son los siguientes:

• Robot Pioneer P3DX

• Sensor Láser hokuyo URG-04LX

Subsistema de robot Comandos de movimiento

Datos de posición de los sensores láser (en el cliente)

Page 33: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

33

• Sistema central

4.3.1 Robot Pioneer P3DX

El P3DX es un robot diferencial fabricado por Mobile Robots Inc. [10]. Este robot se

caracteriza por su fácil manejo y puesta a punto. De fábrica, el robot viene equipado con

motores en cada rueda, llantas de 19 centímetros, cuerpo de aluminio, 8 sensores de

ultrasonidoybaterías. En cuanto a software, viene equipado con el kit de desarrollo

compuesto por los siguientes elementos:

LibreriasCore de Aria.

Simulador “MobileSim”.

MobileEyes.

Mapper 3 (Basic).

Figura 11. Robot P3DX. Tiene embarcado una tarjeta de red inalámbrica y un sensor laser ubicados en la parte superior del robot. Adicional a esto, se ha acondicionado un computador portátil con una cámara web Logitech para el manejo del video.

Page 34: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

34

En el proyecto, se van a utilizar las funciones más básicas de movimiento: Girar izquierda,

girar derecha, moverse hacia adelante, y moverse hacia atrás. Por sí solo, el robot móvil

no cuenta con muchos sistemas de información sensorial. Tiene unos sensores de

ultrasonido que toman lecturas de proximidad, pero este sensor no suele ser muy

confiable. El robot utilizado en el laboratorio cuenta con dos sistemas adicionales

descritos en secciones más adelante (sección 4.1.4 y capítulos 4.1 y 5, para ser precisos)

que corresponden a un sensor láser, para medidas de proximidad más fiables, y un

sistema de captura de video que brinda información sensorial adicional.

4.3.2 Sensor Láser Hokuyo URG-04LX

El HOKUYO URG-04LX [11] es un sensor láser de altas prestaciones utilizado

principalmente en robótica. Este sensor ofrece interfaces de conexión serial (RS-232) y

USB para proveer los datos de la escaneada. El campo de visión es de 240 grados con una

resolución de 0.32 grados a un frecuencia de 10Hz. Es capaz de leer distancias desde los

20mm hasta los 4 metros. Por ser usado en robots autónomos, ha sido pensado para que

consuma muy poca potencia (2.5W). Las especificaciones completas se muestran en la

tabla a continuación.

En el proyecto, se utiliza este sensor para dar información sensorial del ambiente local del

robot. Las lecturas obtenidas se muestran al usuario en un radar,logrando que éste

Figura 12. Sensor Láser Range Finder HOKUYO URG-04LX.

Page 35: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

35

identifique más fácil y eficazmente distancias de los objetos que tiene al frente. El campo

de visión usado es de 160 grados (aunque el láser permita más) para que la estructura de

montaje no interfiera con las lecturas.

4.4 Sistema central

Este sistema es diferente a los demás. Está relacionado con todos los subsistemas pues

tiene componentes de cada uno, como se ve en el diagrama de despliegue. Por el lado del

video, éste es el que tiene el cliente que pide (y procesa) la imagen enviada desde la

cámara. Por otro lado, pide los datos del láser como coordenadas rectangulares. Y por el

lado de la detección gestual, es en este sistema donde se encuentra el cliente que pide los

datos de los marcadores y hace la detección del gesto. Todos estos subprocesos son

considerados parte de los otros subsistemas, por su división funcional. Aun así vale aclarar

que es en este sistema donde se ejecutan. La responsabilidad del sistema central, que no

está ligada a los otros subsistemas, es el que se encarga de poner de manifiesto las

entradas de video y láser en una proyección para retroalimentar al usuario. Se muestra el

video, como retroalimentación principal, y se muestran los puntos del láser en un radar en

la esquina superior derecha. En la siguiente figura, se encuentra la representación de caja

negra donde se muestran las entradas y las salidas del sistema.

Figura 13. Diagrama de caja negra del sistema central.

Sistema central

Imagen de video Retroalimentación

(al usuario) Puntos/coordenadas del laser

Page 36: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

36

4.5 Alternativas de diseño

Como alternativas de captura de movimiento se tenía otro sistema basado en esferas

reflectoras. El sistema seleccionado se utilizó ya que ofrece una mayor precisión y

facilidad de calibración. En cuanto al robot, otro modelo del robot seleccionado

proporcionaba la funcionalidad del servidor de video con una cámara integrada, el cual no

fue posible utilizar debido a fallas técnicas. Existían además otros modelos disponibles de

robots en el laboratorio, sin embargo no ofrecían una plataforma adecuada para

transportar una laptop.

Page 37: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

37

5. IMPLEMENTACIÓN

La implementación del proyecto está basada en una arquitectura de Cliente-Servidor en la

cual el procesamiento se realiza en el cliente y el servidor simplemente ejecuta

instrucciones y proporciona información. Este modelo fue seleccionado ya que el robot en

sí únicamente puede realizar las tareas antes mencionadas y cualquier lógica debe ser

implementada en un cliente de control.

Debido a que el robot seleccionado no proporciona ninguna imagen de navegación por sí

mismo, se tomó la decisión de implementar un servidor de video que proporcione,

mediante el uso de una cámara web, la vista del robot. De modo que la implementación

consta de dos servidores en el robot y un cliente para ambos.

La secuencia que debe seguir el programa principal del sistema central debe tener en

cuenta una inicialización del sistema, conexión con los servidores correspondientes, un

ciclo principal y un cierre apropiado. En éste ciclo se debe tener en cuenta la interacción

con cada uno de los servidores del sistema, a saber: el servidor del sistema de captura de

movimiento, el servidor del robot y el servidor de video.

Page 38: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

38

Como se puede observar en el diagrama anterior, la implementación propuesta se divide

en varios elementos que conforman la solución. Debe existir un proceso que determine la

posición del usuario, con el objeto de almacenar el comando a enviar al robot, debe existir

un proceso que reciba las imágenes del servidor de la cámara y las almacene para luego

ser utilizadas y debe existir un proceso que construya la ventana principal basado en la

imagen almacenada y las lecturas del láser.

Figura 14. Diagrama de secuencia del sistema central. Se observa la inicialización de componentes, conexión con servidores, el ciclo principal, y la condición de salida. La transición de estado se expresa verticalmente, mientras que subprocesos se expresan horizontalmente. Estos subprocesos son ejecuciones ligadas directamente a su estado e implican salidas del sistema, ya sean a la pantalla del usuario o al robot.

Fin

SI

NO Condición de salida

Leer teclado

Construir y pintar la ventana principal

Imagen actual

Solicitar la imagen de la cámara

Lecturas del láser

Solicitar las lecturas del láser

Comandos de movimiento

Detectar la posición del usuario

Solicitar la posición de los marcadores

Conexión con servidores

Inicio

Page 39: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

39

La condición de salida la determina el usuario sobre la máquina cliente. Basta con

presionar [Esc] para dar la instrucción de detener la aplicación, la cual envía un comando

de salida al servidor de imágenes, cierra las conexiones con los servidores y finaliza su

ejecución.

5.1 Subsistema Detección/Identificación Gestual

Adicional al servidor del robot, el sistema de captura de movimiento tiene a su vez un

servidor que proporciona un medio de interacción con dicho sistema. La aplicación debe

proporcionar un mecanismo de comunicación con este sistema con el objeto de obtener

las lecturas del mismo y determinar la acción correspondiente. Éste mecanismo consiste

en enviar peticiones a través del protocolo TCP solicitando las posiciones de los

marcadores. Una vez se obtienen estas posiciones x, y, z, en milímetros, es posible

determinar el gesto que el usuario está realizando.

Figura 15. Usuario usando el sistema. Éste tiene el brazo extendido al frente, posición que indica movimiento del robot en esta misma dirección.

Page 40: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

40

Lo primero es el proceso que determina la posición del usuario. Debido a la simplicidad de

las instrucciones a enviar, la solución más sencilla a éste problema es utilizar un vector de

dirección del brazo que permita determinar, respecto a unos ejes relativos, la intención

del usuario. Ya que no se puede esperar que todos los usuarios realicen la misma postura

exactamente igual cada vez, el sistema debe ser robusto ante variaciones en la postura del

usuario.

Dicho esto, el proceso a seguir es el siguiente: primero se determinan cuales lecturas de

los marcadores representan los extremos del brazo, lo cual es necesario ya que en ciertas

posiciones no se obtienen lecturas de todos los marcadores, una vez hecho esto se traza

un vector entre las posiciones de los marcadores extremos. Teniendo un vector, se puede

determinar la “dirección dominante”, siendo esto la dirección caracterizada por la

componente vectorial x, y o z que posea mayor magnitud. Una vez se obtiene la dirección

dominante, se puede establecer la intención del usuario dada la calibración del sistema. Es

decir, la ubicación del usuario supone los ejes X e Y alineados con la pantalla de

visualización y el eje Z en dirección saliente de la misma (hacia atrás).

Bajo esta convención, por ejemplo, si el usuario desea dar la orden de avanzar, debe

apuntar su brazo hacia adelante, lo que para el sistema sería el eje Z negativo, y esto se

traduce en una componente Z dominante en dirección negativa. Debido a esto, la posición

espacial del usuario se torna irrelevante siempre que éste se encuentre observando la

pantalla de visualización.

Una vez se conoce la intención del usuario se debe almacenar la información para que el

comportamiento de control del robot pueda enviar el comando correspondiente. Aunque

la ejecución del comando se realice asíncronamente, es posible inyectar información a

dicha ejecución para realizar la acción pertinente.

5.2 Subsistema de Captura de Video

El servidor de video se basa en la tecnología de directShow de Microsoft. La captura de

video se realiza mediante un grafo de filtros de esta tecnología. Cada filtro proporciona

Page 41: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

41

una funcionalidad necesaria para capturar el video, haciendo la captura independiente de

la cámara web utilizada, siempre que ésta sea compatible con directShow, y dejando el

manejo de controladores al sistema operativo.

El grafo base consta de cuatro filtros. El primero proporciona acceso a la cámara web, la

cual puede ser cualquier cámara web conectada al sistema que sea compatible con

directShow. Mediante una directiva de la librería, es posible obtener un filtro vinculado

con la cámara web predeterminada. El segundo filtro obtiene las imágenes de la cámara

en un formato base de directShow, un AVI. Esto último conlleva al uso del tercer filtro, el

cual es necesario para tener acceso a los datos de la imagen. Finalmente se utiliza un filtro

de “rendering” o visualización, el cual pinta en pantalla la imagen obtenida. Este último

filtro fue reemplazado en la aplicación por un “null-renderer”, el cual no pinta en pantalla

la imagen sino que permite tener acceso al buffer de memoria que contiene la imagen a

pintar, de este modo es posible enviarla al cliente.

Una vez se obtiene la imagen, es necesario enviarla al cliente. Para esto se utilizaron

paquetes UDP, protocolo que permite transmitir audio y video a gran velocidad,

sacrificando calidad del video por velocidad de transmisión. Debido a una restricción del

protocolo, es imposible enviar paquetes de un tamaño superior a 64kB, por lo que se debe

segmentar la imagen en paquetes de igual tamaño para reconstruirla del lado del cliente.

Luego de una serie de pruebas, se determinó que el tamaño idóneo para la transmisión es

de 15360 bytes, lo que permite segmentar la imagen en exactamente 60 paquetes de este

tamaño.

Figura 16. Grafo base de directShow utilizado para la captura de video.

Page 42: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

42

Sabiendo que el robot ejecutará la instrucción deseada, es necesario obtener la imagen

actual. Para ello el cliente se la solicita al servidor, quien envía la información cruda que

obtiene de la cámara. Ya que no se garantiza que todo paquete enviado llegue al destino,

la imagen anterior remplaza los paquetes perdidos en el caso que se obtenga una imagen

parcial.

Teniendo la imagen actual, tan sólo es necesario obtener las lecturas del láser para pintar

en pantalla la situación actual. El láser obtiene un vector de distancias, correspondientes a

las lecturas tomadas para distintos ángulos desde el centro del láser. Teniendo esta

información y la imagen, es posible pintar la ventana principal, la cual consta de la imagen

actual en el fondo y un “radar” en la esquina superior derecha, el cual muestra las lecturas

tomadas del láser respecto al robot.

A continuación se presenta una imagen con la retroalimentación proporcionada

Page 43: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

43

5.3 Subsistema de Robot

El cliente del robot está en una arquitectura basada en comportamientos y el

procesamiento de la misma se realiza asíncronamente, requiriendo la definición de un

único comportamiento personalizado que ejecute el comando de dirección dependiente

Figura 17. Comparación vista externa y vista del robot.(Arriba) Interfaz gráfica de la aplicación. Se puede observar en la esquina superior derecha un radar con las detecciones del láser provenientes de objetos posicionados a menos de 4 metros del robot. Cada línea circular en el radar representa 1 metro de distancia al robot con un ángulo de visión de 160°. Arriba se muestra lo visto desde el robot. (Abajo) Se muestra una imagen de la misma escena tomada desde fuera del robot.

Page 44: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

44

de las variables internas. Los demás comportamientos a utilizar son definidos por la

librería del fabricante y tienen mayor prioridad de ejecución, ya que estos

comportamientos tienen como propósito la seguridad del robot.

El comportamiento antes mencionado sencillamente enviará el comando de avanzar a

velocidad constante, rotar hacia la derecha, rotar hacia la izquierda o retroceder

dependiendo del gesto que haya sido detectado. Éste comportamiento sólo será

ejecutado si ninguno de los comportamientos del fabricante utilizados se encuentra en

ejecución.

Los comportamientos del fabricante utilizados son, en orden de prioridad: “Stallrecover” y

“Avoidobstacle”. El primero se encarga de “sacar de aprietos” al robot en caso de que los

comando enviados no puedan ser ejecutados. Básicamente intenta retroceder una

distancia aleatoria dentro de un rango y luego girar un ángulo aleatorio dentro de un

rango. El segundo impide una colisión del robot contra algún obstáculo mediante lecturas

de láser, teniendo en cuenta una distancia umbral de 50cm de evasión de un objeto.

Figura 18. Implementación móvil seleccionada. Se coloca una portátil sobre el robot para complementar visualmente la información proporcionada por el robot. Éste equipo cuenta con una cámara web, la cual proporciona las imágenes.

Page 45: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

45

5.4 Resultados esperados

El fundamento principal de este proyecto es mejorar la interacción del usuario con el

robot, tornando al sistema de control en algo sencillo y divertido de usar. Dicho esto se

espera que la interacción con el sistema sea agradable para el usuario, que sea seguro

para tele-operar el robot, que tenga un buen tiempo de respuesta, que proporcione

información de calidad con un mínimo retardo para actuar rápidamente, y que presente

una gran estabilidad de comunicación con el robot.

Dicho esto se espera tener una retroalimentación positiva de los usuarios de prueba con

respecto a los aspectos antes mencionados. El sistema propuesto debe satisfacer esos

requerimientos para ser considerado exitoso.

En cuanto a la implementación, se espera que el robot tenga un buen rango de

movimiento. Aunque estamos sujetos al alcance que tenga la conexión inalámbrica a la

red. Y que la respuesta de la retroalimentación sea aceptable, teniendo en cuenta que se

están usando webcams.

Page 46: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

46

6. VALIDACIÓN

6.1 Método

Para verificar la experiencia de usuario se van a realizar pruebas de campo con el sistema

total funcionando. La idea es que personas ajenas al proyecto, y de diferentes niveles de

conocimiento y familiaridad, se coloquen el traje de captura y utilicen el sistema de la

manera que consideren apropiada. Se les dará unas indicaciones previas, así como un

camino por el que el robot puede ser movido libremente. El robot debe recorrer una

trayectoria de aproximadamente40 metros por un camino pre-definido para luego

regresar al lugar de pruebas. Al final de la tarea, el usuario evaluaráel sistema por medio

de una encuesta corta, descrita más adelante.

La validacióntotal del sistema (tarea y encuesta), por usuario, se planea de

aproximadamente 15 minutos. Lo suficiente para darse una idea de las posibilidades de

interacción del proyecto, pero sin llegar a ser molesta al sujeto de pruebas.

Los puntos que se van a evaluar en la encuesta son: facilidad de manejo, comodidad a la

hora de usar el sistema, viabilidad, comparación con otras técnicas de interacción, puntos

fuertes, puntos débiles a mejorar, y apreciación general del proyecto.

Para comparar la eficacia de la solución, se tendrá en cuenta un recorrido realizado

mediante el control tradicional como referencia. El tiempo de éste recorrido fue de

aproximadamente 5 minutos con una velocidad media de 266 mm/s. Se tendrá en cuenta

que la velocidad programada en el robot es de 150 mm/s, lo que resultaría en un tiempo

estimado ideal del recorrido de 8 minutos con 53 segundos.

Page 47: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

47

6.2 Encuesta proyecto de grado SISTEMA ROBÓTICO DE EXPLORACIÓN ASISTIDO POR CAPTURA DE MOVIMIENTO

Califique de uno (1) a cinco (5), donde 1 es muy negativo y 5 es muy positivo.

1 2 3 4 5 1. Facilidad para manejar el sistema 2. Comodidad para usar el sistema. 3. Satisfacción en la ejecución de la tarea de exploración 4. Fidelidad en comandos de movimiento. 5. Fidelidad en información sensorial (video + laser)

Marque con una “X” una de las opciones descritas inmediatamente después de la pregunta.

6. Considera que este tipo de sistema (por captura de movimiento) mejora la interacción convencional basada en un control remoto?Si_______ No________

7. Cuál de las siguientes opciones considera punto fuerte del proyecto.

Captura de Movimiento ________ Interacción ________ Información sensorial ________ Concepto general ________

8. Cuál de las siguientes opciones considera punto a mejorar del proyecto.

Captura de Movimiento ________ Interacción ________ Información sensorial ________ Concepto general ________

Page 48: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

48

6.3 Validación de resultados

Figura 19. Aceptación general de la solución. Preguntas de la 1 a la 5 de la encuesta.

Figura 20. Gráfico de apreciación de la aceptación. Mejora, del tipo de interacción. Pregunta 6 de la encuesta.

0,00%10,00%20,00%30,00%40,00%50,00%60,00%70,00%80,00%90,00%

100,00%93,33%

77,78%91,11% 91,11%

75,56%

Aceptación general de la solución

22,22%

77,78%

¿Considera que éste tipo de sistema mejora la interacción convencional?

No

Si

Page 49: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

49

Figura 21. Gráfico de apreciación del punto fuerte del proyecto. Pregunta 7 de la encuesta.

Figura 22. Gráfico de apreciación del punto a mejorar del proyecto. Pregunta 8 de la encuesta.

8,33%

33,33%

25,00%

33,33%

¿Cuál considera el punto fuerte del proyecto?

Captura de movimiento

Interacción

Información sensorial

Concepto general

10,00%

40,00%50,00%

0,00%

¿Cual considera un punto a mejorar del proyecto?

Captura de movimiento

Interacción

Información sensorial

Concepto general

Page 50: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

50

Figura 23. Tiempo empleado por los usuarios de prueba realizando el recorrido de evaluación. El

tiempo promedio es de 12 minutos 44 segundos.

De los resultados de las encuestas se puede deducir el alto grado de aceptación que tuvo

la idea como concepto general. Se ve reflejado en los resultados de la figura 26 en donde

la gran mayoría piensa que el prototipo mejora la interacción convencional. Esto implica, a

su vez, que los usuarios de una u otra forma se sintieron manejando el sistema de manera

más natural que la convencional.

El proyecto, según resultados de la figura 24, tiene varios puntos a favor. A considerar,

principalmente, el concepto general y la interacción, aunque los resultados están bastante

bien repartidos (con solo un 8% de diferencia entre primero y segundo). Se considera que

los usuarios opinaron favorablemente de todos los ámbitos de evaluación exceptuando la

muestra de información. Esto se ve claramente reflejado en los resultados de la figura 25

en donde la mitad de los encuestados votaron negativamente este ítem. No deja de ser

curioso el hecho de que un 25% opinan que la información es punto fuerte del proyecto al

mismo tiempo que es el ítem menos valorado. Esto, al parecer, tiene que ver con los

distintos tipos de información mostrados. Mientras que a los usuarios, en general, se les

hizo incomodo el video mostrado de la cámara del robot, quedaron gratamente

0:00:00

0:02:53

0:05:46

0:08:38

0:11:31

0:14:24

0:17:17

0:20:10

Tiem

po

Tiempo del recorrido

Page 51: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

51

sorprendidos con la implementación del radar laser. Se piensa que los que votaron

favorablemente a este ítem lo hicieron pensando justamente en este último aspecto.

Finalmente, los tiempos de desempeño de las pruebas de campo reflejan una demora

adicional a la solución ideal descrita en el método de validación. Esto se esperaba pues se

utilizó el caso ideal como punto de comparación. Aun así, se considera que los tiempos

obtenidos son bastante aceptables teniendo en cuenta la poca preparación previa de los

usuarios y las fallas de video. En promedio, los tiempos se ubican en los 12 minutos

alejándose por 4 minutos, aproximadamente, del tiempo ideal. Los últimos dos casos

tienen tiempos menores pues coincidieron con un breve periodo de tiempo en el que el

video funcionó más fluidamente.

En cuanto a las expectativas, se puede decir que se cumplieron en su mayoría. Los

usuarios consideraron un paso adelante esta nueva interacción como método viable de

teleoperación, y se tuvo una gran autonomía de funcionamiento del robot, que nunca se

salió del rango de cubrimiento de la red inalámbrica. Lo único achacable, es el hecho de

no haber mostrado con suficiente calidad el video arrojado por el servidor embarcado en

el robot. En ciertos puntos de la prueba no se sabía con exactitud que se tenía en frente,

además que durante el total del recorrido, la latencia del video era de aproximadamente 2

segundos. Esto impedía interactuar de la mejor manera con el robot, pues la interacción

tiene una latencia diferente considerablemente menor (500ms).

Page 52: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

52

7. CONCLUSIONES

7.1 Discusión

Este trabajo presenta una propuesta de un sistema de tele-operación de un robot móvil

dirigido por gestos de movimiento del usuario. El sistema fue validado experimentalmente

con pruebas de usuario en nuestro laboratorio de robótica. De acuerdo a los resultados

obtenidos, el tener un sistema de control no convencional es una idea implementable y

con una aceptación favorable por parte de un diverso grupo de usuarios finales. La

tendencia del público en general es la de aceptar nuevos sistemas de control que

involucren ambientes inmersivos.

En este tipo de sistema se puede lograr una amplia aceptación si se logra diseñar una

interacción sencilla, divertida y que no requiera de una gran capacitación. Como se pudo

observar en los resultados, la interacción obtenida fue aceptada debido en gran parte a la

facilidad de manejo del sistema. Bastaron unas simples instrucciones de uso para que los

usuarios utilizaran satisfactoriamente el sistema.

A pesar de la gran aceptación, un sistema de este estilo debe proporcionar una interacción

fluida para que el concepto general resulte interesante. En este caso particular hay lugar a

una gran mejora al componente de transmisión de video, el talón de Aquiles del proyecto.

Los resultados obtenidos muestran un descontento principal en lo referente al video y la

retroalimentación sensorial, lo cual resalta una gran incomodidad al momento de utilizar

el sistema. Esta debilidad aumenta la latencia del sistema, crítica en un sistema de tele-

operación, que repercute en mayores tiempos en la toma de decisiones por parte del

usuario para realizar una tele-operación fluida.

Page 53: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

53

7.2 Trabajo futuro

Este proyecto se presta para hacer mucho trabajo futuro. Actualmente, se ha estado

trabajando arduamente para encontrar un tipo de control más intuitivo y divertido de

usar. Hasta ahora se han hecho varios intentos, unos más afortunados que otros.

El proyecto se divide en tres grandes áreas en las que se podría hacer un trabajo posterior.

La primera área es la de la retroalimentación del usuario. Se considera que el proyecto

podría mejorar en este aspecto pues se implementó utilizando una cámara web, que

aunque proporciona resultados aceptables, podría ser mejorado. El subsistema

implementado resulta lento al momento de transmitir el video y presenta una gran

pérdida de paquetes, por lo que hay lugar a una gran mejora de este subsistema. Éste tipo

de cámaras suelen tener una respuesta lenta además de tener que hacer tratamientos en

la imagen antes de poder ser mostradas (que implica esfuerzo de máquina). Mejorando el

dispositivo de captura de imagen se podría mejorar la experiencia de usuario. Así lo

indican las encuestas en los puntos a mejorar del proyecto (figura 25) y así lo

manifestaron los usuarios que utilizaron el sistema.

Otra área en la que se podría trabajar a futuro es en el de la interacción. Depende de si es

viable el sistema propuesto se podría pensar en utilizar otro tipo de movimientos para

representar movimiento en el robot, o simplemente utilizar los que ya se tienen pero

agregando otros comandos. Por ejemplo, si se tiene una cámara con movimiento se

podría pensar en que un brazo controle el movimiento propio del robot mientras que el

otro controle el movimiento de la cámara.

Por último, se considera que se podría trabajar en la portabilidad del subsistema de la

captura de movimiento para hacerla útil a otro tipo de aplicaciones. Se podría hacer el

sistema más portable y compatible para ser usada con dispositivos de entrada diferentes.

Es decir, cambiar el servidor de captura de movimiento por un nuevo dispositivo que

proporcione las lecturas necesarias para detectar el gesto del usuario de una manera más

portable.

Page 54: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

54

8. REFERENCIAS

[1] C. Guo and E. Sharlin, “Exploring the use of tangible user interfaces for human-robot interaction: a comparative study,” 2008.[en línea] Disponible en http://portal.acm.org/citation.cfm?id=1357076 [2] A. Steinfeld, T. Fong, D. Kaber, M. Lewis, J. Scholtz, A. Schultz, and M. Goodrich, “Common metrics for human-robot interaction,” Proceeding of the 1st ACM SIGCHI/SIGART conference on human-robot interaction - HRI '06, 2006, p. 33. [3] C.W. Nielsen and M.a. Goodrich, “Comparing the usefulness of video and map information in navigation tasks,” Proceeding of the 1st ACM SIGCHI/SIGART conference on Human-robot interaction - HRI '06, 2006, p. 95. [4] T.H. Song, J.H. Park, S.M. Chung, S.H. Hong, K.H. Kwon, S. Lee, and J.W. Jeon, \A study on usability of human-robot interaction using a mobile computer and a human interface device," Proceedings of the 9th international conference on Human computer interaction with mobile devices and services - MobileHCI '07, 2007, pp. 462-466. [5]F. Prieto, J.E. Hernández, and J.B. Gómez, "Manipulación de robots con base en posturas labiales"Dyna, 2008, pp. 187-198.Disponible en http://redalyc.uaemex.mx/pdf/496/49615419.pdf [6] R.M. Voyles and P.K. Khoslaf, “Tactile Gestures for Human/Robot Interaction,” International Conference on Intelligent Robots and Systemas-Volume 3 – Pittsburgh, Pennsylvania, USA.Disponible en http://www.computer.org/portal/web/csdl/abs/proceedings/iros/1995/7108/03/71083007abs.htm [7]PhaseSpaceMotion Capture | Products, PhaseSpace, http://www.phasespace.com/productsMain.html, Fecha de último acceso: 20 de Julio de 2010. [8] Padilla Andrés“ JUEGO DE REALIDAD ALTERNA MISIÓN S.E.N.E.C.A: Ambiente de interacción: HMD más Tracker,” Universidad de los Andes, 2008. [9]Microsoft Corporation “MSDN Library”, 2010. [en línea] disponible en http://msdn.microsoft.com/en-us/library [10] Intelligent Mobile Robotic platforms for applications, research and rapid prototyping, Mobile Robots Inc., http://www.mobilerobots.com/Mobile_Robots.aspx, Fecha de últimoacceso: 20 de Julio de 2010.

Page 55: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

55

[11] Scanningrangefinder URG-04LX, HOKUYO, http://www.hokuyo-aut.jp/02sensor/07scanner/urg_04lx.html , Fecha de último acceso: 20 de Julio de 2010. [12]QuickCam Pro 9000, Logitech, http://www.logitech.com/repository/1403/pdf/25618.1.0.pdf , Fecha de último acceso: 20 de Julio de 2010

Page 56: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

56

9. APÉNDICES

A. Código fuente

El código fuente del sistema ha sido entregado en formato digital junto con las

dependencias correspondientes. El disco entregado tiene la siguiente estructura:

Software/mainClient

Software/videoCaptureServer

Software/Dependencias

Documentación/Documento.pdf

Page 57: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

57

B. Configuración inicial del sistema de captura de movimiento

El sistema IMPULSE de captura de movimiento de PhaseSpace es relativamente fácil de

usar. Sin embargo, es necesario conocer el funcionamiento del mismo para lograr una

configuración y utilización adecuadas. A continuación se muestran los diferentes aspectos

que consideramos podrían ser de interés a la hora de familiarizarse con el sistema.

1. Energía del sistema

El sistema, al ser inalámbrico, necesita de baterías para funcionar. Esta, precisamente, es

una de las funciones del driver. Normalmente, el sistema tiene una autonomía de entre

dos a cuatro horas de uso continuo (u ocho horas en uso normal). Para cargar el driver se

puede usar la estación base, como se muestra en la imagen, o un tipo de cargador especial

que tiene terminaciones RJ11.

Figura 24. LED Driver conectado a la estación base. Permite esto cargar el driver además de codificar la información.

Page 58: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

58

2. Configuración inicial – Crear perfil

Para cada aplicación que se vaya a crear, que use el sistema, es necesario crear un perfil.

Éste es el que guarda información importante como el número de leds a utilizar, el

número de puerto al que está conectado, etc.

1. El programa de configuración principal del sistema está hecho en php y se ingresa

por medio de cualquier browser, tanto local como remotamente. Simplemente hay

que digitar la dirección ip del servidor (o localhost si es en la misma máquina) y

aceptar. Aparecerá en pantalla una petición de usuario y contraseña. Ésta es

proporcionada a los clientes por phasespace que, por defecto, es “admin” como

usuario y “phasespace” como contraseña. Aparecera una pantalla como la que se

muestra a continuación.

Se escoge la pestaña “LED Devices” que es donde se encuentra la información que se va a manipular. En la parte superior de la pantalla están los pasos necesarios para codificar el “driver” mientras que la parte inferior muestra los diferentes perfiles.

Figura 25. Pantalla principal del sistema de configuración. Pestaña LED devices.

Page 59: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

59

úSi no se ha creado un perfil se debe presionar el botón “create new profile”. Aparece una pantalla en la que se ingresa el nombre del perfil, el número de slots que se van a utilizar, y una pequeña descripción. Se ingresan estos datos y se dáclick a “createthisprofile”.

2. En la siguiente pantalla es donde se ingresa la información de qué tipo de dispositivo es el que va a ser utilizado. En este caso, se elige la opción de “Driver” agregando un nombre a éste, si se quiere. Luego se da click en “AddthisDevice”.

Figura 26. Creación del perfil. Pantalla inicial.

Page 60: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

60

3. En la pantalla que aparece se escribe el nombre de la cadena de leds que se va a

utilizar. Esto hace que se puedan tratar cadenas de manera independiente para

abstraer un poco la información. Así, por ejemplo, se puede tener una cadena que

sea la del brazo izquierdo, y otra que sea la del brazo derecho. También es

necesario agregar el número de puerto físico al que va a ser conectada la cadena,

la cantidad de LEDS que va a tener la cadena, así como su orden. Es importante

anotar que el orden que se da en este paso será el orden definitivo que va a tener

la cadena, por lo que es necesario aprendérsela para reproducirla exactamente en

la conexión de los LEDS del traje (que también tienen números de la A a la Z); Una

vez definida la secuencia se guarda todo presionando “Savethis Driver”.

Figura 27. Creación del perfil. Elección del dispositivo.

Page 61: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

61

Figura 28. Crear perfil. Pantalla de configuración de la cadena de marcadores.

Page 62: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

62

3. Configuración inicial - Codificar

Cada vez que se va a usar el sistema se debe cargar la configuración adaptada a cada

aplicación. A esto lo llaman codificar “encode” y es lo que, finalmente, sube la información

al “LED Driver”. Para hacer esto hay dos pasos simples.

1. En la página principal se ingresa a la sección de “LED Devices” y ahí se da click en

“profileselection” ubicado en la parte superior. Esto hace que aparezca un menú

en el que se debe ingresar hasta un máximo de 4 perfiles. Se verifica que el driver

utilizado, el puerto, y la cadena sean correctas y se presiona “Save”.

Figura 29. Pantalla de codificación. Escogencia del perfil.

Page 63: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

63

2. Una vez más, en el menú principal (sección “LED Devices”) se presiona, esta vez, el botón “Encode”. Esto hace que aparezca un pequeño menú en el que se escoge el driver que se va a configurar (si es que se configuraron varios) así como la potencia a la que se va a transmitir. Una mayor potencia hace que el sistema tenga un mayor alcance. Sin embargo, esto hace que la batería dure menos. Por defecto viene un una potencia de 0.6 que da un buen balance. Se da click en “Encode”. Vale aclarar, que el “LED Driver” a configurar debe estar conectado al servidor por medio de la “Base Station”. Aparecerá un mensaje diciendo que se ha codificado correctamente. Para asegurarse de eso, es aconsejable mirar el “LED Driver”. Si los indicadores luminosos empiezan a girar indican que ha quedado correctamente configurado. Se retira el driver de la estación base y se conecta al traje siguiendo los parámetros con el que fue configurado. Ya no es necesario hacer nada más en el sistema de configuración.

Figura 30. Pantalla de codificación. Se escoge el dispositivo, la potencia, y se codifica.

Page 64: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

64

C. Calibración del sistema de captura de movimiento

Una de las partes críticas del manejo del sistema de captura de movimiento es la

calibración. Esta le permite al sistema hacer mediciones que hacen ajustes de precisión en

los datos. Igualmente, es en esta etapa en donde se definen los ejes y el origen.

Hay dos maneras de calibrar el sistema: el modo básico, y el modo avanzado. El primero,

es un “wizard” que va guiando al usuario mediante pasos sencillos. Sin embargo, se

considera más rápida y práctica la configuración avanzada. Se abre la aplicación,

escogiendo el modo avanzado, apareciendo la siguiente ventana.

Primero se da click en el botón “connect”. El sistema reconoce automáticamente la

cantidad de cámaras conectadas. Como se ve en la imagen, se tienen disponibles, a la hora

de realizar este documento, seis cámaras. Y se enciende la barra de calibración.

Figura 31. Pantalla de calibración. Vista principal.

Page 65: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

65

Luego de la conexión, se elige la opción de “Calibration” en el menú desplegable y la vista

2D, y se presiona el botón “calíbrate”. De esta manera, se empiezan a adquirir los datos

que van a hacer los ajustes. En este paso se utiliza la barra apuntando a cada una de las

cámaras de tal manera que se cubran todos los ángulos de visión de ésta. Los ángulos de

visión se discretizan en el software en cuadros, como se puede ver en la imagen. Cada vez

que una sección de la cámara identifica 4 o más LEDS (identificados como puntos blancos

en el software) se ilumina de verde. La idea de esta parte de la calibración es rellenar la

mayor cantidad de cuadros posibles. Mientras más mejor, sin embargo, es aconsejable

rellenarlos todos para evitar repetir este paso.

Inicialmente, este paso puede llegar a ser tedioso (y lo es!), pero con un poco de práctica

se puede terminar rellenando los cuadros en uno o dos minutos. Como consejo, es bueno

Figura 32. Pantalla de calibración inicial. Etapa en la que se pasa la barra de calibración por cada una de las cámaras. Se han de llenar los cuadros de verde lo más posible.

Page 66: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

66

saber que la parte derecha del rombo son los datos adquiridos a la derecha de la cámara,

la izquierda lo mismo, pero que la parte de arriba y abajo del rombo están invertidos: la

parte de arriba representa los valores adquiridos de la parte de debajo de la cámara y la

parte de abajo lo contrario.

Normalmente, al estar enfocados en una cámara, se toman datos igualmente en las otras.

Por lo que es aconsejable empezar con las cámaras de la mitad. Esto hace que los datos a

tomar en las cámaras de los extremos sean mucho menos, pues ya muchos se han

adquirido.

Una vez iluminados los rombos se da click en el botón “calíbrate”. Con esto, el sistema

empieza la calibración automática de cuatro pasos. A la derecha de la aplicación, se indica

si cada uno de los pasos ha pasado con éxito: debe salir un OK en cada una de ellas.

En el cuadro principal, aparece una representación espacial del sistema en el que se puede

ver la barra en una representación de tres dimensiones.

Figura 33. Pantalla de calibración final. Cuando todo ha salido bien.

Page 67: SISTEMA ROBÓTICOTELEOPERADO POR CAPTURA DE …

67

Por último, hay que indicar los ejes que va a usar el sistema. Dependiendo de éstos, y del

origen, es que los datos van a ser representados. Para hacer esto se elige la opción de

“alignment” en el menú desplegable y se presiona el botón de align. Luego, se debe

colocar la vara de calibración en el punto que se quiere sea el origen. Es importante notar

cual es el marcador de la vara identificada con el número cero, pues es éste punto el que

va a adquirir. Una vez colocada la vara en posición, se da click en “snapshot”. Aparece en

pantalla un punto (donde se encontraba el marcador cero al dar click) con la etiqueta

“origin”. Ahora, es necesario desplazar el cero de la vara hacia la dirección que se desea

sea el eje X. Nuevamente se da click en snapshot. Aparece en pantalla un vector, desde el

origen, con la etiqueta “X”. Finalmente, se desplaza nuevamente la vara en la dirección

que se quiere sea el eje “Z”, nuevamente presionando “Snapshot”. El eje faltante (Y) lo

calcula el software automáticamente haciendo un producto cruz de los vectores unitarios

calculados anteriormente. Se puede comprobar que las direcciones son correctas

comparando las direcciones con la representación cartesiana ubicada abajo a la izquierda.

Se dáclick en “Save” y se cierra el programa.

Con esto, el sistema ha quedado correctamente calibrado y ya puede ser usado

normalmente. El proceso total dura aproximadamente dos o tres minutos y solo es

necesario hacerlo la primera vez que se va a utilizar el sistema (siempre y cuando no se

muevan las cámaras de posición).