sistema de control teleoperado mediante un sensor …

55
SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR KINECT PARA UN ROBOT MOTOMAN YASKAWA CAROLINA CÉSPEDES MARULANDA ALEJANDRO PINZÓN PERDOMO TG. 1521 PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD INGENIERIA DEPARTAMENTO DE ELECTRÓNICA BOGOTÁ D.C 2016

Upload: others

Post on 12-Jul-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR KINECT PARA UN ROBOT

MOTOMAN YASKAWA

CAROLINA CÉSPEDES MARULANDA

ALEJANDRO PINZÓN PERDOMO

TG. 1521

PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD INGENIERIA

DEPARTAMENTO DE ELECTRÓNICA

BOGOTÁ D.C

2016

Page 2: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

2

SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR KINECT PARA UN ROBOT

MOTOMAN YASKAWA

CAROLINA CÉSPEDES MARULANDA

ALEJANDRO PINZÓN PERDOMO

TRABAJO DE GRADO INGENIERÍA ELECTRÓNICA

DIRECTORES

DIEGO ALEJANDRO PATIÑO GUEVARA

INGENIERO ELECTRÓNICO, Ph.D.

IVÁN FERNANDO MONDRAGÓN BERNAL

INGENIERO ELÉCTRICO, Ph.D.

PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD INGENIERÍA

DEPARTAMENTO DE ELECTRÓNICA

BOGOTÁ D.C

2016

Page 3: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

3

PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD INGENIERÍA

CARRERA DE INGENIERÍA ELECTRÓNICA

RECTOR MAGNÍFICO: Jorge Humberto Peláez Piedrahita, S.J.

DECANO ACADÉMICO: Jorge Luís Sánchez Téllez, M.Sc.

DIRECTOR DE CARRERA: Alejandra María González Correal, Ph.D.

DIRECTOR DEL PROYECTO: Diego Alejandro Patiño Guevara, Ph.D.

Iván Fernando Mondragón Bernal, Ph.D.

Page 4: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

4

AGRADECIMIENTOS

Alejandro Pinzón Perdomo

A Dios y mis padres por darme la oportunidad de estudiar y apoyarme en este largo camino. A mi

familia en general, por siempre darme la mano cuando lo necesitaba. A Gilma, Ricardo, Juan

Carlos y Jorge, quienes hicieron parte de esta travesía que termina. A mi primo, Juan Pablo, por

su apoyo y ayuda en tareas varias que favorecieron la culminación de este trabajo de grado. A su

familia, mis segundos padres, quienes siempre me recibieron como un hijo en su casa.

A Carolina, por ser parte de este proyecto y no desfallecer en los momentos más difíciles. A Wilson,

quien fue parte fundamental de este trabajo con su disposición constante. A Diego y todo el

personal del CTAI, quienes siempre me recibieron e hicieron del tiempo dedicado en este proyecto,

ameno y agradable.

Y finalmente a mis directores, Diego e Iván, por su paciencia y regaños; sin ellos nada de esto

hubiera sido posible.

Carolina Céspedes Marulanda

A Dios, pongo en sus manos cada una de mis metas, con sus bendiciones y divina sabiduría, he

logrado lo que ahora soy. A mis padres, por su apoyo, comprensión e infinito amor, por su

compañía en cada uno de los logros que he obtenido en mi vida, su paciencia, dedicación y

asesoramiento, han sido la base para llegar a culminar esta gran etapa. A mi hermana, mi gran

apoyo y consejera, por su amor en cada una de las veces que quise rendirme y lo impidió. A cada

uno de los miembros de mi hermosa familia que con sus voces de aliento me animaban a continuar.

A Camilo, por su amor, cariño y comprensión, por su ayuda en la culminación de este proyecto y

por su constante preocupación y cariño.

A Alejandro, por su compañía en este proyecto y por su dedicación. A cada uno de los miembros

del CTAI, de quienes siempre tuve apoyo y colaboración. A Wilson, por su disposición y paciencia.

Por último un agradecimiento sincero al Ingeniero Diego y el Ingeniero Iván, directores del

presente proyecto, por sus conocimientos, sugerencias y explicaciones constantes que nos llevaron

a la posible culminación del proyecto.

Page 5: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

5

CONTENIDO

1. INTRODUCCIÓN ................................................................................................................. 11

1.1. OBJETIVO GENERAL ............................................................................................................ 12

1.2. OBJETIVOS ESPECÍFICOS ................................................................................................... 12

1.3. CONCEPTUALIZACIÓN ........................................................................................................ 13

2. MARCO TEÓRICO ............................................................................................................... 14

2.1. SISTEMAS TELEOPERADOS ................................................................................................ 14

2.2. ROBOTS INDUSTRIALES ...................................................................................................... 14

2.2.1. ESTRUCTURA MECÁNICA ...........................................................................................14

2.3. CONTROL SERVO VISUAL ................................................................................................... 15

2.4. SOFTWARE IMPLEMENTADO ............................................................................................ 15

2.4.1. SOLIDWORKS ..................................................................................................................15

2.5. SISTEMA DE CAPTURA DE MOVIMIENTO VICON ....................................................... 15

3. OBJETIVOS ALCANZADOS .............................................................................................. 16

3.1. OBJETIVOS ESPECÍFICOS ................................................................................................... 16

4. DESCRIPCIÓN DEL SISTEMA TELEOPERADO ........................................................... 17

5. EXTRACCIÓN DE PUNTOS DE REFERENCIA ............................................................. 19

5.1. CALIBRACIÓN DEL KINECT, ANÁLISIS DE ILUMINACIÓN E INTERPRETACIÓN

DE DATOS ............................................................................................................................................. 19

5.2. EXTRACCIÓN DE PUNTOS DE REFERENCIA Y ANÁLISIS DE DATOS .................... 21

5.3. DESARROLLO DE LA INTERFAZ GRÁFICA DE USUARIO Y ALMACENAMIENTO

DE COORDENADAS ............................................................................................................................ 22

5.4. DEFINICIÓN DE EJES DE REFERENCIA .......................................................................... 24

6. COMUNICACIÓN CON EL ROBOT Y SEGUIMIENTO DE PUNTOS DE

REFERENCIA ............................................................................................................................. 26

6.1. INTERFAZ GRÁFICA MOTOCOM ...................................................................................... 26

6.2. DEFINICIÓN DE ESPACIO DE TRABAJO Y EJES DE REFERENCIA ......................... 28

6.3. ENVÍO DE COORDENADAS .................................................................................................. 30

6.4. PROGRAMACIÓN DEL CONTROLADOR ......................................................................... 32

7. SIMULACIÓN DE SEGUIMIENTO DE PUNTOS DE REFERENCIA .......................... 33

7.1. FUNCIONAMIENTO DEL SISTEMA EN UN ENTORNO DE SIMULACIÓN ............... 35

8. PROTOCOLO DE PRUEBAS Y ANÁLISIS DE RESULTADOS ...................................... 38

Page 6: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

6

8.1. MEDICIÓN DEL ERROR DEL KINECT ................................................................................. 38

8.1.1. ANÁLISIS DEL KINECT CON EL SISTEMA DE SEGUIMIENTO VICON ................38

8.1.2. ANÁLISIS DEL KINECT CON EL SISTEMA DE SEGUIMIENTO VICON ................43

8.2. MEDICIÓN DEL ERROR DEL ROBOT .................................................................................. 45

8.3. MEDICIÓN DEL ERROR DE LA SIMULACIÓN DEL ROBOT ........................................... 49

9. CONCLUSIONES ................................................................................................................. 52

Page 7: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

7

TABLA DE GRÁFICAS

Figura 1. Subsistemas que conforman un sistema teleoperado [7]................................................ 11

Figura 2. Sistema de Teleoperación [2] ......................................................................................... 14

Figura 3. Diagrama de bloques del Sistema teleoperado .............................................................. 17

Figura 4. Calibración sensor Kinect .............................................................................................. 19

Figura 5. Análisis de iluminación- Espacio de trabajo .................................................................. 19

Figura 6. Índice UGR máximo y Niveles de iluminancia exigibles para diferentes áreas y

actividades ..................................................................................................................................... 20

Figura 7. Identificadores de junturas y ubicación en el esqueleto ................................................. 20

Figura 8. Diagrama de flujo- Adquisición de datos mediante el Kinect ....................................... 21

Figura 9. Interfaz gráfica de usuario diseñada ............................................................................... 22

Figura 10. Interfaz gráfica de usuario con datos adquiridos.......................................................... 23

Figura 11. Ejes coordenados del Kinect ........................................................................................ 24

Figura 12. Interfaz gráfica de comunicación original.................................................................... 26

Figura 13. Interfaz de la comunicación con el robot modificada .................................................. 27

Figura 14. Formato de los archivos de texto ................................................................................. 27

Figura 15. Motoman Yaskawa SDA10F- Espacio de trabajo ....................................................... 28

Figura 16. Motoman Yaskawa SDA10F-Medidas espacio de trabajo .......................................... 28

Figura 17. Origen de ejes de referencias brazo izquierdo ............................................................. 30

Figura 18. Origen de ejes de referencias brazo derecho ................................................................ 30

Figura 19. Diagrama de flujo envío de coordenadas al controlador .............................................. 31

Figura 20. Diagrama de flujo programa del controlador ............................................................... 32

Figura 21. Estructura y módulos que componen la simulación ..................................................... 33

Figura 22. Coordenadas esféricas y puntos del robot y eje coordenado del robot en coordenadas

cartesianas ...................................................................................................................................... 36

Figura 23. Comparación entre la posición obtenida por el entorno de simulación y la persona ... 37

Figura 24. Comparación entre la posición obtenida por el entorno de simulación y posición

ejecutada por la persona ................................................................................................................ 37

Page 8: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

8

Figura 25. Modelo de la cámara y la distribución del sistema visualizado en el software Nexus 39

Figura 26. Ubicación de los marcadores en los puntos elegidos sobre las extremidades superiores

....................................................................................................................................................... 39

Figura 27. Espacio de trabajo del Sistema Vicon con su respectivo Sistema coordenado y Sistema

de comparación Kinect con su respectivo sistema coordenado ..................................................... 40

Figura 28. Comparación entre la posición obtenida en la mano izquierda entre el eje X del

Sistema de captura Vicon y el eje X del sensor Kinect. Prueba 1. Anexo 12 ............................... 41

Figura 29. Comparación entre la posición obtenida en el codo izquierdo entre el eje Z del Sistema

de captura Vicon y el eje Y del sensor Kinect. Prueba 1. Anexo 12 ............................................. 42

Figura 30. Comparación entre la posición obtenida en la muñeca izquierda entre el eje Z del

Sistema de captura Vicon y el eje Y del sensor Kinect. Prueba 1. Anexo 12. .............................. 42

Figura 31. Coordenadas Eje X: Mano Izquierda y Mano Derecha ............................................... 44

Figura 32. Coordenadas Eje Y: Mano Izquierda y Mano Derecha ............................................... 44

Figura 33. Coordenadas Eje Z: Mano Izquierda y Mano Derecha ................................................ 44

Figura 34. Mano Izquierda: Coordenadas Eje X [Extraídas y Seguidas] ...................................... 47

Figura 35. Mano Derecha: Coordenadas Eje X [Extraídas y Seguidas] ........................................ 47

Figura 36. Mano Izquierda: Coordenadas Eje Y [Extraídas y Seguidas] ...................................... 47

Figura 37. Mano Derecha: Coordenadas Eje Y [Extraídas y Seguidas] ........................................ 48

Figura 38. Mano Izquierda: Coordenadas Eje Z [Extraídas y Seguidas] ...................................... 48

Figura 39. Mano Derecha: Coordenadas Eje Z [Extraídas y Seguidas] ........................................ 48

Figura 40. Trayectoria obtenida por el robot en el entorno de simulación .................................... 50

Figura 41. Trayectoria obtenida por el robot en un entorno real ................................................... 50

Page 9: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

9

LISTA DE TABLAS

Tabla 1. Restricciones Movimiento del robot debido al espacio de trabajo .................................. 29

Tabla 2. Restricciones Movimiento del Robot debido a su composición ..................................... 29

Tabla 3. Estructura principal y componentes del diseño del CAD ................................................ 35

Tabla 4. Características de los sujetos de prueba .......................................................................... 41

Tabla 5. Traslación de ejes coordenados, del sensor Kinect ......................................................... 41

Tabla 6. Error Relativo y nivel de desempeño del sensor Kinect comparado con el sistema de

captura Vicon en XYZ ................................................................................................................... 42

Tabla 7. Coordenadas Kinect vs Coordenadas Medidas ............................................................... 43

Tabla 8. SUJETO 1 y 2: Error Relativo Mano Derecha e Izquierda en XYZ ............................... 44

Tabla 9. Coordenadas Brazo Izquierdo y Derecho extraídas por el controlador ........................... 45

Tabla 10. Coordenadas Kinect vs Coordenadas Robot ................................................................. 46

Tabla 11. Robot: Error Relativo Efector Final Derecho e Izquierdo en XYZ............................... 48

Tabla 12. Medidas de desempeño del robot con respecto a la simulación .................................... 51

Page 10: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

10

LISTA DE ANEXOS

Anexo 1. Extracción de puntos de referencia (Código de Matlab)

Anexo 2. Extracción de puntos de referencia (Video funcionamiento)

Anexo 3. Comunicación con el robot industrial (Código en Visual Studio)

Anexo 4. Seguimiento de puntos de referencia (Video funcionamiento)

Anexo 5. Medición del error para el Kinect (Archivo en Excel)

Anexo 6. Medición del error para el robot (Archivo en Excel)

Anexo 7. Análisis con sistema de seguimiento Vicon (Video funcionamiento)

Anexo 8. Simulación _Robot_5_poses (Código de Matlab)

Anexo 9. Extructura del robot (CAD SolidWorks)

Anexo 10. Medición del error para la simulación (Archivo en Excel)

Anexo 11. Simulación del robot (Video funcionamiento)

Anexo 12. Análisis del sistema de movimiento Vicon (Archivo en Excel)

Page 11: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

11

1. INTRODUCCIÓN

Actualmente, en Colombia las tareas de alto riesgo son catalogadas como actividades que por naturaleza o

por el lugar donde son ejecutadas, ocasionan una exposición a entornos no habituales. Estas labores son, por

ejemplo: trabajos en alturas, espacios confinados, zonas con altas temperaturas, con energías peligrosas y

trabajos con sustancias químicas peligrosas [1]. Según el informe de la Dirección de Riesgos Laborales del

Ministerio de Trabajo de Colombia en los últimos años [2], se presentó una tasa de muertes entre el 6.09 y

8.96 porciento a causa de accidentes de trabajo; algunas de ellas por falta de mecanismos complementarios

que brinden una mayor seguridad y protección de la integridad física del trabajador. Debido a esto, se han

realizado diferentes investigaciones con el objetivo de crear y/o mejorar sistemas que realicen el mismo

trabajo del hombre manteniendo su seguridad y salud [3].

Uno de estos sistemas es la teleoperación, la cual consiste en un proceso de manejo de dispositivos auxiliares

que evita el contacto directo del ser humano con ambientes inseguros e inestables [4]. El uso de este tipo de

mecanismos se ha evidenciado en campos como la electrónica, comunicaciones, inteligencia artificial,

vehículos terrestres no tripulados, robots de uso oficial, medicina, desmantelamiento de bombas, minas o

sitios de operación inaccesibles [5]. La teleoperación es la operación o gobierno a distancia, por parte de un

ser humano o mejor conocido como teleoperador, de un dispositivo. De esta forma se puede definir un

sistema de teleoperación como aquel que permita teleoperar un dispositivo, que se denominará dispositivo

teleoperado. Esta labor se asemeja a los sistemas maestro-esclavo, en los cuales se tiene un maestro

manipulador, el cual se encuentra en una zona segura donde pueden trabajar fuera de peligro y el

