MANIPULACIÓN DEL NOVINT FALCON CON KINECT

6
Copyright © 2016 by AMRob Memorias del XVIII Congreso Mexicano de Robótica 2016 Universidad Autónoma de Sinaloa y Asociación Mexicana de Robótica e Industria AC XVIII COMRob 2016, ISBN: En trámite 9 – 11 de Noviembre, 2016, Mazatlán, Sinaloa, México XVIIICOMRob2016/ID–000 MANIPULACIÓN DEL NOVINT FALCON CON KINECT Jorge Gudiño Lau Facultad de Ingeniería Electromecánica Universidad de Colima Manzanillo, Colima, 28868 Email: [email protected] Edgar Fabián Osorio Alcalá Facultad de Ingeniería Electromecánica Universidad de Colima Manzanillo, Colima, 28868 Email: [email protected] Yvonne Gutiérrez Fernández Facultad de Ingeniería Electromecánica Universidad de Colima Manzanillo, Colima, 28868 Email: [email protected] Miguel A. Durán Fonseca Facultad de Ingeniería Electromecánica Universidad de Colima Manzanillo, Colima, 28868 Email: [email protected] RESUMEN Este trabajo presenta la aplicación de un sistema de visión a través de una cámara para videojuegos llamada Project Natal o Kinect de Microsoft, con el objetivo de manipular un robot paralelo tipo delta Novint Falcon. El dispositivo de imagen Kinect detecta el punto de coordenadas de desplazamiento de la mano derecha de una persona, estos movimientos son transformados en coordenadas cartesianas con la ayuda de librerías y programación en Simulink de Matlab. Estas coordenadas son enviadas al dispositivo háptico Novint para ser manipuladas por un controlador proporcional derivativo (PD). En los resultados experimentales, se realiza la comparación de dos controladores, un controlador PD contra un PD con compensador de gravedad (PD+G), lo que permite ver el desempeño de los dos controladoras. INTRODUCCIÓN La visión artificial es de vital importancia cuando se trata de detectar objetos en entornos no estructurados. El uso de esa información puede tratar secuencias de videos para la detección de objetos o individuos en escenas móviles, hasta la detección para el seguimiento, conocido como tracking, o bien, la detección de objetos para la manipulación mediante robots. Actualmente existen varios controles para manipular dispositivos hápticos (Novint Falcon), en este trabajo se controla el dispositivo por medio de la visón empleando el Kinect. En años recientes, las investigaciones abordan los problemas más comunes, como es la interacción entre el ser humano y los robots manipuladores durante la navegación conjunta; el seguimiento de una persona por parte de un robot, así como la posibilidad de intercambiar sus roles de guía-seguidor. Además, los dispositivos hápticos como Phantom Omni y Novint Falcon, se están empleando actualmente para aplicaciones tanto médicas, rehabilitación, diagnóstico, enseñanza, entre otras. VISIÓN ARTIFICIAL La visión es la actividad dominante del cerebro humano. La información visual constituye la mayoría de los 10 9 bits por segundo de información que se estima que recibe del sistema sensorial. La visión artificial tiene el ambicioso objetivo de conseguir emular la compleja capacidad humana para reconocer e interpretar cualquier escena que sea su naturaleza.

Transcript of MANIPULACIÓN DEL NOVINT FALCON CON KINECT

Page 1: MANIPULACIÓN DEL NOVINT FALCON CON KINECT

Copyright © 2016 by AMRob

Memorias del XVIII Congreso Mexicano de Robótica 2016 Universidad Autónoma de Sinaloa y Asociación Mexicana de Robótica e Industria AC

XVIII COMRob 2016, ISBN: En trámite 9 – 11 de Noviembre, 2016, Mazatlán, Sinaloa, México

XVIIICOMRob2016/ID–000

MANIPULACIÓN DEL NOVINT FALCON CON KINECT

Jorge Gudiño Lau Facultad de Ingeniería Electromecánica

Universidad de Colima Manzanillo, Colima, 28868

Email: [email protected]

