Sistema de captura para la imitación del movimiento humano por un robot planar de base fija

• Diego A. Bravo M. y Carlos F. Rengifo R. • Sistema de captura para la imitación del movimiento humano por un robot planar de base fija Capture syst

0 downloads 40 Views 388KB Size

Recommend Stories


Estructura de un robot industrial
Estructura de un robot industrial • • • Componentes Características principales Configuraciones morfológicas del manipulador Componentes Como se ade

DESARROLLO DE UN SISTEMA DE NAVEGACION Y TELEMETRIA EN TIEMPO REAL PARA UN ROBOT MOVIL DESDE UN SMART PHONE
DESARROLLO DE UN SISTEMA DE NAVEGACION Y TELEMETRIA EN TIEMPO REAL PARA UN ROBOT MOVIL DESDE UN SMART PHONE Cichanowski Miguel Kornuta, Cristian Mar

Comparación de leyes de control para la predicción dinámica del movimiento humano usando bases de datos
Asociación Española de Ingeniería Mecánica XVIII CONGRESO NACIONAL DE INGENIERÍA MECÁNICA Comparación de leyes de control para la predicción dinámic

UN ROBOT PARA UN ABP EN LAS INGENIERÍAS INFORMÁTICAS
UN ROBOT PARA UN ABP EN LAS INGENIERÍAS INFORMÁTICAS 1 J. OLIVER1, M. PRIM1 Y R. TOLEDO2 Departament de Microelectrònica i Sistemes Electrònics. Esco

Story Transcript

• Diego A. Bravo M. y Carlos F. Rengifo R. •

Sistema de captura para la imitación del movimiento humano por un robot planar de base fija Capture system for human motion imitation by a fixed base planar robot Diego A. Bravo M. * Carlos F. Rengifo R. ** Fecha recepción: julio 15 de 2014 Fecha aceptación: septiembre 8 de 2014

Resumen En este trabajo se muestra la implementación de un sistema de captura de movimiento de bajo costo, utilizando KinectTM , para la imitación de movimiento en el plano frontal mediante un robot planar de base fija. Se hizo un estudio de la cinemática inversa para mapear el movimiento humano mediante las coordenadas cartesianas (x, y, z) que entrega el sensor y transformarlas en coordenadas articulares (q1 , q2 , ..., q9) que son las posiciones angulares de referencia para el robot. Estas trayectorias de referencia se utilizaron para imitar el movimiento humano por medio de un robot planar de nueve grados de libertad. Palabras clave: Captura de movimiento, Kinect, Robot, Modelos biomecánicos.

Abstract This paper shows the implementation of a motion capture system of low cost, using Kinect for imitation of movement in the frontal plane with a fixed base planar robot. The inverse kinematics for mapping human motion through Cartesian coordinates (x, y, z) provided by sensor and turn them into joint coordinates (q1 , q2 , ..., q9), which are the angular positions of reference for the robot. These reference trajectories were used to imitate human movement by a planar robot with nine degrees of freedom. Keywords : Motion Capture, Kinect, Robot, biomechanical models.

*

Ingeniero Físico, MsC. Profesor Departamento de Física. Universidad del Cauca, Calle 5 No. 4-70, Popayán, Colombia. email: [email protected]

** Ingeniero Electricista, PhD. Profesor Departamento de Electrónica, Instrumentación y Control. Universidad del Cauca, Calle 5 No. 4-70, Popayán, Colombia. email: [email protected] Revista

UAN • ISSN 2145 - 0935 • Vol. 5 • No. 9 • pp 25-33 • julio - diciembre de 2014

25

• Sistema de captura para la imitación del movimiento humano por un robot planar de base fija •

1. introducción Diversos autores han estudiado el problema de imitación de movimiento humano mediante robots humanoides adaptando los datos de captura de movimento a la generación de trayectorias articulares en robots bípedos, [1]. En [2, 3] se muestra como el robot humanoide HRP-1S es capaz de imitar el movimiento de un artista que baila la danza tradicional japonesa Jongara-bushi mediante un sistema de captura de movimiento con marcadores, las trayectorias articulares fueron ajustadas para satisfacer las restricciones mecánicas del robot. Aunque la imitación de movimiento es simplemente el mapeo de movimiento humano a robots humanoides, que tienen apariencia similar, éste no es un problema trivial, [4]. En [5], se destaca la imitación del robot humanoide TORO mediante captura de movimiento. Sin embargo en el desarrollo de estos trabajos, no se precisa cómo adaptar estos movimientos a la imitación por parte del robot. En este trabajo se implementó un sistema de captura de movimiento en 3D que permite mapear los movimientos naturales de la personas en el plano frontal, para la adaptación e imitación por medio de un robot planar de base fija a partir del sensor Kinect. En el mercado existen sistemas especializados para la captura de movimiento, por ejemplo: PeakMotus (Vicon)TM , SkillSpectorTM y DartFishTMTM , entre otros. La característica común de los sistemas descritos anteriormente es su alto costo e implementación. Surge entonces el interrogante ¿Es posible construir un sistema de captura de movimiento con Kinect de bajo costo y fácil implementación? En nuestro caso particular, un sistema de captura de movimiento permitirá extraer las trayectorias articulares del movimiento humano con el fin de adaptarlas como referencias para la imitación del movimiento por un robot planar. Este documento está compuesto de cuatro secciones. En la sección 2 se presentan las características de los sistemas de captura de movimiento, enfatizando en el Kinect. La parte 3 describe un método basado en cinemática inversa para el cálculo de las coordenadas articulares a partir de