manipulador esclavo situado en un ambiente peligroso, asegurando el bienestar de los operadores [6]. Un

sistema de teleoperación se integra de cinco subsistemas, como se ven en la figura 1, que consta de: operador

humano, maestro manipulador, controlador, manipulador esclavo y el medio ambiente. La finalidad de

cualquier diseño de sistemas teleoperados es proporcionar una transmisión correcta de las señales

(posiciones, velocidades, fuerzas) entre maestro y esclavo para ejecutar la tarea de forma remota [7].

Figura 1. Subsistemas que conforman un sistema teleoperado [7]

Recientemente el Centro Tecnológico De Automatización Industrial (CTAI) de la Pontificia Universidad

Javeriana adquirió el robot Motoman Yaskawa SDA10F, el cual posee dos brazos robóticos con siete grados

de libertad cada uno, que permiten imitar los movimientos de las articulaciones del miembro superior del

ser humano, los cuales pueden ser controlados de forma local o remota. El presente proyecto se enfoca en

la manipulación remota de dicho robot, a partir de la generación de referencias adquiridas por la posición

final de los brazos que son captadas por medio de un sensor Kinect; el procesamiento de estas posiciones y

la obtención de los puntos en X, Y y Z serán los puntos de referencia que se le enviarán al robot para la

ejecución de los movimientos (Robot Industrial Motoman Yaskawa SDA10F).

Este proyecto se realizará en los laboratorios del CTAI, con el cual se quiso generar un beneficio educativo

en cuanto al uso apropiado del robot para posibles desarrollos e implementaciones a futuro. El proyecto

tiene como objetivo generar un control servo visual [8], este tipo de control consta de una cámara la cual

Page 12: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

12

genera las capturas de un entorno definido, luego dichas capturas pasan por un proceso de extracción de

características, que para este caso es el proceso de extracción de las posiciones finales de los brazos. Al

finalizar el proceso de extracción se espera tener las referencias de entrada al lazo de control que se realizó

sobre el robot. Este control es denominado control de doble lazo, un lazo consta del robot y su respectivo

controlador, y el segundo lazo integra el control servo visual que se realizó en este proyecto. El segundo

lazo de control se basa un sistema dynamic look and move, el cual consta de un sistema de visión que se

utiliza para proveer las entradas de referencias y de esta manera ingresar dichas referencias al controlador

de las articulaciones, este controlador utiliza la realimentación de las variables articulares de posición y

velocidad para controlar internamente el robot, es decir, las operaciones son ejecutadas en forma secuencial,

primero “mirar” y luego “mover.

En general, el propósito del proyecto es diseñar e implementar un sistema de control servo visual para dos

brazos robóticos con limitaciones de espacio para un robot industrial Motoman Yaskawa SDA10F. El

desarrollo de este control será implementado en 14 grados de libertad, 7 en cada brazo del robot, junto con

un sensor Kinect. A partir de este control, se medirá el nivel de seguimiento de la posición a la cual llega el

robot con respecto a la posición que ejecutó el operador. Por otra parte, el Kinect, encargado de la parte

visual del sistema de control, debe tener un proceso de calibración definido para obtener medidas con mayor

exactitud [9]. El uso de Kinect mejorará la implementación de la parte visual del control ya que las

extracciones de los puntos obtenidos por él se pueden dar a partir del simulador Matlab por medio de la

herramienta Toolbox para Kinect [10].

1.1. OBJETIVO GENERAL

Extraer e interpretar puntos de referencia de los brazos humanos mediante un sensor Kinect para el diseño

de un sistema de control servo visual del tipo “dynamic look and move” para un robot Motoman Yaskawa

SDA10F que mediante el procesamiento de las imágenes RGB y profundidad de un sensor Kinect, los

actuadores finales del robot, sigan los puntos de referencia dados por los brazos humanos en un espacio de

trabajo limitado.

1.2. OBJETIVOS ESPECÍFICOS

1.2.1. Extracción de los puntos de referencia de los brazos humanos mediante el sensor Kinect con

un error menor al 20 por ciento calculado mediante la diferencia de la posición final de los

brazos del operador y el punto final obtenido por el sensor Kinect.

1.2.2. Comparación del sensor Kinect con el sistema de seguimiento Vicon, anexando fotos y tablas

comparativas, para definir parámetros de desempeño estándar del Kinect.

1.2.3. Seguimiento de los puntos de referencia, extraídos mediante el sensor Kinect, por parte del

robot con un error de posición menor al 20 por ciento entre los puntos finales alcanzados por

los brazos humanos y los puntos finales alcanzados por el robot.

1.2.4. Análisis y comparación de los resultados obtenidos entre la simulación realizada y el sistema

servo visual empleado en el robot, con un error menor al 15 por ciento de los puntos finales

alcanzados en la simulación y en el robot ubicado en el CTAI.

Page 13: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

13

1.3. CONCEPTUALIZACIÓN

A continuación, se hace una breve explicación de lo que se ahondará en cada capítulo del presente libro:

Primero se presenta, en el capítulo 4, una descripción del sistema teleoperado, analizando el diagrama de

bloques diseñado para así explicar a grandes rasgos cómo funciona el sistema y que componentes

importantes se analizan a lo largo del desarrollo.

El capítulo 5 presenta el proceso de extracción de coordenadas por medio de un sensor Kinect; desde la

configuración de las cámaras y modificación de parámetros para la adquisición de imágenes, hasta la

extracción de los puntos del esqueleto definidos en el cuerpo humano y almacenamiento de las coordenadas

XYZ en archivos de texto, para comunicar Matlab con Visual Studio con el fin de realizar el envío de

coordenadas al robot.

El capítulo 6, ilustra el proceso de comunicación y seguimiento de puntos en el espacio por parte del robot

industrial Motoman Yaskawa SDA10F; específicamente, muestra el desarrollo realizado para el envío de

las coordenadas XYZ de cada efector final, definiendo parámetros de espacio de trabajo y restricciones

correspondientes. Además de esto, se muestra el proceso de interpretación de las coordenadas extraídas por

el Kinect y la lectura de las mismas en el controlador del robot industrial. Para ambos capítulos, 4 y 5, se

definen los ejes de referencia del Kinect y del robot respectivamente, junto con la creación o modificación

de la interfaz gráfica de usuario definida.

El capítulo 7 presenta el proceso de diseño y desarrollo del robot en un ambiente de simulación utilizando

el software Matlab y el Toolbox de SimMechanics. También ilustra los cambios que se plantearon al hacer

el ingreso de los datos extraídos por parte del sensor Kinect.

El capítulo 8 presenta el protocolo de pruebas para cada uno de los objetivos específicos planteados y sus

resultados correspondientes, con el fin de verificar el cumplimiento de los errores y por consiguiente analizar

los valores obtenidos.

Finalmente, el capítulo 9 presenta las conclusiones del proyecto.

Page 14: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

14

2. MARCO TEÓRICO

2.1. SISTEMAS TELEOPERADOS

Con el rápido desarrollo de la tecnología de automatización, la aplicación de robots en la industria se ha

mejorado en gran medida. La teleoperación es la técnica de control de un sistema desde una ubicación

remota, que consiste en un sistema maestro-esclavo, donde el sistema maestro suele representar el modelo

del sistema esclavo controlado por un operador. El sistema esclavo, por lo general, es controlado por los

comandos enviados desde el sistema principal (Maestro) por un canal de comunicación. El control remoto

es una técnica comúnmente usada en entornos que son inaccesibles (mar profundo, espacio, etc.) o

peligrosos (militar, medio ambiente radiactivo, etc.) para el hombre [9]. El teleoperador es la persona

encargada de supervisar el sistema de control y tomar la acción de control necesaria; es llamado también

operador. Los sistemas teleoperados se describen comúnmente de dos maneras: primero, el sistema de

control o proceso funciona de forma independiente, el operador controla el trabajo y cuando lo considere

necesario, interviene cambiando el algoritmo de control; en el segundo, el cual se implementó en este

proyecto, el sistema requiere instrucciones por parte del operador, definición de las tareas, los rendimientos,

los resultados y las demás indicaciones para poder ser ejecutadas por el robot. Con el desarrollo y avances

en el campo de la tecnología, la aplicación de la teleoperación se hace mucho más amplia y más

indispensable que antes [10].

Figura 2. Sistema de Teleoperación [2]

2.2. ROBOTS INDUSTRIALES

Un robot industrial es un manipulador multifuncional reprogramable, el cual tiene la capacidad de realizar

tareas determinadas, mover materias, piezas, herramientas o dispositivos especiales, con base en trayectorias

variables programadas. Un robot manipulador se utiliza en tareas repetitivas que requieren cierto nivel de

precisión [11].

2.2.1. ESTRUCTURA MECÁNICA

Manipulador: Generalmente se asemejan al brazo humano descrito como una cadena cinemática

abierta en un extremo, formada por eslabones unidos a través de articulaciones que configuran la

estructura mecánica del robot. El movimiento de cada articulación puede ser de rotación, traslación o

ambos. La estructura de un robot industrial está dada por:

Base + Brazo + Muñeca + Órgano Terminal

Brazo: posiciona la muñeca en un punto del espacio.

Muñeca: permite la orientación del órgano terminal de la forma deseada.

Page 15: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

15

Órgano Terminal: Es seleccionado según la tarea a realizar (garra, soldador, pistola de pintura, entre

otros).

Actualmente en la industria se tiene una amplia gama de manipuladores industriales; por ejemplo,

Motoman Yaskawa posee una serie de robots de doble brazo, SDA5, SDA10 y el SDA20 con 15 grados

de libertad, siete en cada brazo y un grado adicional de rotación del torso. El robot Motoman Yaskawa

SDA10F está controlado por el controlador industrial FS100. Estos sistemas son considerados con alto

potencial para satisfacer los requerimientos de las tareas, como tareas peligrosas para el ser humano.

Estos robots permiten la integración con sensores externos, permitiendo una mejor respuesta al control

del robot. El Motoman SDA10F tiene el tamaño de un ser humano, lo cual le permite seguir los

movimientos como un humano. Capaz de levantar una carga de 10 kg por brazo, este robot es de fácil

aplicabilidad para procesos de manufactura, por su contextura y tamaño.

2.3. CONTROL SERVO VISUAL

Se define como el proceso en el cual su principal herramienta de control es la visión. La visión es usada

para controlar el movimiento de un robot, es decir, los usos de los datos obtenidos por medios visuales

son integrados a un bucle de control. La visión computacional es obtenida por medio de un sensor

externo capaz de dar información rápida y precisa de un espacio de trabajo. Esta información es

utilizada por los sistemas modernos de control con el fin de realizar acciones de control precisas sobre

robots móviles y manipuladores, entre otro tipo de robots industriales. En la literatura, hay diferentes

maneras de definir y clasificar una imagen de un sistema servo visual. Se pueden clasificar de acuerdo

con el número de cámaras y la distribución con respecto al espacio de trabajo. También hay diferentes

taxonomías utilizadas para definir un sistema de control visual, tal como el propuesto por Sanderson y

Weiss que es la más usada [12].

2.4. SOFTWARE IMPLEMENTADO

2.4.1. SOLIDWORKS

Es un programa de diseño mecánico en 3D que utiliza un entorno gráfico, intuitivo y de fácil uso.

Sus características principales abarcan versatilidad y precisión, lo que lo hace capaz de ser

asociativo, variacional y paramétrico con todas sus aplicaciones. Posee la herramienta de gestor de

diseño que facilita la modificación de operaciones tridimensionales y de croquis sin tener que volver

a hacer el diseño. [13]

2.5. SISTEMA DE CAPTURA DE MOVIMIENTO VICON

El sistema de movimiento Vicon está diseñado para seguir el movimiento humano o cualquier

movimiento, en un área de trabajo determinada. Este seguimiento se hace a partir de unas esferas de

material reflectivo, conocidas como marcadores, las cuales se colocan en los puntos de referencia que

se quieren visualizar en diferentes partes del cuerpo humano. El sistema Vicon se compone de cámaras

diseñadas para rastrear y reconstruir estos marcadores en un espacio de 3 dimensiones. Durante la

captura, las coordenadas de todos los marcadores en cada vista de las diferentes cámaras, se almacenan

en una estación de datos. Luego, el sistema Vicon une las posiciones correctas de cada marcador entre

sí para formar trayectorias continuas, que representan los caminos que cada marcador ha tomado a lo

largo de la captura y por lo tanto cómo el sujeto se ha movido en el transcurso del tiempo. [14]

Page 16: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

16

3. OBJETIVOS ALCANZADOS

El objetivo principal de este proyecto consistió en la extracción e interpretación de los puntos de referencia

de los brazos humanos mediante un sensor Kinect. El proceso de manipulación de dicho sensor se dio con

el fin de diseñar un sistema de control servo visual del tipo “dynamic look and move” para un manipulador

industrial, robot Motoman Yaskawa SDA10F. Este proyecto se basa en la aplicación y el desarrollo de un

sistema teleoperado. Consiste en el seguimiento de los brazos de humanos por parte del manipulador, a

partir de los datos obtenidos y procesados por medio del sensor. El objetivo general fue completado en su

totalidad y para el cumplimiento del mismo se tuvieron en cuenta los siguientes objetivos específicos.

3.1. OBJETIVOS ESPECÍFICOS

3.1.1. Con el fin de extraer los puntos de referencia del cuerpo humano para el envío de coordenadas

al robot, se utilizó un sensor Kinect y su modo de seguimiento de esqueleto. Se realizaron las

mediciones correspondientes para el dato obtenido en cada eje de referencia para así comparar

el dato obtenido por el sensor Kinect y el dato medido; obteniendo un error máximo del 13 por

ciento calculado mediante la diferencia de la posición final de los brazos del operador y el

punto final obtenido por el sensor Kinect.

3.1.2. Para estimar el rango de precisión de las posiciones obtenidas por el sensor Kinect, se realizó

una comparación con el sistema de movimiento Vicon. De esta manera se obtuvo la posición

de cada uno de los puntos finales de los brazos humanos los cuales fueron comparados con los

datos obtenidos por parte del Kinect, definiendo así parámetros de desempeño del Kinect. A

partir de esta comparación se pudo identificar el rango de error obtenido por el sensor Kinect

es menor al 20%. También se pudo estimar parámetros con los cuales el nivel de detección del

Kinect es adecuado y hace posible una buena captura y obtención de datos.

3.1.3. Para realizar el seguimiento de los puntos de referencia extraídos mediante el sensor Kinect, se

utilizó el software MotoCom y se diseñó un programa en el controlador del robot. Para medir

el error se compararon las coordenadas enviadas al controlador del robot (datos extraídos por

el Kinect) y las coordenadas seguidas por el robot, obtenidas a través del controlador FS100 y

su teach pendant; obteniendo un error menor al 1 por ciento para cada eje de referencia de los

dos brazos del robot industrial.

3.1.4. Como parte del proyecto se realizó una simulación capaz de seguir los movimientos realizados

por el ser humano en sus extremidades superiores. En este caso se visualizó el alcance de

similitud entre la posición obtenida en la simulación y la posición obtenida por el robot ubicado

en el CTAI.

Page 17: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

17

4. DESCRIPCIÓN DEL SISTEMA TELEOPERADO

El sistema teleoperado diseñado está compuesto por dos partes principales: la extracción de puntos por

medio del sensor Kinect y el seguimiento de los puntos extraídos por parte del robot industrial. Microsoft

Kinect es un dispositivo diseñado para las consolas de videojuegos con el fin de eliminar la necesidad de

controladores físicos; además de esto, el Kinect es utilizado en tareas de programación debido a que la

configuración del mismo permite detectar los movimientos de la persona en tiempo real [14]. Para

configurar y utilizar el Kinect se utiliza el software Matlab, el cual es un entorno de cálculo técnico con

soluciones para cálculo numérico y visualización, presente en la industria: como por ejemplo, en

investigaciones y solución de problemas de ingeniería, como aplicaciones de control y procesamiento de