Edgar Fabián Osorio Alcalá Facultad de Ingeniería Electromecánica

Universidad de Colima Manzanillo, Colima, 28868

Email: [email protected]

Yvonne Gutiérrez Fernández Facultad de Ingeniería Electromecánica

Universidad de Colima Manzanillo, Colima, 28868 Email: [email protected]

Miguel A. Durán Fonseca

Facultad de Ingeniería Electromecánica Universidad de Colima

Manzanillo, Colima, 28868 Email: [email protected]

RESUMEN Este trabajo presenta la aplicación de un sistema de

visión a través de una cámara para videojuegos llamada Project Natal o Kinect de Microsoft, con el objetivo de manipular un robot paralelo tipo delta Novint Falcon. El dispositivo de imagen Kinect detecta el punto de coordenadas de desplazamiento de la mano derecha de una persona, estos movimientos son transformados en coordenadas cartesianas con la ayuda de librerías y programación en Simulink de Matlab. Estas coordenadas son enviadas al dispositivo háptico Novint para ser manipuladas por un controlador proporcional derivativo (PD). En los resultados experimentales, se realiza la comparación de dos controladores, un controlador PD contra un PD con compensador de gravedad (PD+G), lo que permite ver el desempeño de los dos controladoras. INTRODUCCIÓN

La visión artificial es de vital importancia cuando se trata de detectar objetos en entornos no estructurados. El uso de esa información puede tratar secuencias de videos para la detección de objetos o individuos en escenas móviles, hasta la detección para el seguimiento, conocido como tracking, o bien, la detección de objetos para la manipulación mediante

robots. Actualmente existen varios controles para manipular dispositivos hápticos (Novint Falcon), en este trabajo se controla el dispositivo por medio de la visón empleando el Kinect.

En años recientes, las investigaciones abordan los problemas más comunes, como es la interacción entre el ser humano y los robots manipuladores durante la navegación conjunta; el seguimiento de una persona por parte de un robot, así como la posibilidad de intercambiar sus roles de guía-seguidor. Además, los dispositivos hápticos como Phantom Omni y Novint Falcon, se están empleando actualmente para aplicaciones tanto médicas, rehabilitación, diagnóstico, enseñanza, entre otras.

VISIÓN ARTIFICIAL La visión es la actividad dominante del cerebro

humano. La información visual constituye la mayoría de los 109 bits por segundo de información que se estima que recibe del sistema sensorial. La visión artificial tiene el ambicioso objetivo de conseguir emular la compleja capacidad humana para reconocer e interpretar cualquier escena que sea su naturaleza.

Page 2: MANIPULACIÓN DEL NOVINT FALCON CON KINECT

Copyright © 2016 by AMRob

Las aplicaciones potenciales de la visión artificial abarcan un amplio rango de campos, que aumentará con la mejora en el rendimiento de los sistemas construidos. Entre las aplicaciones actuales podemos destacar:

- Sistemas de procesamiento digital de imágenes, para restauración y mejora.

- Reconocimiento óptico de caracteres (OCR- Optical Character Recognition).

- Procesamiento automatizado de huellas dactilares. - Navegación de robots en entornos controlados. - Procesamiento de imágenes aéreas o de satélite. - Sistemas de inspección de circuitos impresos. - Calibrado y clasificación de la producción en

función del color, textura y tamaño (por ejemplo, en producciones agrícolas).

- Máquinas de visión industriales, para ensamblaje e inspección de la producción. [1]

DESCRIPCIÓN DEL EQUIPO EXPERIMENTAL Microsoft Kinect

Kinect es un dispositivo que permite realizar un seguimiento al cuerpo humano y reconoce gestos, movimientos y comandos de voz a través de la interface Natural del Usuario. Kinect fue desarrollado por la empresa Microsoft en la línea de investigación de nuevas tecnologías de Xbox para una nueva consola de juegos. [2]

La mecatrónica ha determinado que varios sensores de salida de video del Kinect tienen una velocidad de fotogramas de aproximadamente 9 Hz a 30Hz dependiendo de la resolución. El flujo de video RGB predeterminado utiliza resolución VGA de 8 bits por componente de color (640x480 pixeles) con un filtro de color Bayer, pero el hardware es capaz de hasta 1280x1024. [2]

