27
Resumen ESTIMACIÓN DE HOMOGRAFÍA PARA LA MANIPULACIÓN DEL ROBOT HUMANOIDE FIBONACHO Homography estimation for the manipulation of the humanoid robot Fibonacho José Sebastián Bejos Mendoza - [email protected] Miriam Hernández Ramírez - [email protected] Luis Alejandro Minero Gutiérrez - [email protected] En este trabajo se desarrollaron distintas técnicas de visión y control para manipular al robot humanoide Fibonacho. Con estas técnicas un robot humanoide es capaz de realizar distintas tareas con mayor precisión, como se muestra en los resultados. En particular, se aplicaron para que Fibonacho fuera capaz de realizar el cobro de un tiro de penal y atajar el tiro de un pateador. El cómputo estimado de la homografía entre dos imágenes fue la técnica principal para corregir la desviación causada en el desplazamiento del robot. Otros métodos importantes descritos en este trabajo fueron realizados para localizar la pelota en el terreno de juego y para calcular un punto de contao con el pie, con el fin de manipular la dirección de su trayeoria. Palabras clave: Robótica humanoide; estimación de homografía; visión computa- cional; NAO. Abstract In this work, different control and vision teniques were developed for the manipula- tion of the humanoid robot Fibonao. With these teniques a humanoid robot is able to perform different tasks with greater precision, as is shown in the results. In particular, they were implemented in the robot so that he could perform a penalty ki and also stop it. e estimation of the homography between two images was the main tenique used to corre the deviation caused by the movement of the robot. Other important methods described in this work were used to locate a ball and to calculate the point of conta of the foot, to manipulate its trajeory. Keywords: humanoid robotics; homography estimation; computer vision; NAO. Núm. 23, ene-abr. 2016, pp. 147-173

ESTIMACIÓN DE HOMOGRAFÍA PARA LA MANIPULACIÓN …

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Resumen

ESTIMACIÓN DE HOMOGRAFÍA PARA LAMANIPULACIÓN DEL ROBOT HUMANOIDE FIBONACHO

Homography estimation for the manipulation of the humanoid robot Fibonacho

José Sebastián Bejos Mendoza - [email protected] Miriam Hernández Ramírez - [email protected]

Luis Alejandro Minero Gutiérrez - [email protected]

En este trabajo se desarrollaron distintas técnicas de visión y control para manipular al robot humanoide Fibonacho. Con estas técnicas un robot humanoide es capaz de realizar distintas tareas con mayor precisión, como se muestra en los resultados. En particular, se aplicaron para que Fibonacho fuera capaz de realizar el cobro de un tiro de penal y atajar el tiro de un pateador.

El cómputo estimado de la homografía entre dos imágenes fue la técnica principal para corregir la desviación causada en el desplazamiento del robot. Otros métodos importantes descritos en este trabajo fueron realizados para localizar la pelota en el terreno de juego y para calcular un punto de contacto con el pie, con el fin de manipular la dirección de su trayectoria.

Palabras clave: Robótica humanoide; estimación de homografía; visión computa-cional; NAO.

Abstract

In this work, different control and vision techniques were developed for the manipula-tion of the humanoid robot Fibonacho. With these techniques a humanoid robot is able to perform different tasks with greater precision, as is shown in the results. In particular, they were implemented in the robot so that he could perform a penalty kick and also stop it. The estimation of the homography between two images was the main technique used to correct the deviation caused by the movement of the robot. Other important methods described in this work were used to locate a ball and to calculate the point of contact of the foot, to manipulate its trajectory.

Keywords: humanoid robotics; homography estimation; computer vision; NAO.

Núm. 23, ene-abr. 2016, pp. 147-173

148

SEBASTIÁN BEJOS, MIRIAM HERNÁNDEZ Y LUIS MINERO

1. Introducción

Este trabajo describe el conjunto de técnicas implementadas sobre el robot Fibonacho, un robot humanoide NAO fabricado por Aldebaran Robotics, para realizar el cobro de un tiro penal. Fibonacho es un robot del Centro de Desarrollo Tecnológico de la Facultad de Estudios Superiores Acatlán, utilizado para realizar investigación sobre robótica móvil e inteligencia artificial en el Laboratorio de Algoritmos para la Robótica. El cobro de un tiro penal es una tarea que necesita técnicas de visión y control para poder realizarlo. La solución de este reto fue dividida en varias tareas, las cuales son descritas a continua-ción. Primero se realiza el acercamiento a la pelota, estimando la homografía, para corregir posibles desviaciones durante su recorrido. Después se localiza la pelota utilizando las cámaras de Fibonacho, transformando coordenadas de la imagen a coordenadas en un sistema cartesiano. Posteriormente, se calcula el punto de contacto entre el pie y la pelota para obtener una dirección de tiro deseada, utilizando una curva de Bézier para aproximar el contorno del pie. Por último, se genera el movimiento del pie pateador, evitando una caída durante la ejecución de la patada. Además, se desarrolla un portero que obtiene la dirección del tiro utilizando solamente las coordenadas de la imagen, así como los movimientos para una caída segura.

Así, este escrito está organizado de la siguiente manera. Algunos detalles de la plataforma NAO, el módulo de control de movimientos en NAOqi, y la teoría cinemática para Fibonacho son descritos en la sección 2. En la sección 3 se calculan las coordenadas de puntos, necesarias para la realización de la patada. La sección 4 está destinada para el cálculo de una estimación de la homografía entre dos imágenes, con el fin de obtener la desviación que tenga Fibonacho al desplazarse. La sección 5 describe el uso de estas técnicas para la ejecución de un tiro penal, así como la descripción de un portero. Los resultados que se obtuvieron al realizar distintas pruebas se encuentran en la sección 6.

149

ESTIMACIÓN DE HOMOGRAFÍA PARA LA MANIPULACIÓN DEL ROBOT HUMANOIDE FIBONACHO

Mat

emát

icas

e In

geni

ería

MU

LTID

ISC

IPLI

NA

23

2. Modelado cinemático de Fibonacho

2.1. Plataforma de hardware y software

El robot Fibonacho contiene 25 motores que le otorgan 25 grados de libertad. El sistema operativo instalado en Fibonacho se llama OpenNAO. La infraestruc-tura de desarrollo es NAOqi y cuenta con un API (Application Programming Interface) idéntica para C++ y Python. NAOqi se ejecuta a través de una red, entonces, para lograr la comunicación se requiere de un intermediario. Éste permite que un robot pueda utilizar los módulos disponibles dentro de la red, siendo estos ALMemory y ALMotion.

El módulo ALMemory provee de una memoria centralizada en la que se pueden leer y escribir datos, así como crear notificaciones de eventos. Los tipos de datos, generalmente, son de los sensores y de la posición de las articulaciones.

El módulo ALMotion provee métodos para que Fibonacho realice movimientos. Mientras NAOqi describe los siguientes sistemas de referencia (Aldebaran Robotics, 2015):

‣ FRAME_TORSO es el sistema de referencia donde el origen está ubicado en el centro del torso del robot. El lado positivo del eje X apunta al frente, del eje Y apunta hacia la izquierda y el eje Z hacia arriba.

‣ FRAME_ROBOT tiene como origen el punto sobre el suelo centrado entre ambos pies del robot. Sus ejes son construidos de manera similar a los de FRAME_TORSO, pero con la condición de que el plano XY es el suelo.

‣ FRAME_WORLD tiene el mismo origen que FRAME_ROBOT cuando el robot es encendido, sin embargo el origen no es alterado por los movimientos del robot. Este sistema rastrea la posición de FRAME_ROBOT conforme el robot va recibiendo órdenes de caminado.

El módulo ALMotion clasifica sus métodos de acuerdo a la forma de solucionar distintos problemas de movimiento, los cuales se explican a continuación.