señales [15]. Y finalmente, para comunicarse con el robot y controlarlo de forma remota se utiliza Visual

Studio 2013, el cual es un entorno de desarrollo integrado para Windows donde se pueden realizar tareas de

programación en múltiples lenguajes; específicamente, se utiliza el software desarrollado por Motoman y

escrito en lenguaje C, llamado MotoCom [16].

Figura 3. Diagrama de bloques del Sistema teleoperado

En general, como se observa en la figura 3, la persona ubicada en frente del Kinect es la entrada al sistema;

el Kinect, como sensor, toma una foto del entorno y se la entrega al siguiente bloque donde se hace el

procesamiento de la imagen para identificar si un esqueleto es detectado y así extraer los puntos de las

articulaciones deseadas. Este bloque entrega las coordenadas en XYZ de los puntos de interés (mano

izquierda y mano derecha) para que el siguiente bloque haga la conversión de coordenadas a milímetros y

las almacene en un archivo de texto ubicado en el directorio de Visual Studio. El siguiente bloque recibe el

archivo de texto y hace la lectura correspondiente para almacenar las coordenadas en unas nuevas variables

en Visual Studio; el siguiente bloque realiza el envío de las coordenadas, como variables, al controlador del

robot. El controlador del robot, FS100, recibe las variables y las lee en el programa diseñado para seguir

cada una de las coordenadas de los dos brazos. El controlador entrega al robot las coordenadas y las

rotaciones correspondientes de cada articulación para alcanzar los puntos en el espacio definido. A

continuación se describe cada bloque y el proceso realizado en cada uno de ellos, desde la entrada al sistema,

humano, hasta la salida del sistema, el robot.

Page 18: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

18

Captura y procesamiento de imagen: El Kinect es el encargado de capturar la imagen de la persona;

al capturarla, es almacenada en Matlab para el respectivo procesamiento de los datos obtenidos tanto

del sensor de color como del sensor de profundidad. Teniendo la información de interés y realizando

las validaciones del seguimiento del esqueleto proporcionado por Kinect [15], se extraen los puntos de

referencia (mano izquierda y mano derecha) y las coordenadas XYZ de cada uno de ellos, como se

muestra en el anexo 1.

Conversión de coordenadas y almacenamiento en archivo de texto: Esta conversión se realiza ya

que el modo de seguimiento de esqueleto de Kinect entrega los puntos XYZ en metros y para la

transmisión al robot se entregan en milímetros. Además de esto, y como se explicará en el capítulo de

la extracción de puntos de referencia, se hacen conversiones de cambio de signo y traslaciones para

hacer coincidir los ejes de referencia del Kinect y del robot junto con las restricciones del espacio de

trabajo, para evitar colisiones del robot con los objetos que lo rodean. Así entonces, los vectores con los

puntos XYZ de cada efector final se almacenan en un archivo de texto que está ubicado en el directorio

de Visual Studio, creando un puente entre este y Matlab.

Lectura de archivo de texto y envío de coordenadas: Visual Studio es el encargado de leer el archivo

y extraer las coordenadas al programa. Teniendo las coordenadas cargadas, se configura la

comunicación con el robot definiendo la dirección IP y configurando el controlador en modo remoto

para realizar el envío correspondiente de las coordenadas al robot por medio del protocolo de

comunicación Ethernet a su controlador (FS100) y ejecutar los movimientos.

Lectura y seguimiento de coordenadas en el controlador: Con las coordenadas cargadas

correctamente en el controlador, se utiliza un programa desarrollado en el “teach pendant” para mover

al robot. El programa se encarga de actualizar las posiciones en el robot cuando la condición de inicio

esté activa y por consiguiente de hacer que el robot se mueva a los puntos almacenados en el controlador.

Por último, las variables manipuladas del robot están dadas por las coordenadas XYZ de cada uno de sus

efectores finales, las demás articulaciones no son controladas por el sistema. Sin embargo, el controlador

del robot, FS100, controla las articulaciones (rotaciones de cada una de ellas) para alcanzar el punto definido

de cada efector final, mediante la estimación del Jacobiano y la cinemática para cada una de sus

articulaciones con respecto a su punto de referencia. A continuación se muestra el proceso para la extracción

de coordenadas del cuerpo humano por medio del sensor Kinect y los ajustes realizados para el envío de

coordenadas correspondiente.

Page 19: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

19

5. EXTRACCIÓN DE PUNTOS DE REFERENCIA

5.1. CALIBRACIÓN DEL KINECT, ANÁLISIS DE ILUMINACIÓN E INTERPRETACIÓN

DE DATOS

El Kinect cuenta con dos cámaras las cuales forman un mapeo del espacio bastante similar a la realidad. Sin

embargo, como todo dispositivo de medición puede llegar a presentar un error y por consiguiente debe ser

calibrado. Al calibrar el Kinect se garantiza que al ser usado se obtendrán los resultados correctos o con

menor error dando al usuario la certeza de que la medición estará en el rango de incertidumbre especificado,

poder determinar la desviación entre el resultado dado por el instrumento y el resultado real de la medida,

y por último, confirmar si hay algún factor que afecte la veracidad de los datos [17].

El proceso de calibración utilizado fue “calibra simultáneamente dos cámaras de color, una cámara de

profundidad y la posición relativa entre ellas. Este método está diseñado para tener tres características

claves: precisión, practicidad, y aplicabilidad para un gran rango de sensores. Este método requiere

únicamente una superficie plana para ser capturada desde varias poses.” La calibración se realiza como se

explica en [17]. Por consiguiente, se utiliza una superficie plana para calibrar y los datos obtenidos se

muestran en la figura 4, los cuales son multiplicados a cada matriz que contiene los datos de la imagen:

Figura 4. Calibración sensor Kinect

La iluminación en un lugar de trabajo debe ser medida al realizar una actividad definida, esto con el fin de

obtener la información deseada y así definir un rango de iluminación donde el sistema pueda operar

correctamente. Al usar un modo de seguimiento de esqueleto (dado por el Kinect) donde el dispositivo

realiza un análisis de la imagen a color y de profundidad para mapear un esqueleto, pueden presentarse

resultados incorrectos si la cámara no interpreta el cuerpo humano como un esqueleto en un espacio de

trabajo definido. Por lo que para mitigar el riesgo de caer en errores, se realiza un estudio del ambiente de

trabajo donde se utiliza un luxómetro para tomar medidas de luminosidad en el espacio de trabajo y

determinar si el ambiente es óptimo para trabajar, el resultado se muestra en la figura 5.

Figura 5. Análisis de iluminación- Espacio de trabajo

Page 20: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

20

Según el Reglamento Técnico de Iluminación y Alumbrado Público – RETILAP [18], en lugares de trabajo

se debe asegurar el cumplimiento de los niveles de iluminancia mostrados en la figura 6, considerando el

valor medio como ideal para el tipo de recinto o actividad realizada, en este caso al ser un laboratorio se

comprueba el cumplimiento de la norma.

Figura 6. Índice UGR máximo y Niveles de iluminancia exigibles para diferentes áreas y actividades

Teniendo en cuenta las medidas tomadas, se realizaron pruebas con el Kinect mediante la captura de datos

en diferentes condiciones lumínicas, obteniendo que con la luz medida en el laboratorio, como se muestra

en la figura 5, se obtiene el seguimiento de esqueleto en la mayoría de ocasiones. Por otro lado, al apagar

las luces (en horas de la mañana) y realizar la captura con el Kinect, se observa que esta es más precisa y se

obtiene un mejor seguimiento del esqueleto; pero al iluminar más el lugar, no se reconoce al cuerpo humano

como esqueleto, por lo que se define que el rango de trabajo para la captura de datos es de 200 lx a 557 lx.

Figura 7. Identificadores de junturas y ubicación en el esqueleto

Como se muestra en la figura 7, para interpretar la información del Kinect se debe entender cómo entrega

las variables el dispositivo y así analizar cada una de ellas; siendo la variable que contiene las posiciones

XYZ de las junturas del esqueleto seguido, la variable de mayor interés. Teniendo en cuenta que el sensor

entrega la información como una matriz de 20 filas y 3 columnas, se debe conocer qué significa cada una

de ellas, para así escoger las variables de interés (mano izquierda y mano derecha) y extraer las coordenadas

de cada una de ellas.

Page 21: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

21

5.2. EXTRACCIÓN DE PUNTOS DE REFERENCIA Y ANÁLISIS DE DATOS

Con el fin de ilustrar el proceso de adquisición e interpretación de datos para el seguimiento del esqueleto

con el Kinect [15], se muestra un diagrama de flujo en la figura 8.

Figura 8. Diagrama de flujo- Adquisición de datos mediante el Kinect

Este diagrama contiene el proceso realizado para la extracción de puntos del cuerpo humano; es decir, es la

descripción específica de cómo funciona el bloque de procesamiento y extracción de puntos de referencia

mostrado en el diagrama del sistema teleoperado. Indica el procedimiento realizado, desde la inicialización

de las cámaras hasta la captura de la imagen con su respectivo procesamiento. Cada bloque se explica a

continuación:

Definición de variables: Para poder trabajar correctamente con el Kinect se deben definir las

entradas de video para la captura de datos; para realizar esto, se reciben parámetros del nombre del

adaptador y la cámara a utilizar. Se utilizan las dos cámaras del Kinect con el fin de realizar el

análisis deseado; así, entonces, se definen dos variables de entrada de video, una para el sensor de

color y otra para el sensor de profundidad.

Configuración de disparo a modo manual: Debido a que se desea controlar el disparo para realizarlo

cada vez que se necesite la adquisición de datos, se debe configurar el disparo en modo manual.

Definir fuente de adquisición de datos: Se debe escoger la fuente de video del adaptador o

dispositivo correspondiente para la adquisición de datos y modificación de sus propiedades. Para

esto, se asigna una variable la función cuyo parámetro es el objeto de entrada de video.

Definir modo de seguimiento y cuadros por disparo para cada cámara: De esta forma, se tiene la

entrada de video como fuente de adquisición de datos y en el caso particular del sensor de

profundidad se puede controlar el tipo de seguimiento, el esqueleto a seguir y la postura del cuerpo.

El modo de seguimiento, controla si el seguimiento del esqueleto está activado; si es así, controla

además si todas las junturas fueron seguidas mediante la configuración Skeleton. Debido a que se

utilizan las dos cámaras y se realiza la configuración manual de las mismas, es necesario definir

cuántas capturas tomará el Kinect (cada uno de sus sensores) por cada disparo manual que se realice,

esto definirá la velocidad de captura y por consiguiente la de procesamiento de imagen para detectar

Page 22: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

22

el esqueleto. Para este caso, se escogerá entre 20 y 50 capturas por disparo para tener precisión de

encontrar el esqueleto en una de las capturas realizadas.

Inicialización y disparo de las cámaras: Luego de definir las configuraciones de las cámaras y el

seguimiento a realizar, se dispone a realizarse la adquisición de datos, por lo que se inicializan

ambas cámaras y se realiza el disparo, ya que se definió que este se haría en modo manual. Por

consiguiente, la cámara empieza a capturar datos hasta que llega a las capturas por disparo

seleccionados.

Almacenamiento de variables de interés y análisis correspondiente: Para realizar el seguimiento y

mapeo del esqueleto se deben almacenar las variables necesarias; es decir, se deben obtener los

datos de la cámara de color para tener la imagen tomada del cuerpo humano con el fin de sobreponer

el esqueleto sobre ella. Además, se debe obtener la información de la cámara de profundidad, como

los datos extraídos, el tiempo de los datos y el cuadro tomado por la cámara. Los datos de la cámara

de profundidad servirán para saber si el esqueleto fue seguido, cuantos esqueletos encontró, las

coordenadas de las junturas y los índices de los mismos. Teniendo los datos de la cámara de

profundidad, se debe revisar si hay posiciones y esqueletos seguidos, revisando los campos del

arreglo correspondiente. En caso de ser afirmativo, se deben extraer las coordenadas de cada una

de las junturas y los índices de cada punto de interés del esqueleto.

Mostrar el esqueleto y la imagen: Teniendo los datos de la cámara de color se extrae un cuadro de

los que se tomaron en la captura para obtener la imagen y se muestra el esqueleto sobrepuesto en la

imagen. Por último, para ilustrar el procedimiento realizado mediante la extracción de puntos de

referencia, se realizó un video demostrativo, como se muestra en el anexo 2.

5.3. DESARROLLO DE LA INTERFAZ GRÁFICA DE USUARIO Y ALMACENAMIENTO

DE COORDENADAS

Para mayor claridad, se realizó una interfaz gráfica que contiene la información necesaria y útil para la

persona que utilicé el programa. Basados en esta premisa, se utilizó la funcionalidad de Matlab para crear

una interfaz gráfica de usuario y manualmente se diseñó la interfaz que contiene texto estático, tablas, un

botón y una gráfica, como se muestra en la figura 9.

Figura 9. Interfaz gráfica de usuario diseñada

Page 23: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

23

Como se puede observar, la interfaz es muy sencilla y para crear cada uno de los elementos y configurarlos

basta con hacer click en sus propiedades y cambiar los valores de interés; tales como la posición, las

dimensiones, tipo de texto, entre otros. Además, contiene textos estáticos para explicar datos de interés

como lo son las tablas presentadas; la tabla de 20 filas y 3 columnas, contiene las coordenadas XYZ de las

junturas halladas por Matlab.

Debido a que los puntos de interés están dados por el efector final de cada uno de los brazos, las coordenadas

a enviar son las correspondientes a los extremos de cada uno de los brazos, dadas por las filas 8 y 12 de la

matriz de coordenadas. Estas dos columnas se extraen de la tabla y se ubican en una nueva tabla de 1 fila y

tres columnas para cada punto. La figura 10 muestra la interfaz con los valores extraídos y la imagen

capturada.

Figura 10. Interfaz gráfica de usuario con datos adquiridos

Como se mencionó anteriormente, la interfaz cuenta con un botón el cual será la activación para que el

programa inicie; cuando se oprima el botón se realiza toda la adquisición y seguimiento de esqueleto, cuando

se termine dicho proceso la interfaz se llenará con los datos asignados mediante las funciones de llenado de

gráficos y tablas proporcionadas por la GUI.

Por último, para realizar el puente de comunicación entre Matlab y Visual Studio, se genera un archivo de

texto que contiene las coordenadas de un efector final. Teniendo en cuenta que el seguimiento de esqueleto

realizado entrega una matriz de 20 filas y 3 columnas se separan las filas de interés que contienen las

coordenadas de los efectores finales. Para realizar el almacenamiento se tiene en cuenta la forma en que van

a ser leídos por Visual Studio; como la lectura en C se realiza de forma completa un archivo o línea por

línea, se debe modificar la variable de las coordenadas y trasponerla para realizar la lectura línea por línea.

Es importante aclarar que las coordenadas XYZ dadas por Matlab están en metros y que el controlador del

robot las recibe en milímetros, por lo que es necesario realizar la conversión respectiva.

Page 24: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

24

5.4. DEFINICIÓN DE EJES DE REFERENCIA

Figura 11. Ejes coordenados del Kinect

El sensor Kinect, como adaptador, cuenta con dos sensores; la cámara RGB, que otorga las coordenadas

XY en el espacio y el sensor de profundidad, que otorga la coordenada Z en el espacio. Al combinar las dos

cámaras y activar el modo de seguimiento de esqueleto, el sistema extrae las coordenadas XYZ en metros

y las ordena en una matriz con los 20 puntos de referencia del cuerpo humano mencionados anteriormente.

Como se puede observar en la figura 11, el origen del sistema coordenado del Kinect tiene los ejes definidos

y se encuentra en el centro del foco, por lo que se debe identificar el origen en la imagen para saber con

respecto a qué punto están dadas las coordenadas de las junturas extraídas. Teniendo el Kinect fijo en un