Para el trabajo experimental se utiliza el Kinect 1.0 por su mayor gama de compatibilidad con el SDK y con las librerías de Matlab.

El Kinect cuenta con una cámara RGB, un sensor de profundidad infrarrojo CMOS, un micrófono de múltiples matrices, una luz LED, un acelerómetro de tres ejes, un servomotor con movilidad en el eje vertical y en el espacial con un procesador especializado Prime Sensor que capta el entorno en tres dimensiones, tal como se muestra en la Figura 1. [2]

FIGURA 1. HARDWARE KINECT.

Software Requerido:

- Microsoft Visual Studio 2010 Express Edition (VC++)

- Microsoft Windows SDK for Windows 7 with .NET Framework 4.

- Kinect for Windows SDK v1.8 - Microsoft Visual Studio 2010 Service Pack 1 - Microsoft Visual C++ 2010 Service Pack 1

Compiler Update for the Windows SDK 7.1

Novint Falcon El Novint Falcon es un robot delta y además es un

tipo de dispositivo háptico que permite la interacción con un ambiente virtual generado por una computadora. Este dispositivo háptico tiene una velocidad de muestreo de 0.5Khz, esto permite al usuario tener mayor estímulo kinestésico en el momento de interactuar con el mundo virtual[3]. Debido a las característica mencionadas, este dispositivo también es usado para videojuegos [4] [5]. El Novint Falcon es un dispositivo háptico que solo tiene 3 grados de libertad, permiten traslación en los tres ejes de coordenadas, pero no tiene rotaciones. Está diseñado mecánicamente, de tal manera que su espacio de trabajo es el suficiente para navegar en un ambiente virtual, como se observa en la Figura 2.

FIGURA 2. DISPOSITIVO NOVINT FALCON. [6]

El efector final de Novint Falcon corresponde a un

mango que el usuario puede sujetar con su mano, lo que le permite sentir textura, forma, peso, las dimensiones y la dinámica total y parcial de los objetos virtuales.

Algunas de las especificaciones técnicas de este dispositvo, como que cuenta con 3D Touch Workspace de 4” x 4” x 4”, la fuerza máxima es de 2 lb (aproximadamente 8.9 N), tiene una resolución de posición > 400 dpi, sus dimensión es de 9” x 9” x 9”. [6] Librería NID para Matlab

La librería NID que su acrónimo en inglés significa Natural Interface Device es un conjunto de bloques desarrollados con S-Function en código M de Matlab para la simulación de estados discretos en Simulink. Esta librería permite la interacción entre la interfaz de Simulink y la interfaz natural del usuario (NUI) de Microsoft Kinect a través del reconocimiento del cuerpo, sus movimientos y gestos. [2]

SENSORES DE PROFUNDIDAD 3D

CÁMARA RGB

INCLINACIÓN MOTORIZADA MICRÓFONOS

Page 3: MANIPULACIÓN DEL NOVINT FALCON CON KINECT

Copyright © 2016 by AMRob

DESARROLLO EXPERIMENTAL

El equipo experimental consiste en un Kinect, una computadora y un dispositivo háptico Novint Falcon. El primer paso consiste en configurar el Kinect desde las librerías de Simulink de Matlab. Se tomaron las lecturas del Kinect y se comprobaron las coordenadas que emite el dispositivo de visión con las librerías propias del Kinect.

Es muy importante conocer el espacio de trabajo de cada dispositivo tanto de visión Kinect como del robot delta, ya que el Kinect puede leer distancias en metros y el Novint Falcon recibe coordenadas en milímetros. Para ello se realiza una matriz de transformación para limitar el espacio de trabajo del Kinect y enviar al espacio de trabajo de Novint Falcon para no dañarlo, por lo tanto, se definieron medidas límites que pueda obtener el Kinect.

