visual servoing

36
Evaluación de técnicas de control visual monocular para la locomoción de robots humanoides NAO en tareas de posicionamiento Mario Alberto Zarco López Directores: Dr. Héctor M. Becerra Fermín (CIMAT) Dr. Juan Mauricio Angeles Cervantes (UNAM) Centro de Investigación en Matemáticas, Guanajuato Facultad de Ingeniería, Ciudad Universitaria Mario Alberto Zarco López (UNAM-CIMAT) Exámen Profesional Mayo 2015 1 / 30

Upload: mario60as

Post on 15-Sep-2015

237 views

Category:

Documents


0 download

DESCRIPTION

visual servoing for nao robot

TRANSCRIPT

  • Evaluacin de tcnicas de control visual monocular

    para la locomocin de robots humanoides NAO en

    tareas de posicionamiento

    Mario Alberto Zarco Lpez

    Directores:

    Dr. Hctor M. Becerra Fermn (CIMAT)

    Dr. Juan Mauricio Angeles Cervantes (UNAM)

    Centro de Investigacin en Matemticas, GuanajuatoFacultad de Ingeniera, Ciudad Universitaria

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 1 / 30

  • Contenido

    1 Introduccin

    2 Marco terico

    3 Control visual en Matlab

    4 Implementacin

    5 Resultados

    6 Conclusiones

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 2 / 30

  • Contenido

    1 IntroduccinMotivacin

    Objetivos

    Antecedentes

    2 Marco terico

    3 Control visual en Matlab

    4 Implementacin

    5 Resultados

    6 Conclusiones

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 2 / 30

  • Motivacin

    Evaluar tcnicas de control visual para colocar un robot humanoide en una

    pose deseada con el mnimo error, ya que estas tcnicas proveen abundanteinformacin del entorno, tienen un bajo costo computacional y son fciles de

    implementar.

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 3 / 30

  • Objetivos

    Adaptar diferentes tcnicas de control visual monocular para la realizacin de

    tareas de posicionamiento de robots humanoides NAO en un ambiente

    virtual.

    Modificar el prototipo del robot NAO en Webots para aadir un GPS y un

    compass a su modelo.

    Modificar el controlador naoqisim en Webots para adquisicin de datos.

    Programar en C++ con ayuda del software de desarrollo naoqi-sdk :

    1. control visual basado en posicin.

    2. control visual basado en imagen

    Proponer una estructura modular para la ejecucin de los controladores.

    Validar el funcionamiento de los esquemas de control a travs de simulaciones

    en Webots y comparar su desempeo.

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 4 / 30

  • Antecedentes

    Visual Servoing: es el uso de informacin visual como realimentacin en un

    lazo cerrado de control.

    Eye-in-hand : la informacin es obtenida por una cmara montada en el robot.

    Eye-to-hand : la informacin es obtenida por una cmara fija en el espacio de

    trabajo.

    Teach-by-showing: el valor deseado se establece dando una imagen de

    referencia u objetivo, la cual debe ser memorizada por el robot.

    El objetivo del control visual es regular la posicin y orientacin de la cmara,

    y en consecuencia del robot, de tal forma que la imagen de la vista actual dela cmara llegue a ser la misma que la imagen objetivo a travs de minimizar

    una funcin de error (funcin de tarea).

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 5 / 30

  • Contenido

    1 Introduccin

    2 Marco tericoControl visual

    Control visual basado en posicin

    Control visual basado en imagen

    3 Control visual en Matlab

    4 Implementacin

    5 Resultados

    6 Conclusiones

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 5 / 30

  • Control visualLa funcin de error a minimizar es

    e(t) = s(m(t),a) s, (1)

    m(t) es un conjunto de medidas de la imagen.

    a es un conjunto de parmetros que representan conocimiento potencialadicional.

    s es el valor deseado de las caractersticas visuales.

    Matriz de interaccin: relaciona el cambio de velocidades de la cmara conel cambio en las caractersticas visuales en el espacio imagen.

    s = Lsvc = Ls[v c,c]

    (2)

    vc son las velocidades instantneas del origen del sistema de coordenadas de la

    cmara.

    Si se considera vc como la entrada de control, y una disminucin exponencialdel error (e = e), se obtiene:

    vc = L+

    e e, (3)

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 6 / 30

  • Control visual basado en posicinPBVS o 3D: el error es calculado en el espacio Cartesiano de la tarea a partirde un conjunto de parmetros 3D, los cuales son estimados mediante

    medidas visuales.

    El vector s es un conjunto de parmetros tridimensionales estimados pormedio de las mediciones de la imagen.

    s = (c

    tc, u) (4)

    ctc es un vector de translacin que define las coordenadas del marco de

    referencia actual de la cmara con respecto al deseado.

    u es la parametrizacin ngulo/eje para la rotacin.

    La matriz de interaccin resulta

    Le =

    [R 0

    0 Lu

    ](5)

    La entrada de control es {vc = R

    ctc ,c = u.

    (6)

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 7 / 30

  • Control visual basado en imagen

    IBVS o 2D: el error es calculado a partir de un conjunto de caractersticasvisuales que estn directamente disponibles en el espacio imagen.

    Las medidas de la imagen m son usualmene las coordenadas en pxeles deun conjunto de puntos en la imagen.

    La funcin de tarea es:

    e = W+e1 + (I6 W+W)

    hs

    X, (7)

    es un escalar positivo.

    W = [033 I33].

    e1i(X) = p

    i (X)(Epi(X1)) es la distancia con signo de pi(X) a la linea epipolar.

    hs = (k t1

    2 t1)2 es la funcin costo a minimizar bajo la restriccin e1 = 0.

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 8 / 30

  • Control visual basado en imagen

    La entrada de control es:

    vc = W+L

    +

    ofrote1i(X ) 2(I6 W

    +W)[2tk 0] (8)

    2tk es el vector de translacin de la k-sima vista a la vista objetivo.

    La matriz de interaccin resulta:

    Lofrot =

    [xi yi (1+ x

    2i ) yi

    (1+ y2i ) xiyi xi

    ](9)

    La rotacin se mantiene funcionando hasta que

    ei1(X ) < (10)

    es un umbral que indica la mxima distancia de los puntos a las lneas

    epipolares.

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 9 / 30

  • Contenido

    1 Introduccin

    2 Marco terico

    3 Control visual en Matlab

    Control visual basado en posicin

    Control visual basado en imagen

    4 Implementacin

    5 Resultados

    6 Conclusiones

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 9 / 30

  • Control visual en MatlabError promedio de pxeles:

    error =1

    NP

    NPi=1

    ||queryi traini ||, (11)

    NP es el nmero de puntos,

    query son los puntos en la imagen actual,

    train son los puntos en la imagen objetivo.

    Sean R1, R2, t1 y t2 las soluciones de la descomposicin de la matrizesencial, donde Rij indica el elemento ij de la matriz y tk la componente k del

    vector.

    1: Si R111 > 0 && R122 > 0 && R

    133 > 0 entonces

    2: R = R1

    3: Si no4: R = R2

    5: Si t13 < 0 entonces6: t = t1

    7: Si no

    8: t = t2

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 10 / 30

  • Control visual basado en posicin

    0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-2

    -1

    0

    1

    2

    3

    4

    5

    6

    7

    time (s)

    con

    trol i

    nput

    vxvyvzwxwywz

    0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

    10

    20

    30

    40

    50

    60

    70

    time (s)

    ave

    rage

    erro

    r

    error promedio

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 11 / 30

  • Control visual basado en imagen

    0 100 200 300 400 500 6000

    50

    100

    150

    200

    250

    300

    350

    400

    450

    -2-1

    01

    2 -2

    -1

    0

    1

    2

    -2

    -1.5

    -1

    -0.5

    0

    0.5

    1

    1.5

    2

    Y

    X

    X X

    TC

    Y

    Y Y

    TCTT Z

    Z Z

    X

    Z

    0 0.5 1 1.5 2 2.5-1

    -0.5

    0

    0.5

    1

    1.5

    2

    time (s)

    con

    trol i

    nput

    s

    vxvyvzwxwywz

    0 0.5 1 1.5 2 2.50

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    1.4

    1.6

    1.8

    2

    time (s)

    no

    rm e

    |e|

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 12 / 30

  • Contenido

    1 Introduccin

    2 Marco terico

    3 Control visual en Matlab

    4 ImplementacinModificaciones al software de simulacin

    Programacin del robot NAO

    MdulosAlgoritmos de control visual

    5 Resultados

    6 Conclusiones

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 12 / 30

  • Webots y simulador de NAOqi

    Figura : Esquema para un complemento del controlador

    Saber los datos del robot instanciado

    Comunicar con el simulador

    Comunicar con NAOqiva el HAL

    (Hardware Abstraction Layer)

    Figura : Esquema del simulador

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 13 / 30

  • Modificaciones

    1. Modificar el archivo .proto del robot NAO. Habilitar el GPS y el compass.

    2. Agregar una biblioteca servidor al controlador Naoqisim. Esperar la conexin en algn puerto en modo de bloqueo (blocking mode). Ver el descriptor del fichero para saber si hay datos en modo no bloqueado

    (non-blocking mode).

    3. Modificar la clase Nao del controlador Naoqisim. Posibilita obtener los valores de los sensores en cada iteracin del

    controlador.

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 14 / 30

  • Programacin del robot NAO Broker : intermediario de peticin de objetos. Proxy : objeto de determinada mdulo. Mdulo: clase dentro de una biblioteca.

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 15 / 30

  • Mdulos

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 16 / 30

  • Detalles de los mdulos

    webotsModule

    Biblioteca cliente.

    Bind method: solicita la lectura del GPS y el compass.

    opencvModule

    Genera una instancia (proxy ) a:

    1. ALMotion

    2. ALPosture

    3. ALCamera

    4. ALProxy

    Genera una instancia (proxy ) al mdulo webotsModule.

    Bind method: ejecuta el algoritmo de control visual.

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 17 / 30

  • Algoritmos de control visual

    Leer imagen objetivo (target).

    Convertir a escala de grises.

    Generar una instancia al detector de caractersticas.

    Generar una instancia al descriptor de caractersticas.

    Inicializar el proceso de movimiento del robot.

    Tomar foto de la imagen actual de la cmara (current).

    Salvar valores de GPS y compass.

    Detectar caractersticas locales en current y target.

    Describir caractersticas locales en current y target.

    Emparejar caractersticas locales en current y target.

    Filtrar los outliers

    Salvar los inliers de current (query ) y de target (train).

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 18 / 30

  • Control visual basado en posicin

    Mientras contador < mximo nmero de iteraciones hacerMedir el error promedio de pxeles.

    Si error promedio de pxeles < umbral entonces

    break

    Estimar la matriz fundamental.

    Calcular la matriz esencial.

    Calcular la orientacin y posicin relativa.

    Calcular la parametrizacin ngulo/eje para la rotacin.

    Calcular la entrada de control.

    Transformar las velocidades al sistema de referencia del robot.

    Aplicar las velocidades al robot.

    Tomar foto de la imagen actual de la cmara (next)

    Convertir a escala de grises.

    Rastrear los puntos buenos de current a next .

    Salvar valores de GPS y compass.

    Asignar next a current .

    Asignar los puntos rastreados a query .

    Sumar 1 al contador.

    Detener el movimiento del robot.

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 19 / 30

  • Control visual basado en posicin por fases

    Mientras contador < mximo nmero de iteraciones hacerMedir el error promedio de pxeles.

    Si matriz de Rotacin = matriz Identidad entonces

    break

    Estimar la matriz fundamental.

    Calcular la matriz esencial.

    Calcular la orientacin y posicin relativa.

    Calcular la parametrizacin ngulo/eje para la rotacin.

    Calcular la entrada de control.

    Transformar las velocidades al sistema de referencia del robot.

    Aplicar la velocidad angular al robot.Tomar foto de la imagen actual de la cmara (next).

    Convertir a escala de grises.

    Rastrear los puntos buenos de current a next .

    Salvar valores de GPS y compass.

    Asignar next a current .

    Asignar los puntos rastreados a query .

    Sumar 1 al contador.

    Detener el movimiento del robot.

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 20 / 30

  • Control visual basado en posicin por fases

    Mientras contador < mximo nmero de iteraciones hacerMedir el error promedio de pxeles.

    Si error promedio de pxeles < umbral entonces

    break

    Estimar la matriz fundamental.

    Calcular la matriz esencial.

    Calcular la orientacin y posicin relativa.

    Calcular la parametrizacin ngulo/eje para la rotacin.

    Calcular la entrada de control.

    Transformar las velocidades al sistema de referencia del robot.

    Aplicar las velocidades lineales al robot.Tomar foto de la imagen actual de la cmara (next).

    Convertir a escala de grises.

    Rastrear los puntos buenos de current a next .

    Salvar valores de GPS y compass.

    Asignar next a current .

    Asignar los puntos rastreados a query .

    Sumar 1 al contador.

    Detener el movimiento del robot.

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 21 / 30

  • Control visual basado en imagen

    Mientras contador < mximo nmero de iteraciones hacerMedir el error promedio de pxeles.Si error promedio de pxeles < umbral entonces

    breakSi los inliers estan en las lneas epipolares entonces

    Detener el movimiento del robot (dormir el robot 1 segundo) .Inicializar el proceso de movimiento del robot ( = 1).

    Estimar la matriz fundamental.Calcular la matriz esencial.Si = 1 entonces

    Calcular la posicin relativa.

    Calcular la entrada de control.Ajustar las velocidades al centro de masa del robot.Aplicar las velocidades al robot.Tomar foto de la imagen actual de la cmara (next).Convertir a escala de grises.Rastrear los puntos buenos de current a next.Salvar valores de GPS y compass.Asignar next a current.Asignar los puntos rastreados a query .Sumar 1 al contador.

    Detener el movimiento del robot.

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 22 / 30

  • Contenido

    1 Introduccin

    2 Marco terico

    3 Control visual en Matlab

    4 Implementacin

    5 ResultadosDescripcin de las pruebas

    Control visual basado en posicin

    Control visual basado en posicin por fasesControl visual basado en imagen

    6 Conclusiones

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 22 / 30

  • Descripcin de las pruebas

    Figura : Localizacin del robot NAO en las pruebas

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 23 / 30

  • Control visual basado en posicin

    0.6 0.4 0.2 0.0 0.2 0.4 0.6

    y

    1.2

    1.0

    0.8

    0.6

    0.4

    0.2

    0.0

    x

    Localizacin

    0.6 0.4 0.2 0.0 0.2 0.4 0.6

    y

    1.2

    1.0

    0.8

    0.6

    0.4

    0.2

    0.0

    x

    Orientacin

    0 200 400 600 800 1000 1200 1400

    Iteracin

    0

    10

    20

    30

    40

    50

    60

    70

    80

    Error

    Error promedio de pxeles

    Error promedio

    0 200 400 600 800 1000 1200 1400

    Iteracin

    0.000

    0.005

    0.010

    0.015

    0.020

    0.025

    0.030

    0.035

    0.040

    0.045

    v

    x

    , v

    y

    Velocidades lineales

    Velocidad x

    Velocidad y

    0 200 400 600 800 1000 1200 1400

    Iteracin

    0.025

    0.020

    0.015

    0.010

    0.005

    0.000

    Velocidad angular

    Vel. angular z

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 24 / 30

  • Control visual basado en posicin por fases

    0.6 0.4 0.2 0.0 0.2 0.4 0.6

    y

    1.2

    1.0

    0.8

    0.6

    0.4

    0.2

    0.0

    x

    Localizacin

    0.6 0.4 0.2 0.0 0.2 0.4 0.6

    y

    1.2

    1.0

    0.8

    0.6

    0.4

    0.2

    0.0

    x

    Orientacin

    0 200 400 600 800 1000 1200 1400 1600

    Iteracin

    0

    20

    40

    60

    80

    100

    120

    140

    160

    Error

    Error promedio de pxeles

    Error promedio

    0 200 400 600 800 1000 1200 1400 1600

    Iteracin

    0.02

    0.01

    0.00

    0.01

    0.02

    0.03

    0.04

    0.05

    0.06

    v

    x

    , v

    y

    Velocidades lineales

    Velocidad x

    Velocidad y

    0 200 400 600 800 1000 1200 1400 1600

    Iteracin

    0.025

    0.020

    0.015

    0.010

    0.005

    0.000

    0.005

    Velocidad angular

    Vel. angular z

    0 200 400 600 800 1000 1200 1400 1600

    Iteracin

    0.00

    0.05

    0.10

    0.15

    0.20

    0.25

    0.30

    0.35

    ||IR1R2

    ||

    Norma de Frobenius

    ||I-R1*R2'||

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 25 / 30

  • Control visual basado en imagen

    0.4 0.2 0.0 0.2 0.4

    y

    1.2

    1.0

    0.8

    0.6

    0.4

    0.2

    0.0

    x

    Localizacin

    0.4 0.2 0.0 0.2 0.4

    y

    1.2

    1.0

    0.8

    0.6

    0.4

    0.2

    0.0

    x

    Orientacin

    0 200 400 600 800 1000 1200 1400 1600 1800

    Iteracin

    0

    20

    40

    60

    80

    100

    120

    140

    Error

    Error promedio de pxeles

    Error promedio

    0 200 400 600 800 1000 1200 1400 1600 1800

    Iteracin

    0.015

    0.010

    0.005

    0.000

    0.005

    0.010

    0.015

    0.020

    0.025

    0.030

    v

    x

    , v

    y

    Velocidades lineales

    Velocidad x

    Velocidad y

    0 200 400 600 800 1000 1200 1400 1600 1800

    Iteracin

    0.002

    0.000

    0.002

    0.004

    0.006

    0.008

    0.010

    0.012

    Velocidad angular

    Vel. angular z

    0 200 400 600 800 1000 1200 1400 1600 1800

    Iteracin

    0.0

    0.5

    1.0

    1.5

    2.0

    2.5

    3.0

    3.5

    Norma de e

    |e|

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 26 / 30

  • Resultados

    El robot presenta una deriva hacia la izquierda.

    El desempeo depende del buen emparejamiento de los puntos.

    Existen problemas por debajo de los 20 pxeles del error promedio. Mala estimacin de la matriz fundamental debido a los inliers. Mala estimacin de la matriz fundamental debido a la cercana de la imagen

    de referencia a la escena 3D. Mal condicionamiento de la matriz fundamental (short baseline).

    La velocidad angular y la velocidad lineal no estan completamente

    desacopladas.

    El robot no es capaz de retroceder.

    Sensible al aumento en las ganancias de control.

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 27 / 30

  • Contenido

    1 Introduccin

    2 Marco terico

    3 Control visual en Matlab

    4 Implementacin

    5 Resultados

    6 Conclusiones

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 27 / 30

  • Conclusiones

    El control visual basado en posicin y el basado en imagen funcionan

    para situar al robot NAO en una vecindad de la localizacin deseada.

    No se puede asegurar que un esquema sea mejor que el otro.

    Las modificaciones hechas a naoqisim y el mdulo webotsModule

    podrn integrarse a otros trabajos.

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 28 / 30

  • Trabajo a futuro

    Evaluar los esquemas de control simulados en un ambiente real.

    Evaluar los esquemas de control en tareas de navegacin donde la ruta

    est compuesta por varias imgenes de referencia.

    Programacin de un control visual hbrido.

    Proponer estrategias para realizar tareas de posicionamiento en un

    tiempo deseado.

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 29 / 30

  • Muchas gracias por su atencin!

    Mario Alberto Zarco Lpez (UNAM-CIMAT) Exmen Profesional Mayo 2015 30 / 30

    IntroduccinMotivacinObjetivosAntecedentes

    Marco tericoControl visualControl visual basado en posicinControl visual basado en imagen

    Control visual en MatlabControl visual basado en posicinControl visual basado en imagen

    ImplementacinModificaciones al software de simulacinProgramacin del robot NAOMdulosAlgoritmos de control visual

    ResultadosDescripcin de las pruebasControl visual basado en posicinControl visual basado en posicin por fasesControl visual basado en imagen

    Conclusiones