‣ Control de articulaciones: en estos métodos (Joint control), las articula-ciones son parametrizadas con un ángulo, debido a que son rotacionales.

‣ Control cartesiano: estos métodos (Cartesian control) controlan la posición de los efectores en el sistema cartesiano FRAME_ROBOT, resol-viendo la cinemática inversa.

150

SEBASTIÁN BEJOS, MIRIAM HERNÁNDEZ Y LUIS MINERO

‣ Control del balance: también llamado “control de cuerpo entero” (Whole body control), controla el balance del robot tomando en cuenta cada una de las articulaciones y así, lograr mantener una posición fija y segura.

‣ Control de locomoción: este control (Locomotion control) es utilizado para mover a Fibonacho de un lugar a otro, es decir, hacerlo caminar.

‣ Control del torque en articulaciones: estos métodos (Stiffness control) controlan el torque o fuerza en los motores de las articulaciones.

2.2. Cinemática directa e inversa

Fibonacho tiene definidas cinco cadenas cinemáticas que pueden generar movimientos independientes. Estas cadenas son los brazos, las piernas y la cabeza, cada una de éstas posee su respectivo conjunto de enlaces y articula-ciones (Kofinas et al., 2015). El sistema de referencia utilizado para las cadenas cinemáticas es FRAME_TORSO, así que la localización de un efector está dada por el punto p = [x, y, z, wx, wy, wz], donde x, y, z indican la posición y wx, wy, wz indican la orientación del sistema de referencia del efector con respecto a FRAME_TORSO. Las variables articulares se denotan como q = [q1, …, qn], donde qn corresponde a la n-ésima articulación de la cadena. Por lo tanto, para mover a Fibonacho se deben resolver la cinemática directa o la cinemática inversa. En la cinemática directa se calcula la posición y orientación del efector como una función de variables articulares y en la cinemática inversa se determinan las variables articulares correspondientes a la posición y orientación del efector.

Para resolver la ecuación de cinemática directa se debe definir un sistema de referencia unido a cada enlace, del enlace al enlace n. Entonces la trans-formación que describe la posición y orientación del sistema de referencia del enlace n respecto al sistema de referencia del enlace , está dada por T (q) (q )0

n01 1 (q )2 …= = A 1

2A n - 1nA , donde las matrices (q )i

i - 1iA para i = , …, n son

matrices de transformación que describen la posición y orientación del enlace i respecto al enlace i - , en función de la articulación i. El cálculo para la función de cinemática directa se obtiene por medio de los productos de las matrices de transformación, cada una de estas matrices es una función de una sola variable articular qi. La ecuación de cinemática directa, (q)b

eT que, describe la posición y orientación del sistema de referencia del efector respecto al sistema de referencia base, se obtiene como (q) = (q) b

eT b0T 0

nT neT , donde b

0T

151

ESTIMACIÓN DE HOMOGRAFÍA PARA LA MANIPULACIÓN DEL ROBOT HUMANOIDE FIBONACHO

Mat

emát

icas

e In

geni

ería

MU

LTID

ISC

IPLI

NA

23

y neT son matrices de transformación constantes que describen la posición y

orientación del sistema respecto al sistema de referencia base, y el sistema del efector respecto al sistema n, respectivamente.

Para encontrar los sistemas de referencia para cada uno de los enlaces de Fibonacho se utilizó el método Denavit-Hartenberg (DH) (Siciliano, et al. 2009), el cual consiste en obtener los sistemas de referencia para cada enlace respecto al enlace anterior. Estos sistemas son representados por las matrices de transformación para cada enlace. Así que, la ecuación de cinemática directa

(q)beT , dada en función de las articulaciones, puede ser reescrita como

(q) = (q)beT

beR (q)b

epT0 1 ,

donde beR es la matriz de rotación del efector y b

ep es el vector de traslación del efector, respecto al sistema de referencia base.

Ahora bien, la cinemática inversa puede ser calculada de forma algebraica resolviendo un sistema de ecuaciones, en donde cada una de las variables articulares es una incógnita. Estas ecuaciones se obtienen de la matriz de transformación dada una posición para el efector. Pueden surgir múltiples soluciones para las variables articulares, así como no encontrar solución para la posición deseada del efector.

Los problemas de cinemática también se pueden resolver a partir de las velocidades del movimiento, presentando la relación entre las velocidades de las articulaciones y las correspondientes velocidades lineales y angulares del efector. Esta relación entre velocidades es descrita a través de una matriz jacobiana que depende de la configuración de las articulaciones. La velocidad angular se obtiene derivando la matriz de rotación b

eR y, siguiendo el método DH, se calcula la velocidad de cada enlace de la cadena. Este análisis es conocido como “cinemática diferencial”, la cual es utilizada en los métodos de NAOqi.

El modelo geométrico para las posiciones de los efectores de Fibonacho está dada por P = f (q), entonces el modelo de cinemática directa es la derivada de P respecto al tiempo Ṗ = δ

δt f (q) q = J(q)q, donde J(q) es la matriz jacobiana. El modelo de cinemática inversa está dado por q =J -1 (q)Ṗ. Si la matriz J no es cuadrada, la matriz inversa se extiende de la siguiente manera. Sea A una matriz de dimensión (m×n) con rango ρ(A)= mín{m,n}. Si m>n, la inversa por la derecha de A se define como la matriz Ar , de (n×m), tal que AAr=Im. Si m<n, la inversa por la izquierda de A se define como la matriz Al , de (n×m), tal que Al A = In. Para más detalles sobre el cálculo de la pseudoinversa, véase (Siliciano et al., 2009).

152

SEBASTIÁN BEJOS, MIRIAM HERNÁNDEZ Y LUIS MINERO

3. Puntos generadores de dirección sobre curvas de Bézier

Antes de generar el movimiento para la patada, se calculan varios puntos de referencia. En primer lugar se determina un punto en el contorno del pie, el cual será el punto de contacto entre el pie y la pelota. Este punto genera una dirección para la pelota tras ser golpeada. Para calcular este punto, se modela el contacto entre el pie y la pelota como la colisión entre dos curvas.

3.1. Curvas de Bézier cúbicas

El pie del robot tiene una forma redonda, entonces su contorno se aproxima a una curva de Bézier de grado tres. (Wenk y Röfer, 2013)

Definición 3.1. Sea k ≥ . Los polinomios de Bernstein de grado k se definen por:

(t) = (1 - t)tk k - iitB k

i ,

donde los números combinatorios son:

i! (k - i)! ʼ 0,

=k k!i

si 0 ≤ i ≤ k,en otro caso.

Definición 3.2. Sea k ≥ .. La curva de Bézier C(t) de grado k definida por k + puntos de control p , …, pk, es la curva definida paramétricamente por

ƩC(t) =k

i=0(t) Pi , con t ∈ [0,1].k

tB

Proposición 3.1. Sea C(t) una curva de Bézier de grado k, con puntos de control p , …, pk. Su primer derivada está dada por:

ƩĊ(t) =k-1

i=0(t) (p - p ).k-1

i i+1 iBk

Siguiendo la definición general de una curva de Bézier, una curva de Bézier cúbica es definida, entonces, por cuatro puntos de control de la siguiente manera:

ƩC(t) =3

i=0(t)p =3

i i (t)p +B 30 0B (t)p3

1 1B + (t)p32 2B + (t)p3

3 3B ,

153

ESTIMACIÓN DE HOMOGRAFÍA PARA LA MANIPULACIÓN DEL ROBOT HUMANOIDE FIBONACHO

Mat

emát

icas

e In

geni

ería

MU

LTID

ISC

IPLI

NA

23

donde (t) =3 3-ii t (1 - t)B 3