En la Figura 3 se aprecia una función embebida de Matlab, la cual define únicamente la obtención de coordenadas XYZ de la mano derecha, posteriormente, con la finalidad de proteger el robot delta, se somete a una saturación en cada eje de coordenadas: -0.6m a 0.6m para X y Y respectivamente y 0.8m a 1.8m para Z. Éste último se determinó, para que el Kinect detecte una silueta humana a partir de los 0.8m, lo que permite determinar el área de trabajo de la personal.

FIGURA 3. SUBSISTEMA KINECT.

Los límites del Novint se definen de -40mm a 40mm

para X y Y, -30mm a 30mm en Z. Estas medidas son convertidas por medio de una función de Matlab, en donde se manejó como interpolación lineal, como se muestra en la ecuación (1):

Se sustituyen los valores correspondientes para cada

eje de coordenadas y se sustituyen en la ecuación (1), para programar ésta en la función correspondiente a cada eje de coordenadas.

La Figura 4, muestra el modelo final donde se aprecia el subsistema del Kinect y el del Controlador así como la planta.

FIGURA 4. MODELO DEL CONTROLADOR.

CONTROLADOR PD

Se utiliza un control PD (Acción de control proporcional mas derivativa), la cual genera una señal que es resultado de la combinación de la acción proporcional y la acción derivativa conjuntamente.

Se realiza otro subsistema en el modelo principal (Figura 4), llamado Controlador y Planta el cual recibe las coordenadas deseadas, dadas por el Kinect y se obtiene las coordenadas reales en las que se desplaza el Novint.

En las funciones de Matlab del controlador y planta, como se muestra en la Figura 5, se encuentra el controlador PD, ya que está descrito por la ec. (2).

donde kp y kd son constantes o ganancias, e es el error y e es la derivada del error.

FIGURA 5. SUBSISTEMA CONTROLADOR Y PLANTA.

Por lo que, en la función de Matlab, las entradas son

la posición deseada en coordenadas cartesianas y la real, la cual hace una retroalimentación, y las salidas son el error y la salida del controlador. Se definen las ganancias kp y kd y se obtiene el error, definido en la ecuación (3) donde xd es la posición deseada y x es la posición real, y la derivada del error, descrito en la ecuación (4) donde exact, es el error de la posición actual, exant , es el error en la posición anterior, tact y tant son el tiempo actual y el anterior respectivamente.

𝑦 = 𝑦0 +𝑦1 − 𝑦0𝑥1 − 𝑥0

(𝑥 − 𝑥0) (1)

τ = kp e + kd e (2)

Page 4: MANIPULACIÓN DEL NOVINT FALCON CON KINECT

Copyright © 2016 by AMRob

𝑒 = 𝑥𝑑 − 𝑥 (3)

�� =𝑒𝑥𝑎𝑐𝑡 − 𝑒𝑥𝑎𝑛𝑡𝑡𝑎𝑐𝑡 − 𝑡𝑎𝑛𝑡

(4)

Para incluir el vector gravedad se obtiene el modelo

matemático del robot delta, así como la cinemática directa e inversa del Novint Falcon, ya que es una técnica que permite determinar el movimiento de una cadena de articulaciones para lograr que un actuador final se ubique en una posición deseada.

En este trabajo se utiliza el método geométrico para

obtener la cinemática directa e inversa, por lo que se incluye en una nueva función de Matlab como se muestra en la Figura 6. La ecuaciones (5, 6 y 7), describen los ángulos de cada uno de los actuadores, donde hay que tener en cuenta que en la función entran son las coordenadas en XYZ, las longitudes de los eslabones son a y b y se obtiene el ángulo que va a girar el actuador del robot.

𝜃3 = arccos �

𝑦𝑏�

(5)

𝜃1 = 2arctan (𝑑3)

(6)

𝜃2 = arccos (𝐾)

(7)

donde K está dada por las ecuaciones (8-12) :

𝐾 =𝑥2 + 𝑦2 + 𝑧2 − 𝑎2 − 𝑏2

2 𝑎 𝑏 𝑠𝑒𝑛(𝜃3)

(8)

y 𝑑3 está dado de la siguiente manera:

𝑑0 = 𝑎 + (𝑏 𝑠𝑒𝑛(𝜃3) 𝑐𝑜𝑠(𝜃2) − 𝑠𝑒𝑛(𝜃1)) (9)

𝑑1 = 𝑎 + (𝑏 𝑠𝑒𝑛(𝜃3) 𝑐𝑜𝑠(𝜃2) + 𝑠𝑒𝑛(𝜃1)) (10)

𝑑2 = 𝑥 + 𝑦 + 𝑧 − (𝑏 cos (𝜃3)) (11)

𝑑3 =𝑑0 + �𝑑0

2 + 𝑑12 − 𝑑2

2

𝑑1 + 𝑑2

(12)

En la Figura 6 se encuentra un bloque llamado Inversa, en este se calcula la cinemática inversa del robot delta (Novint), quedando como entrada las coordenadas reales del dispositivo háptico y como salida ángulos de la configuración mecánica del mismo.

Solamente se agrega a la ecuación del controlador el

compensador de gravedad.

𝜏 = 𝑘𝑝 𝑒 + 𝑘𝑑 �� + 𝒗𝒈 (13)

FIGURA 6. SUBSISTEMA CONTROLADOR Y PLANTA CON

COMPENSADOR DE GRAVEDAD. donde:

𝑣𝑔 = 𝑔 𝑎 �12𝑚𝑎 + 𝑚𝑏� 𝑐𝑜𝑠𝜃

(14)

En la cual, la gravedad se considera como g=9.8m/s2, las masas son 600g en ma y 300g en mb y las distancia de 0.25mm en a y b. Además, estas variables son definidas como globales junto con el error anterior, ya que, si no definieran como variables iniciales, el robot se sale de control ya que no tiene un valor del error anterior cuando inicia.

RESULTADOS EXPERIMENTALES

Para validar que el Kinect y el robot delta funcionan correctamente, se utilizan dos controladores un control PD y un control PD+G. Se sintonizan las ganancias kp y kd para que el error de posición angular tienda a cero cuando el tiempo tienda a infinito.

En la Figura 7 se muestra el modelo corriendo, con la persona que realiza la trayectoria con su mano derecha.

FIGURA 7. MONITOREO DE COORDENADAS DESEADAS.

Page 5: MANIPULACIÓN DEL NOVINT FALCON CON KINECT

Copyright © 2016 by AMRob

Resultados sin compensador de gravedad Los resultados mostrados en la Figura 8 corresponden

al controlador sin compensador de gravedad para el eje de coordenadas en X con respecto al tiempo, donde se observa que el robot tuvo un retraso de tiempo en la trayectoria dada por el usuario. Cabe mencionar que, el usuario debía moverse despacio para que el robot pueda alcanzar a seguirlo.

FIGURA 8. RESULTADO DE X (VERDE) VS. X DESEADA (AZUL).

En la Figura 9 corresponden al eje de coordenadas

en Y con respecto al tiempo.

FIGURA 9. RESULTADO DE Y (VERDE) VS. Y DESEADA (AZUL).

En la Figura 10 se observa que el eje de

coordenadas en Z tiene mayor error debido a los efectos de gravedad.

FIGURA 10. RESULTADO DE Z (VERDE) VS. Z DESEADA (AZUL).

Con estos resultados mostrados en las Figuras 8, 9 y

10, se grafican los errores de cada eje con respecto al tiempo y se observa en la Figura 11 que los errores con grandes, los

cuales oscilan en promedio entre 15 y -15mm de error en las coordenadas X y Y, excepto en Z que llegó a tener un error de 25mm.

FIGURA 11. ERROR EN X (AZUL). ERROR EN Y (VERDE). ERROR

EN Z (ROJO). Resultados con compensador de gravedad

Los resultados experimentales son mostrados en las Figuras 12, 13 y 14, corresponden al controlador con compensador de gravedad. En la Figura 11 se muestra el seguimiento en la coordenada X, en la Figura 12 el seguimiento de la trayectoria en la coordenada Y, y en la Figura 13 el seguimiento de la trayectoria en Z, en las tres figuras se observa el efecto del vector de gravedad en el controlador ya que las tres tienen un mejor seguimiento.

