Visión artificial y Robótica. Geometría

Post on 14-Dec-2015

27 views 6 download

description

Geometría para la visión espacial y robótica

Transcript of Visión artificial y Robótica. Geometría

Visión artificial y RobóticaVisión artificial y RobóticaGeometríaGeometría

Depto. de Ciencia de la Computación e Inteligencia Artificial

Contenidos

● Geometría 2D y 3D● Transformación de coordenadas● Calibración de la cámara

3

3

Álgebra necesaria

Necesitamos herramientas geométricas para manejar las posiciones de los robots y de los objetos en el espacio

Posición del robot dentro de un entorno

Posición de un objetodentro del mismo entorno

Posición relativa del objeto con respecto alrobot

4

4

Dimensiones utilizadas

Podemos tener un espacio de dos o tres dimensiones

Veremos el caso general en tres dimensiones

Restringiremos a dos dimensiones más el ángulo

El origen de un sistema de coordenadas se puede colocar en cualquier posición

Utilizaremos más de un sistema de coordenadas

5

5

Etiquetado de los ejes de coordenadas

Regla de la mano derecha

6

6

Coordenadas cartesianas

Un punto en el espacio se define mediante las coordenadas de su posición con respecto al origen del sistema

Y

Z

X

p

7

7

Coordenadas homogéneas

Surgen en gráficos para solucionar la capacidad de representación de los números en un ordenador

También permiten poder disponer de una sola matriz para transformación de coordenadas

8

8

Grados de libertad

Grado de libertad: cada uno de los movimientos (desplazamiento y/o rotación) que se pueden realizar

Un cuerpo 3D tiene 6 grados de libertad (dof: degree of freedom): 3 rotaciones y 3 posiciones

Un cuerpo 2D tiene 3 dof: 1 rotación y 2 posiciones

9

9

Matrices de transformación

Nos permiten transformar las coordenadas de un punto

Definen un conjunto de transformaciones (rotaciones y traslaciones)

ri=términos de rotación

ti=términos de traslación

10

10

Matrices de transformación

Matriz de translación:

Matrices de rotación:

11

11

Matrices de transformación II

Cuando queremos realizar varias trasformaciones sucesivas multiplicamos las matrices de transformación correspondientes

Las matrices se aplican siempre de derecha a izquierda. El resultado es distinto si no aplicamos el sentido correcto

12

Ejemplo

● Trasladamos el punto una distancia a a lo largo del eje Y.

● Rotamos con respecto al eje Z -90 grados.

● Rotamos con respecto al eje Y -90 grados.

● Trasladamos una distancia a a lo largo del eje Z.

13

Matriz resultante

14

Resultado

Ejemplo: transformad el punto [0 0 0 1]T

15

15

Localización de objetos

Objeto definido por cada uno de sus vértices

Alternativa: Definir un nuevo sistema de

coordenadas en el objeto. Las coordenadas de los

vértices del objeto se definen con respecto al

nuevo sistema.

16

Relación entre los sistemas de coordenadas

● Vamos a tener tantos sistemas de coordenadas como necesitemos

● Un sistema de coordenadas tiene una posición x, y, z y una rotación para cada eje

● Tendremos que ser capaces de relacionar todos los sistemas de coordenadas

● Dispondremos de una matriz de transformación que relaciona dos sistemas

17

Ejemplo IIAplicación de la m isma transformación anterior a un sistema de

coordenadas:

18

18

Transformación de coordenadas

Disponemos de las coordenadas de un punto con respecto a un sistema. Para encontrar las coordenadas de ese punto con respecto a otro sistema de coordenadas, multiplicamos las coordenadas del punto por la matriz que relaciona ambos sistemas

19

Transformación de coordenadas

● Tenemos el punto● La matriz que nos relaciona los sistemas es la

anterior● Las nuevas coordenadas se calculan:

20

Transformación

R

N

21

Transformación inversa

Ahora queremos calcular las coordenadas del punto antes calculado con respecto al sistema N:

22

Construcción de la matriz inversa

23

Cálculo de la matriz inversa

● Cálculo de la matriz

● Calcular el punto

24

Grafos de transformación

Permiten las transformaciones entre distintos sistemas de coordenadas

25

25

Sistemas de coordenadas 2D

Vamos a tener dos sistemas principales: el global y el local

Las coordenadas del robot cambian cuando se desplaza

Debemos ser capaces de calcular las coordenadas de los objetos en nuestro entorno

x

26

26

Coordenadas en 2D

Tenemos un mundo en dos dimensiones (x, y) y una orientación (θ) (tres grados de libertad)

Las tres coordenadas (x, y, θ) definen tanto una posición como un sistema de coordenadas

Matriz de rotación:

27

27

Relación de los sistemas de coordenadas

28

28

Transformación de coordenadasSistema de coordenadas del robot:

Coordenadas del punto p1 con respecto a R

Coordenadas del punto con respecto a G

29

29

Ejemplo

Tenemos el punto

El sistema del robot

30

Coordenadas del punto con respecto a R conocidas las de G:

30

Transformación de coordenadas inversa

31

31

Ejercicio

S1G=[100 100 0]T S2

G=[600 400 0]T RS2=[100 100 45]T P1

S1=[250 50 0]T P2

G=[735 465 0]T

Calcular: RG; P1R; P2

S2; P2R;

32

Calibración de la cámara

● Proceso de captura de una imagen con una cámara pinhole:

– Un punto en el espacio se proyecta a través de la focal de la cámara en el plano imagen (ejemplo)

– Partimos de un punto con 3 coordenadas X,Y,Z y nos quedamos con solo 2 x,y

● Para ser capaces de recuperar la información 3D, debemos ser capaces de saber cómo se produce la proyección

● Veremos el caso sencillo, pero hay que tener en cuenta otros factores como lentes, distorsión,etc.

33

Coordenadas de la calibración

34

Efectos de la proyección

Proyección en perspectiva, aunque existen otras proyecciones como la ortográfica

35

Proyección de los puntos

● Se producen dos proyecciones– Por parámetros externos: posición de la

cámara en el espacio.

– Por parámetros internos: los propios de la cámara (focal, distorsiones, etc.)

36

¿Qué nos da la calibración?

● Si calibramos una cámara, lo que se nos proporciona es una posible línea donde puede estar el punto (pensad en ello un momento)

● ¿Entonces cómo calibramos?

37

Correspondencias

● Hay que encontrar los puntos en la imagen que se corresponden con los puntos 3D

● Se puede usar un tablero de ajedrez para encontrar esas correspondencias

38

Correspondencias

● El uso del tablero permite obtener de manera automática los puntos esquina de los cuadrados

● Debemos pasar a la calibración las dimensiones reales del cuadrado

● Con esto, vamos a tener 11 variables desconocidas (ver transparencia 35), pero podemos hacer un sistema de ecuaciones

39

Sistema de ecuaciones

● Normalmente capturamos varias imágenes y determinamos las correspondencias para todas ellas

● El objetivo es colocar el tablero cada vez en una posición, cambiando su orientación y posición.

● ¿Cómo se puede resolver el sistema?

40

Resolución del sistema

● Método de Tsai http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/DIAS1/

● Transformación linear directa (usa SVD)● Minimización no linear ● Lo mejor, usar OpenCV o Matlab :-)

41

Otras técnicas

● Imaginad que una cámara en marte se descalibra :-s (descalibrar puede ser que haya perdido el foco, que la lente se haya movido, etc.)

● ¿Cómo calibrarías?

42

Referencias

● Computer Vision: A Modern Approach. David A. Forsyth, Jean Ponce.

● Transparencias de ese libro