punto y trazando una recta desde el centro de la cámara (idealmente marcada en el piso) hasta donde la

persona realiza los movimientos, se obtiene el centro ideal (no exacto) de la cámara comparada con la

persona. Por consiguiente, los ejes originales del Kinect se mantendrán, aplicando una translación en el eje

Z, cuyo valor debe ser restado del resultado obtenido al realizar el seguimiento, dando como resultado un

plano similar al del Kinect.

La definición de los ejes de referencia para el Kinect es esencial debido a que al tener un punto cero de

referencia se pueden realizar las mediciones correspondientes de las coordenadas XYZ, para así identificar

que las mediciones sean correctas y detectar posibles errores en la extracción. Por otro lado, al definir los

ejes de referencia del Kinect, se tiene una base para la definición de los ejes de referencia para cada brazo

del robot industrial para así realizar las conversiones y traslaciones correspondientes a la hora de enviar las

coordenadas al Motoman Yaskawa SDA10F.

Se debe tener en cuenta que las pruebas realizadas para la extracción de puntos de referencia mediante el

sensor Kinect y Matlab, fue efectuada en una máquina con las siguientes especificaciones; esto se debe

aclarar ya que la potencia de la máquina afecta el rendimiento en la extracción de los puntos, lo que

conlleva a un mayor o menor tiempo de procesamiento.

Máquina utilizada TOSHIBA Satellite E45t-B4106

Procesador Intel Core i5-5200U 3M Cache @ 2.70GHz

Memoria 8GB DDR3L 1600MHz

Almacenamiento 1TB (5400 RPM) Serial ATA

Sistema operativo Windows 8.1

Número de serie PSPNCU-004002

Page 25: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

25

El sensor Kinect fue el dispositivo utilizado para la extracción de puntos de referencia. Fue escogido sobre

otras cámaras debido a su disponibilidad en el laboratorio de electrónica; y como se mencionó

anteriormente, mediante Matlab se pueden utilizar las características de seguimiento de puntos en el cuerpo

humano, lo que facilita el análisis de la imagen y la extracción de los puntos de referencia para el envío al

controlador del robot. El Kinect realiza la captura de la imagen mediante su sensor de color y realiza la

extracción de datos de interés mediante su sensor de profundidad; al tener dichos datos, se realiza un

procesamiento de la imagen para obtener coordenadas XYZ y vectores de tiempo junto con la interpretación

de articulaciones humanas como puntos de referencia, lo cual es una característica propia del Kinect. Con

los puntos definidos como articulaciones, el Kinect los une mediante segmentos definidos en su lógica: es

decir, junta todas las articulaciones del cuerpo para formar un esqueleto. Las coordenadas son mapeadas

sobre la imagen capturada mediante una función de Matlab y las coordenadas de interés son extraídas de la

matriz entregada por el Kinect para el posterior manejo y almacenamiento en el archivo de texto. El tiempo

de extracción obtenido fue de 6 segundos, debido a la inicialización y disparo de las cámaras, los cuadros

definidos por cada disparo, la conversión de los puntos de interés y el almacenamiento de los mismos en los

archivos de texto ubicados en el directorio de Visual Studio.

Page 26: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

26

6. COMUNICACIÓN CON EL ROBOT Y SEGUIMIENTO DE PUNTOS DE

REFERENCIA

6.1. INTERFAZ GRÁFICA MOTOCOM

Como se puede observar en la Figura 3, Visual Studio es el software utilizado para la lectura de los archivos

de texto generados por Matlab y es el encargado del envío de coordenadas al controlador del robot.

Específicamente, MotoCom es el software tomado como base para realizar la comunicación correspondiente

con el robot y controlarlo de manera remota. De este software, se toma un archivo que contiene una interfaz,

como la que se muestra en la figura 12, el cual genera un programa predeterminado con un código

desarrollado por Motoman y funcionando correctamente para realizar la comunicación, escribir y leer

variables y, por consiguiente, mover el robot.

Figura 12. Interfaz gráfica de comunicación original

Como se puede observar en la figura 12, la interfaz tiene varias agrupaciones para las funcionalidades del

robot; entre las principales se puede encontrar:

Comunicación con el robot (Definir, abrir y cerrar las comunicaciones)

Monitoreo de alarma (Detectar y resetear la alarma)

Control de variable (Obtener y definir la variable de control)

Estado del robot (Obtener y limpiar el estado, prender y apagar motores, correr un programa y

controlar sus principales funciones)

Variable de posición (Definir coordenadas y variables para enviar o extraer del robot)

Las secciones mencionadas son las de principal interés debido a que son indispensables para controlar el

robot correctamente. En la figura 13, se muestra el resultado de la modificación al código Demo

proporcionado por el fabricante para el envío de coordenadas al robot:

Page 27: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

27

Figura 13. Interfaz de la comunicación con el robot modificada

Para realizar el cargue de información se crearon dos archivos de texto, uno para la mano izquierda y otro

para la mano derecha con el fin de distinguir cada set de coordenadas XYZ extraídas por el Kinect y enviadas

al robot por Visual Studio.

Figura 14. Formato de los archivos de texto

Como se puede observar en la Figura 14, cada archivo de texto contiene las coordenadas en una columna,

esto debido que la lectura en Visual Studio de un archivo se realiza de dos formas: la primera es leer todo

el archivo que contenga una secuencia de texto y almacenarlo en una variable y la segunda es leer un archivo

de texto línea por línea, para así guardarlo en diferentes variables. Como se extraen las coordenadas y se

diferencian una de la otra, la lectura se realiza línea por línea, y para esto es necesario separar las variables

como se muestra en el formato.

Para realizar la lectura de los archivos de texto se utiliza la función de lectura de cadenas la cual crea una

variable para comenzar la lectura del archivo, se crean variables para asignar cada línea a leer y para realizar

la lectura correspondiente se utiliza la función de leer por línea. Teniendo las variables guardadas, se

identifica el tipo de variable y se hace la respectiva conversión a doble para interpretarse como número, si

es necesario; para esto se utiliza la función de conversión de variables.

Así, entonces se tienen las variables guardadas en el formato de número para ser enviadas al robot; y de una

manera similar, leyendo el archivo correspondiente y almacenando las coordenadas en otras variables, se

realiza la lectura de las coordenadas de la otra mano, como se puede observar en el anexo 3.

Page 28: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

28

6.2. DEFINICIÓN DE ESPACIO DE TRABAJO Y EJES DE REFERENCIA

Con el fin de realizar un seguimiento de coordenadas sin inconvenientes, es importante definir un espacio

de trabajo para el proyecto en cuestión ya que el robot se encuentra limitado en movimientos debido a su

ubicación en el CTAI. A continuación, se muestra la ubicación del robot y sus limitaciones:

Figura 15. Motoman Yaskawa SDA10F- Espacio de trabajo

Como se puede observar en la figura 15, el robot se encuentra limitado por una banda transportadora en su

parte inferior, unos tanques en su parte trasera y una mesa de trabajo a su lado izquierdo. Es necesario

adaptarse al espacio de trabajo disponible y definir un espacio de trabajo en el cual el robot se moverá.

Además, las limitaciones de movimiento están dadas por las rotaciones de las articulaciones definidas y los

límites identificados visualmente; por lo que los movimientos del humano están limitados según las

restricciones del espacio de trabajo.

Para realizar dicha restricción es necesario definir un rango en XYZ donde el programa realice el envío o

no de las coordenadas; se deben realizar condiciones en los tres ejes coordenados de cada efector final para

que Matlab grabe en el archivo de texto. Es decir que, si el punto obtenido por el Kinect no se encuentra en

el rango de trabajo definido por las condiciones de cada eje, el programa no grabará la posición en el archivo

de texto y dejará la última posición válida adquirida por el sistema. La figura 16 ilustra el espacio de trabajo

disponible para el robot debido a su ubicación en el CTAI y sus ejes de referencia.

Figura 16. Motoman Yaskawa SDA10F-Medidas espacio de trabajo

Page 29: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

29

Para realizar la restricción correspondiente se tienen en cuenta los puntos máximos alcanzados por el robot

y el espacio de trabajo mostrado anteriormente. El alcance del robot está dado por el origen de cada sistema

coordenado (efector final izquierdo y derecho) y realizando movimientos en los ejes cartesianos definidos

se obtendrá el alcance máximo. Teniendo estas medidas se realiza la limitación del envío en Matlab, que es

el encargado de la extracción y guardado de las coordenadas. Se pueden definir unas restricciones básicas

para el movimiento del robot:

Restricciones Brazos Robot (Espacio de trabajo)

Derecho Izquierdo

1 X>0 X<0

2 Y>0 Y>0

3 Z>0 Z>0

Tabla 1. Restricciones Movimiento del robot debido al espacio de trabajo

Como se puede observar en la tabla 1, las restricciones básicas estarán dadas por las tres direcciones, para

X se define que el brazo derecho solo puede moverse en el eje X positivo y el brazo izquierdo en el eje

negativo ya que si se mueven en las direcciones opuestas se pueden llegar a chocar los brazos entre sí. Para

el eje Y se definió que los dos brazos se pueden mover en el eje Y positivo debido a que la banda

transportadora se encuentra cerca al robot y si los brazos bajan se chocarán contra la misma. Por último,

para el eje Z se definió que Z debe ser mayor a cero en ambos casos, esto con el fin de prevenir choques

contra la base del robot y contra los tanques en la parte trasera del mismo. Estas restricciones están dadas

por el espacio de trabajo, por consiguiente se deben analizar las restricciones dadas por el robot; es decir,

como se limita el movimiento debido a su configuración. Para encontrar estos límites, se ubican los dos

brazos en su origen y se mueven en los tres ejes para observar hasta donde llegan (hasta cuando el

controlador le informa al usuario que la posición no puede ser alcanzada), como se muestra en la tabla 2:

Restricciones Brazos Robot (Composición)

Derecho (mm) Izquierdo (mm)

Min Max Min Max

X -571.686 398.175 -259.553 604.906

Y -336.355 478.035 -310.907 532.272

Z -291.013 131.647 -217.650 215.549

Tabla 2. Restricciones Movimiento del Robot debido a su composición

Page 30: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

30

Teniendo los dos tipos de restricciones, se obtiene un intervalo de trabajo para cada uno de los ejes, evitando

así accidentes o choques. Se define que si un punto, del brazo derecho o izquierdo, sale del rango de trabajo

en cualquiera de sus tres ejes, la coordenada no será enviada al robot. Se enviará de nuevo la coordenada

anterior para que el robot no se mueva a un espacio no deseado.

Para crear unas coordenadas de usuario, el controlador ofrece la posibilidad mediante la definición del

origen en una primera instancia, luego se define el movimiento en X positivo, Y positivo y el controlador

calcula el eje Z resultante basado en la ley de la mano derecha. Al realizar este procedimiento se definió; de

igual manera que en el Kinect, que el eje X positivo será hacia la derecha y el Y positivo hacia arriba, de lo

que resulta que el eje Z apunta hacia adentro del robot. Como se tiene definido Z positivo hacia afuera, se

debe multiplicar el resultado en Z por menos para hacer coincidir los ejes de referencia. Esta conversión se

realiza en Matlab antes del envío y se puede observar en las figuras 17 y 18 el cero coordenado de cada

brazo, valga aclarar que las rotaciones se definieron según el alcance obtenido y serán siempre constantes.

Figura 17. Origen de ejes de referencias brazo izquierdo

Figura 18. Origen de ejes de referencias brazo derecho

6.3. ENVÍO DE COORDENADAS

Teniendo el espacio de trabajo definido y las coordenadas extraídas por el Kinect con sus conversiones y

traslaciones correspondientes, se realiza el envío de coordenadas al controlador del robot. Para realizar el

envío de coordenadas, como se muestra en la figura 3, se verifica que cada una de las variables en XYZ de

Page 31: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

31

los efectores finales esté almacenada de forma individual y que el robot esté conectado al computador de

forma remota.

Figura 19. Diagrama de flujo envío de coordenadas al controlador

De manera específica, y como se observa en la figura 19, se declara una variable con 11 posiciones para

enviar las coordenadas en XYZ, las rotaciones, el índice de la variable, entre otros. Cabe aclarar que los

únicos valores diferentes a cero serán los campos donde las coordenadas XYZ son guardadas y el índice de

cada grupo de variables, esto debido a que las rotaciones no son tomadas en cuenta y el controlador del

robot se encargará de controlarlas. Dicha variable se llena basada en la información que se cargue en el

programa, es decir la salida del sistema del Kinect (archivos de texto con coordenadas en XYZ).

Ahora, se verifica que el robot esté conectado con el fin de realizar la transferencia de datos; si lo está, se

comprueba que el controlador del robot a manipular si cuente con los índices de la variable disponibles para

ser guardados. Cabe aclarar que el índice es donde se va a guardar la variable; es decir, el controlador tiene

ciertas variables disponibles para ser escritas y cada una de ellas está separada por páginas, y el índice es el

número de página en la que será guardada la posición. Así entonces el índice define qué número de posición

enviada es y donde será guardada por el controlador.

Al tener las verificaciones del caso, se convierten los valores que se enviarán a formato numérico con el fin

de almacenarlos en la variable creada en el segundo bloque de la figura 19. Se verifica el controlador que

se está utilizando, en este caso el FS100, y por último se envían las variables extraídas mediante la función

de transferencia de datos, por lo que la salida del sistema de envío de coordenadas contiene las variables

escritas en el controlador según su número de índice.

Debido a que se controlan los dos brazos del robot, se realiza el proceso dos veces con el fin de enviar las

dos coordenadas XYZ para cada efector final. Basta entonces con definir dos variables en cada paso para

realizar el proceso en simultáneo. Teniendo en cuenta que las posiciones han sido guardadas en el

controlador correctamente, se realiza un programa para que vaya a la posición de cada efector final y

constantemente compruebe que está en la posición dada. El diagrama de flujo del programa se muestra en

la figura 20.

Page 32: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

32

6.4. PROGRAMACIÓN DEL CONTROLADOR

Figura 20. Diagrama de flujo programa del controlador

Como se puede observar en la figura 20, es importante definir que el programa, desarrollado en el

controlador, es el encargado tanto de inicializar el robot como de verificar que se esté en la posición dada.

En una primera instancia, el robot puede estar en una posición cualquiera dentro de su espacio de trabajo y

el programa lo primero que hará es enviar al robot a su posición de home, la cual se define como el origen

coordenado para cada uno de los brazos del robot. Al estar en el home, el robot queda a la espera del envío

de coordenadas por parte de Visual Studio. Al pulsar el botón de envío de coordenadas; las posiciones en el

controlador, se guardan según los índices definidos y el programa llama las variables para ir al lugar

correspondiente.

Al llegar por primera vez a la posición extraída por el Kinect y enviada al robot, el programa se queda

ejecutando ese comando de ir a la posición definida para cada efector, esto con el fin de que actualice

constantemente si hay cambios en XYZ, y alcance las coordenadas especificadas. Este ciclo se mantendrá

hasta que el usuario detenga el programa manualmente o que la condición que lo rige sea cambiada, esto se

controla mediante un byte de inicio.

Como se mencionó anteriormente, el sistema es desarrollado en dos plataformas distintas, Matlab y Visual

Studio. Esto significa que se debe acoplar un programa con el otro, lo cual se realiza con el archivo de texto.

Matlab abre el archivo de texto que está en el directorio de Visual Studio y escribe sobre el mismo las

posiciones XYZ de un efector final. Luego Visual Studio llama a ese archivo de texto y lee lo que está

escrito para enviarle esos puntos al robot. Cabe aclarar que la escritura y lectura deben hacerse en un lapso

de tiempo distinto ya que no se puede escribir un archivo y a la vez leerlo ya que se generará un error al

hacerlo. Por consiguiente se debe definir un tiempo en el que Matlab realiza la extracción de puntos para

darle el retardo a Visual Studio. De esta manera se evita que Visual abra el archivo mientras Matlab escribe