i( ) 1 , son llamadas funciones combinatorias y son valores escalares. Por lo tanto, las funciones están dadas por

=3 30 (1 - t) ,B =3 2

1 (1 - t)3t ,B =3 22 (1 - t)3t ,B =3 3

3 t ,B

para ≤ t ≤ y la suma de las funciones es . Así que

Ʃ3

i=0Ʃ

3

i=0(t) = = (t + = 1.3

iB 3-i(1 - t) 3(1 - t))3i( )

Tomando las definiciones anteriores, el contorno del pie del robot queda definido por medio de una curva de Bézier cúbica (Prautzsch, et al., 2002). Lo que sigue es encontrar un punto sobre esa curva para obtener una dirección ortogonal a la tangente de dicho punto. En la siguiente sección se muestra con detalle cómo resolver este problema.

3.2. Cálculo de los puntos generadores de dirección

El punto de contacto en el contorno del pie dado un vector de dirección de tiro d, se obtiene al resolver la siguiente ecuación C(t) ∙ d = , donde C(t) es la derivada de la curva del contorno del pie, d = (dx, dy ) ∈ ℝ es el vector normalizado de la dirección de tiro y u∙v es el producto punto entre dos vectores u,v ∈ ℝ . Por lo tanto, la derivada de la curva de Bézier cúbica está dada por:

ƩĊ(t) =2

i=0(P - P )i+1 i3 2

i( ) 2-it (1 - t)i

= (C , C ),Ʃ2

i=0(P - P xi+1 xi

2i( ) 2-it (1 - t)= ,i) Ʃ

2

i=0(P - P yi+1 yi

2i x y( ) 2-it (1 - t)i)

con Pi+ = (pxi+ , pyi+

) y Pi = (pxi , pyi

), entonces, la ecuación para encontrar el punto de contacto del pie, está dada por:

= 0,Ʃ2

i=0(P - P xx i+1 xi

2i( ) 2-it (1 - t)d y+di) Ʃ

2

i=0(P - P yi+1 yi

2i( ) 2-it (1 - t)i)

que se reescribe como:

= 0.Ʃ2

i=0(P - P xx i+1 xi

[d y+d) (P - P yi+1 yi2i( ) 2-it (1 - t)i)]

154

SEBASTIÁN BEJOS, MIRIAM HERNÁNDEZ Y LUIS MINERO

Se resuelve la ecuación anterior para encontrar el valor de t, utilizando el método de la secante para aproximarlo. Después, se calcula la coordenada del punto en el contorno del pie definido en el sistema FRAME_ROBOT. Este representa al punto donde Fibonacho debe golpear la pelota para obtener la dirección deseada. En este trabajo, la posición del punto de contacto del pie es calculada al principio debido a que sólo se definieron dos posibles direcciones, izquierda o derecha. Por lo tanto, la posición es guardada en una variable para ser utilizada cada vez que se necesite. En la Figura 1 se observa la curva de Bézier que aproxima el contorno del pie y una dirección d, resolviendo las ecuaciones dadas la curva y la dirección se obtiene el punto de contacto (Cx, Cy ).

10

0

8

6

4

2

d

x

E

A

G

D

y -y

Ċ(t)

(C , C )x y

Figura 1: El punto de contacto en el contorno del pie dada una dirección d.

3.3. Patada direccionada de la pelota

La localización de la pelota es otro punto de referencia que se calcula antes de realizar la patada, con el fin de posicionarse para golpearla en el punto correcto y obtener la dirección deseada.

155

ESTIMACIÓN DE HOMOGRAFÍA PARA LA MANIPULACIÓN DEL ROBOT HUMANOIDE FIBONACHO

Mat

emát

icas

e In

geni

ería

MU

LTID

ISC

IPLI

NA

23

3.3.1. Localización de la pelota

Para obtener el punto que representa el centro de la pelota en el terreno de juego, se realiza una transformación de coordenadas, entre las de una imagen tomada por el robot y las del sistema de referencia FRAME_ROBOT.

El módulo ALRedBallDetection de NAOqi le da a Fibonacho la habilidad de detectar objetos rojos y circulares, basado en la detección de píxeles rojos en una imagen dada por la cámara. Cuando un conjunto de pixeles, en forma circular, es encontrado en la imagen actual, el arreglo redBallDetected en AlMemory es actualizado. Para este arreglo se utilizaron los siguientes elementos:

TimeStamp, define el momento en que se toma la imagen cuando se detecta una pelota.Camera_Id, es el identificador de la cámara utilizada al momento de la captura de la imagen. BallInfo, contiene la información sobre la pelota. Es un arreglo con cuatro valores, dos de estos son las coordenadas del centro de la pelota en coordenadas angulares, estos son los ángulos centerX y centerY dados en radianes. Los otros dos valores indican los ángulos para los radios horizontales y verticales de la pelota (sizeX y sizeY) dados en radianes. Es importante mencionar que el sistema de referencia para las coordenadas en BallInfo es la imagen, cuyo origen es el centro de ésta; centerX representa la rotación sobre el eje Z y centerY representa la rotación sobre el eje Y, respecto a FRAME_ROBOT y en sentido contrario a las manecillas del reloj.CameraPose_InRobotFrame, es la posición de la cámara respecto a FRAME_ROBOT. Contiene un vector seis dimensional (x, y, z, wx, wy, wz), donde los primeros tres valores representan la posición y los restantes corresponden a los ángulos que representan la orientación de la cámara con respecto a cada eje.

La información contenida en el evento es utilizada para la construcción de la solución de la transformación de las coordenadas entre la imagen y FRAME_ROBOT. Para comenzar se proyecta una región en el plano XY, calculada de acuerdo a las limitaciones de la cámara, es decir, tomando en cuenta el rango de visibilidad de Fibonacho. Esta región define un rectángulo de visión cuyas coordenadas están en el sistema FRAME_ROBOT. El rectángulo de visión se forma a partir de calcular cinco triángulos rectángulos, de los cuales se

156

SEBASTIÁN BEJOS, MIRIAM HERNÁNDEZ Y LUIS MINERO

obtendrán cinco puntos en FRAME_ROBOT. Uno de estos puntos corresponde al centro del rectángulo de visión y los demás corresponden al punto medio en cada uno de los lados del rectángulo de visión. Dichos triángulos serán formados a partir del elemento, CameraPose_InRobotFrame, en el arreglo generado por el evento redBallDetected. El primer triángulo se construye con la altura de la cámara en el eje Z y el ángulo θ obtenido al restar la inclinación de la cámara wy a 90 grados. Por lo tanto, la hipotenusa es el segmento que va de la cámara hasta el suelo. La intersección entre la hipotenusa y el suelo es el punto que corresponde al centro del rectángulo, está localizado sobre el eje X. El ángulo θ de este primer triángulo y el rango de visión vertical de la cámara, se utilizan para construir dos nuevos triángulos, en donde sus hipotenusas corresponden a los ángulos formados al sumar y restar la mitad del rango de visión a θ. Por lo tanto, se obtienen dos nuevos puntos, correspondientes a los puntos medios de los segmentos de los lados del rectángulo sobre el eje X.

Faltan calcular los lados sobre el eje Y, estos son formados a partir del rango de visión horizontal de la cámara. La altura de estos dos triángulos corresponde a la longitud de la hipotenusa del primer triángulo. Encontrando las bases de los triángulos se puede formar el rectángulo de visión. Ahora bien, el rectángulo de visión formado corresponde a la imagen capturada por el robot. En la Figura 2 se muestran los triángulos mencionados anteriormente para formar el rectángulo de visión.

