reconstrucciÓn de modelos tridimensionales de...

15
RECONSTRUCCIÓN DE MODELOS TRIDIMENSIONALES DE ENTORNOS MEDIANTE UN ROBOT MÓVIL Janelcy Alferes Castaño Centro Tecnológico CARTIF, Boecillo, [email protected] Eduardo Zalama Casanova ETSII, Valladolid , [email protected] Jaime Gómez García-Bermejo ETSII, Valladolid , [email protected] Resumen En este paper presentamos un método para la reconstrucción tridimensional de entornos, utilizando una plataforma móvil que lleva embarcado un escáner láser para la adquisición de la geometría de la escena, y una webcam para el registro de la textura del entorno. El algoritmo utilizado se basa en la localización de los planos que conforman la escena, la asignación de los puntos 3D a los planos para seguidamente aplicar una triangulación y así obtener las superficies y contornos del modelo. El modelo es texturizado mediante un algoritmo de stitching (mosaico de imágenes), obteniéndose el modelo completo de la escena en formato estándar VRML. Para disminuir la pérdida de información de los cuerpos libres, así como la distorsión generada bien porque los puntos son considerados descartados ó no aproximables a un plano, se propone una variante en el tratamiento de los datos que consiste en proyectar las imágenes de la escena y los puntos 3D sobre una esfera, centrada en el centro óptico de la cámara. Después de obtener los correspondientes planos en coordenadas angulares ( , ), la asignación de textura sería realizada sobre las superficies trianguladas obtenidas de los puntos del modelo. Palabras Clave: escáner láser, mosaico de imágenes, modelos 3D 1 INTRODUCCION En gran medida, las técnicas desarrolladas para la construcción de mapas de entorno están dirigidas a la generación de mapas en 2D. Para muchas aplicaciones, es suficiente un plano 2D, sin embargo, existen aplicaciones que requieren de información más precisa y detallada de las características del espacio de trabajo. En estos casos, la solución que ofrece un mejor resultado es el uso de mapas de entorno en 3D. Algunas de estas aplicaciones podrían ser: sistemas automáticos de guiado de robots, control de calidad, segmentación de imágenes, aplicaciones biomédicas, diseño arquitectónico, reconstrucción de edificaciones y en aquellas situaciones en las que se requiera modelar un entorno con la menor intervención humana posible. Los métodos más tradicionales basados en visión artificial [7],[4],[3],[20], frecuentemente llevan a ambigüedades en 3D y en errores al modelo, ya que las imágenes de la escena no resultan completamente claras. Algunos métodos que están siendo estudiados, utilizan escáneres y cámaras montados en la plataforma del robot [25],[1],[24],[7]. El problema principal radica en las técnicas empleadas para manipular los datos obtenidos y llegar a la representación 3D. Estos métodos solo proporcionan información de proximidad en el plano, lo que dificulta el manejo y detección de objetos de la escena, [24][2]. En [9], se utiliza una plataforma móvil con dos escáners lásers, uno girado 90º respecto del otro. La exactitud de los datos depende de la pose del robot. En [23] y [22], se utiliza una plataforma basada en la extensión de un escáner 2D por medio de un servomotor El mapa se crea mediante técnicas de segmentación de objetos. Este algoritmo requiere tener la información de toda la escena y aproxima los objetos encontrados a boxes o cajas. En [15] se utilizan las técnicas desarrolladas en [23], con un algoritmo adicional basado en ICP (iterative closest points pero no proporciona gran información sobre los detalles de la escena. El método empleado en [16] se basa en la detección de superficies planas en la nube de puntos registrada por medio de un escáner 3D. El algoritmo utilizado es una mezcla entre RANSAC (Random Sample Consensus) e ICP. La comprensión del modelo requiere del conocimiento previo de la arquitectura de la escena. XXV Jornadas de Automática Ciudad Real, del 8 al 10 de septiembre de 2004

Upload: vunhu

Post on 21-Oct-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

RECONSTRUCCIÓN DE MODELOS TRIDIMENSIONALES DE

ENTORNOS MEDIANTE UN ROBOT MÓVIL

Janelcy Alferes Castaño

Centro Tecnológico CARTIF, Boecillo, [email protected]

Eduardo Zalama Casanova ETSII, Valladolid , [email protected]

Jaime Gómez García-Bermejo

ETSII, Valladolid , [email protected]

Resumen En este paper presentamos un método para la reconstrucción tridimensional de entornos, utilizando una plataforma móvil que lleva embarcado un escáner láser para la adquisición de la geometría de la escena, y una webcam para el registro de la textura del entorno. El algoritmo utilizado se basa en la localización de los planos que conforman la escena, la asignación de los puntos 3D a los planos para seguidamente aplicar una triangulación y así obtener las superficies y contornos del modelo. El modelo es texturizado mediante un algoritmo de stitching (mosaico de imágenes), obteniéndose el modelo completo de la escena en formato estándar VRML. Para disminuir la pérdida de información de los cuerpos libres, así como la distorsión generada bien porque los puntos son considerados descartados ó no aproximables a un plano, se propone una variante en el tratamiento de los datos que consiste en proyectar las imágenes de la escena y los puntos 3D sobre una esfera, centrada en el centro óptico de la cámara. Después de obtener los correspondientes planos en coordenadas angulares (

�,� ), la

asignación de textura sería realizada sobre las superficies trianguladas obtenidas de los puntos del modelo. Palabras Clave: escáner láser, mosaico de imágenes, modelos 3D 1 INTRODUCCION En gran medida, las técnicas desarrolladas para la construcción de mapas de entorno están dirigidas a la generación de mapas en 2D. Para muchas aplicaciones, es suficiente un plano 2D, sin embargo, existen aplicaciones que requieren de información más precisa y detallada de las características del espacio de trabajo. En estos casos, la solución que

ofrece un mejor resultado es el uso de mapas de entorno en 3D. Algunas de estas aplicaciones podrían ser: sistemas automáticos de guiado de robots, control de calidad, segmentación de imágenes, aplicaciones biomédicas, diseño arquitectónico, reconstrucción de edificaciones y en aquellas situaciones en las que se requiera modelar un entorno con la menor intervención humana posible. Los métodos más tradicionales basados en visión artificial [7],[4],[3],[20], frecuentemente llevan a ambigüedades en 3D y en errores al modelo, ya que las imágenes de la escena no resultan completamente claras. Algunos métodos que están siendo estudiados, utilizan escáneres y cámaras montados en la plataforma del robot [25],[1],[24],[7]. El problema principal radica en las técnicas empleadas para manipular los datos obtenidos y llegar a la representación 3D. Estos métodos solo proporcionan información de proximidad en el plano, lo que dificulta el manejo y detección de objetos de la escena, [24][2]. En [9], se utiliza una plataforma móvil con dos escáners lásers, uno girado 90º respecto del otro. La exactitud de los datos depende de la pose del robot. En [23] y [22], se utiliza una plataforma basada en la extensión de un escáner 2D por medio de un servomotor El mapa se crea mediante técnicas de segmentación de objetos. Este algoritmo requiere tener la información de toda la escena y aproxima los objetos encontrados a boxes o cajas. En [15] se utilizan las técnicas desarrolladas en [23], con un algoritmo adicional basado en ICP (iterative closest points pero no proporciona gran información sobre los detalles de la escena. El método empleado en [16] se basa en la detección de superficies planas en la nube de puntos registrada por medio de un escáner 3D. El algoritmo utilizado es una mezcla entre RANSAC (Random Sample Consensus) e ICP. La comprensión del modelo requiere del conocimiento previo de la arquitectura de la escena.

XXV Jornadas de AutomáticaCiudad Real, del 8 al 10 de septiembre de 2004

Recientemente se ha desarrollado en Cartif un método para el modelado de recintos, a partir de los datos de un escáner, basado en la estimación de los planos que forman la escena, usando relaciones estadísticas, técnica reflejada en [14]. La información de textura de la escena, es proporcionada por imágenes tomadas por una cámara, y son asignadas a los planos utilizando el método desarrollado en [5]. Este método ocasiona pérdida de información relativa a los cuerpos de geometría libre, así que se introduce un método para disminuir la distorsión generada en los objetos de la escena, que consiste en proyectar los puntos 3D y 2D sobre una gran esfera. El artículo esta organizado en varios bloques. En primer lugar se describirá la plataforma de adquisición de datos y los sistemas de coordenadas empleados. Seguidamente, se detalla el método de modelado 3D empleado, incluyendo la construcción de la geometría y adición de textura a la escena. A continuación se plantea la problemática encontrada y se propone un método para mejorar los resultados. Finalmente, se aplica el método sobre algunas imágenes para analizar los resultados obtenidos y establecer las conclusiones correspondientes. 2 DESCRIPCIÓN DE LA

PLATAFORMA MÓVIL La plataforma móvil utilizada se muestra en la figura 1. Está dotada de diferentes elementos que le permiten obtener información de la escena.

Figura Nº1. Plataforma Móvil La plataforma móvil presenta una configuración tipo diferencial. Dos ruedas situadas diametralmente opuestas en un eje perpendicular a la dirección del robot proporcionando la tracción a la plataforma. Una tercera rueda gira libremente según la velocidad del robot. Esta rueda permite disminuir los efectos de cabeceo y permite mantener la estabilidad del robot. Un escáner láser tipo Sick, es el encargado de registrar la geometría de la escena. El haz de luz emitido por el láser, al chocar contra un objeto en la escena devuelve la posición en radio y ángulo (r,θ )

de ese punto, donde r es la distancia a la que se encuentra el punto en cuestión, y θ el ángulo de barrido correspondiente. El láser puede tomar medidas de hasta 180º en el mismo plano. Para obtener un barrido completo de la escena, un motor paso a paso permite que el Sick gire en forma vertical hasta 90º. La información proporcionada por el láser, para un barrido, corresponde al contorno de los objetos encontrados por el haz de luz.

Figura Nº2. Escaneo del Sick

Una webcam es la encargada de registrar la información de textura de la escena. Un servomotor permite que la cámara montada sobre el sick gire hasta 180º en un mismo plano, de tal forma que para una posición determinada del sick, la cámara toma las imágenes correspondientes de la escena. La disposición de la cámara así como el servomotor añadido, permiten obtener de la cámara un barrido similar al mostrado en la figura 3.

Figura Nº3. Campo de Visión de la Cámara

3 SISTEMAS DE COORDENADAS DE LA PLATAFORMA MÓVIL

En la figura 4 se observan los diferentes sistemas de coordenadas para los elementos de la plataforma.

Figura Nº4. Sistemas de Coordenadas de la Plataforma

Primer valor Último valor

Barrido o “escaneo” de 180º

Objeto detectado

Webcam Laser Sick

Se han establecido los siguientes sistemas: � Sistema de coordenadas del robot (OR), ubicado

en el centro del eje de motores de la plataforma. � Sistema de coordenadas del motor paso a paso del

Sick (OS) � Sistema de coordenadas del eje óptico del Sick

(OP). � Sistema de coordenadas OCA asociado al

servomotor que mueve la cámara. � Sistema de coordenadas de la cámara OC,

asociado a su eje óptico. � Sistema de coordenadas del mundo (OW). A continuación se establecen las relaciones entre los diferentes sistemas de coordenadas: � Relación entre (OW) y (OR).

(1)

Donde: α es ángulo de rotación alrededor del eje z’ y (xr,yr) las coordenadas de traslación del robot . � Relación entre (OR) y (OS).

(2)

Donde: β es el ángulo de rotación alrededor del eje

z1 del sick ; (a1,b1,c1) son las distancias entre ejes en la dirección x , y y z .

� Relación entre (OS) y (OP).

(3)

Donde: (a2,b2,c2) son las distancias entre ejes en la dirección x , y y z . (r,φ ) son las coordenadas del

punto escaneado. � Relación (OS) y (OCA)

(4)

Donde: θ es el ángulo de la cámara; (a3,b3,c3) son las distancias entre ejes . � Relación entre (OCA) y (OC)

(5) Donde: (a4,b4) son las entre ejes en la dirección x , y y z . La posición de un punto registrado por el

láser en el sistema wO se obtiene por la

multiplicación de las matrices definidas en (1), (2) y (3). La posición del centro óptico de la cámara en el sistema, se obtiene por la multiplicación de las matrices definidas en (1), (2), (4) y (5). 4 ALGORITMO PARA LA

OBTENCIÓN DEL MODELO 3D La etapas en el proceso de modelado de la escena se muestran en la siguiente figura.

Figura Nº5. Esquema General del Algoritmo de

Modelado 3D Este proceso se divide en dos etapas principales: la reconstrucción de la geometría de la escena y la correspondiente adición de textura.

2.1 RECONSTRUCCIÓN DE LA GEOMETRÍA

El algoritmo se basa en la aproximación de la escena a un conjunto de planos [14]. El principal objetivo es conseguir la normal de la superficie que contiene a cada punto, denominada “normal local” del punto. Si un conjunto de puntos poseen una normal local similar, puede decirse que están ubicados sobre una

Obtención de contornos

Simplificación de Triangulos

Limitación de la extensión

Simplificación del conjunto de planos

Adición de Textura

Triangulación de los puntos

Ubicación de los puntos en los planos

Ubicación de planos

����

����

����

����

� −

=

����

����

11000

0100

0

0

1

'z

'y

'x

yrcossen

xrsencos

z

y

x

αααα

����

����

����

����

� −

=

����

����

1

1

1

1

1000

10

1010

10

1

z

y

x

ccossen

b

asencos

'z

'y

'x

ββ

ββ

;z

y

x

c

b

a

z

y

x

����

����

����

����

−−

=

����

����

1

2

2

2

1000

2100

2010

2001

1

1

1

1

����

����

=

����

����

1

0

1

2

2

2

φφ

rsen

cosr

z

y

x

����

����

����

����

� −

=

����

����

1

3

3

3

1000

3100

30

30

1

1

1

1

z

y

x

c

bcossen

asencos

z

y

x

θθθθ

����

����

����

����

=

����

����

1

4

4

4

1000

4100

4010

4001

1

3

3

3

z

y

x

c

b

a

z

y

x

misma superficie. El cálculo de la normal más probable en cada punto de la muestra, está asociada a la varianza más pequeña de dicha muestra. El rango de la varianza espacial proporciona información a cerca de la dimensión de la muestra de puntos.

Figura Nº6. Plano en el Espacio La ecuación del plano � mostrado en la figura 6, con un vector normal no cero ),,( cban = a través del

punto ( )0000 ,, zyxX = está dada por (6):

(6)

Donde ),,( zyxX = . El conjunto de los puntos X

que satisfacen la relación (1) definen al plano que pasa que pasa por el punto 0X y que es

perpendicular al vector n . La forma Hessiana Normal del plano � , definiendo las componentes del vector normal como

),,( zyx nnnn = se obtiene por (7) como:

(7)

Donde nd representa la distancia del plano al origen

del sistema de coordenadas. Si se tiene una muestra de puntos tridimensionales, respecto a la cual se tiene la probabilidad de que estos puntos pertenezcan aun mismo plano, se puede utilizar un ajuste de mínimos cuadrados para estimar la posición en el espacio de dicho plano (8).

(8)

La solución a esta ecuación se encuentra derivando la expresión anterior e igualando a cero el resultado, obteniéndose un mínimo local. El resultado puede escribirse en forma matricial:

(9)

Esta ecuación puede escribirse en términos de la media y la varianza de ),,( zyxX = , dividiendo

(4) entre el número de puntos N:

(10)

La matriz obtenida )(2 Xσ ha sido llamada “Matriz

de Varianza Espacial” [14], es una matriz simétrica de (3 x 3) cuyos elementos son las varianzas en cada coordenada y sus respectivas covarianzas. Esta expresión permite modelar como ruido blanco los errores implícitos en las mediciones. Los tres autovalores de la matriz de varianza espacial serán las varianzas principales. La matriz de varianza espacial define un elipsoide cuyo centro se encuentra en el punto E(X) y cuyos ejes tienen las direcciones de los tres autovectores de la matriz. Si la nube de puntos proviene o pertenece a un plano, y los puntos están distribuidos de forma homogénea, el elipsoide generado es prácticamente un disco, ya que se cumple que 123 σσσ ≤<< , donde 3σ es el

autovalor más pequeño, correspondiente a la varianza más pequeña y cuyo autovector asociado proporciona el vector normal más probable del plano. Las otras dos varianzas principales 21 σσ , están asociadas a la

extensión del plano, medida desde su centroide o media en las direcciones x, y, z.

Las normales locales obtenidas mediante muestras localizadas se simplifican hasta obtener un conjunto de planos sencillo.

Figura Nº7. Etapas del Proceso de Ubicación de Planos.

Cálculo de normales

Simplificación

Ubicación de Planos

Vecindad

Ocupación

Rechazados

Equivalencia

Dirección mínima varianza

P= (x,y,z)

n

( ccc z,y,xc =

Banda de Tolerancia

Distancia entre el pto y el centroide

0).( 0 =− XXn

0=−++ nzyx dznynxn

( )��

��

−++ =

N

inzyx dznynxn

1

2min

( ) 01 =

���

���

����

����

⋅⋅−���

���

�������

�������

z

y

x

z

y

x

zyx

zzyzxz

yzyyxy

xzxyxx

n

n

n

S

S

S

SSSN

SSS

SSS

SSS

=

=N

iix xS

1 =

=N

iixx xS

1

2 .etcy.xSN

iiixy

=

=1

( ) nXEXXE ).(. −

( )X2σ

Para ello se utilizan diversos mecanismos de simplificación, tales como: - El chequeo de la vecindad: donde se explora cada

punto de la escena y localiza, en el entorno próximo a estos, las paredes o superficies a las que están asociadas sus vecinos. Si alguna de estas superficies se asemeja a la del propio punto, se fusionan ambas superficies en una sola.

- El chequeo de la ocupación: es en esta etapa donde se considera el número mínimo de puntos que ha de contener cada plano. De esta forma, los planos poco ocupados se eliminan ó se reubican en otro plano.

- El chequeo de los puntos descartados: esta etapa tiene como objetivo el reducir la cantidad de puntos descartados de la etapa anterior, asignándolos si es posible a algún plano.

Definido el conjunto de planos y la cantidad de puntos contenidos en cada uno de ellos, se limita la extensión de los planos para posteriormente aplicar una triangulación de Delaunay [6] sobre los puntos de cada plano, con lo que se obtienen las superficies de la escena. Luego se unen entre sí las superficies reconstruidas y se obtiene el modelo del volumen completo. Como último paso, se crean las coordenadas VRML para generar el mundo virtual. De esta forma, los puntos 3D que conforman la escena han sido ubicados dentro de superficies planas obteniéndose una representación tridimensional aproximada del recinto en estudio.

Figura Nº8. Reconstrucción de Superficies

Una vez obtenidas las superficies que componen la escena, es posible obtener los contornos de dichas superficies eliminando los puntos internos que las componen, dejando unicamente las aristas. Seguidamente, se unen las aristas comunes. Con este procedimiento se obtiene una representación más sencilla y menos densa, que será utilizada en el paso de adición de textura.

Figura Nº9. Obtención de Contornos

2.2 PROCESO DE ADICIÓN DE TEXTURA 2.2.1 Calibración de la Cámara Geométricamente, la calibración consiste en estimar los parámetros adecuados de transformación entre los puntos tridimensionales de los objetos de la escena, y los puntos bidimensionales de las imágenes [5] [9]. Así, se tendrán parámetros intrínsecos al sistema de adquisición de las imágenes: distancia focal: f, desplazamiento del centro de la imagen cx, cy, coeficientes de distorsión: k1, k2. Y parámetros extrínsecos, relacionados a la posición y orientación de la cámara respecto al sistema de referencia del mundo: traslación: Tx , Ty , Tz y rotación: ángulos α, β, γ. El procedimiento a seguir para la obtención de los parámetros del modelo consiste en: - Determinar las posiciones 3D de puntos de un

objeto conocido (puntos de referencia). - Determinar el valor de sus proyecciones sobre la

imagen. - Buscar la correspondencia entre los puntos

tridimensionales y sus proyecciones en la imagen, mediante la evaluación de una función de error.

Para la calibración de la cámara se ha empleado el método de Tsai [5], debido a la gran precisión en la estimación de los parámetros. Para la obtención de los parámetros de la calibración se ha empleado el algoritmo desarrollado en el Departamento de Automática de la Universidad de Valladolid, denominado “Estimación no Lineal en dos Etapas” reflejado en [5]. En la figura se muestran los pasos del proceso de calibración.

Figura Nº10. Pasos del Proceso de Calibración

Triangulación de Delaunay

Eliminación de triángulos

Eliminación de lados

Reconstrucción de las

superficies

Extensión Planos

Contornos

Eliminación de puntos

Aristas Comunes

Reconstrucción

de las superficies

Paso 1

Transformación de (Xw,Yw,Zw) a ( )ccc Z,Y,X

Paso 2 Proyección perspectiva con la geometría “pin-hole”

Paso 3 Distorsión radial de la lente

Paso 4 Rastreo de la imagen, muestreado, adquisición.

(Xw,Yw,Zw) coordenadas en el mundo

( )ccc Z,Y,X coordenadas en la cámara

(xu,yu) coordenadas en la imagen sin distorsión

(xd,yd) coordenadas en la imagen distorsionada

(r,,c) coordenadas en la imagen almacenada en el computador

� Transformación de ( )WW,W Z,YX a ( )Z,Y,X

(11) Donde R y T son matrices de rotación y traslación respectivamente. � Transformación de ( )Z,YX , a ( )uuu Z,Y,X

En base al modelo de Pinhole [14],[9]:

(12) Donde f es la distancia focal. � Transformación de ( )uu,u Z,YX a ( )ddd Z,Y,X

(13)

(14) � Transformación de ( )ddd Z,Y,X a ( )c,r

Despreciando los términos de orden superior en (14):

(15)

Donde yx N,N son los factores de escalamiento.

Sustituyendo (11) en (15) se obtiene la siguiente relación matricial:

(16)

Aplicando mínimos cuadrados, se estima el la matriz calibración M para los N puntos de control. Para obtener los puntos de control se ha utilizado una rejilla de cuadros, con la finalidad de detectar las esquinas y conocer con exactitud las coordenadas de estos puntos en el sistema de referencia del mundo.

Figura Nº11. Rejil la de Calibración 2.2.2 Deshacer la Perspectiva Para asignar correctamente a cada plano la textura correspondiente, es necesario aplicar cierto procesamiento y transformación a las imágenes para realizar el ajuste de las mismas a los planos del modelo [21],[13]. Mediante la ecuación general del plano y su normal, se encuentra el sistema de referencia fijo al plano en estudio.

Este sistema de referencia permite ubicar a la cámara en una situación virtual enfrente del plano, con el fin de encuadrar todo el plano desde una posición perpendicular al mismo, así deshacer la perspectiva generada al tomar las imágenes. El sistema de referencia se obtiene a partir de una matriz de transformación T.

(17)

Por aplicación de producto vectorial se obtienen los vectores unitarios del sistema de referencia fijo al plano (matriz T). En forma general, la matriz T se puede representar como:

(18)

La matriz hT permite transformar todos los puntos de

la porción del plano de interés al sistema de referencia fijo al plano, y así encontrar los límites que permiten encuadrar esa porción del plano en un rectángulo.

T

Z

Y

X

R

Z

Y

X

W

W

W

+���

���

=���

���

.

;

rrr

rrr

rrr

R

���

���

=

987

654

321

���

���

=

3

2

1

T

T

T

T

c

cu

c

cu Z

YfY,

Z

XfX ==

;XdX uxd =+ uyd YdY =+

.....)rkrk(Xd dx ++= 42

21

.....)rkrk(Yd dy ++= 42

21

( )222dd YXr +=

��

��

�+=��

����

�+=

c

c

c

cx Z

XKr

Z

XfNrr 100

��

��

�+=��

����

�+=

c

c

c

cy Z

YKc

Z

YfNcr 200

→x

→z→

y

( ) ( ) ( ) ( )( ) ( ) ( ) ( )

�����

�����

���

���

++++++++

=���

���

13987

2230629052804270

1130319021801170

w

w

w

Z

Y

X

.

Trrr

TKTcrKrcrKrcrKrc

TKTrrKrrrKrrrkrr

n

c.n

r.n

Matriz M de calibración

[ ] [ ]

�����

�����

=

1000

100

010

001

p

p

p

hz

y

x

.TT

p'

p X.TX =

El procedimiento anterior permite conocer la posición donde habría que colocar una cámara virtual para obtener una foto desde una posición totalmente perpendicular al plano, así como las dimensiones que ha de tener la imagen a asociar a cada plano. Conocida la posición del centro óptico de la cámara, se calcula la matriz de transformación para un eje de coordenadas centrado exactamente en el punto de vista. La matriz de transformación homogéneas asociada al punto de vista de la cámara para estos ejes esta dada por:

(19)

Donde: ( )pvpvpv z,y,x son las coordenadas del

punto de vista de la cámara, ( )'z,'y,'x pvpvpv son

coordenadas del punto de vista de la cámara virtual y

pvR es la matriz de rotación compuesta, de los

diferentes elementos de la plataforma. 2.2.3 Mosaico de Imágenes Cada imagen aporta una porción de los datos que contribuyen a componer la escena. Igualmente, existen datos de alineación que permiten ensamblar una imagen con otra, siempre y cuando las imágenes posean alguna región común que permita su unión.

En el proceso de determinar los parámetros de alineación adecuados, cada imagen es deformada utilizando una matriz de transformación afín o de perspectiva de ocho parámetros. Utilizando el algoritmo de optimización “Levenberg-Marquardt” [21],[13], se consiguen los valores óptimos de dicha matriz que proporcionan una mejor alineación de las imágenes, con el fin de obtener una ilusión óptica de continuidad. Para obtener un estado de inicio en la matriz de transformación perspectiva M, se define un sistema de cuatro puntos correspondientes.

(20)

El cálculo de la matriz inicial de la transformación M se modela entonces como un sistema lineal de 8 ecuaciones simultáneas. Para dos imágenes A y B, se determinan cuatro puntos correspondientes, tal como se muestra en la figura 12.

Figura Nº12. Matriz de Transformación entre Imágenes

En el modelo anterior de 8 parámetros, una transformación de un punto de coordenadas (x,y,w) de la imagen “A”, a un punto de coordenadas (x’ ,y’w’ ) se obtiene como:

(21 )

Asumiendo w = 1:

(22)

Las expresiones (21) y (22) da lugar a un sistema de ecuaciones simultáneas. En forma matricial, se expresa el sistema de 8 ecuaciones como:

(23)

El sistema anterior corresponde a un sistema lineal

del tipo [ ]→→

= p.Ab . La búsqueda de los ocho

parámetros, implica resolver la expresión

[ ]→

−→

= b.Ap 1 , utilizando la técnica SVD [14]. Para

implementar el registro local de la imagen, la minimización del error se desarrolla iterativamente. El error a ser minimizado se caracteriza como la suma del cuadrado de las diferencias de intensidad entre los píxeles solapados en las imágenes A y B:

(24)

[ ] [ ]

�����

�����

=

�����

�����

=

10001000

100

010

001

'z

'yR

'x

z

y

x

.RMpv

pvpv

pv

pv

pv

pv

pvpv

Imagen A Imagen B

M-1

M

wymxmw

wmymxmy

wmymxmx

++=++=++=

*7*6'

*5*4*3'

*2*1*0'

���

���

=176

543

210

mm

mmm

mmm

M

176

543

++++==y*mx*m

my*mx*m

'w

'y''y

1*7*6

2*1*0

'

'''

++++==ymxm

mymxm

w

xx

*

''y*y''y*xyx

''x*y''x*xyx

''y*y''y*xyx

''x*y''x*xyx

''y*y''y*xyx

''x*y''x*xyx

''y*y''y*xyx

''x*y''x*xyx

�����������

�����������

−−−−−−−−−−−−−−−−

1000

0001

1000

0001

1000

0001

1000

0001

�����������

�����������

=

�����������

�����������

''y

''x

''y

''x

''y

''x

''y

''x

m

m

m

m

m

m

m

m

4

4

3

3

2

2

1

1

7

6

5

4

3

2

1

0

→b A

→p

( ) ( )[ ] −=i i

i yxByxAe 22 ,,'

Donde: ie es el error de solapamiento entre las

imágenes, 'A la imagen transformada de A al aplicar M y B es la imagen de referencia, que permanece sin cambios. Para obtener el valor de intensidad de la imagen transformada A’ (x,y), se utiliza la inversa de la matriz M, junto a una interpolación bilineal. Una vez que las parciales han sido calculadas para cada píxel de la región de solapamiento, se calcula la matriz Hessiana “A” y un vector gradiente “b” que son utilizados para resolver el sistema lineal siguiente, para los ∆m parámetros.

(25) Los coeficientes de la matriz Hessiana se denotan como akl y las k entradas del vector b se etiquetan como bk. Ambos coeficientes son normalizados por el número de píxeles (n) de la región de solapamiento:

(26)

El paso final para producir un mosaico de imágenes es mezclarlas usando una función piramidal ponderada, según [1]. Esta función de peso se hace semejante a una pirámide ya que tiene un peso de una unidad en el centro de la imagen y cae a cero en los bordes. La función de peso en cada píxel para una imagen deformada esta dada por (28):

(27)

Donde “ invX” y “ invY” son las coordenadas inversas del mapa de píxeles, que determinan las localizaciones verdaderas de cada píxel en la imagen original, sin deformar.

2.3 DETALLE DE CUERPOS LIBRES EN LA

ESCENA Para aplicaciones donde se requiera una información general de la escena, el método explicado resulta una muy buena solución para obtener el mapa tridimensional del recinto. Sin embargo, si la aplicación requiere más detalle en la escena, es necesario ofrecer más realismo a la escena. Ya que el algoritmo utilizado trata los puntos asignándolos a planos, si existe una muestra de puntos que no pueden ser asignados a ningún plano, el algoritmo los considera puntos descartados. En el mejor de los casos, estos puntos podrían asignarse algún plano pero en cualquiera de las dos opciones existirá alguna

pérdida de información y distorsión de la perspectiva. Si los puntos no fueran proyectados directamente sobre planos se podría disminuir la distorsión generada. Ya que la cámara y el SICK describen movimientos esféricos alrededor de un punto central para barrer la escena, la superficie de proyección que más se ajusta al sistema es una esfera. Con el fin de mejorar esta situación, se ha planteado una variante en el procesamiento de los datos, que consiste en proyectar las imágenes y los puntos 3D sobre una esfera ubicada en el centro óptico de la cámara, tal como se muestra en la figura 13. El centro óptico estará definido por las coordenadas )V,V,V( zyx , que

a su vez están relacionadas con los ángulos de visión horizontal y vertical ),( φθ .

Figura Nº13. Punto de vista ubicado en el centro de la esfera.

Los puntos 3D de la escena son proyectados por la cámara en un plano imagen ubicado a una distancia “ f” del foco de la cámara, como se mencionado anteriormente. Los planos imagen generados para cada ángulo de visión serían proyectados sobre la superficie de una esfera [11][26][18], obteniéndose así la información de textura de los objetos de la escena. En la figura 14 se muestra el esquema de proyección del método.

Figura Nº14. Esquema de Proyección de los puntos 3D y 2D en la esfera.

( ) bmIA =∆+ *λ

n

m

e

b i k

i

k

∂∂

−=,

n

m

e

m

e

a i l

i

k

i

kl

∂∂

∂∂

=

���

����

�−−��

����

�−−=

alto

invY*.

ancho

invX*)y,x(w

211

211

Plano Imagen (u,v)

Esfera

Objeto (x,y,z)

Longitud focal “ f”

Cada imagen corresponderá a una toma para un ángulo de visión horizontal y vertical determinado, tal como se muestra en la figura. Seguidamente, los puntos 3D que definen la geometría de la escena, serían triangulizados [6] con el fin de parametrizar la superficie de los objetos en triángulos que puedan ser proyectados en la esfera. Esto permite realizar una asignación directa de las coordenadas 2D de textura a las coordenadas 3D del objeto, minimizando la distorsión.

Figura Nº15. Imágenes Concéntricas, para diferentes ángulos de visión.

La forma geométrica de la esfera permite ubicar los puntos 3D de tal forma que se tendrá más resolución en las zonas cercanas al centro de la esfera, y menor resolución en las zonas cercanas a los extremos o “polos” de la esfera. El modelo total se obtendría al realizar el stitching sobre la esfera de las imágenes y puntos proyectados en la esfera. Como resultado se tendrá una mejora notable en la perspectiva de los objetos. La figura muestra un ejemplo del método para un objeto “extintor” .

θ

Figura Nº. Modelo Final

Además del tipo de proyección a utilizar, se debe tener en cuenta el centro de proyección, que como se ha mencionado deberá estar ubicado en el centro de la esfera, de tal forma que cada punto de la imagen se corresponda con un punto en la superficie de la esfera, generado por un rayo de proyección.

Figura Nº16. Centro de Proyección

Se ha utilizado la proyección “gnomónica” [8][10]. Este tipo de proyección no conserva ángulo ni áreas pero tiene la propiedad de que las líneas rectas de la rejilla del plano corresponden a los círculos de la rejilla de la esfera, así que se tiene una correspondencia directa entre los puntos. En este tipo de proyección la distorsión se produce en los extremos o polos de la esfera. Ya que no se tiene información a priori de la escena, y se pretende trabajar con cuerpos de diferentes áreas, se ha utilizado la proyección gnomónica en los experimentos, a parte de tener menor coste computacional.

Figura Nº17. Distorsión en la proyección

2.3.1 Mapeo Espacial de las Imágenes en la

Esfera. Un punto P de la esfera estará definida por las coordenadas (x,y,z), tal como se muestra en la figura 18.

Figura 18. Coordenadas de un punto de la esfera

(28)

Rayos de proyeccion

Plano Imagen

Mayor distorsión

No existe distorsión

Plano Imagen

Esfera de proyeccion

Mayor distorsión

)cos()sin(Ry φθ=)(Rsenz φ=

)cos()cos(Rx φθ=

φ

θ

R

Cualquier punto en la esfera quedará definido por tres parámetros: el radio (R), el ángulo de barrido horizontal θ y el ángulo de barrido vertical φ .

Considerando en un primer momento que el eje focal atraviesa el centro de la imagen en el punto

00 == φθ ; , se obtienen los planos mostrados en la

figura 19 y 20.

Figura Nº19. Plano XY de la esfera y la imagen

Figura Nº20. Plano XZ de la esfera y la imagen Utilizando la información de ambos planos, se obtiene un conjunto de funciones de mapeo espacial para conseguir las coordenadas de la imagen resultante, bien para pasar de la esfera al plano o viceversa. Ya que el eje óptico de la cámara se moverá por medio del servomotor y del motor paso a paso del Sick, se añaden los ángulos de visión horizontal ( hα ) y vertical ( vα ) de la cámara, obteniéndose las ecuaciones (29):

(29) Es necesario aplicar un algoritmo de interpolación que determine el nivel de intensidad de la imagen final a partir de uno o varios píxeles de la imagen

original. Se ha utilizado la interpolación bilineal [27] por proporcionar buenos resultados. Como resultado, se tendrá un conjunto de imágenes proyectadas sobre la esfera, donde cada par de imágenes tendrá una zona de solapamiento, tal como se muestra en la figura 21.

Figura Nº21. Mosaico Esférico

El registro de las imágenes corresponde a encontrar los “8” parámetros de la transformación, por aplicación de la técnica optimización de “Levenberg-Marquardt” detallada anteriormente. Para la realización del stitching, se emplean los planos φθ −

obtenidos de cada proyección sobre la esfera. 2.3.2 Mapeo Espacial de los Puntos 3D en la

Esfera El proceso de mapeo de textura en una superficie 3D, requiere asignar coordenadas 2D correspondientes a las imágenes, a cada uno de los vértices de la superficie. Si la superficie está formada por triángulos, los píxeles de textura serán mapeados en las caras de los triángulos 3D. La parametrización de una superficie de triángulos 3D en una esfera es equivalente a integrar su gráfico de conectividad en la esfera, tal que todos los triángulos esféricos resultantes no se solapen.

Un triángulo esférico [19] está formado por tres arcos pertenecientes a los círculos mayores de la esfera, intersectados a pares en tres vértices. (En un círculo mayor, el centro coincide con el centro de la esfera).

Figura Nº22. Triangulación Esférica

��

���

� +=R

)hcos(.y)h(sen.xtana

ααθ

[ ]��

���

� +=R

)cos(*)vcos(.z)v(sen..Rtana

θααφ

Sea un triángulo esférico de radio R, centrado en O= (0,0,0), con vértices A, B y C, mostrado en la figura. Los vectores desde el centro de la esfera a los vértices están dados por:

→→→=== OCc;OBb;OAa (30 )

Las longitudes de los arcos que constituyen los lados del triangulo esférico:

( 31) Donde a’ , b’ , c’ constituyen las longitudes angulares de los lados de los triángulos en radianes:

(32 ) Los lados a, b, c son idénticos a los ángulos planos del sólido definido por el origen y por los pares de vértices de los triángulos. Cada uno de ellos es menor a � . El “defecto esférico de cada triángulo” es de 2� -(a+b+c). Un ángulo esférico constituye el ángulo formado por los dos planos definidos por los dos círculos mayores y se denotan como A, B y C. La suma de los ángulos esféricos será siempre mayor a � y menor a 3� . Explícitamente, de las relaciones anteriores se obtiene

(33)

Utilizando ahora A, B y, C para denotar tanto a los vértices como a los triángulos del triángulo esférico, el ángulo A puede calcularse utilizando el producto de las normales de los planos:

(24)

Esta expresión también puede escribirse como:

(25) Igualando ambas expresiones, y aplicando las relaciones para el ángulo B y C se obtienen las siguientes identidades:

(26)

El conjunto de ecuaciones de (26) a (30) constituyen la base para la triangulación en la esfera de los puntos 3D. Esta etapa del algoritmo se encuentra actualmente en desarrollo. 5 RESULTADOS

EXPERIMENTALES A continuación se muestran los resultados obtenidos de aplicar el algoritmo de modelado 3D a datos reales. En la siguiente experiencia se procede a modelar un pasillo de Cartif. Para la adquisición de datos, el robot se ha ubicado en dos posiciones diferentes, una al inicio del pasillo y a 4 metros sobre el eje de movimiento del robot. Se ha realizado un escaneo de 0 a 1000 pasos del sick. La resolución del motor paso a paso es fijada en 0,09 por lo cual, se tendrán 1000*0,9 = 90 “poses” del sick La nube de puntos obtenida se muestra en la figura 23.

Figura Nº23. Vistas de la Nube de puntos 3D del

Pasillo de CARTIF.

Como puede observarse, existe mayor cantidad de puntos en las cercanías de la plataforma móvil. El siguiente paso a seguir es la obtención del conjunto de planos de la escena. En la siguiente figura se muestra el modelo inicial obtenido después de localizar los planos de la escena, descritos por el conjunto de normales, y asignar los puntos a cada plano.

4m

AOB'c;COA'b;BOC'a =<=<=<

��

���

�==<=→→

R

ccosR'ccosR)AOBcos(Rb.a 222

��

���

�==

��

���

�==

→→

→→

R

acosR'acosRcb

R

bcosR'bcosRca

22

22

Acos.senb.senccxa.bxa =��

���

���

���

� ∧∧∧∧

bcos.ccosacoscxabx.acxa.bxa −=��

���

���

���

�=��

���

���

���

� ∧∧∧∧∧∧∧

Ccos.senB.senABcos.AcosCcos

bcos.senA.senCAcos.CcosBcos

acos.C.sen.senBC.cos.BcosAcos

+−=+−=+−=

'c.Rc;'b.Rb;'a.Ra ===

senc

senC

senb

senB

sena

senA ==

Figura Nº24. Conjunto de Planos de la Escena La longitud de las rectas que definen las normales, especifican la cantidad de puntos que contiene el plano en cuestión. Para esta escena se observa que los planos con mayor cantidad de puntos corresponden a las paredes laterales y al techo de la escena. En la tabla Nº1 se muestra la información más importante del proceso.

Etapa Parámetros Tiempo

Carga de Archivo y Pámetros

Núm Puntos de la escena

37440 cargado en 1seg

Núm Planos Iniciales

239 517 seg Inicial

Núm puntos descartados

17805 (47,5%)

Chequeo deVecindad

Núm de planos

45

Chequeo ocupación

Núm planos 20

Planos Localizados

14 planos

Simplificación del Conjunto

de Planos Resultado

Final Puntos Descartados

8556 (22,85%)

11:13 min

Tabla Nº1. Resultados del Proceso

En la figura 25 se observan los puntos considerados descartados por el algoritmo, que constituyen el 22,5% de los puntos de la escena.

Figura Nº25. Puntos descartados de la escena

El siguiente paso es limitar la extensión de los planos y obtener las superficies y contornos de la escena. En las figura 26 se muestran los contornos de las superficies obtenidos.

Figura Nº27. Contornos de las Superficies A continuación se muestran los resultados obtenidos de añadir la textura a la escena.. El modelo final se muestra en la figura 28.

Figura Nº28. Modelo final texturizado Al aplicar el método descrito, se observan resultados eficientes formados por superficies planas. Sin embargo, al navegar por la escena virtual creada, se observa pérdida de información relativa a los cuerpos de geometría libre que se encuentran en el recinto, tales como sillas, papeleras, extintores, etc. Estos objetos aparecen incustrados dentro de los planos, observándose distorsión de la perspectiva para diferentes puntos de vista. Al navegar por la escena modelada anteriormente, vemos que para el punto de vista mostrado en la figura 29 (punto de vista desde el cual se adquirió la textura), el extintor presenta poca distorsión de perspectiva.

Figura 29. Vista frontal del objeto.

a) � = 0º; � = 0º

Sin embargo, al mirar al objeto desde diferentes puntos de vista, se observa como la perspectiva del extintor se va distorsionando en gran medida, tal como se muestra en las imágenes siguientes: (a) Lateral Izquierdo (b)Lateral Derecho Figura Nº 30. Vistas Laterales del Objeto. Distorsión

de la perspectiva A continuación se realizan una serie de experiencias con el fin de estudiar los efectos de la distorsión, generada por las transformaciones geométricas, resultado de aplicar el método de propuesto de proyección sobre una esfera. Cada punto del plano imagen es considerado un píxel que posee una posición dentro de la imagen (coordenadas (y,z)) y un valor de intensidad RGB. Se recorre en primer lugar una malla discreta ( φθ , ) de dimensiones

asociadas a la imagen origen, y se aplica la función de mapeo inversa dada en (29) para conseguir el valor RGB de la imagen final, aplicando interpolación bilineal. En la siguiente figura se muestran los puntos resultantes de una imagen en coordenadas ( φθ , ),

para diferentes relaciones entre el radio de la esfera (R) y el tamaño del plano imagen (A). La discretización de la malla, que permite obtener más o menos resolución en la imagen final.

a) (R/A=0.5) b) (R/A=1)

Figura 31. Plano φθ − .

Como puede observarse en las figuras anteriores, existe mayor distorsión hacia los extremos de la imagen, como se esperaba por el tipo de transformación utilizada. A parte de ello, la distorsión aumenta a medida que disminuye la relación (R/A), observándose mejores resultados para radios de la esfera de proyección mayores o iguales al ancho de la imagen.

A continuación se muestran los resultados de aplicar las transformaciones a un grupo de imágenes de una escena tomadas desde un mismo centro óptico (imágenes concéntricas), para diferentes ángulos de visión horizontal y vertical

Figura Nº32. Planos Imagen proyectados en la Esfera

En la siguiente figura se muestra el resultado de aplicar el Stitching de los planos φθ − obtenidos de

cada proyección sobre la esfera.

Figura Nº33. Stitching de los planos φθ − en la

esfera

g) � = -45º; � = 0º

b) � = 15º; � = 0º

c) � = 30º; � = 0º d) � =45º; � = 0º

e) � = -15º; � = 0º f) � = -30º; � = 0º

Figura Nº32. Más Planos Imagen proyectados en la

Esfera En la siguiente figura se muestra el resultado de aplicar el Stitching de los planos φθ − obtenidos de

cada proyección sobre la esfera.

Figura Nº33. Stitching de los planos φθ − en la

esfera

El siguiente paso consiste en la proyección en la esfera de los puntos escaneados de la escena, para seguidamente realizar la correspondencia 2D-3D, etapa que se encuentra en desarrollo.

Conclusiones y Trabajos Futuros Se ha presentado un método para el modelado tridimensional de recintos, utilizando para ellos los datos provenientes de un escáner láser Sick, y de una cámara web, ambos embarcados en la plataforma de un robot móvil. Al realizar el proceso descrito, se observan resultados eficientes para recintos formados por superficies planas, obteniéndose un modelo virtual del entorno completo. Sin embargo, para los cuerpos de geometría libre, los resultados han mostrado distorsión en la perspectiva de los objetos, debido al algoritmo utilizado que trata a los puntos asignándolos a planos. Para disminuir esta pérdida de información, se ha propuesto una variación en el tratamiento de los datos, que consiste en proyectar los puntos 3D y 2D en una esfera situada en el centro óptico de la cámara. Los resultados obtenidos permiten comprobar las características de la distorsión generada por la proyección empleada, encontrando mayor distorsión en los extremos, hecho que hace más directa la correspondencia con los puntos 3D del espacio. Al respecto, existen parámetros a considerar tales como el radio de la esfera empleada y la discretización de la imagen. Como líneas futuras inmediatas de este trabajo tenemos la parametrización en triángulos de la superficie de la escena, empleando las ecuaciones presentadas, para luego obtener, los planos φθ − de

los puntos 3D, con el objetivo de realizar la correspondencia 2D-3D y asignar la textura a la escena. Igualmente, se deben estudiar y aplicar técnicas para eliminar las “costuras” resultantes del proceso de stitching y así obtener resultados más realistas. Referencias [1] Andreozzi, L; Barnobi, L; Giuffrida, A;

Santagati, C. (2002). “New Frontiers to Architectural Survey: Laser Scanner 3D” .University of Catania.

[2] Axel, W; Amir, M. (2000). Monlouk, “Multisensoric anctive spatial exploration and modeling” in Dynamishe Perzeption: Workshop der GI-Fanchgrupe 1.0.4 Bildverstehen, Ulm. Berlín.

[3] Bajcsy, R; Kamberova, G; Nocera, L.(2000) “3D Reconstruction of Enviroments for Virtual Reconstruction” . 4th IEEE Workshop on Applications of Computer Vision.

[4] Debevec, P; Taylor, C. (2002) “Modeling and Rendering Architecture from Photographs: A

a) � = 0º; � = 20º b) � = 15º; � = 20º

c) � = 30º; � = 20º d) � = 45º; � = 20º

e) � = -15º; � = 20º f) � = -30º; � = 20º

g) � = -45º; � = 20º

Hibrid Geometry-and Image-based approach” . University of California.

[5] Diez, J. (2003). Proyecto Fin de Carrera “ Incorporación de Texturas a Modelos 3D navegables del Interior de Edificaciones mediante Robots Móviles dotados de Sistemas de Visión” Universidad de Valladolid, España.

[6] Francés, A; Lambán, L; Rubio, A. (1998). “Diagramas de Voronoy y Topología Digital” . Universidad de Zaragoza. España.

[7] Frintop, S; Rome, E. (2003) “An Attentive Multi-modal Laser Eye”. Fraunhofer Institut fur Autonomr Intelligente Systeme, Germany.

[8] GFD Dennou Library. “Map Projections” . [9] González, J. (1999). “Visión por

Computador” . Editorial Paraninfo. España. [10] Howells, L. (2002). “The Design of an

Automated Data Analysis System for Robotic Telescopes and its Application to be Stars” .

[11] “ Introduction to Computer Vision” . CS /ECE 181B. 2003.

[12] Itkowitz, B. (1998). “ Image Mosaics” . CAS CS585.

[13] Lensch, He, Heidrich, Wo. (2001). “A Silhoutte-Based Algorithm for Texture Registration and Stitching” . Graphics Models.

[14] Martín, M. (2002). Proyecto Fin de Carrera “Modelado Tridimensional del Interior de Edificaciones mediante Robots Móviles” . Universidad de Valladolid, España.

[15] Nuchter, A (2003). “Planning Robot Motion for 3D Digitalization of Indoor Enviroments” ,. Alemania.

[16] Nuchter, A; Surmann, H. (2003). “Kurt3D - An Autonomous Mobile Robot for Modelling the World in 3D” . Alemania.

[17] Pardiñas, A. (2002) “Operaciones Básicas en el Dominio Espacial” .2002.

[18] “Project One: Spherical Virtual Image Space” www.missouri.edu/w117a/Course/vision.

[19] Sheffer, A; Gotsman C. (2003). “Robust Spherical Parametrization of Triangular Meshes.

[20] Shum, H; Han, M. (1998). “ Interactive Construction of 3D Models from Panoramic Mosaics” . International Conference on Computer Vision and Pattern Recognition (CVPR).

[21] Shum, H; Szalinski, R. (1998) “Creating Full View Panoramic Image Mosaics and Enviroment Maps”. International Conference on Computer Vision and Pattern Recognition (CVPR).

[22] Surmann, H. (2001) “Fast acquiring and analysis of three dimensional laser range date” Alemania

[23] Surmann, H. (2001). “A 3D laser finger for autonomous mobile robots” in Proceedings of

the 32nd ISR (International Symposium on Robotic), Alemania,

[24] Surmann, H; Lingemann, K; Nuchter, A. (2001). “A 3D Laser Range Finger for Autonomous Mobile Robots” . Proceedings of the 32nd ISR (International Symposium on Robotics).

[25] Thrun, Se; Burgard, W (2000). “A Real Time Algorithm for Mobile Robot Mapping with Applications to Multi-Robot and 3D Mapping” . IEEE International Conference on Robotics and Automation. San Francisco.

[26] Tumblin, J. (2002). “New Direction: Applying Projections” . CS 395/495-26 Spring.