Cabe mencionar que el usuario hace movimientos más rápido sin que el robot no se salga de control.

TABLA 1. GANANCIAS DEL CONTROLADOR PD. KP KD

X 0.11 0.00013 Y 0.13 0.0001 Z 0.23 0.00013

FIGURA 12. RESULTADO CON COMPENSADOR DE X (VERDE) VS.

X DESEADA (AZUL). Para comprobar que el controlador con la dinámica

del robot tiene mejor desempeño, se muestra en la Figura 14 los errores de cada eje con respecto al tiempo, como se puede observar los errores oscilan en promedio entre 10 y -10mm de error.

Page 6: MANIPULACIÓN DEL NOVINT FALCON CON KINECT

Copyright © 2016 by AMRob

FIGURA 13. RESULTADO CON COMPENSADOR DE Y (VERDE) VS.

Y DESEADA (AZUL).

FIGURA 14. RESULTADO CON COMPENSADOR DE Z (VERDE) VS.

Z DESEADA (AZUL).

FIGURA 15. ERROR CON COMPENSADOR DE GRAVEDAD EN X

(AZUL). ERROR EN Y (VERDE). ERROR EN Z (ROJO).

En la Tabla 2 se muestran las ganancias para el controlador con compensador de gravedad, en donde se observa que las ganancias proporcionales son un poco mayores que sin compensador de gravedad.

TABLA 2. GANANCIAS DEL CONTROLADOR PD.

KP KD X 0.18 0.00013 Y 0.18 0.000105 Z 0.33 0.00013

Finalmente, el diagrama de bloque empleado para

experimento se muestra en la figura 16.

FIGURA 16. DIAGRAMA DE BLOQUES.

CONCLUSIONES En este trabajo de investigación se tuvieron buenos

resultados experimentales. Se presentó una aplicación de un sistema de visión a través de una cámara para videojuegos Kinect utilizando las librerías de Simulink/Matlab.

Se controló un robot delta Novint Falcon con un control PD y PD+G, introduciendo como trayectoria deseada la que proporciona el usuario a través del Kinect. Los resultados experimentales son buenos, como se puede observar de las gráficas de los errores, que el controlador con compensador de gravedad tiene un mejor desempeño, ya que ayuda al robot delta a seguir la trayectoria dada por el usuario, además da una pronta respuesta.

Se espera continuar trabajando en esta área para realizar teleoperación con robot manipuladores industriales.

REFERENCIAS [1] G. G. Mateos, «Interpretación de dibujos de líneas

mediante comparación de grafos.». [2] J. E. C. Terán, «Desarrollo de una aplicación remota

de interacción entre el profesor y la PC para agilitar el proceso enseñanza aprendizaje en las aulas de la Universidad Tecnológica Equinoccial,» Quito, Ecuador, 2014.

[3] J. Gudiño Lau, D. Vélez Díaz, F. Chávez Montejano, M. Durán Fonseca, S. Charre Ibarra y O. Díaz Parra, «Las TIC aplicadas a un dispositivo háptico Novint Falcon,» XIKUA Boletín Científico de la Escuela Superior de Tlahuelilpan, vol. 4, nº 8, 2016.

[4] V. Torres Cosío, E. J. Vázquez Alejandre y E. Cossio Franco, «Accesibilidad de los materiales educativos a través de la percepción háptica,» 13 Febrero 2014. [En línea]. Available: http://www.nosolousabilidad.com/ articulos/percepcion_haptica.htm.

[5] B. Yuan, «Towards Generalized Accessibility of Video Games,» 2009.

[6] Novint, «Novint,» Novint Technolgies Inc., 2012. [En línea]. Available: http://www.novint.com/index.php/ novintxio/41.

[7] M. W. Spong, Robot modeling and control, Wiley, 2005.

[8] K. S. Fu, Robótica: control, detección, visón e inteligencia, McGraw-Hill, 1988.