las coordenadas; para calcular este tiempo se toma la diferencia entre el inicio de la interfaz en Matlab y el

final de la escritura de datos en el archivo, y ese tiempo es dado como espera a Visual para que no realice

la lectura hasta que pase ese intervalo. Al terminar la espera, visual realiza la lectura, envía las coordenadas

al robot que siempre estará leyendo XYZ para cada efector final y vuelve a comenzar el ciclo para cada una

de las interfaces.

Con el fin de ilustrar el funcionamiento del sistema descrito, se grabó un video donde se puede apreciar su

como se muestra en el anexo 4.

Page 33: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

33

7. SIMULACIÓN DE SEGUIMIENTO DE PUNTOS DE REFERENCIA

Esta simulación fue realizada a través del software Matlab, implementada a través del Toolbox de Simulink

“SimMechanics”, con el fin de que el robot imite la posición que ha ejecutado la persona en sus extremidades

superiores. En la figura 21, se puede detallar la estructura y módulos que componen el entorno de

simulación. Una ventaja del Toolbox de SimMechanics es que permite exportar el modelo CAD donde se

diseñó la estructura del robot, como se observa en el anexo 9, directamente de SolidWorks. Dicho modelo

fue creado en el entorno de SolidWorks, el cual permite hacer el ensamble de cada pieza y si no existe la

pieza requerida, es posible crearla por medio de sus herramientas disponibles. Este modelo fue basado

estructuralmente en el robot real ubicado en el Ctai, también su configuración interna y sus dimensiones

fueron dadas para que se tuviera un modelo simular al real, con las logitudes y tamaños que componen a

dicho robot. Además, SolidWorks genera ventajas en su uso, ya que, a partir de las propiedades estructurales

del robot y su diseño, permite incluir el ensamblaje mecánico junto con las propiedades cinemáticas y

dinámicas del robot en el ambiente de simulación. Al tener las propiedades dinámicas del robot, permite

que ya genere movimientos aleatorios debidos a la fuerza de gravedad del sistema que se contempla en el

sistema.

Figura 21. Estructura y módulos que componen la simulación

En la figura 21 se observa el modelo del brazo izquierdo exportado desde SolidWorks a SimMechanics,

dicho modelo está compuesto por los bloques body. Estos bloques son cada una de las articulaciones de las

cuales se compone el brazo del robot. Se tienen los hombros, los codos y demás partes que conformen los

brazos. Entre cada pieza hay un bloque revolute los cuales indican los gados de libertad que se puede mover

una pieza al estar unida con la siguiente. Como bloques adicionales se pueden observar los bloques joint

actuator que permite el ingreso de las posiciones a las cuales se quiere llegar, como se explica más adelante.

Al igual que esta distribución del modelo se tiene para el brazo derecho, el cual se compone por los mismos

bloques y cada bloque tiene sus respectivos revolute designando los grados de libertar de cada una de las

junturas.

En la tabla 3 se pueden detallar los componentes principales de la estructura del robot y su distribución de

peso. Los componentes son estructurales, tales como el cuerpo, hombros y piezas de cada uno de los brazos,

se aclara que la configuración interna y externa del robot no contempla el material de cada pieza. En general,

Page 34: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

34

el robot de la simulación es aproximadamente de las mismas proporciones de la muestra verdadera,

permitiendo mantener las dimensiones del cuerpo y los brazos.

Al exportar el modelo CAD a la herramienta de SimMechanics de Simulink, se visualiza el modelo descrito

por una serie de bloques que generan la configuración total del robot. Bloques como Body, Revolute, Weld,

entre otros. El modelo inicia con la base, la cual está fijada a la tierra mecánica del sistema; continúa con

una cadena articulada y se encuentra con la pieza 3, que según la tabla 3 es la que permite el movimiento

del torso, es la base. Cada brazo cuenta con diversas piezas que según su eje de rotación permiten el

movimiento en el eje X o en el eje Y. En la figura 22 se observa el eje coordenado establecido en el robot

en coordenadas cartesianas, este sistema es en 2D por lo cual no se contempla el eje Z. Ya que cada pieza

gira en torno a un eje definido, estas fueron nombradas para mayor claridad, según su eje de rotación como:

ArticulaciónXIzq y ArticulaciónYIzq, para el caso del brazo izquierdo y ArticulaciónXDer y

ArticulaciónYDer para el brazo derecho. A través de la cadena, para cada articulación se asignó un nombre

correspondiente a su movimiento, puede ser hombroXDer, codoYIzq, antebrazoXIzq, entre otros, como se

puede visualizar en la tabla 3:

CAD Descripción

PIEZA_3

Base. Hace parte de la estructura principal del robot, con una

masa de 10.40620 kg. Es una pieza fija que le brinda el soporte

al robot.

PIEZA_7

Cuerpo. Es la pieza de la cual se despliegan los dos brazos cada

uno con 7 grados de libertad. Tiene una masa de 5.40225 kg.

Tiene un eje de rotación con respecto a la base que permite el

giro del torso. Para esta simulación es irrelevante dicho giro.

PIEZA_1

CodoXIzq. Es la pieza de la estructura que permite el giro del

codo a través del eje X, es decir, permite los dobles del codo.

Tiene una masa de 657.77 gramos.

PIEZA_2

AntebrazoYIzq. Es una estructura con una masa de 863.59

gramos, la cual permite el movimiento de la muñeca del robot.

Esta pieza permite un giro rotacional a través del eje Y.

PIEZA_4

HombroYIzq. Es una estructura con una masa de 1.29035 kg,

la cual permite el movimiento del hombro. El robot tiene dos

hombros para lograr un movimiento similar al de un ser

humano, esta pieza permite el movimiento de rotación en el

eje Y de acuerdo al sistema coordenado de la figura 28.

PIEZA_5

AntebrazoXIzq. Es una estructura con una masa de 987.88

gramos, la cual permite el movimiento de la muñeca del robot.

Esta pieza permite un giro rotacional a través del eje X.

Page 35: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

35

PIEZA_6

HombroXIzq. Es una estructura con una masa de 4.68592 kg,

la cual permite el movimiento del hombro. Esta pieza permite

el movimiento de rotación en el eje X de acuerdo al sistema

coordenado de la figura 28.

PIEZA_8

CodoYIzq. Es la pieza de la estructura que permite el giro del

codo a través del eje Y. Tiene una masa de 1.21064 kg.

FINGER

Finger 1: 296.35 gramos

Finger 2: 1.60719 kg

Son piezas irrelevantes para este proyecto.

Tabla 3. Estructura principal y componentes del diseño del CAD

Cabe aclarar que como el movimiento que se espera por parte del robot es el seguimiento de los brazos, los

bloques definidos como los grippers del robot no fueron tomados en cuenta para esta simulación, tampoco

el movimiento del torso, ya que son articulaciones irrelevantes para este sistema. Cada brazo posee el mismo

número de grados de libertad por lo cual la anterior descripción presente en la tabla 3 se cumple para los

dos brazos.

7.1.FUNCIONAMIENTO DEL SISTEMA EN UN ENTORNO DE SIMULACIÓN

El desarrollo de esta simulación se hizo a partir de los puntos extraídos por el Kinect, como se observó en

la sección 4.2. Estos datos son ingresados a cada una de las articulaciones del robot, según su

correspondencia, tomando en cuenta solo las extremidades superiores. Los puntos obtenidos por el Kinect

están en coordenadas X, Y y Z. Al tener los puntos extraídos en cada una de las articulaciones, se definió

un vector el cual guardaría las coordenadas de cada movimiento que se le ingresa a la articulación, este

vector lo que hace es restar la posición de la articulación n+1 de la cadena articular del brazo con la posición

de la articulación n y así obtener el valor al cual se debe mover la articulación n. Para el ingreso de estas

coordenadas a la planta al sistema, es necesario el uso del módulo de SimMechanics Joint actuator. Este

módulo solo permite el ingreso de variables como fuerzas o grados para ejecutar el movimiento; ya que los

puntos están en coordenadas cartesianas, se realizó una transformación de coordenadas cartesianas a

coordenadas esféricas, como se muestra en la figura 22, para el ingreso al sistema del robot, anexo 8 por

medio del bloque Joint actuator. Por último, se verifico el nivel de similitud de la articulación final de la

simulación con respecto a la articulación final del robot Motoman Yaskawa, esto con el fin de validar el

buen funcionamiento de la simulación.

Page 36: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

36

Figura 22. Coordenadas esféricas y puntos del robot y eje coordenado del robot en coordenadas cartesianas

A cada uno de los puntos ingresados a las articulaciones se les hizo una traslación de vectores y una

transformación de coordenadas. Al realizar una transformación a coordenadas esféricas, se tiene que theta

y phi son los ángulos que permiten el movimiento del robot, figura 22. En el caso del radio de la esfera no

fue necesario tomar en cuenta dicho eje ya que la simulación se mueve en un plano 2D, por lo tanto, la

coordenada r no genera ningún efecto en el movimiento de los brazos. En el anexo 11, se puede detallar el

funcionamiento del sistema simulado.

El modelo tiene un offset de 90 grados debido a que el punto de partida del robot tiene los brazos extendidos

como se visualiza en la figura 22, lo cual implica un punto de partida diferente a la posición inicial (Brazos

hacia abajo). Esto generó cambios en la conversión de los datos, por tal razón, para cada articulación se

debe hacer una conversión adecuada al movimiento y alcance, y al plano en el que se ejecute el movimiento.

Es decir, si el movimiento se realiza en un plano negativo se debe verificar que las coordenadas ingresadas

tengan el signo negativo como es de esperarse.

SimMechanics:

Joint actuator es un bloque actuador de SimMechanics el cual es implementado en articulaciones

rotacionales, tiene dos formas de operación, una consiste en aplicarle una fuerza (torque) o también se le

puede dar el movimiento a la pieza en la cantidad de grados que se va a girar la misma. Para este proyecto

fue usada la segunda opción donde es posible indicar la posición en grados a la cual se quiere mover, la

velocidad que se le quiere dar al movimiento y la aceleración del mismo. Como no se va a tener en cuenta

la velocidad y la aceleración son entradas cero, solo se maneja la posición. Al ser un modelo ideal el

movimiento es instantáneo, es decir, que al indicar en el sistema la posición a la cual se quiere llegar, el

robot se mueve en ese mismo momento.

El ingreso de las señales al bloque joint actuator, se realiza por medio de un vector de dos posiciones, donde

la primera posición es el tiempo. La duración de dicho tiempo indica el periodo en el cual el robot mantendrá

la posición establecida en la segunda fila del mismo vector.

Page 37: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

37

Figura 23. Comparación entre la posición obtenida por el entorno de simulación y la persona

La figura 23 muestra la respuesta del entorno de simulación frente a la posición establecida por la persona

capturada por el sensor Kinect. Una de las posibles diferencias que se pueden presentar en el sistema está

dada por la respuesta del brazo izquierdo, esto debido a que al realizar la exportación del modelo CAD al

entorno de SimMechanics una de sus componentes estructurales, el codo estaba definido como una

articulación con cero grados de libertad, por lo cual no podía ejecutar ningún movimiento. Este problema

se pudo solucionar con la adecuación necesaria del sistema, permitiendo que dicha articulación si tuviera

grados de libertad, pero aunque genera un movimiento parecido no es posible alcanzar el nivel de similitud

que se tiene en el brazo derecho, ya que no posee las características que se obtienen desde el CAD exportado

de SolidWorks. La figura 24 muestra otra respuesta del robot simulado comparado con la posición real de

la persona.

Figura 24. Comparación entre la posición obtenida por el entorno de simulación y posición ejecutada por la persona

Page 38: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

38

8. PROTOCOLO DE PRUEBAS Y ANÁLISIS DE RESULTADOS

8.1. MEDICIÓN DEL ERROR DE LOS PUNTOS EXTRAIDOS POR MEDIO DEL KINECT

Con el fin de establecer estándares de medida para obtener un buen nivel de exactitud de las

posiciones obtenidas por el sistema de captura del Kinect, se partieron de dos pruebas. La primera

prueba consta de un sistema de movimiento Vicon, con el cual se puede establecer criterios de

funcionalidad del sensor Kinect, además de posibilitar el hecho de calibrar el sensor de acuerdo a

las posiciones obtenidas por un sistema con mejor captura como lo es el Vicon. La segunda prueba

consta de un sistema de medición manual, a partir de un flexómetro industrial, el cual proporciona

datos a partir de las medidas tomadas con respecto a un eje de referencia y los puntos de las manos

de las personas de prueba. Para las mediciones con el flexómetro industrial, se considera que dicho

instrumento tiene una medida mínima de un milímetro; pero que no se puede considerar como

incertidumbre, ya que al ser una medición realizada por una persona se pueden incurrir en errores

humanos. Por consiguiente la medición se plantea con una incertidumbre de 1 centímetro. Teniendo

claro esto se ubica el Kinect de tal manera que quede fijo a una altura definida por el usuario y se

traza una línea imaginaria para proyectar el centro de la cámara en el cuerpo humano. Dicha medida

es tomada idealmente y se realizan pruebas de que tan preciso es el centro definido; así entonces

se puede medir la distancia entre el punto de origen y el punto final de cada mano en X y Y para

comparar con las medidas entregadas por el Kinect. De igual manera, para el eje Z se mide la

distancia entre la posición de la cámara y el punto final de cada brazo.

8.1.1. ANÁLISIS DEL KINECT CON RESPECTO A EL SISTEMA DE SEGUIMIENTO

VICON

El sistema de movimiento Vicon es un sistema de seguimiento el cual es usado con el fin de validar el nivel

de precisión de los datos extraídos por parte del Kinect. Con este sistema lo que se pretendió fue medir las

posiciones de cada uno de los puntos de captura de las extremidades superiores del ser humano y

compararlas con los datos obtenidos por parte del sensor Kinect. Vicon es un sistema de captura de

movimiento [19] soportado sobre el software Nexus, el cual se compone de cámaras infrarrojas T10 capaces

de capturar 370 frames por segundo con una máxima resolución de imagen de 1 megapíxel, MXgiganet y

el software Vicon tracker [Manual del sistema]. El sistema es capaz de seguir múltiples objetos con buena

precisión en tiempo real, en un espacio de trabajo definido.

La Universidad Javeriana en conjunto con el centro Ático cuenta con un sistema de captura de movimiento

conformado por 4 cámaras infrarrojas, que se integran al software para la obtención de los datos. Dichas

cámaras deben ser ubicadas de tal forma que tengan una amplia cobertura del espacio de prueba. Para este

caso se definió poner una cámara en cada una de las esquinas del salón o área de trabajo, cuatro esquinas

cuatro cámaras, permitiendo así un mayor ángulo de captura. Al fijar las cámaras se debe determinar su

altura y dirección según el punto que se quiere detectar, en este caso el punto fijo donde se ubicará a la

persona para su visualización, como se presenta en la figura 25.

Page 39: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

39

Figura 25. Modelo de la cámara y la distribución del sistema visualizado en el software Nexus

Los movimientos de la persona fueron seguidos a través de marcadores esféricos. Estos marcadores fueron

puestos en las extremidades superiores de la persona, como se visualiza en la figura 26. La ubicación de los

marcadores fue seleccionada a partir de la estructura del esqueleto de la persona que se obtiene por parte del

sistema de captura del Kinect, sección 4.2; los pines están hechos de un material reflectivo infrarrojo y se

ubicaron en las zonas de los hombros, codos, muñecas y puños, como se presenta en la figura 26; además

de unos puntos en el torso de la persona, en el pecho, abdomen y abdomen bajo. Al determinarse que la

visión de cada una de las cámaras era correcta y se puede visualizar claramente cada uno de los marcadores

que conforman el esqueleto de la persona en el software Nexus, se procedió a la calibración de las cámaras.

El proceso de calibración puede ser explicado más a fondo en [20].

Figura 26. Ubicación de los marcadores en los puntos elegidos sobre las extremidades superiores