El sistema coordenado de la imagen está dado en radianes, con origen en el centro. Por otra parte, el sistema coordenado del rectángulo de visión está dado en metros porque se encuentra en FRAME_ROBOT. Estos sistemas difieren en los ejes, el eje X de la imagen corresponde al eje Y del rectángulo de visión; el Y de la imagen, además de tener coordenadas negativas, corresponde al eje X del rectángulo de visión. Tomando en cuenta esto, se encuentra una correspon-dencia entre una coordenada en la imagen y una coordenada en el rectángulo de visión, en donde únicamente es necesario encontrar las longitudes de las bases de los triángulos para obtener la posición de la pelota en FRAME_ROBOT.

157

ESTIMACIÓN DE HOMOGRAFÍA PARA LA MANIPULACIÓN DEL ROBOT HUMANOIDE FIBONACHO

Mat

emát

icas

e In

geni

ería

MU

LTID

ISC

IPLI

NA

23

z

y

x

θv1

θv2

α

c

v2αv1

extv1 extv2

Cám

ara

(a)

z

y

x

θh1

θh2

α

c

h2

αh1

exth1

exth2

Cám

ara

(b)Figura 2: Triángulos para calcular el rectángulo de visión, a partir de la posición de la cámara.

4. Estimación de homografía para rectificación de trayectorias

En esta sección se desarrollan los detalles de la estimación de homografía, necesaria para rectificar la trayectoria de caminado de Fibonacho. Primero, se define la homografía como una generalización de la transformación afín. Después, se explica a grandes rasgos una forma para obtener puntos de interés de dos imágenes y las correspondencias entre estos. Para obtener la homografía entre dos imágenes se describen los pasos del algoritmo de estimación robusta usando aprendizaje automático. Por último, se define la función para medir el error entre correspondencias y se describen en general, los métodos iterativos de optimización para lograr una mejor estimación de la homografía.

4.1. Homografía

Una transformación afín es una transformación lineal no singular seguida de una traslación, su representación matricial es la siguiente:

b y +a1

1= b0

a2

2b0

a3

3ba3

3b ,1

x´y´1

a x +1

1= b x +a y +2

21

xy1

xy1

A0

t1T

158

SEBASTIÁN BEJOS, MIRIAM HERNÁNDEZ Y LUIS MINERO

donde A es una matriz no singular y t es el vector de traslación. Se distingue entre coordenadas homogéneas x = (x , x , x )T ∈ ℝ y coordenadas no homogéneas