26

Universidad Antonio Nariño - Revista Facultades de Ingeniería

las coordenadas cartesianas. En la sección 4 se detalla la construcción del robot planar, mientras que en la sección 5 se muestran y se discuten los resultados obtenidos. La parte final 6 está dedicada a las conclusiones y perspectivas.

2. sistemas de caPtura de movimiento La captura de movimiento es el proceso de registro de la posición de un cuerpo, mediante el seguimiento de una serie de puntos de interés en el espacio y tiempo para obtener una representación tridimensional (3D) digital. Esta tecnología permite la traducción del movimiento en un formato digital [6]. El sujeto de estudio puede ser cualquier objeto en movimiento del mundo real; los puntos claves a capturar, son las áreas que mejor representan el movimiento del sujeto. Estos puntos pueden ser puntos de rotación o conexiones entre las partes rígidas del sujeto. Para un ser humano, por ejemplo, algunos de los puntos claves son las articulaciones que actúan como puntos de pivote y conexiones para los huesos. En cada uno de estos puntos de interés se colocan sensores o marcadores que sirven para recolectar datos de posición, velocidad y aceleración. Los sistemas de captura de movimiento óptico son los más utilizados en laboratorios de biomecánica [7], y se pueden clasificar como sistemas ópticos sin marcadores y con marcadores, estos a su vez se dividen en: activos y pasivos. En los sistemas ópticos con marcadores pasivos (ViconTM ), se colocan al sujeto marcadores reflectantes en todos los puntos de interés de captura de movimiento. A diferencia de los sistemas ópticos activos (OptotrakTM), donde se colocan maracadores activos (diodos emisores de luz [LED]). Una desventaja en los sistemas ópticos con marcadores es la oclusión, aquí los marcadores no aparecen en bastantes tomas de la cámara debido a la obstrucción de la línea de visión de los objetos de la escena o por otras partes del cuerpo del sujeto. Aunque, la mayoría de los paquetes de post-procesamiento comerciales tienen la capacidad de tratar con los marcadores ocluidos, pueden crear marcadores virtuales para ayudar a llenar los marcadores ocluidos, o pueden usar

• Diego A. Bravo M. y Carlos F. Rengifo R. •

Figura 1: Disposición de los sensores en el kinect.

marcadores redundantes (más que el mínimo requerido en el protocolo estándar) para compensar los marcadores ocluidos. El movimiento de los marcadores se suele utilizar para deducir el movimiento relativo subyacente entre dos segmentos adyacentes, con el objetivo de definir con precisión el movimiento de una articulación. El cuidado del movimiento de la piel en relación con el hueso subyacente es el principal factor que limita la aplicación de algunos sensores, [8], [9], [10]. Los sistemas de captura de movimiento sin marcadores, como la cámara Microsoft KinectTM, Figura 1 y Organic MotionTM, ofrecen una alternativa distinta a la tecnología de captura de movimiento, [11]. El KinectTM, es una cámara capaz de estimar la Geometría 3D de la escena adquirida, a 30 cuadros por segundo; está construida con un sensor de profundidad de resolución espacial de 640 × 480 píxeles, una vídeo-cámara VGA de la misma resolución y un arreglo de micrófonos para reconocimiento de voz. El KinectTM fue desarrollado como un dispositivo periférico para uso con la consola de juegos Xbox 360TM. Aunque, se ha adaptado fácilmente para otros campos como: la robótica [12], seguimiento del esqueleto humano [13], reconstrucción 3D [14], terapia asistencial [15] y biomecánica [16].

2.1 El sensor de profundidad del KinectTM Dos sensores conforman el componente de profundidad del kinect: un proyector infrarojo y un sensor CMOS monocromático (camara IR), Revista

ambos trabajan con un chip interno fabricado por PrimeSense para la captura de movimiento en 3D. La camara IR también tiene una resolución de VGA (640 × 480 pixeles) con 11 bits de profundidad. La técnica es llamada Escaneo 3D de luz estructurada, se proyecta un patrón de franjas de luz infarroja sobre el campo de vista, creando un mapa de profundidad a partir de los rayos que el sensor recibe de las reflexiones de luz de los objetos en la escena. El mapa de profundidad especifica la distancia de las supercies de los objetos desde el marco de referencia del kinect. Otros sensores de profundidad similares a éste, determinan el mapa de profundidad de la escena basados sobre el tiempo que tarda la luz en regresar a la fuente. Sin embargo, el kinect codifica los datos en la luz infraroja cuando esta es enviada y analiza las distorsiones en la señal después que retorna, con el fin de dar más detalles 3D de la imagen en la escena. La imagen de profundidad 3D es procesada en el software para ejecutar el seguimiento del esqueleto y reconocimiento de gestos, las especificaciones del kinect se muestran el la Tabla 1. Tabla 1. Especificaciones del kinect

Rango del sensor de profundidad

1.2 a 3.5 m

Res. Imagen de profufundidad

640 × 480 11 bit @ 30 Hz

Res. Imagen de color

640 × 480 8 bit @ 30 Hz

Resolución Audio

16 bit, 60 Khz

Campo de Vista

Horizontal: 27º Vertical: 43º

Rango de giro del motor

Vertical: ±27º

El mapa de profundidad se obtiene a partir de las operaciones ejecutadas por el chip PS1080 de PrimeSense sobre la imagen capturada por la cámara IR, ésta imagen VGA tiene una precisión de 11 bits, o 2048 distintos valores, representados gráficamente por niveles de gris desde el blanco (2047) hasta el negro (0). La medida de la distancia se representa en una escala logarítmica, así la precisión del sensor de profundidad es más baja en objetos más distantes al kinect. Una