Finalmente, cuando cada cámara fue calibrada, es decir, que se indicó en la pantalla del software que ya

estaban listas, se ubicó a la persona en su punto inicial nuevamente. Se realizó una última revisión del nivel

Page 40: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

40

de detección de cada cámara y al ser el adecuado, se inició la captura. Cada cámara emite rayos infrarrojos

que se reflejan sobre los pines, así por medio del registro de las cámaras se puede calcular la ubicación 3D

de los marcadores. Estos datos son usados para hacer el modelo 3D del sujeto en el software Vicon Nexus.

Experimentalmente, lo primero es colocar los marcadores esféricos en puntos de referencia como se indicó

en la figura anterior. En segundo lugar, que el sujeto haga movimientos como levantar los brazos hacia los

lados y hacia el frente, mientras que dichos movimientos son registrados por las cámaras infrarrojas. Cada

sujeto hizo movimientos a su querer alternando los brazos y el giro del torso obteniendo una mayor precisión

en las medidas de los puntos de cada uno de los brazos. El movimiento del torso no es uno de los puntos

contemplados para este análisis, simplemente se hicieron las medidas de rotación de torso para las pruebas

del Vicon, con el fin de visualizar movimientos con mayores recorridos para cada uno de los puntos de las

extremidades superiores.

8.1.1.1. LIMITACIONES Y ÁREA DE TRABAJO

Fueron usadas cámaras con una resolución de 8 mm para la captura de imágenes a 100 frames por segundo.

El espacio de trabajo es un área de definida en la figura 27. En esta área, el sistema Vicon emplea 4 cámaras

para el estudio de la pose del sujeto capturado. También se muestra el sistema de captura del Kinect, los

datos obtenidos a partir de este sistema fueron comparados con los datos obtenidos con el Vicon, el proceso

de captura del Kinect se realizó según lo explicado en la sección 4.2.

Figura 27. Espacio de trabajo del Sistema Vicon con su respectivo Sistema coordenado y Sistema de comparación Kinect con su

respectivo sistema coordenado

Se realizaron una serie de pruebas con el fin de adquirir variedad en los datos, a partir de diferencias entre

los sujetos de prueba, como género, edad, contextura corporal, estatura y peso. Los datos obtenidos fueron

las posiciones correspondientes a cada uno de los puntos de las extremidades superiores definidos en la

figura 26. Posiciones en X, Y y Z, con respecto a un eje coordenado que se estableció a partir de la

calibración del sistema Vicon. Se realizaron 8 mediciones o pruebas a dos personas diferentes. En la tabla

10 se muestran las propiedades de los participantes.

Page 41: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

41

Sujeto 1 2

Genero Femenino Masculino

Edad (Años) 22 24

Estatura (m) 1.65 1.72

Peso (kg) 54 68 Tabla 4. Características de los sujetos de prueba

Con el fin de evaluar el nivel de desempeño de la extracción de los datos del sensor Kinect, se realizó un

análisis comparativo entre los datos obtenidos por dicho sensor y el sistema de movimiento Vicon, en un

espacio de trabajo descrito en la figura 27. Las cámaras Vicon seguían los movimientos realizados por dos

sujetos de prueba en las extremidades superiores del cuerpo. Las posiciones obtenidas por el sistema Vicon

son almacenadas y comparadas con cada una de las posiciones obtenidas por medio del sensor Kinect, con

el fin de evaluar su desempeño.

Ejes Coordenados Vicon Ejes coordenados Sensor Kinect

X -X±50

Y Z-1940

Z Y+200 Tabla 5. Traslación de ejes coordenados, del sensor Kinect

Se realizaron 8 pruebas, anexo 10, en las cuales dos sujetos diferentes movían los brazos a su querer, al

mismo tiempo las cámaras del vicon y el sensor Kinect capturaban dichos movimientos, obteniendo

posiciones en X, Y y Z de cada uno de los puntos descritos en la figura 26. En la tabla 11, se describe la

traslación del eje coordenado del Kinect ya que como se observa en la figura 27, este no fue ubicado en el

mismo lugar del eje coordenado del sistema Vicon. Se aclara que las medidas tomadas son en milímetros,

estas medidas ya poseen un rango de error debido a que las distancias entre cada uno de los ejes coordenados,

fueron tomadas por medio de un flexómetro, el cual no posee una alta precisión, además de posibles errores

humanos al obtener estas medidas, por esta razón cada medida obtenida se encuentra en un intervalo de

variación de aproximadamente ±50 mm. En las figuras 28, 29 y 30, está descrita la trayectoria resultante

obtenida por medio del sistema de captura Vicon en comparación con el sistema de captura del sensor kinect

en los puntos finales descritos en la figura 26. Ya que los puntos de interés para evaluar el desempeño del

sistema son los brazos, para este análisis solo se tomaron en cuenta las posiciones obtenidas en los puños,

muñecas y codos de cada prueba. Las imágenes completas de la prueba 1 y su respectivo análisis, anexo 12.

Figura 28. Comparación entre la posición obtenida en la mano izquierda entre el eje X del Sistema de captura Vicon y el eje X

del sensor Kinect. Prueba 1. Anexo 12

Page 42: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

42

Figura 29. Comparación entre la posición obtenida en el codo izquierdo entre el eje Z del Sistema de captura Vicon y el eje Y del

sensor Kinect. Prueba 1. Anexo 12

Figura 30. Comparación entre la posición obtenida en la muñeca izquierda entre el eje Z del Sistema de captura Vicon y el eje Y

del sensor Kinect. Prueba 1. Anexo 12.

Por último, se analizaron los datos obtenidos en cada una de las 8 pruebas para cada punto de interés y se

evaluó su nivel de desempeño a partir del cálculo del error relativo. Los resultados obtenidos en la tabla 12,

demuestran que los datos obtenidos por medio del sistema de captura del Kinect son coherentes y similares

a los datos proporcionados por medio del sistema de movimiento Vicon. El error relativo para cada prueba

está por debajo o alrededor del 15%, obteniendo la medida mínima requerida para un buen desempeño según

los objetivos propuestos para este sistema.

ERROR RELATIVO SISTEMA VICOS Vs SISTEMA DE CAPTURA KINECT

Sujeto Prueba Mano IZ Mano DR Muñeca IZ Muñeca DR Codo IZ Codo DR

X Y Z X Y Z X Y Z X Y Z X Y Z X Y Z

1

1 11.1 17.6 10.3 4.26 9.49 10.2 4.05 10.7 18.4 2.49 4.02 15.7 4.11 2.68 8.95 3.79 3.78 2.74

2 4.9 5.97 12.4 4.68 19.9 10.7 4.56 12.4 13.4 5.01 3.26 6.33 3.26 3.26 15.2 4.94 3.26 15.2

3 2.33 10.6 18.5 6.45 8.32 9.9 2.78 3.36 6.24 3.17 11.3 11.7 1.93 2.87 8.32 2.19 2.05 3.64

4 2.03 6.28 8.6 13.8 4.18 9.54 6.73 6.73 8.93 14.5 8.29 11.6 3.47 10.1 6.73 3.63 11.1 8.29

2

5 14.8 15.3 13.1 4.79 19.3 9.54 6.58 12.7 18.6 6.39 3.39 5.58 2.47 2.78 4.13 5.53 4.73 5.24

6 3.8 19.9 7.57 7.36 17.1 7.44 5.23 16.9 1.48 3.38 5.78 9.55 12.2 8.42 3.24 7.99 3.41 7.17

7 4.47 12.8 16.9 4.41 11.5 14.4 3.56 16.2 11.2 3.8 2.89 16.2 3.3 2.78 5.84 3.93 2.46 7.42

8 3.08 1.94 19.2 3.9 2.79 8.65 5.01 4.14 5.27 9.72 6.04 7.27 5.64 14.6 3.67 6.32 9.33 1.22

Tabla 6. Error Relativo y nivel de desempeño del sensor Kinect comparado con el sistema de captura Vicon en XYZ

Page 43: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

43

8.1.2. MEDICIÓN DEL ERROR DEL KINECT POR MEDIO DE UN FLEXÓMETRO

INDUSTRIAL

Para la medición del error del Kinect se analizan las medidas extraídas en metros por el Kinect al hacer el

seguimiento del cuerpo humano contra los resultados de los instrumentos de medición manuales utilizados

para dicha comparación, en este caso un flexómetro industrial. Cabe aclarar que la comparación del error es

analizada en los puntos de los efectores finales; es decir, las dos manos del cuerpo humano debido a que el

resto de puntos no son de interés para el seguimiento del robot. De esta manera se tomaron 50 capturas del

Kinect al cuerpo humano y se tomaron las coordenadas en XYZ de los efectores finales en cada captura para

ser comparados con las mediciones realizadas manualmente de la posición alcanzada de acuerdo al cero de

referencia. Con el fin de analizar el error a profundidad, se realiza la medición del error para dos personas

y se comparan los resultados correspondientes. La tabla 4, muestra las coordenadas encontradas con el

Kinect y las coordenadas medidas manualmente para el primer sujeto.

Tabla 7. Coordenadas Kinect vs Coordenadas Medidas

El error analizado es el error relativo ya que se comparan dos puntos en el espacio y la diferencia entre ellos,

por lo que este error, al calcular la distancia entre los dos puntos y escalarlo sobre el valor real, brinda la

información necesaria para saber si la medida es válida para el objetivo especificado. Teniendo las

mediciones para cada eje de referencia y la diferencia entre cada punto del espacio, se realiza una gráfica

de dispersión de datos para cada mano en XYZ junto con el valor del error para observar el comportamiento

de los datos en cada captura tomada por el Kinect y la diferencia entre el dato extraído con el Kinect y el

dato medido de forma manual:

Xei(m) Yei(m) Zei(m) Xed(m) Yed(m) Zed(m) Xmi(m) Ymi(m) Zmi(m) Xmd(m) Ymd(m) Zmd(m)

1 -0.397 0.307 2.197 0.349 0.265 2.185 -0.421 0.271 2.203 0.362 0.232 2.195

2 -0.402 0.365 2.206 0.373 0.315 2.226 -0.405 0.332 2.213 0.399 0.295 2.191

3 -0.417 0.385 2.25 0.356 0.317 2.229 -0.388 0.346 2.235 0.367 0.324 2.21

4 -0.338 0.167 2.107 0.339 0.382 2.219 -0.336 0.145 2.105 0.368 0.402 2.203

5 -0.46 0.475 2.205 0.341 0.281 2.226 -0.422 0.433 2.198 0.344 0.249 2.175

6 -0.316 0.283 2.017 0.233 0.174 2.045 -0.336 0.225 2.046 0.289 0.163 2.036

7 -0.29 0.33 1.884 0.291 0.306 1.909 -0.321 0.266 1.907 0.293 0.278 1.896

8 -0.281 0.407 2.162 0.313 0.278 2.183 -0.305 0.359 2.203 0.325 0.241 2.154

9 -0.38 -0.084 2.168 0.335 -0.105 2.19 -0.398 -0.098 2.189 0.341 -0.116 2.197

10 -0.353 0.388 2.163 0.291 -0.034 2.203 -0.382 0.354 2.266 0.277 -0.029 2.183

11 -0.456 0.255 2.102 0.445 0.208 2.166 -0.426 0.223 2.134 0.396 0.207 2.136

12 -0.401 0.048 2.213 0.313 -0.006 2.239 -0.349 0.042 2.222 0.354 -0.007 2.23

13 -0.376 0.381 2.218 0.341 -0.194 2.264 -0.388 0.357 2.249 0.312 -0.214 2.248

14 -0.408 -0.146 2.125 0.391 -0.176 2.199 -0.417 -0.169 2.157 0.396 -0.152 2.17

15 -0.469 0.265 2.098 0.315 0.357 2.251 -0.496 0.235 2.169 0.291 0.325 2.196

16 -0.324 0.181 2.121 0.287 0.167 2.131 -0.336 0.154 2.123 0.305 0.133 2.123

17 -0.427 0.368 2.195 0.409 0.363 2.291 -0.411 0.347 2.194 0.399 0.336 2.266

18 -0.381 0.134 2.09 0.346 0.113 2.138 -0.403 0.121 2.115 0.376 0.132 2.124

19 -0.229 0.119 2.089 0.178 0.106 2.088 -0.236 0.1 2.111 0.204 0.087 2.113

20 -0.38 0.376 2.211 0.33 0.353 2.253 -0.393 0.349 2.308 0.366 0.311 2.289

S

U

J

E

T

O

1

Coordenadas Extraídas V.S Coordenadas Medidas

Coordenadas Extraídas Coordenadas Medidas

Izquierda DerechaIzquierda Derecha

Coordenadas Extraídas Coordenadas Medidas

Page 44: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

44

Figura 31. Coordenadas Eje X: Mano Izquierda y Mano Derecha

Figura 32. Coordenadas Eje Y: Mano Izquierda y Mano Derecha

Figura 33. Coordenadas Eje Z: Mano Izquierda y Mano Derecha

De esta manera se encuentra que el error relativo del Kinect para cada eje de referencia según el número de

muestras tomadas es el presentado en la tabla 5:

Tabla 8. SUJETO 1 y 2: Error Relativo Mano Derecha e Izquierda en XYZ

ERROR X ERROR Y ERROR Z ERROR X ERROR Y ERROR Z

1 5,54712198 13,4632261 1,3134662 6,70756858 11,6487881 1,04742902

2 6,98253649 10,9976213 1,35809482 6,86572822 10,2435411 1,10434871

Mano Izquierda Mano DerechaSUJETO

ERROR RELATIVO KINECT

Page 45: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

45

Como se puede observar en las figuras 25, 26 y 27; el dato extraído para cada eje de referencia se asemeja

bastante al dato medido, excepto en el eje Y donde se encuentra el mayor error. Este error se da debido al

punto de referencia definido a la hora de tomar la medida o fallas humanas que incluyen: falta de precisión

al medir o movimiento involuntario de la persona medida. Con el fin de tener mayor precisión, se realiza el

análisis con el sistema de seguimiento Vicon y se analizan las diferencias encontradas. Teniendo en cuenta

que los errores no superan el valor estipulado, se considera que estas satisfacen el requerimiento para enviar

los datos al robot y hacer el seguimiento de los mismos. De la misma manera se realizaron las medidas para

el segundo sujeto, con resultados similares, lo cual se puede observar en el anexo 5, obteniendo su respectivo

error el cual también es mostrado en la tabla 5.

8.2. MEDICIÓN DEL ERROR DEL ROBOT

Ahora para realizar la medición del error del robot, se tomaron como referencia los puntos enviados por el

Kinect al controlador para compararlos con los puntos reales alcanzados por el robot, dados por el

controlador. Es decir que se comparan las coordenadas de los efectores finales extraídas mediante el Kinect

contra los puntos reales alcanzados por el robot hallados mediante el controlador del mismo. Para obtener

esas coordenadas, se lleva al robot al punto que se desea analizar y por medio del controlador se extraen los

puntos reales alcanzados por el mismo; esto se facilita ya que con presionar dos teclas, el robot obtiene sus

puntos XYZ y rotaciones en el espacio de cada efector final con suficiente precisión para comparar y obtener

el error deseado. Para las mediciones con el controlador del robot se extraen los puntos de referencia

mediante el sensor Kinect y se transforman para el envío al robot; dichas coordenadas transformadas se

toman como el valor a comparar contra la medida real dada por el controlador del robot. Se realiza el envío

de las coordenadas extraídas y el robot las sigue; al llegar al punto deseado, mediante el teach pendant, se

extraen los valores en XYZ de cada efector final y se comparan, considerando el cambio de ejes de referencia

correspondiente.

Es necesario aclarar que el efector final de cada robot cuenta con sus medidas y por consiguiente el cero

especificado en cada brazo (definido en la sección 6.2) tiene su desplazamiento en comparación al punto