x1x , ,3x = ∈ ℝ(

(x2T

2

x3, de un punto. Por lo tanto, la transformación afín es una

transformación entre coordenadas no homogéneas (Moeslund, 2012).La homografía o transformación proyectiva es una transformación lineal

no singular general entre coordenadas homogéneas. Puede ser representada como sigue:

b y +a1

1= ba2

2ba3

3ba3

3b .h · x´ a x +1

1= b x +a y +2

2c y +1c x + 2 1

xy1

h · x´h c 1 c 2 1

La homografía generaliza una transformación afín, porque en la transforma-ción afín (c , c ) = ( , ). Las coordenadas (x',y') ∈ ℝ , al aplicar una transforma-ción proyectiva a (x,y) ∈ ℝ , son:

= =x´ a3 ,h · x´ a x +1 a y +2c y +1c x + 2 1h = =y´ ,h · y´

c y +1c x + 2 1hb y + 3b1b x + 2

estas ecuaciones se obtienen de la representación matricial. Se representan en una matriz no homogénea, de la siguiente manera:

[a1= a2 a3 b1 b2 b3 c 1Tc ]2 .x´

y´x y 1 0 0 0 - x · x´ - y · x´0 0 0 x y 1 - x · y´ - y · y´

Para encontrar los parámetros de la homografía, se necesitan conocer las coordenadas de cuatro puntos en cada imagen, así como sus emparejamientos, denotados como:

(x ,y ).´ ´(x ,1 y )1 (x ,1 y )1↔ ´ ´ (x ,2 y )2 (x ,2 y )2↔ ´ ´ (x ,3 y )3 (x ,3 y )3↔ ´ ´ (x ,4 y )4 4 4↔

Teniendo estas cuatro correspondencias, se construye el siguiente sistema lineal homogéneo, e = K ∙ d, cuya representación matricial es:

a1

=

a2a3

b1

b2

b3c 1c 2

x´y´x´y´x´y´x´y´

- x · x´ - y · x´1 x1 y1 1 0 0 00 0 0 x1

1 1 1 1- x · y´ - y · y´1 1 1 1

- x · x´ - y · x´2 2 2 2- x · y´ - y · y´2 2 2 2

- x · x´ - y · x´3 3 3 3- x · y´ - y · y´3 3 3 3

- x · x´ - y · x´4 4 4 4- x · y´ - y · y´4 4 4 4

y1 1x2 y2 1 0 0 00 0 0 x2 y2 1x3 y3 1 0 0 00 0 0 x3 y3 1x4 y4 1 0 0 00 0 0 x4 y4 1

1

2

2

3

3

4

4

· ,

159

ESTIMACIÓN DE HOMOGRAFÍA PARA LA MANIPULACIÓN DEL ROBOT HUMANOIDE FIBONACHO

Mat

emát

icas

e In

geni

ería

MU

LTID

ISC

IPLI

NA

23

Para obtener los parámetros de la homografía se resuelve el siguiente sistema lineal,

d = K - ∙ K ∙ d = K - ∙ e,

donde d es el vector de parámetros de la matriz de homografía.

4.2. Puntos de interés y correspondencias entre imágenes

Los datos de entrada del algoritmo son las correspondencias entre los puntos de interés en ambas imágenes, por lo que a continuación, se explica una forma de obtenerlos por medio de un algoritmo detector de esquinas. Primero se hace una prueba sobre los 16 pixeles que se encuentran sobre un círculo centrado en un candidato a esquina, p. El detector de esquinas clasifica a p como una esquina si existe un conjunto de n pixeles contiguos sobre el círculo que sean más claros (más obscuros) que la intensidad de p más (menos) un umbral. Se denota como, Ip + t e Ip - t, donde Ip es la intensidad de p y t es un umbral. Escogiendo n = 12, primero se examinan los pixeles 1, 5, 9 y 13, mostrados en la Figura 3. Si p es una esquina, entonces al menos tres de estos deben ser más claros que Ip + t o más obscuros que Ip - t. Si esto no pasa, entonces p no puede ser una esquina.

Después de esta primera prueba se aplica la prueba completa, sobre doce pixeles contiguos, a los candidatos que fueron refinados anteriormente.

1

9

13 5p

Figura 3: Candidato a esquina p en una imagen.

Para cada posición x ∈ {1,… , 16}, en el círculo, el pixel en la posición relativa a p denotado como (p → x), tiene uno de los tres siguientes estados:

160

SEBASTIÁN BEJOS, MIRIAM HERNÁNDEZ Y LUIS MINERO

So,

s, Ic,

=p→x

I ≤

p→x

Ip→x

Ip→xI + t p

I - t (obscuro) p

< I + t (similar)

(claro) p< - t p

Al escoger una posición x y calcular la función Sp→x para todo p ∈ P (el conjunto de todos los pixeles en la imagen), se obtiene una partición de P. Esta partición está dada por los tres subconjuntos, Po, Ps, Pc, donde cada p es asignado a PSp→x

. En el artículo de Rosten (2006) se explica con detalle la técnica de aprendizaje automático para clasificar las esquinas, teniendo los subconjuntos anteriores.

Se obtienen las correspondencias posibles para crear los datos de entrada del algoritmo de estimación de homografía. Este conjunto inicial cuenta con una buena proporción de correspondencias correctas. Sin embargo, la finalidad no es lograr que todas sean correspondencias exactas, lo cual se logra con el algoritmo de consenso sobre muestras aleatorias. Para construir este conjunto se emparejan los puntos de interés usando una combinación de proximidad y similitud de las vecindades de intensidad. Para cada esquina, en la primera imagen, se escoge el emparejamiento con mayor correlación cruzada en la segunda imagen. Simétricamente, para cada esquina en la segunda imagen, se busca un emparejamiento en la primera imagen. En el caso donde una esquina haya sido reclamada por más de una esquina en la otra imagen, se elige el emparejamiento con mayor correlación cruzada.

Algoritmo 1 Homografía entre dos imágenes

Entrada: Dos imágenes.Salida: Homografía 2D entre las dos imágenes.

1:2:

3:4:5:6:7:8:

9:10:11:12:13:14:15:16:17:

18:

Puntos de interés: Calcular puntos de interés para cada imagen usando el algoritmo FAST.Correspondencias posibles: calcular un conjunto de emparejamiento entre puntos de interés de ambas imágenes basado en proximidad y similitud de las vecindades de intensidad.Estimación robusta con RANSAC:para i ∈ [N] hacer

Seleccionar aleatoriamente una muestra de 4 correspondencias.Calcular la matriz de homografía Hi .Calcular la función de error d ⊥ para cada correspondencia posible.Determinar el subconjunto de inliers, Si , consistentes con Hi por el número de correspondencias para las

que d ⊥ < √5.99σ pixeles.si |Si | > T entonces

SC ← SiSalir de ciclo RANSAC.

fin sisi |Si | > |SC | entonces

SC ← Si ▷ Conjunto de consenso más grande, SCfin si

fin paraEstimación óptima: Reestimar HC con todas las correspondencias posibles que fueron clasificadas como inliers, al minimizar la función de costo máxima verosimilitud usando el algoritmo de Levenberg-Marquardt. (Hartley y Zisserman, 2004)Emparejamiento guiado: Otras correspondencias entre puntos de interés son determinadas usando la HC estimada para definir una región de búsqueda sobre la posición del punto de transferido.

161

ESTIMACIÓN DE HOMOGRAFÍA PARA LA MANIPULACIÓN DEL ROBOT HUMANOIDE FIBONACHO

Mat

emát

icas

e In

geni

ería

MU

LTID

ISC

IPLI

NA

23

4.3. Algoritmo de consenso sobre muestras aleatorias

Después de tener las correspondencias posibles, se utiliza un algoritmo de aprendizaje automático conocido como RANSAC (Random Sample Consensus), con el cual se clasifican las correspondencias correctas (Fischler y Bolles, 1981). En cada iteración del algoritmo de consenso, sobre muestras aleatorias, se construye un conjunto que contiene las correspondencias que están a una distancia de la homografía H, la cual fue estimada con una muestra aleatoria de cuatro correspondencias. Después de N iteraciones se usa el conjunto de consenso más grande para reestimar la homografía H con todos sus elementos, esto es, con las correspondencias ya clasificadas como correctas. Este paso de estimación óptima se realiza minimizando una función de error utilizando un método de optimización iterativo (las siguientes dos secciones lo explican a detalle). Teniendo esta estimación se pueden encontrar más corresponden-cias y agregarlas al conjunto; es decir, el emparejamiento guiado. Con un conjunto más grande de correspondencias se reestima H, se pueden repetir estos dos pasos las veces necesarias para tener cada vez una mejor estimación de la homografía. Los pasos descritos anteriormente, están contemplados en el algoritmo , así como un ejemplo de las etapas del algoritmo en las imágenes de la Figura 4.

(A) (B) (C) (D)Figura 4: Ejemplo con diferentes etapas del algoritmo. (A) Puntos de interés en ambas imágenes. (B)

Posibles correspondencias entre puntos de interés. (C) Resultado inicial de haber filtrado las correspon-dencias con RANSAC. (D) Reestimación de H utilizando un emparejamiento guiado.

162

SEBASTIÁN BEJOS, MIRIAM HERNÁNDEZ Y LUIS MINERO

4.4. Funciones de error geométricas

Para obtener una mejor estimación de H es necesario contar con un modelo para el error de medición. Por ello, se usa la siguiente notación para las coordenadas de puntos en una imagen: x para los puntos medidos, x para los puntos estimados y para puntos verdaderos. Se asume que con ausencia de error de medición, los puntos verdaderos satisfacen exactamente una homografía, esto es, i i' = H · . Se asume que el error de medición es Gaussiano para cada coordenada en la imagen, con media cero y desviación estándar uniforme σ. Esto significa que x = + ∆x, donde ∆x cumple con una distribución Gaussiana con varianza σ . Si, además, se supone también que el ruido de cada medida es independiente, entonces, si el punto verdadero es , la función de densidad de probabilidad (PDF) de cada punto medido x es:

(x) =d (x,x)2

(2σ )2-2Pr e1

2πσ

En caso en donde el error se encuentra únicamente en la segunda imagen, la probabilidad de obtener el conjunto de correspondencias { i ↔ xi'} es simplemente el producto de sus PDFs individuales, los errores de cada punto se suponen independientes. Entonces, el PDF de los datos con error de medición es:

({x'} | H) =d (x',Hx )2

(2σ )2-2Pr e ,1

2πσii

i iΠdonde Pr ({xi'} ∣ H) se interpreta como la probabilidad de obtener las mediciones {xi'} dado que la homografía H es cierta. El logaritmo de la probabilidad del conjunto de correspondencias es:

({x'} | H) = d (x',Hx ) + c,2

2log Pr1

2σi

i

i iΣdonde c es una constante.

La estimación de máxima verosimilitud de la homografía, Ĥ, maximiza el logaritmo de la probabilidad anterior. Esto es equivalente a minimizar el error en una sola imagen, dado por:

d (x',Hx ) .2

ii iΣ

163

ESTIMACIÓN DE HOMOGRAFÍA PARA LA MANIPULACIÓN DEL ROBOT HUMANOIDE FIBONACHO

Mat

emát

icas

e In

geni

ería

MU

LTID

ISC

IPLI

NA

23

Cuando se considera el error en ambas imágenes, el estimador se desarrolla de manera similar al anterior. Si las correspondencias ciertas son { i ↔ H i = i'}, entonces la función de densidad de probabilidad de los datos es:

({xd (x ,x )2

2σ 2-

2Pr e .12πσi ii

i

i i d (x',Hx )+ 2i iΠ,x'} | H,{x }) =

Así, el logaritmo de la probabilidad dada la homografía H y el conjunto de las correspondencias está dado por:

log

1

({xPr i ii,x'} | H,{x }) = logd (x ,x )2 2

2σ 2-

2 e1

2πσi

i i d (x',Hx )+ i i

d (x ,x )2 2

2σ 2-

2 e1

2πσ

2

12πσ

i i d (x',Hx )+ i i

d (x ,x )2 2

2σ 2-

e i i d (x',Hx )+ i i

Π

=

= +

= +

log

iΣ log

iΣ log

2

212σ i

Σ(d (xi i,x ) d (x',Hx ) )+ c,2

i i

donde c es una constante.Entonces, el estimador de máxima verosimilitud de la homografía H y

las correspondencias { i ↔ xi'}, es la homografía Ĥ y las correspondencias corregidas { i ↔ i'}, que minimicen la función de error de reproyección, denotada como:

+2

iΣ(d (xi i,x ) d (x',x') ), con x' = Hx .2

i i i i

Para una distribución Gaussiana general, se puede asumir un vector de medidas X que satisface una función de distribución Gaussiana con matriz de covarianza Σ. Los casos anteriores son equivalentes a tener una matriz de covarianza cuyo múltiplo de la matriz identidad, esto es, Σ = σ I. La distancia de Mahalanobis entre dos vectores X y Y se define como

‖ X - Y ‖Σ = (X - Y)T Σ -1 (X - Y) ⅟2.

Cuando hay error en una imagen, encontrar el estimador de máxima vero-similitud es equivalente a minimizar la distancia de Mahalanobis entre los vectores X y . Para el caso donde el error es independiente en cada imagen, la función de costo a minimizar, en términos de la distancia de Mahalanobis,

164

SEBASTIÁN BEJOS, MIRIAM HERNÁNDEZ Y LUIS MINERO

es ‖ X - ‖2Σ + ‖ X' - ' ‖2

Σ , donde Σ y Σ' son las matrices de covarianza de las mediciones en ambas imágenes.

4.5. Métodos iterativos de optimización

Un método iterativo de optimización se puede usar después de que el algoritmo de consenso sobre muestras aleatorias haya clasificado las correspondencias y hecho una estimación de la homografía. En general, el método iterativo de minimización consiste en los siguientes pasos:

1. Función de costo: Se elige una función de costo como base para la minimización.

2. Parametrización: Se expresa la transformación a ser calculada en términos de un número finito de parámetros. En general, no es necesario que este sea un conjunto mínimo de parámetros, de hecho, a veces existen ventajas en la sobre-parametrización.

3. Especificación de la función: Se especifica una función que exprese el costo en términos del conjunto de parámetros.

4. Inicialización: Se calcula una estimación inicial, y adecuada, de los parámetros. En este caso, la estimación inicial se obtiene del algoritmo de consenso sobre muestras aleatorias.

5. Iteración: Empezando desde la solución inicial, los parámetros son refinados iterativamente con el objetivo de minimizar la función de costo.

La función de costo a minimizar se especifica detalladamente, como sigue:

‣ Un vector de mediciones X ∈ ℝN con matriz de covarianza Σ.

‣ Un conjunto de parámetros son representados como un vector P ∈ ℝM.

‣ Se define una función f : ℝM → ℝN.

‣ La función de costo a ser minimizada es el cuadrado de la distancia de Mahalanobis, es decir, ‖ X - f (P) ‖2

Σ = X - f (P) T Σ -1 X - f (P) .

Esta función de costo intenta encontrar el conjunto de parámetros P tal que f (P) = X. Cuando estos parámetros no son encontrados, se intenta llevar a la función f (P) lo más cerca posible a X, respecto a la distancia de Mahalanobis. El algoritmo de Levenberg–Marquardt es un método iterativo de minimización

165

ESTIMACIÓN DE HOMOGRAFÍA PARA LA MANIPULACIÓN DEL ROBOT HUMANOIDE FIBONACHO

Mat

emát

icas

e In

geni

ería

MU

LTID

ISC

IPLI

NA

23

(Hartley y Zisserman, 2004, p. 597), cuando la función de costo a ser minimizada es de este tipo. La función de error de reproyección, vista en la sección anterior, se puede ajustar al formato de la función de costo de un algoritmo de minimi-zación. A continuación se explica cómo se realiza dicho ajuste.

Minimizar la función de error de reproyección es complicado porque requiere de una minimización simultánea sobre todas las posibilidades para i y todos los parámetros de la homografía H. Entonces, el problema puede ser parametrizado con las coordenadas de los puntos i y las entradas de la matriz Ĥ, un total de 2n + 9 parámetros. Las coordenadas de i' no se necesitan ya que están relacionadas a los otros parámetros por i' = Ĥ i . El vector de parámetros es P = (h, 1 , …, n ). El vector de mediciones contiene las coordenadas no homogéneas de todos los puntos xi y xi'. Entonces, la función está definida como:

f : (h, 1, …, n ) ↦ ( 1, 1', …, n, n'), donde 1' = Ĥ i .

Se puede verificar de la siguiente manera, que ‖ X - f (P) ‖2 con un vector X de tamaño 4n, es la función de error de reproyección:

‖X - f (P) ‖2 = ‖(x1 , x1' , …, xn , xn') - ( 1, 1', …, n , n')‖2

= ‖x1 - 1, x1'- 1', …, xn - n , xn' - n'‖2

= (x1 - 1 )2 + (x1' - 1')

2 + ⋯ + (xn - n )2 + (xn' - n')

2

= (d(xi , i )2 + d(xi', i')

2).

Esta función de costo debe ser minimizada para los 2n + 9 parámetros, logrando así, una mejor estimación de la homografía entre dos imágenes.

La estimación de homografía trabaja con el conjunto más grande de corres-pondencias clasificadas como correctas. Por lo tanto, el algoritmo funciona mejor con imágenes que tienen bastantes puntos de interés. El algoritmo no tendría puntos suficientes para una buena estimación, si trabaja con imágenes con pocos puntos de interés, por ejemplo, de una pared blanca.

5. Realización del tiro penal

Para comenzar con el tiro de penal, Fibonacho es colocado a un metro de la pelota. Entonces, la primera tarea a resolver es acercarse a la pelota sin que el robot se desvíe demasiado, evitando de esta forma que la pierda de vista. Para

166

SEBASTIÁN BEJOS, MIRIAM HERNÁNDEZ Y LUIS MINERO

esto, Fibonacho toma una imagen de referencia, después, avanza 30 cm y toma otra imagen. Con la imagen de referencia y esta nueva imagen, se estima una homografía para obtener la desviación de rotación respecto al eje Z y el robot realiza la corrección, este procedimiento para corregir la desviación se realiza dos veces más. Por lo tanto, al final avanza hacia delante aproximadamente 90 cm, restando 10 cm para acomodarse para el tiro.

La siguiente tarea a resolver es acercarse lo más posible a la pelota, evitando un contacto anticipado y consiguiendo una posición adecuada para realizar el movimiento de la patada. Este acercamiento se realiza calculando la distancia que hay entre la posición de la pelota y el punto de contacto del pie. El acer-camiento se realiza haciendo que el robot avance únicamente la mitad de la distancia calculada, repitiendo varias veces este cálculo hasta considerar una distancia favorable para realizar el movimiento de la patada. Considerando que se tiene una posición adecuada se calcula una vez más la posición de la pelota.

El movimiento de la patada es la última tarea que realiza Fibonacho, para realizarla se considera el control cartesiano en FRAME_ROBOT junto con el control del cuerpo, además se utilizan los cálculos de la posición de la pelota y del punto de contacto. Entonces, la rutina para el movimiento del pie queda descrita de la siguiente manera:

1. Con el control de cuerpo entero de NAOqi, el robot se equilibra para pararse en un pie. Se activa la restricción para el balance del robot, el pie de apoyo se restringe a permanecer fijo mientras que el otro se define como libre. Estas restricciones son tomadas en cuenta al realizar cualquier movi-miento del robot.

2. Con el control cartesiano se realiza el movimiento para ajustar el pie del robot antes de la patada. El vector de posición del efector del pie esta dado como (x, y, z, wx, wy, wz), donde, wx = wy = wz = , indican que no hay rotaciones en los ejes. La traslación (x, y, z) queda descrita de la siguiente manera. La primera coordenada, x, indica la distancia necesaria para llevar hacia atrás al pie del robot y evitar un contacto anticipado con la pelota. La segunda coordenada, y, corresponde a la distancia que hay del punto de contacto del pie al centro de la pelota en el eje Y. La tercera coordenada, z, corresponde al radio de la pelota en el eje Z. La finalidad de las coordenadas y,z es alinear el punto de contacto del pie con el centro de la pelota.

167

ESTIMACIÓN DE HOMOGRAFÍA PARA LA MANIPULACIÓN DEL ROBOT HUMANOIDE FIBONACHO

Mat

emát

icas

e In

geni

ería

MU

LTID

ISC

IPLI

NA

23

3. Para mover la pierna de atrás hacia delante, se realiza un movimiento de Pitch sobre las articulaciones, el cual es una rotación sobre el eje Y, véase (Kajita et al., 2014). Utilizando el control de articulaciones se realiza dicha rotación en las articulaciones LHipPitch, LKneePitch y LAnklePitch, si la patada se realiza con la pierna izquierda.

4. Finalmente, se regresa el pie al suelo, se desactiva el control de cuerpo entero, y el robot va a la postura Crouch.

Al finalizar estos movimientos, se concluye con la solución del tiro penal. Otro jugador involucrado en un juego de penales es el portero. Para el desarrollo del portero se necesita una caída que evite un golpe fuerte del robot contra el terreno de juego. Además, Fibonacho debe cubrir el lado de la portería dependiendo de la dirección que tome la pelota tras ser golpeada. Para lograr una caída, se deshabilita el reflejo de caídas, porque desactiva los motores cuando el centro de masa del robot se encuentra fuera del polígono de soporte. La región que cubre el robot tras caer es la mitad de la portería. A continuación se describe la caída hacia la izquierda:

1. Se levanta el brazo izquierdo, y se impulsa hacia la izquierda con la pierna derecha.

2. Al caer dobla la pierna izquierda y cae sobre el antebrazo izquierdo.

3. En el suelo estira la pierna y brazo izquierdos.

4. Dobla la pierna derecha para rodar hacia enfrente hasta tocar el suelo con la mano del brazo derecho, evitando de esta manera un golpe de la cabeza contra el suelo.

x

y

(+,+) (–,+)

(+,–) (–,–)

Figura 5: Secuencia de la caída y sistema de referencia angular de una imagen, con sus respectivos cuadrantes. Se muestran la pelota y los pies del robot portero.

168

SEBASTIÁN BEJOS, MIRIAM HERNÁNDEZ Y LUIS MINERO

En la Figura 5 se observa esta secuencia de pasos para la caída del robot, ésta se realiza de forma similar hacia el lado derecho. Teniendo la caída, solamente resta encontrar la dirección a la que se debe lanzar. La forma de obtener la dirección, localizando la pelota, se explica a continuación. Antes de iniciar el juego de penales, Fibonacho es colocado al centro de la portería. Se utiliza el módulo ALRedBallDetection para obtener continuamente el centro de la pelota en coordenadas de la imagen. Cuando inicia el juego, Fibonacho se levanta y obtiene la posición inicial de la pelota. Cuando la pelota es pateada por el robot oponente, se obtiene una nueva posición de la pelota que al compararla con la posición inicial, se obtiene una dirección para la caída. En la Figura 5 se observa el sistema de referencia de la imagen, donde (x,y) son coordenadas angulares.

6. Resultados

Se realizaron cuatro pruebas: dos del caminado, una del pateador y una del portero. Cada una generó los datos recopilados en las siguientes tablas. Para el escenario se utilizaron una alfombra verde y una portería con postes amarillos de 135 cm de ancho. Además, el ambiente fue el mismo en todas las pruebas realizadas. El caminado se realiza con la función moveTo() de NAOqi, utilizando los parámetros de paso (gait parameters) predefinidos, ver la documentación (Aldebaran Robotics, 2015). Las pruebas del caminado comparan recorridos de 90 cm, una de las pruebas corrige la desviación y la otra prueba no realiza correcciones. Ambas pruebas de caminado miden la desviación utilizando la estimación de homografía entre la imagen de referencia y la imagen actual.

En las tablas 1 y 2 se muestran los datos de tres desviaciones, con corrección y sin corrección, respectivamente. Cada 30 cm avanzados se mide la desviación, en cada una se obtienen correspondencias, de las cuales, se consiguen las correctas por medio del algoritmo RANSAC. Estas son utilizadas para estimar el ángulo de rotación respecto al eje Z y corregir la trayectoria de caminado. En la figura 6 se grafican los ángulos obtenidos en nuestras pruebas. En la Tabla 1 se observa que el ángulo de desviación máximo no excedió los 1 ° y en todos los intentos llegó bien posicionado. En la Tabla 2, se observa que sin corregir solamente en dos intentos llegó bien posicionado y el ángulo de desviación máximo alcanzó los 14.187°. En la Figura 6 se observa cómo el desvío es mayor cada vez que avanza 30 cm. Por lo tanto, resulta más eficiente corregir la desviación con la estimación de homografía y así llegar bien posicionado a la pelota para después realizar el tiro.

169

ESTIMACIÓN DE HOMOGRAFÍA PARA LA MANIPULACIÓN DEL ROBOT HUMANOIDE FIBONACHO

Mat

emát

icas

e In

geni

ería

MU

LTID

ISC

IPLI

NA

23

Con corrección

Inte

nto Desviación 1 Desviación 2 Desviación 3

Obj

etiv

o

CorrespondenciasGrados

CorrespondenciasGrados

CorrespondenciasGrados

Totales Correctas Totales Correctas Totales Correctas

1 25 16 -5.137 20 9 -8.707 28 6 -3.159 Sí

2 30 15 3.127 22 12 -5.701 29 14 -4.442 Sí

3 30 14 -4.427 17 6 -9.135 17 5 -3.053 Sí

4 33 15 -5.610 24 8 -8.010 24 5 -7.149 Sí

5 18 9 0.570 14 6 -7.567 16 5 -2.385 Sí

6 28 15 0.170 15 9 -4.634 19 5 -8.860 Sí

7 33 14 0.399 16 5 -2.633 28 11 -6.397 Sí

8 24 12 -0.046 22 8 -3.724 22 8 -8.817 Sí

9 15 12 0.945 26 12 -6.787 19 8 -7.167 Sí

10 30 13 -7.107 15 8 -5.841 19 8 -4.307 Sí

11 33 31 -5.852 31 14 -4.289 24 6 -6.707 Sí

12 19 10 3.149 14 9 -2.294 24 9 -4.972 Sí

13 23 7 -5.622 19 6 -5.481 21 5 -5.768 Sí

14 26 17 1.067 13 7 -3.134 21 6 -4.921 Sí

15 23 12 -7.965 24 10 -7.407 20 8 -2.841 Sí

Tabla 1: Datos de quince intentos de caminado corrigiendo la desviación cada 30 cm.

En la Tabla 3 se recopilan los resultados de las pruebas del tiro. Para esta prueba se hicieron los tiros con el pie izquierdo de Fibonacho, realizando diez tiros a la izquierda y diez a la derecha. Debido a que llegó bien posicionado a la pelota, haciendo las correcciones de caminado, Fibonacho pudo realizar todos los intentos de tiro. Aunque, en el caso de los tiros a la izquierda Fibonacho mandaba la mayoría a la región del centro, mientras que los tiros a la derecha, estaban mejor efectuados.

170

SEBASTIÁN BEJOS, MIRIAM HERNÁNDEZ Y LUIS MINERO

Sin correcciónIn

tent

o Desviación 1 Desviación 2 Desviación 3

Obj

etiv

o

CorrespondenciasGrados

CorrespondenciasGrados

CorrespondenciasGrados

Totales Correctas Totales Correctas Totales Correctas

1 23 11 1.979 18 6 -3.238 26 9 -6.922 No

2 20 6 1.652 20 8 -2.391 37 11 -6.960 No

3 29 13 2.440 16 7 -0.967 24 5 -7.349 No

4 23 17 4.608 28 16 0.006 36 11 -0.999 Sí

5 21 11 2.828 18 7 -1.348 18 4 -7.551 No

6 26 14 1.921 16 7 -2.989 31 9 -6.856 No

7 14 7 3.377 20 8 1.754 22 7 0.014 Sí

8 17 6 2.082 16 4 -1.570 20 5 -6.526 No

9 24 15 2.761 16 4 0.724 16 9 -4.155 No

10 20 15 0.532 24 9 -2.568 25 8 -5.721 No

11 25 15 1.898 31 13 -1.018 26 6 -9.755 No

12 24 14 1.808 29 15 -1.832 35 7 -7.059 No

13 20 9 1.049 21 10 -3.564 33 9 -11.741 No

14 28 13 1.364 22 12 -1.800 22 7 -9.281 No

15 22 11 1.323 22 10 -5.100 25 6 -14.187 No

Tabla 2: Datos de quince caminatas sin corregir la desviación, pero midiéndola cada 30 cm.

Con corrección

Índice de intento

Ángu

lo d

e de

svia

ción

0

-10

-6-4

-20

24

10 20 30 40

Sin corrección

Índice de intento

Ángu

lo d

e de

svia

ción

0

-15

-10

-50

5

10 20 30 40

Figura 6: El primer ángulo de desviación, después de caminar 30 cm, está en rojo (círculos), el segundo en verde (cruces) y el tercero en azul(puntos). Las medias son líneas sólidas y las líneas punteadas están

a una desviación estándar de su respectiva media.

171

ESTIMACIÓN DE HOMOGRAFÍA PARA LA MANIPULACIÓN DEL ROBOT HUMANOIDE FIBONACHO

Mat

emát

icas

e In

geni

ería

MU

LTID

ISC

IPLI

NA

23

Intención de patadaDerecha Izquierda

Resu

ltado

s

Derecha Centro

Derecha Centro

Derecha Izquierda

Derecha Centro

Derecha Centro

Derecha Izquierda

Derecha Centro

Derecha Izquierda

Derecha Centro

Derecha Centro

Tabla 3: Resultados de realizar el tiro con el pie izquierdo.

La prueba realizada con el portero consta de quince tiros hacia la izquierda, derecha y centro. Fibonacho inicia de pie, en el centro de la portería. Un tiro al centro se dirige a la región que cubre el portero en esta posición inicial, sin embargo. el robot solamente detecta si la pelota va hacia su izquierda o su derecha. La atajada, vista en la sección 5, abarca la mitad de la portería, por lo que cubre los tiros dirigidos al centro. En la Tabla 4 se observan los resultados de esta prueba, donde el robot pudo detener los tiros que se le hicieron.

Dirección del tiro Dirección detectada Atajada Exitosa

Derecha

Derecha Sí

Derecha Sí

Derecha Sí

Derecha Sí

Derecha Sí

Centro

Derecha Sí

Derecha Sí

Derecha Sí

Izquierda Sí

Izquierda Sí

Izquierda

Izquierda Sí

Izquierda Sí

Izquierda Sí

Izquierda Sí

Izquierda Sí

Tabla 4: Datos de la dirección de la pelota detectada por el portero.

172

SEBASTIÁN BEJOS, MIRIAM HERNÁNDEZ Y LUIS MINERO

7. Conclusión

La estimación de homografía entre dos imágenes para calcular la desviación durante el movimiento del robot humanoide Fibonacho fue el desarrollo más importante en este trabajo. Con el cálculo de esta desviación, respecto a la rotación sobre el eje Z, el robot podía ajustar su trayectoria para llegar bien orientado a la pelota. En concreto, después de realizar pruebas sobre recorridos de 30 cm, el desvío no excedió los 10 grados. Corregir las desvia-ciones permitió la ejecución de un tiro penal, avanzando con precisión hacia la pelota y sin perderla de vista, logrando que en nuestras pruebas siempre realizara la patada.

Las técnicas desarrolladas en este trabajo hicieron posible nuestra parti-cipación en la categoría Standard Platform League con el robot Fibonacho, en el Torneo Mexicano de Robótica 2015. Como trabajo a futuro se quiere implementar un algoritmo de segmentación para reconocer y localizar al portero contrincante, y considerar su posición para definir la dirección del tiro penal.

Referencias

ਈ Aldebaran Robotics. (2015, Julio). NAO software 1.14.15 documentation. http://doc.aldebaran .com/1-14/index.html.

ਈ Fischeler, M. A., y Bollers, r. c. (1981, Junio). “Random sample consensus: A paradigm for model fitting with applications to image analysis and automated cartography”. Communications of the ACM, 24(6), 381-395.

ਈ hArtley, r. i., y ZisserMAn, A. (2004). Multiple view geometry in computer vision (Second Ed.). Cambridge University Press.

ਈ KAjitA, s., hiruKAwA, h., hArAdA, K., y yoKoi, K. (2014). Introduction to humanoid robotics (Vol. 101). Springer.

ਈ KoFinAs, n., orFAnoudAKis, e., y lAgoudAKis, M. g. (2015). Complete analytical forward and inverse kinematics for the NAO humanoid robot. Journal of Intelligent & Robotic Systems, 77(2), 251-264.

ਈ Moeslund, t. B. (2012). Introduction to video and image processing: Building real systems and applications. Springer.

ਈ PrAutZsch, h., BoehM, w., y PAlusZny, M. (2002), Bézier and B-Spline tech-niques. Springer.

ਈ rosten, e., y druMMond t. (2006). “Machine learning for high-speed corner detection”. En Computer Vision - ECCV 2006 (pp. 430-443). Springer.

173

ESTIMACIÓN DE HOMOGRAFÍA PARA LA MANIPULACIÓN DEL ROBOT HUMANOIDE FIBONACHO

Mat

emát

icas

e In

geni

ería

MU

LTID

ISC

IPLI

NA

23

ਈ siciliAno, B., sciAvicco, l., villAni, l., y oriolo, g. (2009). Robotics: modelling, planning and control. Springer.

ਈ wenK, F., y röFer, t. (2013). “Online generated kick motions for the NAO balanced using inverse dynamics”. En RoboCup 2013: Robot World Cup XVII (pp. 25-36). Springer.

JOSÉ SEBASTIÁN BEJOS MENDOZA cuenta con la Licenciatura en Matemáticas Aplicadas y Computación en la Facultad de Estudios Superiores Acatlán, y estudios de posgrado en Ciencias de la Computación en el IIMAS, UNAM. Desde el año 2009, es el responsable académico del Laboratorio de Algoritmos para la Robótica, del Centro de Desarrollo Tecnológico de la FES Acatlán. Sus temas de especialización son: la robótica probabilista, las redes bayesianas dinámicas, aprendizaje automático e inteligencia artificial.

MIRIAM HERNÁNDEZ RAMÍREZ concluyó la Licenciatura en Matemáticas Aplicadas y Computación en la Facultad de Estudios Superiores Acatlán, UNAM. Actualmente está realizando su tesis en el Laboratorio de Algoritmos para la Robótica en el Centro de Desarrollo Tecnológico de la FES Acatlán, titulada “Sobre el modelado cinemático y la planeación de movimientos del robot humanoide Fibonacho”. Participó en el Torneo Mexicano de Robótica en la categoría LARC Standard Educacional Kit (SEK), en el 2013 y 2014 y en la categoría RoboCup Major Standard Platform League en el 2015. Participó en la Competencia Latinoamericana de Robótica 2014 en la categoría SEK. En noviembre 2015 participó en el Concurso de Robótica e Inteligencia Artificial NAO 2015, en la categoría de resolución de laberinto.

LUIS ALEJANDRO MINERO GUTIÉRREZ concluyó la Licenciatura en Matemáticas Aplicadas y Computación en la Facultad de Estudios Superiores Acatlán, UNAM. Actualmente es asistente de investigación en el Laboratorio de Algoritmos para la Robótica en el Centro de Desarrollo Tecnológico de la FES Acatlán, realizando la tesis con título “Espacios de Configuraciones y Algoritmos de Planeación de Movimientos”. Participó en el Torneo Mexicano de Robótica en la categoría RoboCup Major Standard Platform League y en el Concurso de Robótica e Inteligencia Artificial NAO, en la categoría de resolución de laberinto, ambos en el 2015.