UAN • ISSN 2145 - 0935 • Vol. 5 • No. 9 • pp 25-33 • julio - diciembre de 2014

27

• Sistema de captura para la imitación del movimiento humano por un robot planar de base fija •

vez el mapa de profundidad ha sido generado, es posible extraer información compleja de la escena como es el seguimiento del esqueleto y reconocimiento de gestos. En este artículo, en la sección 5 se discute la resolución del sensor Kinect para aplicaciones en robótica. Otros trabajos han estudiado la resolución del dispositivo en distintos campos, en la rehabilitación, [17] ilustra la precisión de Kinect para medir el movimiento en personas con la enfermedad de Parkinson. En biomecánica, [18] muestra la precisión obtenida en la medición de las variables espacio-temporales de la marcha. En reconstrucción 3D, [19] estudió la precisión del sensor de profundidad del Kinect. En [20] se publican los resultados del uso del sensor Kinect como sensor de visión para un vehículo terrestre autónomo, pero estos trabajos no hacen un estudio acerca de la resolución del Kinect para imitación de movimiento humano por robots, a diferencia de este trabajo.

son la simplicidad relativa de los equipos y la libertad de movimientos del individuo a examinar. La técnica aquí utilizada es de tipo indirecta ya que se hará uso de un sensor de profundidad para detectar la persona y capturar información 3D de las coordenadas cartesianas. El kinect obtiene información de profundidad de la escena codificada en valores entre 0 y 2047 (11 bits). Con base en esta información, y utilizando técnicas de procesamiento de imágenes y nubes de puntos, se logra obtener información 3D de las coordenadas cartesianas de los puntos en el esqueleto de una persona. La Figura 2 muestra el esqueleto óptico de una persona a una frecuencia de 30 Hz.

3. análisis cinemático del movimiento Humano El interés en esta parte del trabajo recae sobre el análisis cinemático, el cual considera el movimiento como una función del tiempo y el espacio y se centra en el estudio del movimiento de los segmentos de las extremidades inferiores y superiores con independencia de las fuerzas que lo generan. Es posible evaluar el rango del movimiento articular, trayectoria del centro de gravedad, velocidad y aceleración lineales y angulares (posición, velocidad y aceleración). Las técnicas empleadas son de dos tipos: directas e indirectas. Las primeras se llaman así porque se aplican, de manera directa, sensores que captan el movimiento del sujeto. Tales son: goniómetros y acelerómetros. Las señales procedentes de estos sensores se encuentran ligadas directamente al movimiento ejecutado por el sujeto en estudio. Las variables que suelen medirse son básicamente dos: ángulos y aceleraciones. Las indirectas se basan en distintos sistemas de obtención de imágenes (fotograf ía estroboscópica o por destello luminoso, filmación en video y cinematograf ía). Las ventajas de estas técnicas

28

Universidad Antonio Nariño - Revista Facultades de Ingeniería

Figura 2: Esqueleto Óptico de una persona

De acuerdo al campo de vision del sensor, Tabla 1, para una persona de 1.75 m de altura es posible hacer un análisis del movimiento en un rango de 3.5 m si la persona marcha de frente al sensor, o de 4.5 m, lo hace de forma lateral.

3.1 Determinación de los Parámetros Cinemáticos del Movimiento En esta parte se describe la relación de los parámetros cinemáticos a partir de las mediciones del sensor Kinect. El sensor calcula las coordenadas cartesianas (x, y, z) de los n puntos de seguimiento considerados a una frecuencia máxima de 30 Hz. El software muestrea esa señal, de tal forma que cada instante de tiempo tk , se tiene información de los ri (tk ) = (xi (tk ), yi (tk ), zi (tk)), tal que i = 1, 2, 3, ... , n. Donde ri (tk ) es el vector posición

• Diego A. Bravo M. y Carlos F. Rengifo R. •

evaluado en el instante tk , tomando como origen del sistema de referencia el sensor.