real en el espacio obtenido por el controlador. Para saber cuál es el punto real alcanzado por el robot y poder

compararlo, es necesario saber cuál es la traslación en los tres ejes de referencia de cada brazo en su punto

inicial. Al obtener la posición real del robot (por el controlador) en el cero definido se tienen los resultados

mostrados en la tabla 6:

Tabla 9. Coordenadas Brazo Izquierdo y Derecho extraídas por el controlador

Como se puede observar, existe una diferencia entre los puntos reales alcanzados por el robot y el cero

definido para cada uno de los brazos del robot, por lo que al hacer la comparación entre datos se debe hacer

la traslación correspondiente a cada uno de los datos extraídos por el controlador del robot para así obtener

los datos reales y medir el error deseado.

Esta diferencia se observa a la hora de extraer las coordenadas del controlador ya que cada brazo tiene su

efector final definido; y así se definan las coordenadas por medio del programa y se envíen con el cero

creado por el usuario, el robot mostrará las coordenadas reales con respecto a su referencia y no a la que se

definió por medio del código. Al hacer las medidas se obtuvieron los siguientes resultados:

X Y Z

68.143 40.243 15.141

Coordenadas Brazo Izquierdo

X Y Z

0.048 0.134 0.092

Coordenadas Brazo Derecho

Page 46: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

46

Tabla 10. Coordenadas Kinect vs Coordenadas Robot

Xei Yei Zei Xed Yed Zed Xsi Ysi Zsi Xsd Ysd Zsd

1 -220.000 150.000 1.000 220.000 150.000 5.000 -220.676 150.006 1.004 220.047 150.062 5.013

2 -230.000 153.000 -15.000 240.000 159.000 1.000 -230.295 153.090 -15.129 240.005 158.990 1.005

3 -198.000 169.000 15.000 266.000 175.000 15.000 -198.646 169.041 15.094 266.006 174.994 15.065

4 -260.000 180.000 15.000 189.000 128.000 11.000 -260.599 179.982 15.072 188.989 128.144 11.012

5 -225.000 165.000 12.000 256.000 175.000 15.000 -225.634 165.002 12.001 255.978 174.975 14.949

6 -240.000 135.000 13.000 225.000 155.000 22.000 -240.084 135.044 12.955 225.015 154.968 21.981

7 -230.000 152.000 4.000 235.000 134.000 18.000 -230.040 151.943 4.056 235.078 134.022 18.022

8 -221.000 148.000 17.000 227.000 144.000 15.000 -220.987 147.945 17.035 226.988 144.051 15.013

9 -237.000 162.000 6.000 232.000 152.000 9.000 -236.964 161.977 5.948 232.045 151.974 9.007

10 -215.000 143.000 22.000 236.000 135.000 8.000 -214.966 143.072 21.967 235.956 134.986 8.027

11 -239.000 138.000 16.000 224.000 126.000 12.000 -239.044 138.062 16.059 224.047 126.039 12.031

12 -221.000 140.000 8.000 195.000 156.000 22.000 -221.038 139.923 7.985 194.996 156.057 22.014

13 -239.000 173.000 24.000 210.000 139.000 15.000 -238.961 173.060 24.087 210.567 138.941 15.010

14 -229.000 144.000 4.000 245.000 138.000 20.000 -228.943 143.955 4.023 244.963 138.066 20.026

15 -233.000 137.000 20.000 227.000 162.000 24.000 -232.951 137.065 20.077 227.023 161.956 23.987

16 -219.000 162.000 18.000 237.000 158.000 19.000 -218.978 161.940 18.036 237.031 158.031 18.946

17 -244.000 172.000 22.000 199.000 134.000 13.000 -244.023 172.071 21.946 198.963 134.061 13.041

18 -249.000 157.000 26.000 229.000 147.000 22.000 -248.960 157.033 26.070 229.039 146.964 22.013

19 -252.000 142.000 7.000 185.000 170.000 16.000 -251.948 141.965 7.023 185.045 169.933 15.978

20 -262.000 163.000 9.000 204.000 152.000 9.000 -262.036 162.919 8.954 203.941 152.060 9.015

21 -245.000 146.000 21.000 208.000 134.000 21.000 -245.017 146.078 21.033 207.978 134.019 21.042

22 -211.000 176.000 17.000 232.000 142.000 24.000 -210.974 175.912 17.049 231.875 141.948 23.986

23 -227.000 156.000 18.000 201.000 150.000 18.000 -227.035 156.022 17.948 200.945 150.057 18.036

24 -254.000 170.000 8.000 215.000 146.000 11.000 -253.984 170.042 8.063 215.031 146.036 11.019

25 -240.000 158.000 8.000 220.000 149.000 15.000 -239.963 158.071 8.059 219.956 148.963 15.036

26 -217.000 150.000 20.000 246.000 139.000 20.000 -217.033 150.036 19.939 246.041 139.041 20.052

27 -235.000 166.000 24.000 223.000 141.000 4.000 -234.937 165.977 24.053 222.955 141.039 4.032

28 -230.000 139.000 15.000 216.000 133.000 10.000 -230.046 138.940 15.055 215.974 132.955 9.974

29 -220.000 145.000 19.000 223.000 120.000 19.000 -220.074 144.936 19.073 222.939 120.023 18.956

30 -239.000 162.000 23.000 196.000 144.000 11.000 -239.052 162.034 23.088 196.043 144.035 11.023

31 -230.000 150.000 17.000 210.000 145.000 21.000 -230.041 150.067 17.064 210.072 144.944 20.949

32 -241.000 122.000 3.000 229.000 132.000 8.000 -240.953 121.977 3.015 228.950 132.071 8.036

33 -250.000 144.000 26.000 234.000 155.000 12.000 -250.071 143.965 26.033 233.935 155.036 12.044

34 -221.000 139.000 14.000 217.000 157.000 6.000 -221.036 139.056 13.974 217.078 157.048 6.029

35 -234.000 150.000 22.000 199.000 138.000 25.000 -233.976 150.026 22.045 199.062 137.943 25.068

36 -235.000 154.000 21.000 233.000 160.000 20.000 -235.019 154.074 20.974 232.977 160.078 20.044

37 -206.000 160.000 5.000 211.000 143.000 21.000 -206.055 160.036 5.031 210.946 142.946 21.053

38 -226.000 149.000 10.000 206.000 144.000 15.000 -225.954 149.033 9.929 206.074 144.068 14.956

39 -203.000 148.000 27.000 219.000 135.000 15.000 -202.966 147.950 27.019 218.971 134.974 15.019

40 -244.000 135.000 14.000 198.000 133.000 10.000 -244.045 135.043 14.036 198.039 132.956 9.944

41 -200.000 140.000 11.000 237.000 128.000 22.000 -200.063 139.963 10.960 236.944 127.953 21.981

42 -222.000 156.000 25.000 228.000 156.000 10.000 -222.038 155.940 24.955 227.950 156.048 9.946

43 -239.000 163.000 12.000 236.000 137.000 16.000 -238.946 163.056 12.034 236.071 137.059 16.042

44 -218.000 153.000 20.000 222.000 139.000 18.000 -217.963 152.937 19.967 221.964 138.971 18.065

45 -229.000 152.000 13.000 232.000 130.000 8.000 -229.046 152.061 13.022 231.980 129.936 8.023

46 -199.000 162.000 10.000 206.000 160.000 6.000 -199.038 161.974 10.030 205.974 159.944 5.967

47 -210.000 144.000 9.000 238.000 158.000 23.000 -210.061 144.029 8.959 237.946 157.936 22.949

48 -220.000 148.000 20.000 209.000 140.000 7.000 -220.036 148.040 19.977 209.039 140.035 7.027

49 -240.000 137.000 10.000 240.000 132.000 17.000 -239.977 137.062 10.036 239.963 131.977 17.038

50 -249.000 140.000 3.000 192.000 128.000 9.000 -249.012 139.966 3.026 192.076 128.066 8.939

Coordenadas Enviadas Coordenadas Seguidas

Brazo Izquierdo (mm) Brazo Derecho (mm) Brazo Derecho (mm)Brazo Izquierdo (mm)

Page 47: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

47

Teniendo las mediciones para cada eje de referencia y la diferencia entre cada punto del espacio, como se

puede observar en la tabla 7, se realiza una gráfica de dispersión de datos para cada mano en XYZ junto con

el valor del error para observar el comportamiento de los datos en cada movimiento realizado por el Robot

y la diferencia entre el dato seguido por el Robot y el dato extraído del controlador del mismo, debido a que

los datos son tan similares se presentan las dos gráficas por aparte para cada mano y su coordenada

correspondiente, esto con el fin de que el usuario pueda observar diferencias y comparar con el error

calculado. Se define el sub índice, de las variables en la tabla 7, de cada coordenada de la siguiente manera:

“ei” para las coordenadas extraídas en la mano izquierda y “si” para las coordenadas seguidas en la mano

izquierda; de igual manera con la mano derecha cambiando el subíndice “ei” por “ed” y “si” por “sd”:

Figura 34. Mano Izquierda: Coordenadas Eje X [Extraídas y Seguidas]

Figura 35. Mano Derecha: Coordenadas Eje X [Extraídas y Seguidas]

Figura 36. Mano Izquierda: Coordenadas Eje Y [Extraídas y Seguidas]

Page 48: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

48

Figura 37. Mano Derecha: Coordenadas Eje Y [Extraídas y Seguidas]

Figura 38. Mano Izquierda: Coordenadas Eje Z [Extraídas y Seguidas]

Figura 39. Mano Derecha: Coordenadas Eje Z [Extraídas y Seguidas]

De esta manera se encuentra que el error relativo del Kinect para cada eje de referencia según el número de

muestras tomadas es el mostrado en la tabla 8:

Tabla 11. Robot: Error Relativo Efector Final Derecho e Izquierdo en XYZ

Como se puede observar de la figura 28 a la 33, las coordenadas extraídas y seguidas para cada eje de

referencia definido en cada brazo son muy similares y tienen un error bastante pequeño, por lo que no se

aprecia la diferencia en las gráficas para cada coordenada. Sin embargo, la tabla 8 presenta las coordenadas

ERROR X ERROR Y ERROR Z ERROR X ERROR Y ERROR Z

0.041420885 0.032147475 0.38142535 0.024639465 0.032549882 0.267453778

ERROR RELATIVO ROBOT

Mano Izquierda Mano Derecha

Page 49: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

49

extraídas por el Kinect y las coordenadas extraídas del controlador (al hacer el movimiento correspondiente

y eliminar el desfase) donde se aprecia la diferencia entre cada coordenada. Teniendo en cuenta que los

errores no superan la quinta parte de la medida, se considera que estas tienen la precisión necesaria para

enviar los datos al robot y hacer el seguimiento de los mismos, los cálculos realizados se pueden apreciar

en el anexo 6.

Como se puede observar el error obtenido para el Kinect y el error del robot están medidos en porcentaje y

sus valores son muy distintos uno del otro. Lo anterior se debe a que el sensor Kinect no es un sensor de

precisión el cual es utilizado para videojuegos y aplicaciones visuales; por otro lado, el robot tiene un

sistema de sensores de precisión para calcular su posición real con respecto a un origen definido lo que le

brinda mayor confiabilidad al extraer un punto en el espacio. También, al hacer la medición manual para la

comparación los datos extraídos, se pueden incurrir en fallas humanas, lo cual es otro aspecto que se tiene

a consideración a la hora de interpretar el error. Estos errores humanos van desde la definición del origen

físico en el cuerpo humano al proyectar el centro focal del Kinect hasta que el sujeto analizado se mueva

ligeramente y cambien las medidas. Para mitigar este error, se realiza el análisis de rendimiento del Kinect

con el sistema de seguimiento Vicon para así poder comparar las dos maneras de medir y sus diferencias

aparentes.

8.3. MEDICIÓN DEL ERROR DE LA SIMULACIÓN DEL ROBOT

Para validar el alcance de similitud de los movimientos realizados por la simulación con respecto a los

movimientos obtenidos por el robot, se realizó un análisis comparativo entre los datos obtenidos por el

entorno de simulación y el alcance del robot en sus movimientos. Dicho análisis fue realizado a partir de la

extracción de los puntos de referencia dados por el sensor Kinect, los cuales fueron ingresados al controlador

del robot. El robot ejecutó los movimientos y estos fueron medidos por medio del tech pendant, obteniendo

las posiciones de llegada de cada uno de los actuadores finales; en el entorno de simulación se realizó un

proceso similar, se ingresaron los datos obtenidos al software Matlab en el cual se desarrolló la simulación,

dichos datos fueron transformados a coordenadas esféricas de tal manera que pudieran ser recibidos por los

bloques que conformaban el modelo del robot, por ultimo cada posición al ser ingresada a cada articulación

ejecutan los movimientos, los cuales son medidos por medio del bloque body sensor con el cual se

obtuvieron las posiciones X,Y y Z del movimiento. Por último, se compara el punto de llegada de los

efectores finales en el entorno real, con a las posiciones obtenidas por las mismas articulaciones respecto al

entorno de simulación.

Para obtener la posición a la cual llega cada una de las extremidades finales del robot en la simulación, fue

necesario el uso del bloque body sensor que hace parte del Toolbox de SimMechanics. Este bloque, mide el

movimiento de la articulación según el sistema coordenado al cual está conectado dicho bloque. El sensor

mide cualquier combinación de posición de traslación, velocidad y aceleración; y la orientación de rotación,

la velocidad angular y la aceleración angular. La elección del sistema de coordenadas determina los ejes en

los que se representan los componentes de movimiento. La salida, obtenida por el bloque body sensor es

una señal de Simulink, para este caso son múltiples señales de salida las cuales representas el movimiento

de 10 posiciones en el eje X, en el eje Y y en el eje Z. Las posiciones obtenidas son comparadas con cada

una de las posiciones obtenidas por el robot al ingresar las mismas 10 posiciones, con el fin de evaluar su

desempeño.

En la figura 40, está descrita la trayectoria resultante obtenida a partir del ingreso de las posiciones en

coordenadas cartesianas en el entorno de simulación para el brazo izquierdo. La figura 41, muestra los

movimientos generados a partir del ingreso de coordenadas cartesianas en el entorno de simulación para el

Page 50: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

50

brazo derecho. Como el eje coordenado del robot esta en coordenadas cartesianas y la respuesta obtenida

por el bloque body sensor es en grados, se debe realizar una transformación de coordenadas para hacer

posible el análisis de similitud. Por esta razón se tomaron las coordenadas del robot y se pasaron al sistema

coordenado de la respuesta obtenida por el body sensor, es decir, coordenadas esféricas. Se aclara que los

ejes coordenados de cada sistema no son iguales por tal razón se pueden presentar variaciones a nivel de

desempeño. Para este análisis solo se tomaron en cuenta las posiciones obtenidas en los puños de cada brazo,

que son las articulaciones evaluadas en este proyecto. También se aclara que como la simulación es en 2D

no se tomó en cuenta el parámetro r al hacer el cambio al sistema coordenado esférico de las posiciones del

robot del Ctai.

Figura 40. Trayectoria obtenida por el robot en el entorno de simulación

Figura 41. Trayectoria obtenida por el robot en un entorno real

0 1 2 3 4 5 6 7 8 9 10-0.8

-0.7

-0.6

-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

Coord

enada d

e L

legada e

n C

ada P

rueba

Número de Pruebas

RESPUESTA DE LA MANO IZQUIERDA EN EL ENTORNO DE SIMULACIÓN

Eje X

Eje Y

Eje Z

0 1 2 3 4 5 6 7 8 9 10-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

X: 9.401

Y: -0.08916

RESPUESTA DE LA MANO DERECHA EN EL ENTORNO DE SIMULACIÓN

Número de Pruebas

Coord

enada d

e L

legada e

n C

ada P

rueba

Eje X

Eje Y

Eje Z

Page 51: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

51

Finalmente, se analizaron los datos obtenidos al ingresar 10 posiciones para cada punto de evaluación o