sistema de referencia el sensor. sistema de referencia el sensor. cubica spline para Se utiliza la interpolación sistema de referencia el sensor. i Se obtener una curva continua y suave, R utiliza la interpolación cubica spline para(t), para obtener Se cada utilizar la interpolación cubica spline para ). Para obtener la velocidad, v (tobtener una curvaila(tcontinua y suave, Ri (t), parapara cada r), se (t ). Se utiliza cubica spline kinterpolación i obtener una curva continua y suave, Ri (t), para cada krii (tkk ). evalúa la función V(t) para todo t = cada tk la . V(t) se ), separa evalúa función Para obtener la velocidad, vi (t ki (t), una curva continua y suave, R r (t i k ). Para obtener la velocidad, vi (tk ), se evalúa la función se obtiene mediante la V(t) para todo t = tk . V(t) obtiene mediante la derivada de la función R (t) (t ), se evalúa la función Para obtener la velocidad, v i kse obtiene mediante i la V(t) para todo t = tk . V(t) (t) con respecto a t. derivada de la función R i con respecto a t. . V(t) se obtiene mediante la V(t) para todo t = t k R (t) con respecto a t. derivada de la función i derivada de la función Ri (t) con respecto a t. dRi (t) (1) V(t) = dRi (t) (1) V(t) = dRdt i (t) (1) dt (1) V(t) = El mismo procedimiento se realiza para la aceleración dt El mismo procedimiento se realiza para la aceleEl mismo procedimiento se realiza para la aceleración lineal, a (t ). En este caso A(t) se obtiene a partir de i k El mismo procedimiento se realiza para la aceleración ración lineal, a (tk caso ). En este caso A(t) se obtiene lineal, ai (tk ). En este A(t) se obtiene a partir de i la segunda derivada. lineal, a (t ). En este caso A(t) se obtiene a partir de i k derivada. a partir de la segunda derivada. la segunda la segunda derivada. d2 Ri (t) A(t) = d22 Ri2(t) (2) (2) A(t) = d R dti2(t) dt A(t) = (2) (2) 2 dt

y (2). y (2). y (2). Este procedimiento se hace para calcular las posiEste procedimiento se hace para calcular las posicionesprocedimiento angulares de las extremidades superiores e inEste se hace para calcular las posiciones angulares de las extremidades superiores e inferioresangulares en el plano frotal, (8 posiciones angulares). ciones de las extremidades superiores e inferiores en el plano frotal, (8 posiciones angulares). Despuésen deelhacer el cálculo de las coordenadas articuferiores plano frotal, (8 posiciones angulares). Después de hacer el cálculo de las coordenadas articulares, estas se toman como de referencia para la posición Después de hacer el cálculo las coordenadas articulares, estas se toman como referencia para la posición angular de se lostoman servomotores que constituyen el robot lares, estas como referencia para la posición angular de los servomotores que constituyen el robot planar de fija, detallado el constituyen la siguiente sección. angular de base los servomotores que el robot planar de base fija, detallado el la siguiente sección. planar de base fija, detallado el la siguiente sección.

(Figura 3. Robot Planar Android.

3.2. 3.2. Cinemática Cinemática inversa inversa del del movimovi- Este procedimiento se hace para calcular las pomiento plano frontal 3.2 Cinemática Cinemática inversa 3.2. inversa del movi- siciones angulares de las extremidades superiomiento en en el el planodel frontal miento elen plano frontal movimiento el plano frontal El problema de en la cinemática inversa consiste en res e inferiores en el plano frotal, (8 posiciones

El problema de la cinemática inversa consiste en transformar cartesianas (x, y, z) en en El problema las de coordenadas la cinemática inversa consiste El problema de la cinemática inversa consiste en transformar las coordenadas cartesianas (x, y, z) en , q , . . . , q ), [21]. Es decir, coordenadas articulares (q 2 transformar las coordenadas (x, Es y, z) en transformar las coordenadas cartesianas (x, y, z) , . . . , qnn ), [21]. decir, coordenadas articulares (q11 , qcartesianas se debe hallar una función fq22tal que: , , . . . , q ), [21]. Es decir, coordenadas articulares (q 1 n en coordenadas articulares (q , q2 , ... , qn ), [21]. se debe hallar una función f tal 1que: se debe hallar una función f tal que: Es decir, se debe hallar una función f tal que: q = f (x) q = f (x) q =f (x) f (x) q= Para estudiar la cinématica de los segmentos corpoPara estudiar la cinématica de los segmentos corporales, primero se define el tal segmento comocorpola diPara estudiar la cinemática segmentos corPara dede loslossegmentos rales,estudiar primerolasecinématica define el tal segmento como la diferencia vectorial entre dos puntos, por ejemplo rales, primero se define talpuntos, segmento la di-el porales, primero se define el tal segmento como ferencia vectorial entre eldos porcomo ejemplo el segmento pierna, vectorial como diferencia entre los puntos ferencia vectorial entre la dos puntos, por ejemplo el la diferencia entre dos puntos, por segmento pierna, como la diferencia entre los puntos articulares rodillacomo y tobillo. segmento pierna, la diferencia entre los puntos ejemplo el segmento pierna, como la diferencia articulares rodilla y tobillo. articulares rodilla y tobillo. entre los puntos articulares rodilla y tobillo. (3) Sab (t) = Ra (t) − Rb (t) (3) Sab (t) = Ra (t) − Rb (t) (t) = R (t) − R (t) (3) S S (t) = R (t) − R (t) (3) ab a b Donde a = b ∈ 1,ab2, . . . , n.a b Donde a = b ∈ 1, 2, . . . , n. Donde a =  b ∈ 1, 2, . . . , n. Donde a ≠ b ∈ 1, 2, ... , n. Sea Sab (t) y Scd (t) dos segmentos, por ejemplo los Sea Sab (t) y Scd (t) dos segmentos, por ejemplo los segmentos pierna y antepierna, respectivamente. Sea (t) y S (t) dos segmentos, por ejemplo los Scdcd(t) dos segmentos, por ejemplo Palos Sea SabS(t) ab y segmentos pierna y antepierna, respectivamente. Para obtener la evolución temporal del ángulo formado segmentos pierna y antepierna, respectivamente. segmentos pierna y antepierna, respectivamente. Para obtener la evolución temporal del ángulo formado entres segmentos se utiliza: ra obtener la dos evolución temporal del ángulo Para estos obtener la evolución temporal del formado ángulo entres estos dos segmentos se utiliza:   se utiliza: entres estos dos segmentos formado entre estos dos segmentos se utiliza:  Sab (t) · Scd (t)  (4) = arc cos Sab (t) · Scd (t)  θab ab cd (4) θab (t)|· |S (t)| Sab Scd ab(t) cd(t) cd = arc cos |S (4) θcd = arc cos |Sab (t)| |Scd (t)| |Sabdiscretas (t)| |Scd (t)| Para obtener las funciones de la posición Para obtener las funciones discretas de la (4) posición angular, velocidad y aceleración lineal evalúan los Para obtener las funciones discretas dese la posición angular, velocidad y aceleración lineal se evalúan los Para obtener las funciones discretas de la poinstantes de tiempo t = t en las ecuaciones (3), (1) angular, y aceleración se evalúan instantesvelocidad de tiempo t = tkk en laslineal ecuaciones (3), los (1) sición de angular, y aceleración lineal instantes tiempo velocidad t = tk en las ecuaciones (3), (1)

angulares). Después de hacer el cálculo de las coordenadas articulares, estas se toman como referencia para la posición angular de los servomotores que constituyen el robot planar de base fija, detallado el la siguiente sección.

4. robot Planar Para imitación de movimiento Figura 3: Robot Planar Android. Figura 3: Robot Planar Android. Figura 3: Robot Planar Android.

Para el desarrollo de este proyecto se implemen-

tó la captura de movimento con Kinect como

sensor Robot de visión, planar Proccesing para como lenguaje de 4. imitación 4. Robot planar para imitación programación, utilizando librerías de OpenNI 4. Robot planar para imitación de movimiento deCon movimiento y NITE. esta información se construyó el de movimiento Robot Android 2D que imita el movimiento

ara el desarrollo de este proyecto se implementó la ara el desarrollo de este proyecto se implementó la humano enmovimento dos de dimensiones, utilizando 9 ser- de captura de Kinect como sensor ara el desarrollo este con proyecto implementó captura de movimento con Kinectse como sensor la de vomotores como actuadores y la tarjeta Arduivisión, Proccesing comocon lenguaje programación, captura de movimento Kinectde como sensor de visión, Proccesing como lenguaje de programación, utilizando librerias de OpenNI y NITE. Con e esta no UNO como tarjeta de control electrónica visión, Proccesing como lenguaje de programación, utilizando librerias de OpenNI y NITE. Con esta información se construyó un el Robot Android 2D interfaz f ísica computador y el robot, utilizando librerias deel OpenNI NITE. Con esta información se entre construyó un el yRobot Android 2D que imita el movimiento humano en dos dimensioinformación construyó un el Robot Android 2D Figura 3. que imita elsemovimiento humano en dos dimensiones, imita utilizando 9 servomotores actuadores que el movimiento humanocomo en dos dimensio-y nes, utilizando 9 servomotores como actuadores y La metodología empleada se muestra en la Figura la tarjeta Arduino UNO como tarjeta de control nes, utilizando 9 servomotores como actuadores y la tarjeta Arduino UNO como tarjeta de control 4. Primero el sistema de captura de movimiento electrónica e interfazUNO física entre tarjeta el computador y el la tarjeta Arduino de control electrónica e interfaz físicacomo entre el computador y el entrega las coordenadas cartesianas (x, y, z) de robot, Figura 3. electrónica e interfaz física entre el computador y el robot, Figura 3. 15 puntos articulares, luego el software calcula la robot, Figura 3.

se evalúan los instantes de tiempo t = tk en las 5 cinemática inversa del movimiento humano en 5 el plano frontal y entrega las coordenadas artiecuaciones (3), (1) y (2). 5 culares (q1, q2 , ... , q9) que sirven como señales de referencia a los servomotores que componen Revista

UAN • ISSN 2145 - 0935 • Vol. 5 • No. 9 • pp 25-33 • julio - diciembre de 2014

29

• Sistema de captura para la imitación del movimiento humano por un robot planar de base fija •

tenidos al copiar las trayectorias angulares en el plano frontal del movimiento humano para la imitación por parte del robot

Captura de Movimiento

5.

Trayectorias de referencia en el plano frontal

La Figura 6 muestra las trayectorias articulares del brazo derecho obtenidas mediante captura de movimiento a una frecuencia de 30 fps, y las trayectorias filtradas con una fc = f2s , para evitar el sobrelapamiento de la señal. La línea punteada (a) Server applet denota la señal sin filtrar, mientras que la línea continua es la señal de la posición angular filtrada.

C´ alculo de la cinem´atica inversa Se˜ nal de Control PWM

Robot Planar

Posici´ on Controlada

Trayectorias Angulares Q1(Hombro)

Figura usada para la imitación de moFigura4. 4:Metodología Metodología usada para la imitación de movimiento vimiento

planoel frontal y entrega las coordenadas articulares Para desarrollo del software se escribieron (q , q , . . . , q ) que sirven como señales de referencia 1 2 9 dos programas: Server Applet, que se encarga de a los servomotores que componen al robot Android. capturar las coordenadas cartesianas de los 15 Esta interacción cierra un bucle, en donde en cada puntos de seguimiento desde el sensor y transinstante de muestreo se actualizan las posiciones formarlas en las (9) posiciones articulares del angulares para lograr la imitación del movimiento robot, para ser enviadas en forma remota al prohumano por parte del robot. grama Client Applet, Figura 5(a). Client Applet envía por el puerto serial, un vector con las posiPara el desarrollo del software se escribieron dos ciones articulares del robot a la tarjeta arduino, programas: Server Applet, que se encarga de captuy esta a su vez envia las señales de control PWM rar las coordenadas cartesianas de los 15 puntos de seguimiento desde el sensor y transformarlas en las a los 9 servomotores para imitar el movimiento (9) posiciones articulares del robot, para ser enviadas humano, como se muestra en la Figura 5(b). en forma remota al programa Client Applet, Figura

En la siguiente sección se muestran los resulta5(a). Client Applet envia por el puerto serial un dos ob tenidos al copiar las trayectorias angulavector con las posiciones articulares del robot a la res en el plano frontal del movimiento humano tarjeta arduino y esta a su vez envia las señales de para la imitación por parte del robot control PWM a los 9 servomotores para imitar el movimiento humano, como se muestra en la Figura 5(b).

5. resultados

En la siguiente sección se muestran los resultados ob-

La Figura 6 muestra las trayectorias articulares del brazo derecho obtenidas mediante captura de movimiento a una frecuencia de 30 fps, y las trayectorias filtradas con una fc = fs/2, para evitar el sobrelapamiento de la señal. La línea punteada denota la señal sin filtrar, mientras que la línea continua es la señal de la posición angular filtrada. Universidad Antonio Nariño - Revista Facultades de Ingeniería

120 Sin filtro Con filtro

Grados

100 80 60 40 20 0

0

1

2

3

4

5

6

7

8

9

10

9

10

Tiempo [seg] Trayectorias Angulares Q2 (Codo) 50 Sin filtro Con filtro

0

Grados

al robot Android. Esta interacción cierra un La metodología empleada se muestra en la Figura bucle, en donde en cada instante de muestreo se 4. Primero el sistema de captura de movimiento actualizan las posiciones angulares para lograr la entrega las coordenadas cartesianas (x, y, z) de imitación del movimiento humano por parte del 15 puntos articulares, luego el software calcula la robot. cinemática inversa del movimiento humano en el

30

Resultados

−50 −100

(b) Client applet

−150

Figura0 5. Interfaz gráfica de usuario en Processing . 1 2 3 4 5 6 7 8 −200

Tiempo [seg]

Figura 6: Trayectorias filtradas del hombro derecho q1 y codo derecho q2 Para el seguimiento de las trayectorias se utilizó la interpolación cúbica spline entre cada una de las posiciones articulares. El término spline hace referencia a una curva definida en porciones diferenciable, donde los splines cúbicos se utilizan para crear una función que interpole un conjunto de datos con la función de unir polinomios cúbicos para cada intervalo y construida para tener la primera y segunda derivada continúas, [22]. La Figura 7 muestra un conjunto de puntos interpolados por una línea punteada cuya ecuación obedece a un

Figura 6. Trayectorias filtradas del hombro derecho q1 y 6 derecho q codo 2

Para el seguimiento de las trayectorias se utilizó la interpolación cúbica spline entre cada una de las posiciones articulares. El término spline hace referencia a una curva definida en porciones

• Diego A. Bravo M. y Carlos F. Rengifo R. •

procede a determinar cuántos pixeles caben en el ancho a distintas profundidades. Para ello se utiliza un perfil de línea a lo ancho de la imagen cerca al objeto de interés y se cuenta el número Np de pixeles cuyo nivel de gris se encuentra se cuenta cuenta ela número número N de pixeles pixeles cuyo estándar nivel de de gris gris p una alejado el menos N de desviación de se de cuyo nivel p se encuentra alejado a menos de una desviación esse encuentra alejado a menos de una desviación esla media de los niveles de gris en todo el objeto. tándar de la media de los niveles de gris en todo el tándar de la media de los niveles de gris en todo el Para las distintas profundidades se determina el objeto. Para las distintas profundidades se determina objeto. Paradecrecerá las distintas profundidades determina Np que a medida que estaseaumente y que decrecerá decrecerá aa medida medida que que esta esta aumente aumente y y la la el N Npp que el la resolución se obtendrá dividiendo el ancho del resolución se se obtendrá obtendrá dividiendo dividiendo el el ancho ancho del del objeto objeto resolución objeto entre el número de pixeles. entre el número de pixeles.

m hasta hasta 44 m m respect respect m medidas de las coord medidas de las coord la presencia de fuen la presencia de fuen motivo es necesario motivo es necesario mismo. mismo.

entre el número de pixeles.

La Figura Figura 88 muestra muestra La tenidos por Kinect pa tenidos por Kinect pa (5) aproximaron por una Resxy xy Res (5) aproximaron por una 0.418 m, m, con con una una aa 0.418 Figura 7. Trayectorias interpoladas del hombro derecho Aunque no era prop Aunque no era prop Resolución enen ZZ Resolución q1 y codo derecho q2 Resolución en Z permite calcular calcular las las permite Sea Sea ∆L ∆L la variación variación en la la profundidad y ∆N ∆N la vavala variación en profundidad la profundidad y ∆N la persona, persona, como como son son m m Sea ∆L la en y la riación en los los niveles niveles de de gris. gris. Para Para determinar determinar la la rere- tud tud el el femur, femur, la la tibia tibia variación en los niveles de gris. Para determinar riación en diferenciables, donde los splines cúbicos se utilisolución espacial en en Z Z se se cálcula cálcula aa partir partir de: de: en los los brazos. brazos. espacial la resolución espacial en Z se cálcula a partir de: en zan para crear una función que interpole un con- solución ∆L junto de datos con la función de unir polinomios Reszz = = ∆L (6) (6) Res (6) ∆N cúbicos para cada intervalo y construida para ∆N w = Res Resxx = = Res Resyy = = w (5) = Npp N

tener la primera y segunda derivada continúas, Para Para cada cada una una de de las las profundidades profundidades se se realiza realiza este este 6. Conclusio Conclusio Para cada una de las profundidades se realiza 6. [22]. La Figura 7 muestra un conjunto de puntos cálculo. cálculo. este cálculo. interpolados por una línea punteada cuya ecuaLa captura captura de de mov mov La ción obedece a un polinomio de tercer orden. Los estudios Histograma para Kinect determinar µ = 0.418 σ = 0.013 la resolución 14 14

Resolución en X Y Z

permitir que que los los ro ro permitir humano. Se espera humano. Se espera rr ciclo de de marcha marcha de de ciclo estabilidad, entendie estabilidad, entendie de que que el el robot robot no no cc de movimientos necesar movimientos necesar

Histograma Kinect µ = 0.418 σ = 0.013

espacial XYZ, evidencian que el error asociado a la medición de las coordenadas cartesianas aumenta a medida que el sujeto de análisis se aleje del sensor (escala logarítmica), obteniendo valores mínimos y máximos de: 1mm hasta 6.5 mm para X,Y; y 2 mm hasta 5 cm en Z, para valores de distancia al sensor de 0.8 m hasta 4 m 12 12

10 10

Numero Numerode deDatos Datos

La resolución espacial del sensor es una medida de la sensibilidad del mismo. Para el caso de la resolución espacial XY donde se considera que los pixeles son cuadrados, la resolución es una medida del ancho del mismo, el cual por razones ópticas [23], no será el mismo a diferentes profundidades (distancia entre el sensor y el objeto). En el caso de la resolución en Z, la pregunta que se hace es ¿En cuánto cambia el nivel de gris cuando el objeto se aleja por ejemplo 0,1m de su posición inicial?

8 8

El sistema sistema de de captu captu El de bajo costo y fácil de bajo costo y fácil una opción para real una opción para real parámetros cinemáti parámetros cinemáti aunque no no es es de de alta alta aunque estudios previos ante estudios previos ante lizados del del movimien movimien lizados

6 6

4 4

2 2

0 0 0.37 0.37

0.38 0.38

0.39 0.39

0.4 0.4

0.41 0.41

0.42 0.42

Longitud del Femur [m] Longitud del Femur [m]

0.43 0.43

0.44 0.44

0.45 0.45

0.46 0.46

Figura 8: 8: Histograma Histograma Kinect, Kinect, µ µ= = 0.418, 0.418, σ σ= = 0.013 0.013 Figura

En el caso más optimista [24], el error asociado Los estudios estudios para para determinar determinar la la resolución resolución espacial espacial a la medida de la posición cartesiana (coordena- Los XYZ, evidencian evidencian que que el el error error asociado asociado aa la la medición medición das XYZ) será la mitad de la resolución de las XYZ, de las las coordenadas coordenadas cartesianas cartesianas aumenta aumenta aa medida medida mismas. de

Agradecimien Agradecimien

que el el sujeto sujeto de de análisis análisis se se aleje aleje del del sensor sensor (escala (escala que logarítmica), obteniendo valores minimos y máximos logarítmica), obteniendo valores minimos y máximos Resolución en X y Y de: 1mm 1mm hasta hasta 6.5 6.5 mm mm para para X,Y; X,Y; y y 22 mm mm hasta hasta 55 de: cm en en Z, Z, para para valores valores de de distancia distancia al al sensor sensor de de 0.8 0.8 Para realizar la calibración estática se diseñó un cm

experimento que consiste en colocar en la escena un objeto cuadrado de dimensión w × h, se Revista

Figura 8. Histograma Kinect, µ = 0.418, σ = 0.013

UAN • ISSN 2145 - 0935 • Vol. 5 • No. 9 • pp 25-33 • julio - diciembre de 2014

Los autores autores expresan expresan Los tos a la Universidad tos a la Universidad el apoyo apoyo académico académico y y el yecto. yecto. 88

31

• Sistema de captura para la imitación del movimiento humano por un robot planar de base fija •

respectivamente. Las desviaciones en la medida de las coordenadas es considerable frente a la presencia de fuentes parásitas infrarrojas, por tal motivo, es necesario realizar un adecuado control del mismo. La Figura 8 muestra una distribución de los datos obtenidos por Kinect para la longitud del femur, estos se aproximaron por una curva gaussiana de media igual a 0.418 m, con una desviación estándar de 0.013 m. Aunque no era propósito de este trabajo, el software permite calcular las medidas antropométricas de una persona, como son medidas cuantitativas de la longitud el femur, la tibia en las piernas, húmero y cúbito en los brazos.

6. conclusiones La captura de movimiento se puede utilizar para permitir que los robots imiten el movimiento humano. Se espera replicar estos resultados en un ciclo de marcha de un robot bípedo conservando la estabilidad, entendiendo estabilidad como el hecho de que el robot no caiga al momento de realizar los movimientos necesarios para caminar. El sistema de captura de movimiento con Kinect es de bajo costo y fácil instalación, y se presenta como una opción para realizar un estudio preliminar de los parámetros cinemáticos del movimiento humano, que aunque no es de alta precisión, permitirá realizar estudios previos antes de dirigirse a centros especializados del movimiento.

Agradecimientos Los autores expresan sus más sinceros agradecimientos a la Universidad del Cauca en Colombia por todo el apoyo académico y financiero brindado en este proyecto.

Referencias [1] S. Albretch, K. Ramíres, F. Ruiz, D. Weikersdorfer, M. Leibold, M. Ulbrich, and M. Beetz, “Imitating human reaching motions using physically inspired optimization principles,”

32

Universidad Antonio Nariño - Revista Facultades de Ingeniería

in 11th IEEE-RAS International Conference on Humanoid Robots, 2011. [2] A. Nakazawa, S. Nakaoka, K. Ikeuchi, and K. Yokoi, “Imitating human dance motions through motion structure analysis,” in IEEE International Conference on Robotics and Automation, vol. 3, 2002, pp. 2539 – 2544. [3] S. Nakaoka, A. Nakazawa, K. Yokoi, H. Hirukawa, and K. Ikeuchi, “Generating whole body motions for a biped humanoid robot from captured human dances,” in IEEE International Conference on Robotics and Automation, vol. 3, sept. 2003, pp. 3905 – 3910. [4] K. Munirathinam, S. Sakkay, and C. Chevallereau, “Dynamic motion imitation of two articulated systems using nonlinear time scaling of joint trajectories,” in International Conference on Intelligent Robots and Systems (IROS), Algarve, Portugal, May-June 2012. [5] K. Hu, C. Ott, and D. Lee, “Online human walking imitation in task and joint space based on quadratic programming,” in Robotics and Automation (ICRA), 2014 IEEE International Conference on, June 2014, pp. 3458–3464. [6] A. Menache, Understanding motion capture for computer animation, 2nd ed. Elsevier, 2011. [7] V. Ivancevic and T. Ivancevic, Human-Like Biomechanics: A Unified Mathematical Approach to Human Biomechanics and Humanoid Robotics, ser. Intelligent Systems, Control and Automation: Science and Engineering, v. 28. Springer, 2008. [8] A. Cappozzo, A. Cappello, U. d. Croce, and F. Pensalfini, “Surface-marker cluster design criteria for 3-d bone movement reconstruction,” in Biomedical Engineering, 1997. [9] J. P. Holden, J. A. Orsini, K. L. Siegel, T. M. Kepple, L. H. Gerber, and S. J. Stanhope, “Surface movement errors in shank kinematics and knee kinetics during gait,” Gait & Posture, vol. 5, no. 3, pp. 217 – 227, 1997. [10] C. Reinschmidt, A. van den Bogert, B. Nigg, A. Lundberg, and N. Murphy, “Effect of skin movement on the analysis of skeletal knee joint motion during running,” Journal of Biomechanics, vol. 30, pp. 729–732, 1997. [11] C. D. Mutto, P. Zanuttigh, and G. M. Cortelazzo, Time-of-Flight Cameras and Microsoft

• Diego A. Bravo M. y Carlos F. Rengifo R. •

Kinect(TM). Springer Publishing Company, Incorporated, 2012. [12] G. Du, P. Zhang, J. Mai, and Z. Li., “Markerless kinect-based hand tracking for robot teleoperation.” International Journal of Advanced Robotic Systems, 2012. [13] L. A. Schwarz, A. Mkhitaryan, D. Mateus, and N. Navab, “Human skeleton tracking from depth data using geodesic distances and optical flow,” Image and Vision Computing, vol. 30, no. 3, pp. 217 – 226, 2012. [14] S. Izadi, D. Kim, O. Hilliges, D. Molyneaux, R. Newcombe, P. Kohli, J. Shotton, S. Hodges, D. Freeman, A. Davison, and A. Fitzgibbon, “Kinect-fusion: Real-time 3d reconstruction and interaction using a moving depth camera,” in Proceedings of the 24th Annual ACM Symposium on User Interface Software and Technology, ser. UIST ’11. New York, NY, USA: ACM, 2011, pp. 559–568.

[17] B. Galna, G. Barry, D. Jackson, D. Mhiripiri, P. Olivier, and L. Rochester, “Accuracy of the microsoft kinect sensor for measuring movement in people with parkinson’s disease,” Gait & Posture, vol. 39, no. 4, pp. 1062 – 1068, 2014. [18] R . A. Clark, K. J. Bower, B. F. Mentiplay, K. Paterson, and Y.-H. Pua, “Concurrent validity of the microsoft kinect for assessment of spatiotemporal gait variables,” Journal of Biomechanics, vol. 46, no. 15, pp. 2722 – 2725, 2013. [19] K. Khoshelham, “Accuracy analysis of kinect depth data,” in Remote Sensing and Spatial Information Sciencies, vol. XXXVIII, August 2011. [20] R . El-laithy, J. Huang, and M. Yeh, “Study on the use of microsoft kinect for robotics applications,” in Position Location and Navigation Symposium (PLANS), 2012 IEEE/ION, April 2012, pp. 1280–1288. [21] W. Khalil and E. Dombre, Modeling, Identification and Control of Robots, 2nd ed., ser. Kogan Page Science. Paris, France: Butterworth Heinemann, 2004.

[15] R . A. Clark, Y.-H. Pua, K. Fortin, C. Ritchie, K. E. Webster, L. Denehy, and A. L. Bryant, “Validity of the microsoft kinect for assessment of postural control,” Gait & Posture, vol. 36, no. 3, pp. 372 – 377, 2012.

[22] C. D. Boor, A Practical Guide to Splines. Springer, 2001.

[16] A . Schmitz, M. Ye, R. Shapiro, R. Yang, and B. Noehren, “Accuracy and repeatability of joint angles measured using a single camera markerless motion capture system,” Journal of Biomechanics, vol. 47, no. 2, pp. 587 – 591, 2014.

[24] D. Baird, Experimetación. Una Introducción a la Teoría de las Mediciones y al Diseño de Experimentos. Prentice Hall, 1991.

Revista

[23] A . de la Escalera Hueso., Visión por computador. Fundamentos y métodos. Prentice Hall., 2001.

UAN • ISSN 2145 - 0935 • Vol. 5 • No. 9 • pp 25-33 • julio - diciembre de 2014

33

Get in touch

Social

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