cada articulación. Para el análisis se tomaron las muestras y se calculó el error relativo para medir el alcance

a nivel de similitud entre los dos sistemas, anexo 10. Los resultados mostrados en la tabla 12, demuestran

que los datos obtenidos por medio de la simulación son coherentes y similares a los datos obtenidos por el

movimiento del robot. El error relativo para cada prueba está por debajo o al rededor del 15%, obteniendo

la medida requerida para un buen desempeño según los objetivos propuestos.

Error Relativo Simulación

Posición Mano Izquierda Mano Derecha

X Y X Y

1 22.4798867 6.30163047 3.57872152 9.32155042

2 15.6605573 21.0980406 0.177414 24.7966795

3 6.49921341 11.6455548 8.53205516 20.5203882

4 4.51547758 8.65318147 9.91534983 4.66578512

5 8.0233308 22.4599649 6.43169775 17.6964159

6 17.70877 1.59693124 17.2083439 27.0635421

7 17.8072586 14.7345225 5.54765666 6.26157485

8 17.6085881 4.64458516 20.0419053 14.3522644

9 15.6288586 9.98683233 13.7497911 5.41244635

10 15.0795715 16.393975 12.3776127 10.6824332

Tabla 12. Medidas de desempeño del robot con respecto a la simulación

Los datos presentes en la tabla 12 fueron las medidas obtenidas por el sistema en coordenadas polares, los

datos obtenidos por el robot fueron transformados a dichas coordenadas para su posible comparación. En el

anexo 10 se puede observar la tabla correspondiente a los datos obtenidos por los movimientos del robot en

coordenadas esféricas y los datos obtenidos por la simulación en las mismas coordenadas. Para su posible

análisis.

En la simulación, se encuentran diferentes causas que generan los errores descritos en la tabla 9. Estos

errores se presentan debido a la extrapolación de los datos del Kinect, ya que los datos obtenidos son basados

en el esqueleto de una persona; las dimensiones que poseen los brazos de una persona no son semejantes a

las dimensiones de los brazos del robot, por tal razón se puede observar que, aunque los movimientos son

similares, no se puede decir que sean idénticos. Otro posible causante de que el error se eleve por encima

del 15% es debido a los cambios o variaciones que se debe hacer en cada articulación para el ingreso de las

coordenadas, como se explicaba anteriormente, el sistema presenta un offset el cual implica cambios en las

ecuaciones de los sistemas coordenados, para poder llegar a la posición requerida. Por último, un problema

que genera cambios en el movimiento, es la profundidad, ya que el robot al hacer el cambio de coordenadas

no se está tomando en 3 dimensiones sino solamente en dos porque el eje Z no es tomado en cuenta. Estos

casos de error permiten que, aunque el robot genere movimientos muy semejantes al de la persona no llegan

a ser idénticos.

Page 52: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

52

9. CONCLUSIONES

El dispositivo Microsoft Kinect es una herramienta que facilita el análisis de tareas definidas debido a su

composición y facilidad de programación; junto con el Toolbox que proporciona Matlab para el análisis de

imágenes, se pueden ejecutar variedad de requerimientos mediante la modificación de sus características

básicas. Además de ser una programación sencilla, el manejo del Kinect es amigable con el usuario y existen

variedad de guías que facilitan la realización de nuevos proyectos en la industria. Sin duda, se deben realizar

modificaciones para obtener el resultado deseado; desde extraer las coordenadas de un esqueleto en el

espacio, convertirlas y guardarlas, hasta crear una interfaz gráfica de usuario.

El software MotoCom, como complemento del Motoman Yaskawa SDA10F, es una herramienta esencial

para el control de la familia de robots pertenecientes a la marca, debido a que brinda al usuario la posibilidad

de comunicar y hacer tareas, básicas o complejas, mediante la modificación de su código base escrito en

lenguaje C. Así mismo, el software viene listo y configurado para conectarse desde el computador al robot

y controlar el teach pendant de manera remota; al ser modificable, basta con entender cada parte del código

y añadir lo que el usuario necesite (desde leer archivos hasta enviarlos al robot).

Para el objetivo general se obtuvo el seguimiento del esqueleto al ubicarse en frente del Kinect, con la

extracción de coordenadas y el seguimiento de las mismas por parte del robot luego de ser escaladas. La

extracción de puntos mediante el sensor Kinect fue realizada correctamente con un error máximo del 11 por

ciento en sus tres ejes de referencia como fue planteado en este proyecto. Por otro lado, el seguimiento del

robot se realizó exitosamente, luego de configurar la comunicación y ajustar las coordenadas, con un error

menor al 1 por ciento para los tres ejes de referencia definidos en cada uno de sus brazos.

Sin embargo, se debe tener en cuenta que al extraer las coordenadas con el Kinect, se presentaron algunos

inconvenientes debido a que el sensor no identificaba al cuerpo de la persona como un esqueleto que pudiera

seguir en cierto tipo de posiciones: como por ejemplo, con los brazos estirados. Otro aspecto a tener en

cuenta, y pese a que se realizó el estudio de la iluminación en el CTAI, es que el Kinect no siempre

identificaba el esqueleto; es decir, si la persona no se paraba de la forma correcta o con ropa ajustada, el

Kinect confundía las articulaciones y entregaba resultados no deseados. Por otro lado, al realizar la

extracción y escritura de las coordenadas en el archivo de texto definido, Matlab tomaba un tiempo

considerable en hacerlo (seis segundos aproximadamente) por lo que el seguimiento no era continuo y había

un tiempo de espera para el procesamiento y almacenamiento de variables; este tiempo fue considerado a la

hora de leer las variables con MotoCom y ejecutar los movimientos del robot, y no afecta su funcionamiento.

Por último, debido a la ubicación del robot en el CTAI, se tiene un espacio de trabajo muy limitado para

hacer movimientos en el espacio, por lo que los movimientos debían ser ejecutados con las manos a la altura

de los hombros, esto con el fin de evitar colisiones. Fue imperativo escalar las coordenadas entregadas por

el Kinect y limitar el movimiento del robot al espacio de trabajo definido, cambiando así los valores

enviados y verificando que fueran seguidos por el robot. Para un trabajo póstumo, considerando una nueva

ubicación del robot, se pueden realizar los movimientos que se deseen debido a que el código puede ser

modificado escalando las coordenadas.

Los sistemas de captura Vicon y Kinect presentan diferencias en sus gráficas debido a factores externos

como el nivel de detección, la cantidad de capturas realizadas por cada sistema, entre otros, Las cantidades

de captura varían con respecto a las definidas por cada sistema, para este caso el sistema de captura Vicon

podía realizar más capturas respecto al sistema del Kinect, también por el nivel de iluminación que afecta

Page 53: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

53

el reconocimiento de la persona por parte del Kinect, y la perdida de algunos puntos por parte del sistema

Vicon, debido a la cobertura de cada una de las cámaras.

Con respecto a la eficiencia del sistema de captura Kinect, se puede establecer los siguientes parámetros: la

captura se debe de hacer a un nivel de iluminación establecido por medio de la calibración de dicho sensor,

en el eje de visualización del Kinect solo debe estar presente la persona a la cual se le van a tomar las

medidas, en caso de tener dos sujetos no se podrá llevar a cabo la captura. Los movimientos de los brazos

no deben exceder el ángulo de cobertura del Kinect, en dicho caso, el Kinect no podrá detectar los

movimientos planteados por el sujeto. Finalmente, el desempeño del sensor es óptimo y permite un buen

nivel de detección de los movimientos de las personas, contemplando los parámetros ya mencionados.

En la simulación se puede observar la similitud que se refleja entre los movimientos humanos y los

movimientos obtenidos en el entorno de simulación. En las pruebas realizadas se pudo identificar los

posibles problemas que causan los errores obtenidos en el análisis de similitud. Uno de los ejemplos más

claros son los errores causados debido a las diferentes referencias que se encuentran en los entornos

comparados. Es decir, la simulación y cada uno de sus movimientos están referenciados al eje coordenado

del robot ubicado en el pecho del mismo, por otro lado, los ejes coordenados del robot real, no están en la

misma posición por lo cual genera rangos de diferencias en las posiciones obtenidas por el efector final.

Otro posible caso por el cual se pueden generar errores es debido a que, el centro del robot no es igual al

centro del Kinect; al tener las dimensiones del robot diferentes a las dimensiones de la persona, se generan

errores por la distancia del centro del sistema coordenado a cada uno de los puntos.

Con respecto a las diferencias entre el movimiento obtenido por el robot ubicado en el CTAI y el robot en

el entorno de simulación, estas son dada debido a que en el robot ubicado en el CTAI solo se tomaba en

cuenta la posición del actuador final, para el caso de esta simulación fueron tomados todos los puntos del

esqueleto humano he ingresados a cada una de las articulaciones que componen cada uno de los brazos, por

tal razón el movimiento obtenido es similar mas no igual.

Los errores que se pudieron observar entre el sistema Vicon y el sistema de captura Kinect pueden ser

causados debido a errores humanos en las medidas de las distancias de cada uno de los ejes coordenados de

los diferentes sistemas. Errores en los aparatos de medida como el flexómetro, nivel de iluminación del

lugar donde se estableció la prueba, nivel de detección de las cámaras tanto del Kinect como Vicon.

Page 54: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

54

REFERENCIAS

[1] Hutchinson, S., Hager, G. D., & Corke, P. I. (1996). A tutorial on visual servo control. Robotics and

Automation, IEEE Transactions on, 12(5), 651-670.

[2] Ministerio de Minas y Energía (2010). Reglamento Técnico de Iluminación y Alumbrado Público. Anexo

General. Resolución No. 180540 de Marzo 30 de 2010. República de Colombia 2010, 77-79.

[3] Reddivari, H., Yang, C., Ju, Z., Liang, P., Li, Z., & Xu, B. (2014, September). Teleoperation control of

Baxter robot using body motion tracking. InMultisensor Fusion and Information Integration for Intelligent

Systems (MFI), 2014 International Conference on (pp. 1-6). IEEE.

[4] Kofman, J., Wu, X., Luu, T. J., & Verma, S. (2005). Teleoperation of a robot manipulator using a vision-

based human-robot interface. Industrial Electronics, IEEE Transactions on, 52(5), 1206-1219.

[5] Tang, H., Cao, X., Song, A., Guo, Y., & Bao, J. (2009, August). Human-robot collaborative teleoperation

system for semi-autonomous reconnaissance robot. In Mechatronics and Automation, 2009. ICMA 2009.

International Conference on (pp. 1934-1939). IEEE.

[6] Lim, H. J., Lee, J. K., Lee, H. J., Kim, K., & Kang, E. S. (2010, October). Master-slave teleoperation

control using Time Delay Control. In Control Automation and Systems (ICCAS), 2010 International

Conference on (pp. 1895-1899). IEEE.

[7] Hu, Z., Salcudean, S. E., & Loewen, P. D. (1995, October). Robust controller design for teleoperation

systems. In Systems, Man and Cybernetics, 1995. Intelligent Systems for the 21st Century., IEEE

International Conference on(Vol. 3, pp. 2127-2132). IEEE.

[8] Hager, G. D., Hutchinson, S., & Corke, P. Tutorial TT3: A Tutorial on Visual Servo Control. Urbana, 51,

61801.

[9] Hodzic, A., & Mujcic, E. (2015, November). Teleoperation system control based on the method for

supervisory control with variable time delay. InTelecommunications Forum Telfor (TELFOR), 2015 23rd (pp.

345-348). IEEE.

[10] Cui, J., Tosunoglu, S., Roberts, R., Moore, C., & Repperger, D. W. (2003, May). A review of

teleoperation system control. In Proceedings of the 2006 Florida conference recent advances in robotics

(FCRAR), Florida Atlantic University, FL.

[11] Presentación Asignatura Robótica Industrial

[12] Martinet, P.Comparison of visual servoing techniques: Experimental results. In Control Conference

(ECC), 1999 European (pp. 4555-4560). IEEE.

[13] Marcombo. Capítulo 1. Introducción a SolidWorks. Link Página Web para descarga de archivo.

http://www.marcombo.com/Descargas/9788426714589-

SolidWorks/descarga_primer_capitulo_libro_solidworks.pdf

[14] Kapur, A., Kapur, A., Virji-Babul, N., Tzanetakis, G., & Driessen, P. F. (2005). Gesture-based affective

computing on motion capture data. In Affective Computing and Intelligent Interaction (pp. 1-7). Springer

Berlin Heidelberg.

[15] Procházka, A., Vyšata, O., Vališ, M., & Yadollahi, M. (2013). The MS Kinect Use for 3d Modelling and

Gait Analysis in the Matlab Environment. Technical Computing Prague 2013, 270.

[16] Yaskawa Motoman Robotics. MotoCom SDK Communication Software Kit Datasheet. Web Page:

http://www.motoman.com/datasheets/MotoCom%20SDK.pdf

Page 55: SISTEMA DE CONTROL TELEOPERADO MEDIANTE UN SENSOR …

55

[17] Herrera, C., Kannala, J., & Heikkilä, J. (2012). Joint depth and color camera calibration with distortion

correction. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 34(10), 2058-2064.

[18] Ministerio de Minas y Energía (2010). Reglamento Técnico de Iluminación y Alumbrado Público. Anexo

General. Resolución No. 180540 de Marzo 30 de 2010. República de Colombia 2010, 77-79.

[19] Vicon Motion Systems (2011). VICON MX digital optical motion capture sys- tem. http://www.vicon.com

[20] Universidad de Stanford. Vicon Motion Systems. System Implementation – Vicon Tutorials. Link página

web: http://bdml.stanford.edu/twiki/pub/Haptics/SystemImplementation/ViconTutorial.pdf

ANEXOS

Los anexos se encuentran disponibles en el siguiente link:

https://www.dropbox.com/sh/fbxjyu0xmaw6fye/AAAoUaN96wsyAaXcDAU9uW32a?dl=0

Anexo 1. Archivo adjunto: TG1521_ExtraccionKinect.m y TG1521_ExtraccionKinect.fig (Código

y figura: Extracción de puntos de referencia – Matlab)

Anexo 2. Video Youtube: https://youtu.be/BjZBGBeeDZI (Video funcionamiento: Extracción de

puntos de referencia – Kinect)

Anexo 3. Archivo adjunto: MotoComDemo.exe, FormMain.cs, FormMain.Designer.cs y

FormMain.cs [Design] (Programa, código, declaraciones y figura: Comunicación y envío de

coordenadas – Visual Studio)

Anexo 4. Video Youtube: https://youtu.be/W-F1pd26hy0 (Video funcionamiento: Seguimiento de

puntos de referencia – Robot)

Anexo 5. Archivo adjunto: TG1521 - Medición Error Kinect y Robot (Medición del error para el

Kinect – Excel, Hojas de cálculo 1, 2 y 3)

Anexo 6. Archivo adjunto: TG1521 - Medición Error Kinect y Robot (Medición del error para el

robot – Excel, Hojas de cálculo 4 y 5)

Anexo 7. Video Youtube: https://youtu.be/SeoOIirqMsM (Video funcionamiento: Análisis Kinect

con sistema de seguimiento – Vicon)

Anexo 8. Carpeta adjunta: Simulación_Robot_5_poses (Código y figura: Simulación mano

derecha e izquierda)

Anexo 9. Carpeta adjunta: Robot_Bien (CAD: Extructura del robot en solidworks)

Anexo 10. Archivo adjunto: Error_Simulación_VS_Robot (Medicion del error simulacion- Excel)

Anexo 11. Video Youtube: https://youtu.be/Pf1Qj2XOwWQ (Video funcionamiento: Seguimiento

de puntos de referencia obtenidos por el Kinect en un entorno de simulación)

Anexo 12. Archivo adjunto: Sistema de movimiento Vicon_Prueba1 (Medicion del error del

sistema de movimiento Vicon con el sistema de captura Kinect-Excel)