Professional Documents
Culture Documents
al valor medio.
Definicin de correlacin:
( , ) corr X Y
xy
= (4.1)
Ecuacin general de correlacin:
( )
( )( )
cov( , )
,
x y x y
X X Y Y
X Y
corr X Y
xy
o o o o
(
E
= = = (4.2)
Se define como E a la esperanza (tambin conocido como media) y el nmero de
elementos de la matriz :
( )
1
N
i
i
A
E A
N
=
=
(4.3)
Captulo 4
Correlacin
Parte I
Conceptos Previos
24 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
( ) ( )
1
2 2
2 1
N N
i
i
A
i
i
A
A A A A
N N
o o
= =
= =
(4.4)
Si se sustituyen las correspondientes ecuaciones (4.3) y (4.4) en la ecuacin (4.2),
suponiendo que e tienen las mismas dimensiones, obtenemos la expresin (4.5):
( )( )
( ) ( )
1
2 2
1
1
1
N
i i
i
N
i i
i
X X Y Y
N
xy
X X Y Y
N
=
=
=
(4.5)
Simplificando los trminos de la ecuacin (4.5) se define la ecuacin final (4.6):
( )( )
( ) ( )
1
2 2
1
N
i i
i
N
i i
i
X X Y Y
xy
X X Y Y
=
=
=
(4.6)
La ecuacin (4.6) nos devuelve un valor normalizado. Se denomina valor normalizado a
aqul valor al que se le ha aplicado un coeficiente para que su valor final quede
comprendido entre un rango determinado. En particular, el valor resultante de aplicar la
ecuacin final (4.6) estar comprendido entre -1 y 1, siendo |1| el coeficiente ms alto de
similitud y el 0 el menor.
2. Aplicacin a imgenes
Se puede decir que la correlacin busca el patrn comn a dos conjuntos a partir del
coeficiente de correlacin. Se expondr algn ejemplo para familiarizarse con el concepto.
Cuando, por ejemplo la correlacin se aplica sobre imgenes, el resultado obtenido
tendra valores mximos en los puntos de mxima afinidad. Hay que tener en cuenta que,
en definitiva, las imgenes se almacenan como matrices numricas, lo que implica que la
comparacin de dos imgenes en realidad es la comparacin de dos conjuntos numricos.
Para determinar la mxima correspondencia entre ambos, se debe recorrer toda la
imagen de referencia mediante la imagen de muestra.
Para determinar los puntos en los que se establecen los mximos, se debe disponer una
matriz de igual dimensiones que la matriz de referencia. De esta manera, se coloca el
valor del coeficiente de correlacin sobre el la posicin comparada con la matriz de
muestra.
En la Ilustracin 4.1 se muestra el ejemplo al correlacionar dos imgenes. El resultado que
se obtiene es un valor de mxima correlacin en la posicin de la imagen correlacionada
coincidente con la imagen de referencia.
Parte I
Conceptos Previos
Captulo 4
Correlacin
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 25
Ilustracin 4.1 - Ejemplo de correlacin sobre una imagen
3. Aplicacin a vectores para determinar desplazamientos
Aplicar el mtodo de correlacin en el proyecto supone utilizar la mxima similitud para
determinar el desplazamiento entre dos vectores para que coincidan.
El clculo para determinar este desplazamiento necesita hacer un recorrido del vector de
muestra comparando todas las posiciones del vector de referencia. Entonces, el recorrido
de los vectores se hace mediante una rotacin circular. Para cada rotacin, se calcula el
coeficiente de correlacin. Asimismo, al haber recorrido todo el vector de referencia, se
conocen todos los valores de los coeficientes de correlacin. Al haber realizado una
comparacin en cada rotacin significa que la posicin del vector de coeficientes con el
mayor valor corresponde a la rotacin realizada est relacionado con el nmero de
rotacin. De esta manera, cada rotacin supone un incremento de desplazamiento.
Si por ejemplo se trata de dos vectores de igual dimensiones, as como se muestra en la
Ilustracin 4.2, el coeficiente de correlacin sera el resultado de aplicar la frmula (4.6)
de la pgina 24. En el ejemplo se muestra el valor de correlacin para cada rotacin. Se ha
marcado la rotacin con el mximo valor de afinidad de color verde. Se observa que en
este modelo ideal los valores coinciden. En casos reales no suele ocurrir, de manera que
se busca la mxima similitud.
Imagen de
muestra
Imagen de referencia
Mxima
correlacin
Captulo 4
Correlacin
Parte I
Conceptos Previos
26 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
Ilustracin 4.2 - Ejemplo de correlacin vector unidimensional
El sentido de rotacin es indiferente de cmo se realice, lo importante es establecer un
criterio para determinar el sentido del desplazamiento. Por ejemplo se puede aplicar un
umbral que al pasar de cierto valor se considere un sentido u otro.
Correlacin mxima entre el
vector a tratar y el de
referencia en la 4 rotacin.
Vector a tratar
Vector de referencia sin rotar
Vector de
referencia
rotado
Rotacin 0
Rotacin 1
Rotacin 2
Rotacin 3
Rotacin 4
Rotacin 5
0 0 0 1 2 3
0 1 2 3 0 0
1 2 3 0 0 0
2 3 0 0 0 1
3 0 0 0 1 2
0 0 0 1 2 3
0 0 1 2 3 0
Valor de correlacin
0,3750
0,7500
0,3750
0,2500
1
0,2500
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 27
Captulo 5.
Scan Matching
El conjunto de algoritmos de scan matching, correspondencias entre barridos, se utilizan en
el mundo de la robtica para encontrar el desplazamiento y la rotacin de un robot mediante
los datos proporcionados por los sensores acerca del entorno. Se trata de mtodos iterativos a
fin de encontrar la relacin entre dos barridos consecutivos.
1. Mtodos basados en Scan Matching
Los siguientes mtodos descritos, basados en scan matching, estn referenciados a la
publicacin doctoral del Dr. Burguera [6].
1.1 Basados en ICP
El concepto ICP (Iterative Closest Points) fue introducido en la robtica mvil para la
estimacin de la posicin de robots mviles. Los mtodos basados en ICP buscan la
relacin entre puntos proporcionados por los sensores a partir de dos pasos:
establecer correspondencias y minimizacin.
- Establecer correspondencias: Este primer paso intenta asociar los datos de
un barrido con otro. La asociacin de correspondencias significa asignar una
relacin entre los valores de un barrido con otro. Esta asociacin debe
realizarse de tal manera que la distancia de las correspondencias sea
mnima. Al asociar cada punto de un barrido con los puntos de otro barrido
implica que los algoritmos basados en ICP operan punto a punto, es decir,
asociando cada uno de los puntos de diferentes barridos.
Por lo expuesto anteriormente la idea es la siguiente, se obtienen dos
vectores
siendo
las
puntos del barrido de referencia y
sobre
se obtiene
(por tanto
) con el punto de
ms cercano, aplicando
algn criterio de distancia. En el caso de ICP es las distancia eucldea. En
cada iteracin se pueden obtener correspondencias distintas. Por esta
razn no se garantiza encontrar la transformacin que haga encajar mejor
los dos barridos.
Captulo 5
Scan Matching
Parte I
Conceptos Previos
28 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
- Minimizacin: Una vez se han establecido las correspondencias, se analiza
el coste de la asociacin mediante la distancia entre los puntos asociados.
De esta manera, la minimizacin se encarga de encontrar la transformacin
)
se minimiza. En resumen, la minimizacin busca la mejor transformacin
posible para la asociacin de correspondencias previa.
En este mbito, se encuentran diversos mtodos para encontrar las
correspondencias entre puntos distribuidos en el espacio:
1.1.1 ICP
El mtodo ICP (Iterative Closest Point [7]) establece correspondencias
entre los puntos de dos barridos consecutivos mediante la distancia
eucldea. Por lo tanto, la minimizacin busca aquella asociacin que
suponga el valor mnimo en la suma de todas las distancias al cuadrado.
1.1.2 IDC
El mtodo IDC (Iterative Dual Correspondence [7]) consiste en combinar
dos tipos de correspondencias. Por una parte, se utiliza la correspondencia
de los puntos mencionados en ICP mediante la distancia eucldea. Por otra
parte se utiliza la distancia angular. La distancia angular proporciona el
error de rotacin. Entonces, la estimacin de la posicin del robot resulta
ser la minimizacin de ambas correspondencias.
1.1.3 pIC
El mtodo pIC (Probabilistic Iterative Correspondence [8]) es similar a los
anteriores salvo que el establecimiento de correspondencias y la
minimizacin se basan en la distancia estadstica Mahalanobis. Para ello,
cada punto se representa por una distribucin normal que modela el error
cometido en la adquisicin de las lecturas.
1.2 No basados en ICP
A diferencia de ICP, los mtodos no basados en ICP no se aplican correspondencias.
1.2.1 NDT
El mtodo NDT (Normal Distribution Transform [9]) se basa en Likelihood
Fields que significa trabajar mediante probabilidad. Se trata de aproximar
los valores del barrido de referencia (
.
El problema de utilizar este mtodo es el uso de celdas. Puede pasar que
algunos puntos del barrido actual coincidan con una frontera entre celdas,
creando as algunas incertidumbres al clasificar a la celda a la que
pertenece, ya que puede que se clasifique en una celda u otra dependiendo
de la condicin y del tamao de la misma.
Este mtodo es bastante robusto aunque costoso a nivel computacional.
1.2.2 LF/SoG
El mtodo LF/SoG (Likelihood Field with Sum of Gaussians [10]) es
parecido al anterior, pero en lugar de tener una distribucin normal para
cada celda, se realiza una distribucin normal para cada punto del barrido
de referencia (
se
define la funcin Likelihood como la suma de estas, la cual es una funcin
continua y derivable, a diferencia de la NDT.
Al igual que en NDT se compara el barrido actual (
) con el de
referencia (
) con el de referencia (
). El error cometido es
la suma de todas las correspondencias establecidas entre los dos barridos.
El punto de partida es la publicacin de Lu and Milios [7], as como algunas de las
modificaciones desarrolladas por Burguera [6].
El algoritmo inicialmente est pensado para solucionar problemas de ubicacin para
robots mviles a partir de su entorno. En este proyecto de final de carrera sabemos que
los desplazamientos generalmente sern traslaciones, por tanto se ha implementado una
adaptacin que permita la simplificacin de los clculos para este caso particular. Se
encuentra explicado en la pgina 33.
A continuacin se explica la idea general de este mtodo aplicable a todas las variaciones
posibles de ICP.
3.1 Seudocdigo del algoritmo ICP
En este apartado, se representar el seudocdigo del algoritmo ICP. Primero,
debemos definir algunos parmetros.
A partir de este momento se har uso de esta simbologa:
-
: Barrido actual.
-
: Barrido de referencia.
-
.
-
.
-
mediante la transformacin
aplicada en
, es decir,
.
Una vez que se hayan aplicado las correspondencias se buscar el error cometido.
El error cometido, en ICP, tiene relacin con el valor de la distancia eucldea entre
las asociaciones. Concretamente el error (
= < (5.1)
La segunda condicin es determinar el nmero mximo de iteraciones por si se
cumple el caso de no encontrar convergencia, ya que la ejecucin no finalizara en
ningn momento. Entonces, al definir un nmero mximo de iteraciones, el
algoritmo se para, definiendo as un estado de no convergencia.
A A A B
P C B C
X X P X X P = =
A
B
X
B
C
X
A
B C
P
Captulo 5
Scan Matching
Parte I
Conceptos Previos
32 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
Cdigo 5.1 - Seudocdigo de ICP
Entrada:
: Barrido actual
: Barrido de referencia
: Umbral de convergencia
Salida:
: Estimacin de transformacin
;
4 repetir
5 ;
// Asociacin de correspondencias
6
;
7
8 para
hacer
9
10 para
hacer
11 (
);
12 si entonces
13
14
15 fin_si
16 fin_para
17
18 fin_para
// Minimizacin
19
20
21 si entonces
22
23 fin_si
24 hasta
25
26 fin
Parte I
Conceptos Previos
Captulo 5
Scan Matching
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 33
En el primer bloque del Cdigo 5.1, Asociacin de correspondencias, se describe
desde la lnea 6 a la 18. En este intervalo se realizan las asociaciones entre los
puntos de ambos barridos. Para cada
. Estas instrucciones se
encuentran el en bucle definido entre las lneas 10 y 16, siendo la operacin de
encontrar la distancia eucldea, en la lnea 11.
Finalmente, se encuentra el bloque de Minimizacin comprendido en las lneas 19 y
23. El valor de
. Este parmetro
).
Y
: puntos del barrido
de referencia (
).
X
: Asociacin de
correspondencias.
Leyenda
Captulo 5
Scan Matching
Parte I
Conceptos Previos
34 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
En la primera iteracin (Ilustracin 5.2) se observa que la asociacin
tiene una
longitud considerable, lo que supone un valor de error elevado. Por los motivos
expuestos anteriormente, ICP vuelve a iterar hasta que encontrar un error mnimo
o hasta un determinado nmero de iteraciones.
Ilustracin 5.3 - Iteracin i+1
Ilustracin 5.4 - Iteracin i+2
En la Ilustracin 5.4 se puede observar que las iteraciones han llegado a su
convergencia dejando un error mnimo entre las muestras. En este momento se
obtiene el valor de la transformacin que ha hecho posible que a partir la situacin
de la Ilustracin 5.2 se obtenga el resultado mostrado en la Ilustracin 5.4.
3.2.1 Minimizacin del error
La expresin (5.2) es la que se quiere minimizar, es decir, se trata de
encontrar el valor de
(5.2)
Siendo
.
En la Ilustracin 5.5 se muestra que la expresin (5.2) no hay presencia de
mximos. Se ha utilizado los mismos valores tanto para como para , de
modo que el valor de la transformacin
La derivada del error (5.4) al igualarla a cero permite encontrar el valor de
en los que
se encuentran los puntos de inflexin, es decir los mximos y mnimos de la
funcin. La expresin (5.5) es la que proporciona estos valores.
( ) ( )
1
2
2
N
xi xi
i
x
p q
T
N
=
=
(5.5)
El obtener un solo punto de inflexin, significa que solo puede ser un
mximo o un mnimo. Entonces, haciendo las operaciones correspondientes
se llega a la conclusin que el error se minimiza en ese punto, ya que si
tiene un valor cada vez ms lejano no se cumple la minimizacin.
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 37
PARTE II.
TRABAJO REALIZADO
Una vez explicados los conceptos tericos de la Parte I, a los que se harn referencia a lo largo
de esta parte, se describir el trabajo realizado.
En esta parte se encontrarn con los diferentes mtodos implementados, junto con sus
correspondientes resultados y conclusiones. Adems se describen las simulaciones realizadas y
la interpretacin de las mismas para determinar la fiabilidad de cada mtodo.
Recordemos que la teora referente al sensor y al robot se encuentra en los Captulo 2 y
Captulo 3, respectivamente. Por otra parte, cada mtodo tiene su correspondiente captulo.
Por lo que afecta a la correlacin se encuentra en el Captulo 4 e ICP en el Captulo 5.
Los entornos de programacin utilizados son los siguientes: C (para acceder al sensor), Matlab
(para el desarrollo del conjunto funciones para estudiar los mtodos) y MelfaBasic IV (para la
programacin del robot).
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 39
Captulo 6.
Sensor lser
En este apartado se explicarn los motivos de la eleccin del tipo de sensor con el que se ha
trabajado, adems de sus caractersticas.
1. Seleccin del sensor de trabajo
Vistos los tipos de sensores que podran resultar interesantes a la hora de la realizacin
del proyecto en la parte de teora (pgina 14), el que resulta ms adecuado, depende del
entorno con el que se quiera trabajar. En un principio el proyecto estaba enfocado a dar
solucin a un problema de gestin de escombros de una empresa recicladora. Al tratar
con cristales, materiales de plstico y residuos de obra, resultara ms adecuado trabajar
con un sensor ultrasnico. Por otra parte, el choque de estos materiales puede producir
ruidos muy fuertes, resultando inconveniente para este tipo de sensor, ya que pueden
ocasionar interferencias. Adems, recordando la explicacin visual de la pgina 18, si se
trabaja con materiales que irradian calor (como hierro expuesto al sol, por ejemplo), es
ms conveniente utilizar un sensor tipo lser en lugar de un ultrasnico, debido a que la
seal emitida por un ultrasnico se puede ver afectada por esta interferencia.
Adems de las razones explicadas existen otras referentes al tipo de funcionamiento. En
primer lugar, el sonido es una seal que se expande. Este hecho limita la resolucin
angular del ultrasnico a una decena de grados (30 por ejemplo), mientras que los
sensores lser tienen una resolucin angular de fracciones de grados (0.5 por ejemplo).
Esto significa que se obtienen ms medidas por barrido mediante un sensor lser frente a
un ultrasnico. Otro motivo por el que se escoge el sensor lser es la velocidad de
propagacin de las seales emitidas por los sensores. El lser trabaja con haces de luz que
se propagan ms rpido que el sonido emitido por los ultrasnicos.
Por otra parte, dado que la Escola Politcnica Superior de la UIB (Universitat de les Illes
Balears) proporcionaba el sensor lser, nos decantamos por su uso.
2. Informacin tcnica del sensor (HOKUYO)
El sensor con el que se ha trabajado durante toda la evolucin del proyecto procede de la
marca HOKUYO [11]. Se trata de un sensor lser que trabaja con luz infrarroja (785nm)
considerado de seguridad clase 1, es decir, se trata de un sensor seguro al trabajar en
condiciones normales, sin producir ningn riesgo. Abarca un rea de 240 con un radio
Captulo 6
Sensor lser
Parte II
Trabajo realizado
40 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
mximo de 4 metros y un mnimo de 40 milmetros. Tiene una resolucin angular de
0.36, realizando un barrido de 1024 pasos en 100 ms aproximadamente. Se recuerda
que una lectura en este contexto es el conjunto de barridos realizados para la medicin
durante todo el desplazamiento.
La resolucin es de 1mm, mientras que su precisin es de 10mm para rangos de medida
entre 20 y 1000 mm, y un 1% para rangos superiores comprendidos en el rea de alcance.
Se conecta mediante la interfaz USB 2.0 (Full Speed 12Mbps). Puede trabajar con
temperaturas comprendidas entre los -25 ~ 75 C.
Todo el material necesario para acceder al sensor como informacin tcnica, programas
de ejemplo y herramientas de acceso como controladores estn disponibles en la web de
HOKUYO [11].
Ilustracin 6.1 - Especificaciones tcnicas
3. Acceso al lser
En primer lugar, se debe entender el comportamiento del sensor con el que se pretende
trabajar. Por este motivo, los primeros pasos corresponden al acceso al lser. Se dispone
de un software grfico proporcionado por el fabricante en el que se puede ver en tiempo
real las mediciones del entorno. Tambin, se proporcionan cdigos de ejemplo en
lenguaje C para realizar capturas desde el sensor [12].
240 de rea de
medicin
120 de ngulo
muerto
0.36 de resolucin angular
100ms/vuelta
Paso
Parte II
Trabajo realizado
Captulo 6
Sensor lser
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 41
3.1 Software grfico
El software grfico proporcionado por HOKUYO es muy til para entender el
funcionamiento del sensor. Adems de tener una interfaz accesible para el usuario
(Ilustracin 6.2), permite la captura de un entorno mediante la seleccin del botn
Connect de la parte superior, y observar las mediciones en tiempo real.
Ilustracin 6.2 - Programa grfico
La informacin mostrada en la Ilustracin 6.2 es la captura del entorno mostrado en
la Ilustracin 6.3 mediante la interfaz grfica. Cada punto rojo supone una distancia
para un ngulo concreto (cada medida se ve representada por un haz de color azul).
Captulo 6
Sensor lser
Parte II
Trabajo realizado
42 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
Ilustracin 6.3 - Captura del entorno de representacin de la Ilustracin 6.2
3.2 Cdigo C
Los ejemplos que proporciona el fabricante en cdigo C son tiles para entender la
programacin de obtencin de datos, al igual que su modo de acceso. En estos
ejemplos se pueden encontrar diferentes maneras de trabajar, aunque para este
proyecto interesa aqul que sea capaz de obtener informacin del entorno hasta
que el usuario indique el final. La seleccin de este programa se encuentra en el
siguiente punto.
4. Obtencin de datos
Como se ha mencionado en el punto anterior, se tiene acceso a los cdigos de ejemplo
dados por el fabricante. De la variedad de cdigos, se escogi aquel que proporcionara
medidas continuamente. Este se llama md_scan, el problema es que realizaba un nmero
determinados de barridos. La informacin captada se mostraba por pantalla mediante
MS2. Esto significaba que la informacin no se guardaba en ningn fichero, de manera
que no permita tratar las medidas offline. La solucin a esto fue crear un bucle en el que
si no se daba la condicin de pulsacin de una tecla por parte del usuario (intro
normalmente). De esta manera, el programa se ejecuta guardando los barridos en una
sola lectura, es decir en un archivo y con el nmero de barridos sin especificar.
4.1 Fichero de datos
Los datos bsicos que necesitamos obtener del sensor corresponden al ngulo y a la
distancia. Estos se indican con el nmero de paso y milmetros, respectivamente.
Otro parmetro que resultaba interesante en la salida es el tiempo de barrido,
Parte II
Trabajo realizado
Captulo 6
Sensor lser
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 43
adems de saber el rango de los pasos en el que se trabaja. As pues, el fichero de
salida tiene la estructura mostrada en Ilustracin 6.4.
Ilustracin 6.4 - Fichero de salida de una lectura
La estructura del fichero de salida del cdigo C necesita ser estrictamente la
mostrada en la Ilustracin 6.4, para que el programa diseado en MATLAB sea
capaz de interpretarlo correctamente. Para que se entienda bien Ilustracin 6.4
anterior es necesario esclarecer algunos comentarios al respecto.
El fichero se divide en:
- Parmetros generales (Rango de barrido: Paso inicial y paso final)
- Datos de barrido (paso, distancia y tiempo).
Los parmetros generales se introducen en la primera lnea del fichero de esta
manera: paso inicial, paso final y se aade un 0 para facilitar la lectura del fichero
desde MATLAB.
Despus de la primera lnea, se repite el siguiente patrn, explicado solo para el
caso de un barrido: la primera columna corresponde al nmero de pasos realizados,
la segunda a la distancia medida y la tercera al tiempo de barrido. Este ltimo solo
aparece al llegar al ltimo paso del barrido, los anteriores se rellenan con 0. A partir
de aqu, si se aaden ms barridos, se colocarn debajo siguiendo la misma
estructura mencionada, sin volver a aadir los parmetros generales.
Generales
Barrido 1
Barrido 2
0
0
0
0
0
0
0
0
Tiempo de barrido
Tiempo de barrido
0
Paso inicial
Paso 0
Paso 1
Paso 2
Paso final
Paso 0
Paso 1
Paso 2
Paso final
Paso final
Distancia
Distancia
Distancia
Distancia
Distancia
Distancia
Distancia
Distancia
Distancia
Distancia
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 45
Captulo 7.
Robot para las simulaciones
En este captulo se encuentra la eleccin del robot a utilizar para este proyecto, adems de sus
caractersticas y modo de acceso, a partir de las especificaciones y opciones se encuentran
explicadas en la parte de teora en el Captulo 3. Se recuerda que se hace uso de conceptos ya
vistos en la parte de teora de sensores (Captulo 2).
1. Seleccin del robot
As como se explica en el Captulo 3, es necesario obtener medidas a partir de velocidades
y desplazamientos conocidos. De esta manera, se puede realizar un estudio de los
mtodos utilizado para la obtencin de la velocidad a partir de medidas del sensor.
El uso de un manipulador robot permite conocer la posicin en todo momento con mucha
precisin y poco error, adems de permitir el control y configuracin de sus movimientos.
Por este motivo se har servir la informacin del manipulador como ground truth (ver
pgina 9), ya sea mediante la distancia recorrida, el desplazamiento o cualquier
informacin procedente del mismo. Adems de hacer uso del robot es importante que el
medio en el que se realizan las simulaciones est libre de perturbaciones externas que
puedan afectar a las mediciones.
As pues, el uso del robot nos proporciona un desplazamiento desde el punto de vista del
sensor, ya que es el este es el que se desplaza y no el objeto a analizar. En el caso real el
sensor est fijo.
2. Informacin tcnica del robot (Mitsubishi RV-6S)
El robot Mitsubishi RV-6S utiliza el software COSIROP, el cual nos permite interactuar con
el robot mediante la programacin de instrucciones en MELFA BASIC IV y tambin
mediante comandos del entorno grfico de este mismo software. Las instrucciones se
envan a la controladora por bus puerto serie RS-232.
La controladora realiza la funcin de interpretar el cdigo introducido por el usuario. Esta
se encarga de hacer los correspondientes clculos, ejecucin de instrucciones y deteccin
de errores. Si no hay errores, se ejecutan las instrucciones en el robot. La controladora,
adems, dispone de una botonera para programacin guiada. En la Ilustracin 7.1 se
muestra el diagrama de conexin.
Captulo 7
Robot para las simulaciones
Parte II
Trabajo realizado
46 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
Ilustracin 7.1 - Diagrama de conexin RV-6S
2.1 Caractersticas RV-6S
Ilustracin 7.2 - Mitsubishi RV-6S
- 6 grados de libertad
- Repetibilidad
2
: 0.02 mm
- Velocidad mxima: 9300 mm/s
- Peso: 58 Kg
- Alcance: 696 mm (sin extremo
terminal)
3. Acceso al robot
A continuacin se describirn las funciones necesarias para programar los movimientos
implementados en las pruebas.
3.1 Melfa Basic IV
El lenguaje de programacin del robot es Melfa Basic IV. Este lenguaje es bastante
intuitivo aunque elaborado, ya que cada lnea corresponda a una instruccin
ejecutada por el robot.
Las funciones bsicas necesarias para implementar los movimientos realizados para
las simulaciones son:
2
El concepto de Repetibilidad, entre otros, aparece descrito en la pgina 12.
PC con software
COSIROP
Controladora y botonera Robot Mitsubishi RV-6S
RS-232
Parte II
Trabajo realizado
Captulo 7
Robot para las simulaciones
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 47
Instruccin Consecuencia
TOOL Define la configuracin del robot.
SERVO ON/OFF Instrucciones para controlar los motores del robot.
OVRD Porcentaje til de velocidad programado.
SPD Velocidad en mm/s.
MVS Realizar movimiento lineal entre dos posiciones.
ACCEL Define el porcentaje de aceleracin.
MOV
Realizar movimiento entre dos posiciones por interpolacin
punto a punto hasta llegar a la posicin de destino.
WHILE/WEND Bucle condicional.
IF/ENDIF Instruccin condicional.
END Fin del programa.
Tabla 7.1 - Instrucciones Melfa Basic IV
Aclaraciones
%Botonera Porcentaje til de velocidad controlado desde la botonera
Velocidad La velocidad del robot es SPD*OVRD*%Botonera
Tabla 7.2 - Aclaracin de instrucciones
3.2 Ejemplo de programacin
A partir de las instrucciones anteriores, se expondrn una serie de ejemplos.
- OVRD 80. Significa que la velocidad de ejecucin de las instrucciones de
desplazamiento que se realicen despus de esta instruccin se realizarn
con un 80% de efectividad de la velocidad indicada. Por ejemplo, si se
indica que la velocidad de trabajo es de 100mm/s y se aplica un OVRD 80
significa que la velocidad de desplazamiento ser de 80mm/s (80% de
100mm/s).
- SPD 100. Esta instruccin nos permite programar la velocidad que vamos a
utilizar en las posteriores instrucciones de desplazamiento. En este caso en
concreto a 100 mm/s.
- ACCEL 20, 50. Esta instruccin realiza la configuracin de la aceleracin y
desaceleracin son al 20% y 50% respectivamente. Este porcentaje se aplica
sobre el tiempo que tarda en realizar una aceleracin al 100% (0.2s).
Entonces, la aceleracin que se aplica es la relacin velocidad/tiempo. Por
ejemplo, si la aceleracin es de 20% significa que tiempo es 1 segundo, si la
velocidad es 200mm/s, la aceleracin resultante ser de 200mm/s
2
.
- %Botonera. Desde la botonera de la controladora se puede determinar otro
porcentaje de efectividad de la velocidad. Se aplica de la misma forma que
OVRD. La diferencia es que no es a nivel de cdigo, sino mediante
instrucciones externas.
- Velocidad de desplazamiento. La velocidad resultante despus de declarar
las instrucciones anteriores ser igual a la siguiente expresin:
Captulo 7
Robot para las simulaciones
Parte II
Trabajo realizado
48 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
(mm/s). Esto significa que, si
queremos que el desplazamiento del robot se realice a la velocidad indicada
en SPD, los valores OVRD debe ser 100, al igual que el porcentaje de la
botonera. De esta manera, el desplazamiento se realizar a la velocidad
indicada con la instruccin SPD.
3.3 Programas usados para las simulaciones
Para realizar las simulaciones se han utilizado tres tipos de movimientos:
- Movimiento continuo de inicio a fin.
- Movimiento continuo en tramos.
- Movimiento acelerado.
La configuracin de estos movimientos tienen como objetivo poder simular las
condiciones que se encuentran en el mundo real. A continuacin se muestra un
ejemplo del formato de los programas de control que se han aplicado.
En primer lugar, se encuentra el formato comn para todos ellos en el Cdigo 7.1. A
partir del formato comn, se exponen nicamente las partes relacionadas con los
diferentes tipos de desplazamientos. Su utilizacin es tan sencilla como insertar el
fragmento de cdigo en la parte indicada en el Cdigo 7.1 de ejemplo (Diferentes
tipos de desplazamientos).
Cdigo 7.1 - Parte comn
3.3.1 Movimiento constante de principio a fin
La ejecucin del Cdigo 7.2 realiza un movimiento continuo desde la
posicin inicial a la posicin final con la velocidad programada. En el
10 TOOL(0,0,0,0,0,0)
20 SPD 50
30 OVRD 20
40 MOV PINI
50 DLY 5 '--- Esperar 5 segundos
.
.
.
.
280 DLY 5 '--- Esperar 5 segundos
290 SERVO OFF '--- Apagar los motores
300 END
Se realiza un
desplazamiento del
robot a una posicin
inicial yendo a una
velocidad reducida.
Diferentes tipos de
desplazamientos
Fin del programa
Parte II
Trabajo realizado
Captulo 7
Robot para las simulaciones
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 49
ejemplo mostrado, concretamente se desplaza a una velocidad de
400mm/s. Al no aparecer la instruccin ACCEL la aceleracin y
desaceleracin alcanzadas son mximas.
Cdigo 7.2 - Movimiento constante
3.3.2 Movimiento Discontinuo
En el caso del movimiento discontinuo, se realizan dos desplazamientos, a
la misma velocidad, con una parada entre ellos de un tiempo determinado,
en este caso 3 segundos. El cdigo para realizar este desplazamiento se
encuentra en el Cdigo 7.3.
Cdigo 7.3 - Movimiento discontinuo
3.3.3 Movimiento acelerado
Finalmente, en el Cdigo 7.4 se realiza una combinacin entre un
movimiento discontinuo (Cdigo 7.3) y movimiento acelerado. La
instruccin ACCEL 10,50 aplica una aceleracin del 10% y una
desaceleracin del 50%.
70 '-------------INICIALIZACIONES
80 OVRD 100
90 JOVRD 100
100
110 SPD 400 '---- [mm/s]
120 '-------------MOVER hasta FINAL recta
130 MVS PFIN
70 '-------------INICIALIZACIONES
80 OVRD 100
90 JOVRD 100
100
110 SPD 400 '---- [mm/s]
120 '-------------MOVER ENMEDIO Y ESPERAR
130 MVS PMEDIO
140 DLY 3 '------------- Esperar 3 segundos
150
160 '-------------MOVER A FINAL
170 MVS PFIN
Captulo 7
Robot para las simulaciones
Parte II
Trabajo realizado
50 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
Y
X
Z
Cdigo 7.4 - Movimiento acelerado
4. Obtencin de la posicin. Aceleracin
4.1 Introduccin
Para el caso de simulaciones con aceleracin, no se sabe a priori cul es la velocidad
de desplazamiento en cada instante de tiempo. Entonces, para la determinacin del
desplazamiento realizado por el robot es a partir de la obtencin de posiciones del
mismo, realizando una comunicacin por puerto serie (RS-232) mediante el uso del
Hyperterminal.
Este proceso es interesante para determinar la fiabilidad de los algoritmos
implementados mediante ground truth. De esta manera, se determina la calidad de
los resultados obtenidos a partir del desplazamiento realizado por el manipulador,
adems de comparar con la distancia recorrida (programada).
4.2 Cdigo de obtencin de posiciones
Existe la posibilidad de comunicarse con el robot de
manera que nos transmita la coordenada que queremos
analizar. En este caso, el robot se desplazaba en el eje Y
con un movimiento recto, es decir, no se alteraban los ejes
X y Z.
Sabiendo que el desplazamiento son 772mm sobre el eje
y los valores de las coordenadas restantes no se ven
alterados durante todo el desplazamiento, slo hace falta
obtener las posiciones referentes al eje . El Cdigo 7.5
nos permite obtener los valores para este desplazamiento.
Por lo que respecta al cdigo, la variable P_CURR viene
definida y su funcin es proporcionar la posicin
instantnea del robot.
80 '-------------INICIALIZACIONES
90 OVRD 100
100 JOVRD 100
110
120 SPD 900 '---- [mm/s]
130 ACCEL 10,50 '---- % Aceleracin, desaceleracin
140 '-------------MOVER ENMEDIO Y ESPERAR
150 MVS PMEDIO
160 DLY 3 '------------- Esperar 3 segundos
170
180 '-------------MOVER A FINAL
190 MVS PFIN
Parte II
Trabajo realizado
Captulo 7
Robot para las simulaciones
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 51
Cdigo 7.5 - Obtencin de la posicin del elemento terminal del robot por puerto serie
Al mimo tiempo que se ejecuta el desplazamiento, tambin se debe ejecutar el
programa para capturar las mediciones proporcionadas por el sensor, es decir, el
Cdigo 7.1 junto con el Cdigo 7.4.
El robot no proporciona informacin respecto al tiempo, sino el lser, ya que no hay
otra forma ms precisa de obtenerlo. Por este motivo, es imprescindible que la
ejecucin del conjunto de programas se realice lo ms sincronizada posible, tanto el
inicio como el fin, ya que para determinar la velocidad es necesario tener en cuenta
el tiempo.
4.3 Explicacin para obtener las posiciones
En primer lugar, es necesario ejecutar los programas referentes al robot (obtencin
de posicin y desplazamiento acelerado) desde la controladora y as poder controlar
la ejecucin de manera simultnea. Esto significa que los programas deben estar
presentes en la controladora del robot. Para poder cargar diferentes programas se
utilizan los llamados slots. Se define slot a aquella posicin de la memoria de la
controladora en la que se pueden almacenar cdigos. Entonces, cada cdigo se
almacena en un slot diferente.
Por otra parte, necesitamos almacenar los datos que se reciben por el puerto serie
(RS-232), en este momento es cuando se hace uso del Hyperterminal. Se trata de un
20 DEF INTE ENABLE '---- Declaracin de variable ENABLE
30 DEF INTE IDX '---- Declaracin de variable IDX
40 OPEN "COM1:" AS #1 '---- Comunicacin por puerto serie
50 '---- INICIALIZACIONES
60 IDX=0
70 ENABLE=1 '---- Habilitar lectura
80 '---- Captacin de lecturas
90 WHILE ENABLE
100 PRINT #1, P_CURR.Y '---- OBTENER valor en eje Y
110 DLY 0.02 '---- Pausa de 0.02 segundos entre lecturas
120 PRINT #1 '---- Cambio de lnea
130 '---- Crear condicin de fin de lectura.
140 'Antes de finalizar la comunicacin, se deben tener 30
150 'valores de la posicin final. De esta manera se
160 'asegura tener en cuenta el valor final.
170 IF P_CURR.Y=PFIN.Y THEN
180 IDX=IDX+1
190 IF IDX=30 THEN
200 ENABLE=0
210 ENDIF
220 ENDIF
230 WEND
240 CLOSE #1 '---- Fin comunicacin
250 END
Captulo 7
Robot para las simulaciones
Parte II
Trabajo realizado
52 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
software que nos permite leer la informacin del puerto serie. Entonces, al habilitar
la escucha del bus, se obtienen los datos que viajan por la interfaz. Esta informacin
se puede almacenar en ficheros de datos (.txt). Para el proyecto se ha utilizado esta
ltima funcin, para tratar posteriormente la informacin obtenida y compararla
con los datos calculados.
4.3.1 Mtodo de ejecucin en paralelo
Para este apartado se parte con la suposicin que los programas se
encuentran en la controladora del robot.
Recordando la ejecucin del desplazamiento, Cdigo 7.1, concretamente en
la instruccin de la lnea 50, hay un tiempo de espera de 5 segundos. Los
programas de la controladora se inician mediante el botn START de la
controladora. Durante el tiempo de espera se deben inicializar los
programas referentes a la lectura del puerto serie (Hyperterminal) y la
obtencin de las mediciones por parte del sensor (md_scan.exe).
Para la obtencin de la informacin del puerto serie se realiza mediante la
instruccin Obtener texto (Hyperterminal), que nos permite guardar la
conversacin en un fichero de texto. Por otra parte se debe iniciar el
ejecutable para la obtencin de las medidas por parte del sensor
(md_scan.exe).
Para terminar con la captacin de informacin de la posicin del robot,
basta con seleccionar Detener (Hyperterminal). La detencin de la captura
de medidas por parte del sensor se realiza finalizando la ejecucin de
md_scan mediante la pulsacin de una tecla, por ejemplo, intro.
En resumen, el Hyperterminal y md_scan.exe se deben ejecutar durante el
mismo periodo de tiempo, mientras el robot realiza el desplazamiento
configurado.
4.4 Representacin de las posiciones obtenidas
A partir del proceso descrito en el apartado anterior, se obtiene un fichero de las
posiciones del robot. Posteriormente se har una comparativa experimental con los
valores proporcionados por los mtodos aplicados y las posiciones del robot como
referencia (ground truth).
Para este apartado es conveniente tener en cuenta las explicaciones del Captulo 9
concretamente el apartado 1 (pgina 61) para entender la estructura de la
informacin que se utilizar de referencia (el tiempo proporcionado por el sensor).
La representacin de los desplazamientos realizados por el robot se realiza
mediante el fichero guardado mediante el Hyperterminal. Este fichero contiene las
posiciones de desplazamiento, mientras que el fichero del sensor proporcionar el
tiempo. Resulta que ambos ficheros no comparten la misma cantidad de
Parte II
Trabajo realizado
Captulo 7
Robot para las simulaciones
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 53
informacin debido al tiempo de obtencin de datos. En este caso, el sensor
obtiene una muestra alrededor de unos 100ms, mientras que el robot nos
proporciona una medida cada 20ms aproximadamente. Esto significa que se
obtendrn ms medidas por parte del robot que del sensor. Por este motivo, se
deben hacer adaptaciones en las mediciones del robot para que ambas mediciones
compartan la misma cantidad de datos.
Adaptar las medidas del robot consiste en la creacin de un vector (Vector Robot)
de igual magnitud del vector de tiempo proporcionado por el sensor. De esta
manera, para saber cuantas medidas proporcionadas por el robot corresponden a
cada valor de tiempo se realiza una divisin. El resultado de dividir el conjunto de
medidas entre el nmero de incrementos de tiempo. Este el valor determina el
nmero de medidas que se asociarn a cada una de las posiciones del nuevo vector
(Vector Robot). Cada agrupacin de las muestras captadas por el bus serie, se
realiza mediante la suma de los mdulos de la distancia recorrida entre dos
capturas consecutivas. En la Ilustracin 7.3 se muestra un ejemplo de esta
adaptacin. Se ha supuesto que el vector de tiempo tiene una longitud igual a la
mitad de la longitud del vector de mdulos, por esa razn corresponden dos
desplazamientos por cada tiempo, reflejado en el Vector Robot.
Ilustracin 7.3 - Ejemplo de agrupacin de desplazamientos del robot
Una vez se disponen los vectores con las mismas dimensiones se trata de proceder
con el mismo mtodo que se ha hecho en las otras pruebas. Consiste en hacer la
divisin de cada incremento de espacio entre cada incremento de tiempo. De esta
manera se obtiene el conjunto de velocidades, correspondiendo cada valor a un
barrido.
Posiciones (eje Y)
proporcionado por el Robot
[mm]
-35 -31 -25 -22 -14 -10 -5 1
Distancia eucldea (mdulo
por parejas) [mm]
4 3 4
Vector Robot
(Redistribucin segn la
dimensin del vector
tiempo) [mm]
10 9
6 8 6 5
15
8
11 14
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 55
Captulo 8.
Entornos muestreados
En este captulo se mostrarn los entornos escaneados con el sensor mediante la ayuda del
robot para simular los desplazamientos.
Se han realizado 10 lecturas (conjunto de barridos realizados a lo largo del desplazamiento
para obtener el perfil del entorno) por cada velocidad y entorno, representadas como xx en el
nombre de los ficheros. Esto nos permite realizar un estudio de los valores obtenidos y la
fiabilidad de los mtodos. A partir de estas configuraciones se intenta simular desplazamientos
reales.
En este proyecto no se ha trabajado con lecturas reales, es decir, sobre camiones. Por una
parte se debe al alcance del sensor, ya que no tiene el suficiente para trabajar con las
dimensiones de estos cuerpos. Por otra parte, el objetivo principal consiste en realizar un
estudio sobre la posibilidad de aplicar los mtodos propuestos para calcular la velocidad de un
objeto.
Desde la Ilustracin 8.1 hasta la Ilustracin 8.6 se muestran los entornos de las simulaciones
realizadas. A lo largo del documento se harn referencia a ellas. Los desplazamientos de las
simulaciones son el resultado de aplicar los cdigos del Captulo 7.
Todos los ficheros presentes en este captulo se encuentran en el CD complementario en la
carpeta Lecturas.
1. Entorno 1
Ilustracin 8.1 - Representacin del Entorno 1
Captulo 8
Entornos muestreados
Parte II
Trabajo realizado
56 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
Para las simulaciones del Entorno 1 se ha configurado un desplazamiento continuo a
velocidad constante de principio a fin del trayecto programado. A modo de
comprobacin, se introdujo una mochila para obtener el perfil del objeto durante el
desplazamiento. Posteriormente se aplican los mtodos para determinar el
desplazamiento a partir de estos perfiles.
Los ficheros de la Tabla 8.1 son los obtenidos mediante la configuracin mostrada en la
Ilustracin 8.1.
Fichero (.txt) Velocidad [mm/s]
Robot_01_xx 100
Robot_02_xx 200
Robot_03_xx 300
Robot_04_xx 400
Robot_05_xx 500
Robot_06_xx 600
Tabla 8.1 - Velocidades de desplazamiento del Entorno 1
2. Entorno 2
Ilustracin 8.2 - Representacin del Entorno 2
En Entorno 2 se ha utilizado diferente material. Para semejar al mximo el tipo de
materiales que transportan los camiones (material de demolicin y obra) se han escogido
cartn, madera y tela. Al igual que en el Entorno 1, se ha configurado un desplazamiento
continuo a lo largo de la lectura a velocidad constante.
Los ficheros que aparecen en la Tabla 8.2 se han obtenido mediante estas lecturas.
Fichero (.txt) Velocidad [mm/s]
Robot_07_xx 100
Robot_08_xx 200
Robot_09_xx 300
Parte II
Trabajo realizado
Captulo 8
Entornos muestreados
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 57
Robot_10_xx 400
Robot_11_xx 500
Robot_12_xx 600
Robot_13_xx 700
Robot_14_xx 800
Robot_15_xx 900
Tabla 8.2 - Velocidades de desplazamiento del Entorno 2
3. Entorno 3
Ilustracin 8.3 - Representacin del Entorno 3
La configuracin que se presenta en la Ilustracin 8.3 contiene desplazamientos ms
reales que los anteriormente citados. Para este caso el desplazamiento que se ha
configurado consiste en realizar desplazamientos a velocidad constante, pero a la mitad
del trayecto se realiza una parada durante un tiempo
3
. El material utilizado es cartn.
Para este entorno se han obtenido los siguientes ficheros:
Fichero (.txt) Velocidad [mm/s]
Robot_16_xx 100
Robot_17_xx 200
Robot_18_xx 300
Robot_19_xx 400
Robot_20_xx 500
Robot_21_xx 600
Robot_22_xx 700
Robot_23_xx 800
Robot_24_xx 900
Tabla 8.3 - Velocidades de desplazamiento del Entorno 3
3
Dentro del CD proporcionado, en la misma carpeta de Lecturas, se encuentra un video del movimiento
realizado, Lecturas Robot 16-24.mp4
Captulo 8
Entornos muestreados
Parte II
Trabajo realizado
58 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
4. Entorno 4
Ilustracin 8.4 - Representacin del Entorno 4
La Ilustracin 8.4 muestra el material utilizado para el Entorno 4. Se trata de material de
reciclaje: plstico, cristal, cartn, hierro y madera. Estos materiales producen distorsiones
en las medidas del sensor, as como se explican en la parte de teora (pgina 16). A modo
de curiosidad se han realizado algunas pruebas para observar los resultados.
La configuracin utilizada realiza un desplazamiento continuo a velocidad constante. En la
se muestran los archivos correspondientes a estas simulaciones.
Fichero (.txt) Velocidad [mm/s]
Robot_25_xx 1000
Robot_26_xx 600
Tabla 8.4 - Velocidades de desplazamiento del Entorno 4
5. Entorno 5
Ilustracin 8.5 - Representacin del Entorno 5
En el Entorno 5 se ha realizado un desplazamiento continuo con gran velocidad constante.
En la Tabla 8.5 se muestran los ficheros obtenidos.
Fichero (.txt) Velocidad [mm/s]
Parte II
Trabajo realizado
Captulo 8
Entornos muestreados
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 59
Robot_27_xx 9000
Tabla 8.5 - Velocidades de desplazamiento del Entorno 5
6. Entorno 6
Ilustracin 8.6 - Representacin del Entorno 6
La simulacin del Entorno 6, Ilustracin 8.6, es la ms real de todas. Se realiza un
desplazamiento con aceleracin y desaceleracin, junto con una parada durante el
trayecto. Se ha configurado el mismo desplazamiento que se muestra en el vdeo del
Entorno 3 con aceleracin. Como el robot no proporciona informacin sobre la velocidad
instantnea de desplazamiento, se hace la comparacin con las posiciones del robot. Este
proceso se explica en el Captulo 7 a partir de la pgina 50. Para determinar la fiabilidad
de los clculos, se obtienen dos tipos de medidas, las proporcionadas por el sensor y las
posiciones del robot. Estos ficheros se muestran en la Tabla 8.6.
Ficheros (.txt) Velocidad [mm/s]
Accel_laser_01_xx
Sin determinar
Accel_pos_01_xx
Tabla 8.6 - Velocidades de desplazamiento del Entorno 6
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 61
Captulo 9.
Pre-procesamiento de los datos
A partir de las medidas obtenidas por el sensor en forma de fichero de texto (*.txt), se deben
tratar previamente para que sea ms prctico trabajar con los datos.
1. Reordenacin del fichero
Inicialmente, los ficheros de datos que se obtienen del sensor tienen una estructura como
la que se muestra en la Ilustracin 9.1. Al cargar los ficheros en MATLAB, se obtiene una
matriz de 3 columnas (paso, distancia y tiempo). Para cada N barridos que comprenden
una lectura se colocan de forma secuencial (donde cada barrido tiene un nmero de
pasos realizados). Para que sea ms fcil trabajar con estos datos se han reordenado. De
esta manera, se obtiene el tiempo en un vector y la distancia en una matriz. Ahora cada
barrido de la lectura corresponde a una columna de esta matriz, mientras que cada paso a
una fila. En la Ilustracin 9.1 se puede observar la estructura de los datos de entrada.
Posteriormente, al reordenar los datos, se obtiene una matriz para las distancias
(Ilustracin 9.2) y el vector de tiempo (Ilustracin 9.3).
Ilustracin 9.1 - Matriz de datos sin procesar de una lectura
Barrido i
Barrido i+1
hasta N
barridos
Tiempo [ms]
0
0
0
0
0
0
0
Tiempo de barrido
Tiempo de barrido
0
Paso
0
1
2
Paso final
0
1
2
Paso final
Distancia [mm]
Distancia
Distancia
Distancia
Distancia
Distancia
Distancia
Distancia
Distancia
Distancia
Distancia
Captulo 9
Pre-procesamiento de los datos
Parte II
Trabajo realizado
62 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
Ilustracin 9.2 - Matriz de distancias
Ilustracin 9.3 - Reordenacin del tiempo
El motivo de esta reordenacin del fichero de entrada, se debe a que en algunas
ocasiones se obtienen barridos errneos (sin datos). Entonces, estos barridos que no
contienen informacin se deben eliminar.
Al reordenar la estructura de los datos facilita la eliminacin de los barridos errneos, ya
que cada barrido se encuentra en forma de columna, es decir, toda la columna es el
mismo barrido. En cuanto al tiempo de ese barrido eliminado, se debe tener en cuenta, ya
que no significa que el tiempo no haya transcurrido. Por lo tanto, el tiempo se reparte por
igual a los barridos restantes. Posteriormente, se quita la posicin del vector de tiempo
correspondiente al barrido eliminado. De esta manera, siempre tenemos una
correspondencia entre el tiempo y la distancia medida en cada barrido.
2. Filtrado de la seal de entrada
Anteriores proyectos que utilizaron el mismo sensor lser, mostraron su comportamiento
frente a diferentes tipos de materiales. Debido a que las lecturas pueden contener ruido,
es conveniente aplicar algn tipo de filtrado para reducir sus efectos. Entre las posibles
tcnicas disponibles se ha seleccionado el filtro gaussiano. La caracterstica que tiene el
filtro gaussiano es el suavizado de la informacin. En la Ilustracin 9.4 se muestra un
ejemplo al aplicar un filtro gaussiano.
En el filtro gaussiano aparece el valor mximo en el pxel central y disminuye hacia los
extremos. La disminucin de los valores es ms rpida cuanto menor sea el parmetro de
desviacin tpica (o). El resultado es un conjunto de valores comprendidos entre 0 y 1.
Realizar un suavizado en la imagen, nos permite eliminar informacin que salga fuera del
rango que comprenden los valores de los vecinos. Aunque se pierda un poco de
informacin, resulta una mejora a la hora de tratar los datos en los pasos aplicados
posteriormente.
Paso 0
Vector
tiempo
Paso 1
Barrido 1
Barrido 2
Paso final
Barrido 3
Barrido 1
Barrido N
Barrido 2
Barrido 3
Tiempo
Barrido N
Tiempo
Tiempo
Tiempo
Distancia Distancia Distancia Distancia
Distancia
Distancia Distancia
Distancia
Distancia
Distancia
Distancia
Distancia
Parte II
Trabajo realizado
Captulo 9
Pre-procesamiento de los datos
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 63
Ilustracin 9.4 - Efecto de suavizado (Fuente: [12])
3. Transformacin a coordenadas cartesianas
Como se vio en el Captulo 6, las distancias que provienen del lser estn en coordenadas
polares, es decir, se nos proporciona el nmero de paso y la distancia, sabiendo que cada
paso corresponde a 0.36. Para poder representar el entorno y analizarlo debemos
transformar las distancias polares (Ilustracin 9.5) en distancias cartesianas (Ilustracin
9.6).
Las coordenadas polares hacen referencia a distancia y ngulo, con lo que se representan
mediante D r
o Z
= . Para transformar esta distancia a coordenadas cartesianas, es decir,
trabajar con las proyecciones sobre los ejes e , se aplica trigonometra. Entonces para
pasar a coordenadas cartesianas se aplican las ecuaciones (9.1) y (9.2).
Al transformar las distancias a coordenadas cartesianas se obtienen dos matrices, una
para los valores y otra para . Estas matrices comparten la misma estructura que la
mostrada en la Ilustracin 9.2 sustituyendo Distancia por el valor en la coordenada
correspondiente, es decir, cada columna se corresponde a un barrido y cada fila a un
paso.
( ) cos
x
D r o = (9.1)
( ) sin
y
D r o = (9.2)
Captulo 9
Pre-procesamiento de los datos
Parte II
Trabajo realizado
64 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
Ilustracin 9.5 - Coordenadas polares
Ilustracin 9.6 - Coordenadas cartesianas
3.1 Unir barridos
Se ha programado una funcin especial que permite al usuario considerar un
nmero determinado de barridos (Ilustracin 9.7) como el mismo (Ilustracin 9.8).
Esta opcin es aconsejable utilizarla si se sabe a priori que la velocidad de
desplazamiento es pequea. Lo que se pretende al agrupar es eliminar la mxima
cantidad de errores causados por la repetibilidad del sensor.
Estudios realizados por otros alumnos llegaron a la conclusin de que la manera de
tratar mejor los errores de medida es a partir de la mediana. La mediana sirve para
escoger el valor central de un conjunto de valores ordenados de menor a mayor.
Por ejemplo, si se tiene un conjunto de medidas como el que se muestra en la Tabla
9.1 el valor que ocupa la posicin central es el 20, marcado en rojo. Al quedarse con
este valor se han despreciado los valores extremos como pueden ser el 1 o el 100.
En cambio, si se hubiese utilizado la media se opera con todos los valores, sin quitar
los extremos. Entonces en lugar de obtener un 20 con la mediana, se obtendra un
28 con la media.
En conclusin, la mediana permite la eliminacin de posibles errores o distorsiones
por efectos de luz y vibraciones, entre otros. Por esta razn la agrupacin de las
medidas se realiza mediante la mediana de los valores considerados de un mismo
barrido.
Como se ha mencionado antes, se trata de un proceso parametrizable, donde el
usuario puede decide con cuantos valores trabajar adems. No se recomienda
aplicar este proceso para determinar desplazamientos de gran magnitud entre
barridos consecutivos, es decir a gran velocidad, ya que desprecia gran cantidad de
informacin que puede resultar fundamental para el clculo de la velocidad.
1 5 15 20 25 30 100
Tabla 9.1 - Ejemplo mediana
Coordenadas polares Coordenadas
cartesianas
Y
Y
X
X
r
Distancia x
o
Distancia y
Parte II
Trabajo realizado
Captulo 9
Pre-procesamiento de los datos
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 65
Ilustracin 9.7 - Ejemplo antes de agrupar
Ilustracin 9.8 - Ejemplo despus de agrupar
4. Eliminacin de interferencias
Una vez se disponen de los valores en coordenadas cartesianas y se han eliminado los
barridos sin informacin (todos los valores igual a 0), se buscan aquellas lecturas que
pueden contener errores. Los errores a los que se hace referencia corresponden a valores
incoherentes dentro del entorno medido. Por una parte, la obtencin de una distancia
superior a la altura del sensor, es decir, medidas por debajo del suelo. Por otra parte,
obtener distancias por encima del sensor, es decir, valores de inferiores a 0, no son
deseables, ya que solo interesan los cambios por debajo del sensor. Entonces, debido a
que estos valores pueden contribuir a errores en los clculos se deben eliminar.
4.1 Proceso de eliminacin
En primer lugar, se modifican aquellos valores considerados errneos por valores
negativos, en este caso -1. Posteriormente, debido que se necesita tener las
mismas dimensiones entre barridos consecutivos, se eliminan las filas que todos los
barridos contengan valores negativos, as como se muestra en la Ilustracin 9.9. En
algunas ocasiones, como muestra la figura mencionada, quedan algunos valores
negativos. Estos valores se deben a las distancias superiores a la altura del sensor,
ya que no siempre se obtienen en todos los barridos. Entonces, estos valores -1
reciben un trato especial. En el caso de scan matching no se filtran, ya que no
suponen ningn problema al ser una minora. Por lo que afecta a la correlacin, se
tratan como posiciones vacas que posteriormente se rellenan.
Finalmente, se procede al tratamiento de la informacin mediante los diferentes
mtodos: Correlacin, ICP 2D e ICP 1D.
Sensor Sensor
Paso i Paso i
Barrido N
Mediana
de las
anteriores
medidas
Barrido N+1
Barrido N+2
Barrido N+3
Captulo 9
Pre-procesamiento de los datos
Parte II
Trabajo realizado
66 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
Ilustracin 9.9 - Ejemplo de eliminacin de interferencias
4
4
Los ejes de estas figuras estn referidas al sensor, no al robot.
Valores de Y = -1
Informacin no deseable
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 67
Captulo 10.
Correlacin
A lo largo de este captulo se explicarn las adaptaciones y procesos requeridos para aplicar la
correlacin. Los conceptos tericos asociados a este mtodo se explican en el Captulo 4
(pgina 23).
Recordemos que el objetivo de aplicar la correlacin es buscar la mxima afinidad entre
lecturas consecutivas. Para encontrar este mximo es necesario tratar todas las posiciones.
Entonces, haciendo referencia a la documentacin de la parte terica, para la correcta
realizacin de esta comparacin se hace uso de una rotacin. La rotacin consiste en hacer un
desplazamiento de los valores del vector en un sentido. De manera que, a medida que los
valores se salen del vector se colocan en la parte contraria (Ilustracin 10.1). Por cada paso de
la rotacin se calcula el coeficiente de correlacin entre la lectura de referencia y la que
estamos rotando. Dicho coeficiente se guarda en un vector para efectuar posteriormente una
comparacin para determinar el mximo buscado.
Ilustracin 10.1 - Ejemplo de rotacin de un vector
1. Requisitos
Los requisitos para poder implementar la correlacin son los siguientes:
- Disponer de las medidas en coordenadas cartesianas.
- Los valores de y de por separado.
- Para aplicar la correlacin de tal manera que nos proporcione el nmero de unidades
de desplazamiento, es importante tener una estructura determinada de los datos.
Debe haber un incremento constante para los valores de , por ejemplo 5mm, donde
a cada valor de le corresponda un nico valor de .
- Todas las lecturas debern tener el mismo nmero de posiciones para poder hacer la
correlacin.
1 2 3 4 5 6 7 8
Sentido de rotacin
Captulo 10
Correlacin
Parte II
Trabajo realizado
68 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
1.1 Utilidad de las coordenadas cartesianas en la correlacin
Como se muestra ms adelante (pgina 76), con la correlacin se calcula el
desplazamiento a partir del nmero de rotaciones realizadas sobre el vector de
posiciones. Esto es posible si se conoce el incremento entre las posiciones del
vector.
A partir de la solucin que se propone para utilizar la correlacin, hay varios
motivos por los que no se puede trabajar con coordenadas polares. En primer lugar,
uno de los motivos por los que no se trabaja en coordenadas polares se debe a que
se desconoce el incremento de la proyeccin en el eje (desplazamiento) entre
haces consecutivos, por lo consiguiente, tampoco entre posiciones consecutivas del
vector. Esto se debe a que cada haz proporciona un valor de desplazamiento
dependiendo de la distancia y el ngulo.
La solucin a todo esto es trabajar con valores en coordenadas cartesianas. De esta
manera, se deben organizar los valores para que cada incremento de posicin del
vector de distancias coincida con un incremento en . Adems, la comparacin
entre barridos se realiza a partir de la altura () para cada valor de .
2. Procesos previos
Una vez que se dispone la informacin con los criterios anteriores, se aplican una serie de
procesos para adaptar la informacin, y as poder aplicar posteriormente la correlacin. A
continuacin se indican los pasos a seguir:
1. Ordenar los valores XY
2. Rellenar la matriz ordenada.
3. Aplicar la ventana de trabajo y resolucin.
2.1 Ordenar los valores XY
Los primeros requisitos comentados en la introduccin de este mtodo consisten
en disponer de las distancias e en una matriz. El objetivo de este paso, es
adaptar la matriz de tal manera que cada fila de un mismo barrido se
corresponda con un incremento en . Por otra parte, a cada posicin de le
corresponde un nico valor de . Este proceso se aplica a cada barrido, es decir, a
cada columna.
En primer lugar, se aade una marca especial (*), tanto en como en , para
aquellas posiciones donde el valor de sea inferior a 0, como por ejemplo la
Ilustracin 9.9, o huecos.
Una vez se ha asignado la marca especial (*) a las posiciones consideradas errneas,
se escoge el rango de valores de a partir del mnimo y mximo valor
despreciando las marcas especiales. Esto, permite el trato especial de las
interferencias mencionado en el Captulo 9, adems de eliminar el exceso de
informacin al incrementar el nmero de valores.
Parte II
Trabajo realizado
Captulo 10
Correlacin
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 69
Posteriormente, se obtienen el rango de valores de crea una nueva matriz para
los valores de en la que cada fila coincide con un incremento en una unidad,
manteniendo que cada columna corresponde a un barrido. De esta manera, para un
mismo barrido no se repite ningn valor de . Dado que la matriz de valores
debe coincidir con las dimensiones de , se crea una nueva matriz tal que se
correspondan a los valores de a los que pertenecen. Si resulta que hay varios
valores de para un mismo valor de , entonces el valor resultante para esa
posicin es la mediana de los valores.
Al haber ordenado los valores de e resulta que tenemos ms valores de que
de . Por este motivo se obtienen huecos (*) en la matriz , posiciones vacas. Estas
posiciones se indican con el valor especial (*) para no tenerlas en cuenta, ya que si
no indicamos ningn valor MATLAB introduce valor 0. Debido a que el valor 0 se
considera como una medida, se ocasionara un error al aceptar las posiciones
vacas. Estas posiciones deben ser rellenadas para poder aplicar la correlacin
correctamente.
Por ejemplo, si el conjunto de medidas como el mostrado en la Ilustracin 10.2 se
aplicara la ordenacin de los valores, se obtendra el resultado mostrado en la
Ilustracin 10.3. Las posiciones sombreadas indican la posicin de los huecos.
Lectura i
X 2 1 9 7 8 3 10
Y 240 150 87 112 52 320 132
Ilustracin 10.2 - Valores XY antes de ordenar
X 1 2 3 4 5 6 7 8 9 10
Valores de Y
para cada X
150 240 320 * * * 112 52 87 132
Ilustracin 10.3 - Valores de la lectura despus de ordenar
En resumen, ordenar los valores de las matrices supone que el incremento en cada
fila de debe ser constante. Adems, todos los barridos de una misma lectura se
hace coincidir el rango de valores de . Por otra parte, las matrices e deben
coincidir en dimensiones.
2.2 Rellenar matriz ordenada
A partir de los valores ordenados, se deben aplicar tcnicas para rellenar los huecos
ocasionados por el proceso anterior (*) ahora se sustituyen por valores . De esta
manera sabemos que hay que rellenar los valores negativos.
Hay varias maneras implementadas para rellenar las celdas vacas. En este proyecto
se han implementado funciones de rellenar estas celdas mediante interpolacin
lineal o mediante escalones.
Captulo 10
Correlacin
Parte II
Trabajo realizado
70 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
Si no se hace este tratamiento previo no se puede realizar correctamente la
correlacin, ya que como se ha mencionado en la parte terica, se busca la mxima
afinidad entre lecturas consecutivas a partir de los valores de . Por este motivo, la
correlacin necesita trabajar con todos y cada uno de los valores. Si se da la
situacin en la que parte de esta informacin no se encuentra disponible, es
probable que no se encuentre ningn patrn, o que el encontrado no sea el
correcto.
2.2.1 Rellenar mediante escaln
Est mtodo busca las posiciones negativas (considerndolas huecos) y las
rellena con el anterior valor numrico (positivo) encontrado. A
continuacin, en la Ilustracin 10.4 se muestra la Ilustracin 10.3 rellenada
mediante la aplicacin de este mtodo.
X 1 2 3 4 5 6 7 8 9 10
Valores de Y
para cada X
150 240 320 320 320 320 112 52 87 132
Ilustracin 10.4 - Rellenar mediante escaln
2.2.2 Rellenar mediante interpolacin lineal
Para rellenar los huecos de forma que se asemeje ms a la realidad, se
dispone de este mtodo de interpolacin. Consiste en encontrar la recta
que pase por dos puntos conocidos y rellenar los huecos mediante la
ecuacin (10.1), done se conocen los valores de y se necesita saber el
valor de .
Y mX n = + (10.1)
Y
X
320
112
4 5 6 7
Parte II
Trabajo realizado
Captulo 10
Correlacin
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 71
Ilustracin 10.5 - Ejemplo recta
Ilustracin 10.6 - Ejemplo sobre una lectura
Las incgnitas de la ecuacin (10.1) son m y n. Para calcular dichos valores
se utiliza un sistema de dos ecuaciones con dos incgnitas:
Para el ejemplo anterior, ste sera su resultado:
A partir de la ecuacin (10.1), conociendo los valores de , y se
calculan los valores de . En la
Ilustracin 10.7 se muestra un ejemplo.
X 1 2 3 4 5 6 7 8 9 10
Valores de Y
para cada X
150 240 320 268 216 164 112 52 87 132
Ilustracin 10.7 - Solucin mediante interpolacin por recta
A continuacin se muestran los efectos de aplicar los tratamientos mencionados
hasta ahora: Ordenar los valores XY y Rellenar mediante interpolacin lineal.
Y
X
Yi=320
Yf=11
2
Xi=3 Xf=7
Captulo 10
Correlacin
Parte II
Trabajo realizado
72 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
En la Ilustracin 10.8 se muestra un ejemplo donde el barrido ha sido tratado
previamente mediante el proceso de reordenacin de los valores. Se asigna el valor
donde el correspondiente valor en estaba por debajo del 0. En la imagen que
sigue posteriormente se muestra el efecto al aplicar los pasos explicados en la
pgina 68. De manera que al reordenar, a los valores que se haban asignado el
valor , ahora se tratan como posiciones vacas. Por ese mismo motivo, al
representarlo grficamente en la Ilustracin 10.9, observamos que no se
encuentran las anteriores interferencias.
Siguiendo con la secuencia de los pasos comentados, una vez se han ordenado los
valores, se deben rellenar las posiciones vacas, el efecto de este proceso se
muestra en la Ilustracin 10.10.
Ilustracin 10.8 - Antes de considerar las posiciones negativas como huecos
Finalmente, una vez se han rellenado las posiciones vacas, se aplican
diversos pasos. Hasta ahora se han adaptado las medidas de manera que se
pueda aplicar la correlacin correctamente. Recordemos que la correlacin
no puede trabajar con posiciones vacas, ya que su aparicin puede resultar
un grave problema a la hora del clculo.
Valores de Y = -1,
debido a las
interferencias
Parte II
Trabajo realizado
Captulo 10
Correlacin
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 73
Ilustracin 10.9 - Reordenar valores de X
Ilustracin 10.10 - Rellenar valores de Y mediante interpolacin lineal
2.3 Ventana de trabajo
La ventana de trabajo es el rango de valores de X con el que se desea trabajar. Esto
nos permite eliminar la informacin captada a partir de ciertos ngulos de
medicin. De esta manera se reduce la cantidad de informacin, y en consecuencia
el tiempo de ejecucin.
Captulo 10
Correlacin
Parte II
Trabajo realizado
74 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
Ilustracin 10.11 - Ejemplo de lectura sin reducir la
ventana de trabajo
Ilustracin 10.12 - Ejemplo de
aplicacin de ventana
La principal ventaja de recurrir a la reduccin de la ventana de trabajo, es que nos
permite observar los cambios del entorno en un espacio ms reducido, ignorando
los cambios que puedan ocasionarse fuera de este rango. Esto es perjudicial
dependiendo del ancho de la ventana respecto a la velocidad. Cuanta ms
velocidad, ms interesantes resultan los cambios lejanos, ya que cuanto mayor es la
velocidad, las lecturas se encuentran ms alejadas, lo que supone tener que tratar
con la mxima cantidad de informacin posible. Por lo que se ha observado
experimentalmente, esta solucin no es aconsejable utilizarla en entornos donde la
velocidad supere los 100mm/s, es decir, es til para sistemas muy lentos.
El efecto de aplicar este proceso en aplicaciones con una velocidad elevada, es que
se darn soluciones incoherentes. Si se reduce el rango de valores con los que
trabajar, se reducen los puntos de referencia. Por este motivo aplicar la reduccin
de ventana no siempre es aconsejable. Es mejor aplicarlo en desplazamientos de
poca velocidad.
Longitud de
ventana
Parte II
Trabajo realizado
Captulo 10
Correlacin
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 75
Ilustracin 10.13 - 100mm/s con ventana de 700mm
Ilustracin 10.14 - 100mm/s sin reducir ventana
En la Ilustracin 10.13, a diferencia de la Ilustracin 10.14, no se obtienen los
resultados idneos. Reducir la ventana de trabajo elimina campo de medicin del
sensor. El efecto que tiene aplicar esta adaptacin es reducir el campo medida es
no tener en cuenta los cambios ms lejanos. Por este motivo se reflejan
discrepancias entre las ilustraciones mencionadas.
Para el proyecto, la aplicacin de este paso no ha tenido mucho xito, aunque se
defiende que puede resultar muy til en sistemas donde el alcance del sensor sea
ms amplio.
A nivel de programa, para usar todo el rango de datos obtenidos por el sensor,
basta indicar un valor muy elevado para la ventana. De esta forma el programa
interpreta que no se quiere reducir la ventana.
2.4 Resolucin de las medidas
Al igual que la ventana de trabajo se busca una solucin para realizar los clculos lo
ms rpido posible. Entonces, en lugar de eliminar informacin, se hace un ajuste
de los valores numricos.
Este proceso consiste en homogenizar los valores de las medidas, en coordenadas
cartesianas, de tal manera que al aplicar la correlacin se encuentren ms
similitudes.
La resolucin nos permite tratar los datos a diferentes escalas. Por defecto, la
resolucin que se utiliza en la informacin obtenida es de milmetros, ya que la
resolucin del sensor que utilizamos es de 1mm. Para realizar estos cambios se
realizan los siguientes pasos:
1. Aplicar escala a toda la matriz de valores a tratar.
Captulo 10
Correlacin
Parte II
Trabajo realizado
76 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
2. Reordenar los valores, ya que tenemos valores repetidos en , al igual que
se ha explicado en este mismo captulo, en la seccin 2.1.
3. Rellenar los posibles huecos, de la misma manera como se explica en la
seccin 2.2 de este mismo captulo.
En conclusin, aplicar este proceso permite la reduccin de informacin sin alterar
el rango de valores a tratar. Por esta misma razn se recomienda modificar la
resolucin antes que reducir el rango de valores (ventana). Por otra parte, si el
alcance del sensor utilizado en el sistema es muy grande, puede interesar un
proceso hbrido que utilice un factor de resolucin aplicado a reduccin de la
ventana de trabajo. Depende del sistema en el que se aplique y los objetivos que se
quieran conseguir.
Por otra parte, hay que tener en cuenta las limitaciones del sensor respecto al
tiempo de lectura. Esto nos limita la velocidad de los objetos.
3. Aplicacin de la correlacin
Una vez se ha aplicado el conjunto de procesos anteriores, se procede a la correlacin. Se
recuerda que en los pasos anteriores hemos ordenado la matriz de forma que cada fila
corresponde a un valor de , donde cada fila de coincide con un incremento de
posicin constante. En la correlacin solo utilizamos la matriz . Por el motivo que se ha
explicado al no utilizar coordenadas polares (pgina 68).
Para realizar la correlacin se siguen los pasos del Cdigo 10.1. En este se utilizan las
variables S1 para el barrido de referencia y S2 para el actual. Finalmente se hace una
comparacin de ambos barridos para determinar el desplazamiento a partir del
coeficiente de correlacin.
Cdigo 10.1 - Seudocdigo de correlacin
Mediante el uso de la correlacin queremos saber en qu punto de la lectura se establece
una mxima afinidad entre dos lecturas, por ese motivo se realiza una rotacin. Cada
posicin del vector S2 corresponde a un incremento en , razn por la que se busca la
posicin del mximo, que a la vez se trata del nmero de rotaciones realizadas. En cuanto
Para j 1 hasta columnas (Y)-1
S1 Y (columna (j))
S2 Y (columna (j+1))
Para i 1 hasta filas (y)
Valor (i) correlacin (S1, S2)
S2 Rotar (S2, 1 posicin)
Fin para
Desplazamiento (j) posicin (mximo (Valor))) -1
Fin para
Parte II
Trabajo realizado
Captulo 10
Correlacin
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 77
al valor de las posiciones, se deber quitar una posicin que corresponde a la primera
comparacin (sin rotar).
A partir de la posicin del coeficiente mximo se calcula la distancia de desplazamiento
entre barridos consecutivos. Al tener los valores de ordenados segn un criterio, en
este caso el orden de (de menor a mayor) cada posicin en supone un incremento de
desplazamiento. Por ejemplo, al tratar en resoluciones de 5mm, cada posicin implica un
desplazamiento de 5mm. Por este motivo, el desplazamiento entre barridos se conforma
mediante el nmero de rotaciones realizadas.
3.1 Aplicar un umbral
El programa que implementaba el Cdigo 10.1 no resultaba demasiado preciso, es
decir, a veces daba errores de posicin. Los errores de posicin en la correlacin
suponen un error en desplazamiento.
Se detect que el problema de los errores de desplazamiento se encontraba al
buscar el mximo en lecturas de objetos con poca velocidad, ya que su
desplazamiento est muy prximo al cero (al rotar el vector, las posiciones cerca de
cero se encuentra al inicio y fin del vector), haciendo que los mximos de
correlacin se detectasen en los extremos. La solucin propuesta aplica un umbral
para determinar el sentido de desplazamiento.
El procedimiento que se sigue consiste en clasificar un conjunto de los valores
mximos de los coeficientes de correlacin al comparar dos barridos. Ver
Ilustracin 10.15.
Para eliminar ambigedades a la hora de determinar el valor mximo del
coeficiente de correlacin, se escogen los N valores de correlacin mxima y se
clasifican segn su posicin respecto del umbral.
El umbral que se utiliza en el proyecto consiste en la posicin media del vector de
coeficientes de correlacin. Este umbral se denomina frontera. Entonces, para los
valores que correspondan a posiciones pertenecientes a la izquierda de la frontera
se considera Grupo 1, mientras que los de la derecha Grupo 2 (ver Ilustracin
10.16).
Una vez clasificados N valores mximos, se escoge el grupo que tenga la media de
los valores ms elevada. Al determinar el grupo se escoge como desplazamiento el
valor mximo del mismo. Seguidamente, se determina el sentido de
desplazamiento. Para aquellos valores que pertenezcan al Grupo 1 se considera
desplazamiento positivo, mientras que para el Grupo 2 negativo.
Captulo 10
Correlacin
Parte II
Trabajo realizado
78 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
Ilustracin 10.15 - Representacin grfica de los coeficientes de correlacin
Ilustracin 10.16 - Clasificacin de los N mximos
El seudocdigo que finalmente se utiliza para aplicar la correlacin es el que se
muestra en el Cdigo 10.2. Esta implementacin permite encontrar
desplazamientos en ambas direcciones.
Grupo 1 Grupo 2
Buscar los N mximos a
clasificar
Parte II
Trabajo realizado
Captulo 10
Correlacin
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 79
Cdigo 10.2 - Seudocdigo correlacin mediante umbral
4. Evaluacin de los resultados
Seguidamente se mostrar un pequeo conjunto de muestras para estudiar los resultados
obtenidos mediante la aplicacin de diversos procesos para determinar la combinacin
ptima.
4.1 Resultados
A continuacin se mostrarn algunos resultados obtenidos mediante este mtodo,
adems de hacer comparativas de los resultados para diferentes velocidades y
resoluciones.
En todas las lecturas se ha utilizado toda la ventana de trabajo. Cada representacin de
velocidad trata la misma lectura, y por tanto del mismo entorno (Entorno 2). El proceso de
rellenar huecos se ha aplicado la interpolacin lineal. En cada muestra se altera el valor de
la resolucin para comparar los resultados.
Para j = 1 hasta columnas (Y)-1
S1 Y (columna (j))
S2 Y (columna (j+1))
Para i = 1 hasta filas (y)
Valor (i) correlacin (S1, S2)
S2 Rotar (S2, 1 posicin)
Fin para
Valor ordenar (Valor, mayor a menor)
Posiciones posicin (Valor (N primeros))
Frontera (Posiciones)/2
G1 Valor (posiciones < Frontera)
G2 Valor (posiciones > Frontera)
Si media (G1) media (G2) entonces
Desplazamiento (j) posicin (mximo (G1))1
Sino
Desplazamiento (j) posicin (mximo (G2))1
Fin
Fin para
Captulo 10
Correlacin
Parte II
Trabajo realizado
80 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
4.1.1 Velocidad 100 mm/s
Ilustracin 10.17 - Representacin de la velocidad con resolucin de 1mm
Ilustracin 10.18 - Representacin de la velocidad con resolucin de 5mm
Ilustracin 10.19 - Representacin de la velocidad con resolucin de 10mm
Parte II
Trabajo realizado
Captulo 10
Correlacin
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 81
En las ilustraciones anteriores se muestra una misma lectura utilizando
diferentes resoluciones. Sabiendo que la velocidad terica de esta lectura
es de 100mm/s, entonces los resultados que se obtienen son muy precisos.
Por lo que respecta a la solucin mostrada en la Ilustracin 10.17 se
observan picos de velocidad medida. Estos picos se deben a tener valores
de altura del perfil () diferentes entre barridos consecutivos. Al aplicar una
resolucin de 5mm, Ilustracin 10.18, sugiere que los valores de se
encuentren en escalones de 5mm. Esta configuracin permite que se
encuentren ms valores de en comn y as dar un mejor resultado. Este
efecto tambin ocurre al aplicar 10mm de resolucin (Ilustracin 10.19). La
problemtica que tiene cambiar la resolucin es considerar un umbral para
decidir que valor colocar. Por este mismo motivo, aparecen picos o se
acentan ms donde anteriormente solo haba fluctuaciones que
destacaban de las dems.
En conclusin para esta velocidad, la resolucin de las medidas que mejor
resultados ha proporcionado es la de 10mm. Los resultados para esta
resolucin presentan menos picos, adems de ser ms rpido en la
ejecucin. Las pequeas fluctuaciones forman parte del tiempo de barrido.
Se recuerda que el tiempo de barrido del sensor utilizado es de 100ms
aproximadamente.
4.1.2 Velocidad 300 mm/s
Ilustracin 10.20 - Representacin de la velocidad con resolucin de 1mm
Captulo 10
Correlacin
Parte II
Trabajo realizado
82 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
Ilustracin 10.21 - Representacin de la velocidad con resolucin de 5mm
Ilustracin 10.22 - Representacin de la velocidad con resolucin de 10mm
Por las mismas razones que en el apartado anterior, donde la velocidad de
desplazamiento es de 100mm/s, el valor de resolucin que presenta una
solucin ms fiable se encuentra entre utilizar 5mm y 10mm.
4.1.3 Velocidad 600 mm/s
Ilustracin 10.23 - Representacin de la velocidad con resolucin de 1mm
Parte II
Trabajo realizado
Captulo 10
Correlacin
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 83
Ilustracin 10.24 - Representacin de la velocidad con resolucin de 5mm
Ilustracin 10.25 - Representacin de la velocidad con resolucin de 10mm
A partir de esta velocidad calculada, en los resultados obtenidos desde la
Ilustracin 10.23 hasta la Ilustracin 10.25 se observa que las mediciones
por parte del sensor no alcanzan la velocidad terica, aunque se aproximan.
Este hecho se debe a los tratamientos que sufren las medidas. Por una
parte, los valores procedentes del sensor se transforman en coordenadas
cartesianas. Esto supone una modificacin de los valores que puede alterar
la calidad de las medidas. Posteriormente se reordenan los valores, y se
aplica una interpolacin lineal o por escaln. Al aplicar interpolacin se est
haciendo una aproximacin del entorno.
Por los motivos expuestos anteriormente, los resultados que se han
calculado padecen los mismos problemas. Entonces, la conclusin para esta
velocidad es utilizar la resolucin de 5mm, ya que el tiempo de proceso es
inferior al de 1mm, y no supone una aproximacin tan elevada como lo
supone aplicar 10mm de resolucin.
Captulo 10
Correlacin
Parte II
Trabajo realizado
84 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
4.1.4 Velocidad 900 mm/s
Ilustracin 10.26 - Representacin de la velocidad con resolucin de 1mm
Ilustracin 10.27 - Representacin de la velocidad con resolucin de 5mm
Ilustracin 10.28 - Representacin de la velocidad con resolucin de 10mm
Parte II
Trabajo realizado
Captulo 10
Correlacin
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 85
Al igual que ha pasado en la configuracin de 600mm/s, el conjunto de
muestras mostrados en la Ilustracin 10.26 hasta la Ilustracin 10.28
tampoco se obtiene el resultado de la velocidad terica de desplazamiento.
Los motivos de estos resultados son los mismos, aunque se puede aadir un
comentario al respecto. Recordando que el sensor tiene como limitacin el
tiempo de barrido, al tratar velocidades elevadas los resultados empeoran,
ya que se obtienen menor cantidad de barridos para comparar. Al mismo
tiempo, al obtener pocos barridos, tambin se obtiene barridos con una
mayor distancia entre ellos. Debido a la existencia de una mayor distancia
entre barridos consecutivos se pierden puntos de referencia. Por esta razn
los clculos no son los idneos.
4.2 Comparativa
Si nos fijamos en los ejemplos expuestos anteriormente, podemos ver que hay
errores de precisin. Dnde ms se notan estas diferencias, es cuando se utiliza la
mxima resolucin (1mm). Se puede observar que en los instantes que no hay
desplazamiento resulta que se detectan pequeos movimientos. Estas
fluctuaciones corresponden a imprecisiones, ya sean por parte de posibles errores
de captacin del entorno, como imprecisiones de clculo generadas por las
aproximaciones que se realizan en los tratamientos previos, as como la
interpolacin para rellenar los huecos. Al utilizar otras resoluciones, despreciamos
informacin, debido a que acta como un filtro en las lecturas mediante un
redondeo. Por ejemplo, al utilizar resolucin 5mm, vamos a tener escalones
mnimos de 5mm ya que corresponde a la mnima variacin que vamos a detectar.
Por otra parte, al tratar con resolucin de 10mm, nos pasa lo mismo, la variacin
mnima de desplazamiento que se detectar es de 10mm. Esto supone la aparicin
de errores por exceso y por defecto, que en promedio son la mitad del valor
utilizado en la resolucin. Para el caso de 10mm se obtienen errores entre -5mm y
5mm.
A nivel computacional, se encuentran grandes diferencias en los tiempos de
ejecucin, ya que el tamao de las matrices de valores a tratar depende de la
cantidad de puntos muestreados. Si recordamos la seccin 2.1 (Ordenar los valores
XY), se explica la distribucin de los datos. Aplicar el paso anterior puede hacer
variar la dimensin de las matrices mediante el valor de resolucin. Esto se debe a
que se eliminan posiciones intermedias, homogeneizadas al aplicar la resolucin.
Por ejemplo, si tenemos resolucin de 1mm y lo pasamos a la resolucin de 5mm,
entre valores de tendremos una diferencia mnima de 5mm, mientras que antes
era de 1mm.
En la Ilustracin 10.29, se muestra un ejemplo del tiempo de ejecucin al tratar las
lecturas para diferentes resoluciones. Para esta ilustracin se ha escogido un
conjunto ficheros de un mismo grupo, Robot_01_xx (Captulo 8). Cada grupo se
comprende por 10 pruebas. A modo de ejemplo, para el caso de Robot_01_xx se
tratan los ficheros comprendidos entre Robot_01_01 y Robot_01_10.
Captulo 10
Correlacin
Parte II
Trabajo realizado
86 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
Ilustracin 10.29 - Tiempo de ejecucin frente a resolucin
El motivo de las diferencia en el resultado de la Ilustracin 10.29 al variar la
resolucin, se debe a la disminuye cantidad de informacin, lo que se traduce a
menos costo computacional. La gran diferencia se encuentra al pasar de 1mm a
5mm, y no al pasar de 5 a 10mm. Esto ocurre debido a que al utilizar la resolucin
de 5mm se ha reducido un 50% el tamao del conjunto de datos, respecto al
original. Al pasar de 5 a 10mm, se reduce otro 50% sobre el anterior, con lo que
simplemente se ha reducido un 25%. Por ejemplo si inicialmente, resolucin 1mm,
se tienen 1000 valores por barrido, al aplicar una resolucin de 5mm se reduce a
500 valores por barrido. Si finalmente se aplica una resolucin de 10mm el tamao
se reduce a 250 valores por barrido. Por este mismo motivo apenas hay diferencias
entre una resolucin y otra.
Para el caso anterior, coincide con la explicacin de la seccin 2.4 (pgina 75).
Resulta que se aplican cambios en las medidas para obtener una mayor semejanza
entre los valores obtenidos por el sensor. Esto genera duplicados en los valores de
con los que se agrupan en uno mismo, reduciendo as en nmero de valores a
tratar.
Por otra parte, es conveniente tener en cuenta el error de medida. Dado que se
conoce el desplazamiento a priori o ground truth, a travs del robot, se calcula el
error relativo a partir de este.
| |
x100 %
r
Real medido
Real
c
=
Entonces, si buscamos la resolucin ptima, sera la que nos proporcione el error
ms pequeo con el mnimo tiempo de ejecucin posible, de manera que cumpla
con la mayor parte de pruebas o velocidades.
Parte II
Trabajo realizado
Captulo 10
Correlacin
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 87
Ilustracin 10.30 - Efecto de la resolucin para velocidades reducidas
Ilustracin 10.31 - Efecto de la resolucin para velocidades elevadas
Captulo 10
Correlacin
Parte II
Trabajo realizado
88 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
En la Ilustracin 10.30 se reflejan los resultados obtenidos al comparar la calidad de
las muestras y el tiempo de ejecucin con la resolucin aplicada. Dependiendo de
la velocidad de desplazamiento se obtendrn grficas diferentes. Concretamente, la
ilustracin referenciada trata una lectura a velocidad reducida ya que el error de
clculo es mnimo. En cambio al tratar velocidades ms elevadas, como 700mm/s,
los resultados son parecidos al mostrado en la Ilustracin 10.31. Entonces,
comparando ambas figuras, se muestra un punto en comn en el que apenas se
obtiene error y el tiempo de ejecucin es recudido, resolucin 5mm.
4.2.1 Comparacin del resultado con el desplazamiento del robot
Otra manera de comprobacin de los resultados ha sido a partir de las
muestras obtenidas por el robot de las simulaciones, as como se explica en
el Captulo 7, concretamente en el apartado 4 (pgina 50). A continuacin
se muestra un ejemplo representativo para visualizar la semejanza entre la
realidad y el clculo.
Ilustracin 10.32 - Velocidad instantnea del robot
Ilustracin 10.33 - Resolucin 1mm
Parte II
Trabajo realizado
Captulo 10
Correlacin
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 89
Ilustracin 10.34 - Resolucin 5mm
Ilustracin 10.35 - Resolucin 10mm
Lo que representan la Ilustracin 10.33 hasta la Ilustracin 10.35 son los
resultados obtenidos aplicando diferentes resoluciones a los datos
procedentes del sensor. Para este caso, se compara a partir del
desplazamiento realizado por el robot (Ilustracin 10.32) ya que no se
conoce la velocidad de desplazamiento del robot a partir de lo programado.
Por este mismo motivo se extraen las posiciones instantneas del recorrido
del robot.
Las conclusiones al respecto es que al utilizar una resolucin de 10mm,
Ilustracin 10.35, se obtienen formas ms escalonadas, pero se centran en
el movimiento en general, obviando los pequeos detalles, adems de
trabajar con mayor rapidez que las otras resoluciones.
Captulo 10
Correlacin
Parte II
Trabajo realizado
90 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
5. Conclusiones
Las conclusiones para utilizar este mtodo son las siguientes. Por una parte, no resulta til
la resolucin de 1mm, en todo caso 5 o 10mm. Ambos tienen valores muy semejantes, as
que es un poco indiferente la resolucin que se utilice.
Por lo que afecta al apartado opcional de la ventana, se ha observado que en las
simulaciones resulta complicado llegar a un acuerdo. Esta opcin se ha diseado para
tratar con casos de mucha informacin o el alcance es mayor que el utilizado en el
proyecto. Entonces, en estos casos aplicar modificar la ventana de trabajo resulta una
mejora a la hora de procesar los datos si lo que interesa de las lecturas se encuentra en un
marco reducido. Para evitar el uso de la ventana, basta con indicar un tamao de ventana
muy grande, de esta manera solo aplicar la resolucin indicada.
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 91
Captulo 11.
ICP (Iterative Closest Points)
En este apartado de la memoria se explicar el mtodo que corresponde con Scan Matching.
La teora referente a este mtodo se encuentra en el Captulo 5. Atendiendo a los modelos
explicado en esta parte de teora, disponemos de dos modelos a tratar, el de una dimensin y
el de dos dimensiones. Ambos comparten el objetivo de encontrar la transformacin que haga
posible la mxima correspondencia entre dos lecturas, mediante la iteracin punto a punto.
En este apartado se explicarn las correspondientes modificaciones realizadas en el algoritmo
inicial, con la finalidad de adaptarlo a nuestras necesidades, aportando as la informacin
necesaria para descubrir el desplazamiento de un objeto.
1. Aplicacin del algoritmo ICP (2D)
A partir del cdigo proporcionado por el Dr. Antoni Burguera [6], se ha hecho un pequeo
estudio del comportamiento del programa frente a diferentes lecturas para determinar
algunos parmetros de entrada para su funcionamiento ptimo.
Haciendo referencia a las variables descritas en el seudocdigo de este algoritmo en la
seccin terica, es conveniente saber cmo se deben estructurar los datos con los que se
trabajar y de qu manera nos lo devuelve la funcin.
1.1 Parmetros de entrada
Las entradas de este algoritmo son:
-
: Barrido actual.
-
: Barrido siguiente.
-
, siendo un
vector columna donde la primera fila corresponde al valor de desplazamiento en ,
la segunda el desplazamiento en , y para terminar la tercera corresponde a la
rotacin . Normalmente se inicia con valores nulos.
0
0
0
Ilustracin 11.1 - Ejemplo representativo de la composicin
Para el caso del umbral
.
- : indicador de sobrepasar nmero mximo de iteraciones.
- : Correspondencias tal que
.
Entonces, el parmetro que resulta interesante en el proyecto es el valor de
, ya
que este nos proporciona los valores de desplazamientos en eje e , adems de
la rotacin. Como desde un principio se ha reiterado en que los desplazamientos
que se quieren analizar sern lo ms rectos posibles, es decir, la rotacin es
despreciable. De esta manera, el desplazamiento realizado ser la suma del mdulo
para las componentes e .
La salida , proporciona la informacin de las correspondencias entre los dos
barridos de tal manera que el la primera fila se corresponde a
y la segunda a
con
. Entonces
se realiza una primera ejecucin para determinar el rango a partir de los valores de
desplazamiento y el tiempo de proceso. El tiempo para hallar la solucin depende
de la velocidad del objeto, a mayor velocidad, menos barridos realizados, con lo
que conlleva a un menor tiempo de proceso. Seguidamente se muestra una
ejecucin para determinar el rango de trabajo de
Correspondencia
Leyenda
Captulo 11
ICP (Iterative Closest Points)
Parte II
Trabajo realizado
94 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
Ilustracin 11.4 - Representacin grfica para determinar
A partir del ejemplo de la Ilustracin 11.4 se debe encontrar el rango de
que
un desplazamiento prximo al valor real, 772mm, adems de tener el tiempo de
ejecucin mnimo. Entonces, de manera visual se intuye que el valor de
se
encontrar entre los valores 200 y 500mm.
Una vez establecido el rango de los posibles valores de
, procedemos a una
siguiente ejecucin, en la que se representan los valores de desplazamiento para
cada barrido. Cada lectura se ejecuta con valores de
que se encuentren en el
margen encontrado anteriormente, de manera que se obtienen un conjunto de
grficas que se deben estudiar y analizar visualmente para finalmente determinar el
valor correspondiente.
A continuacin se han adjuntado un conjunto de grficas para mostrar un ejemplo
del proceso a seguir. En primer lugar, debemos saber de qu tipo de movimiento se
ha realizado, de esta manera podemos saber si el grfico con el que estamos
comparando difiere mucho de la muestra. Por ejemplo, si se trata de un
movimiento constante en un intervalo de tiempo, suponiendo que la aceleracin y
desaceleracin es infinita, se debera comparar con la Ilustracin 11.4, en la que se
muestra un caso ideal.
Al obtener las grficas de las muestras obtenidas, y comparndolas con el caso,
debemos llegar a una conclusin para determinar el valor de
sabiendo que se
encuentra entre los valores 200 y 500mm. A continuacin se muestra un ejemplo
aplicando la visualizacin del caso ideal.
Parte II
Trabajo realizado
Captulo 11
ICP (Iterative Closest Points)
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 95
Ilustracin 11.5 - Ejemplo para
200mm
Ilustracin 11.6 - Ejemplo para
500mm
Debido a que no se detectan apenas cambios en este intervalo, se decide trabajar
con la mayor distancia, en este caso 500mm. Si se hubiesen representado todas las
lecturas realizadas en la Ilustracin 11.4 se observara que el tiempo de ejecucin es
estable, adems del desplazamiento. De esta manera se hubiese ahorrado una
ejecucin. Seleccionar el valor de la variable a partir de los grficos representados
en la Ilustracin 11.4 solo es posible si se mantienen estables, de lo contrario se
recomienda realizar dos ejecuciones, una para determinar el rango, mientras la
siguiente sirve para determinar el valor definitivo a utilizar para
.
2. Desarrollo de ICP-1D
Con la base implementada para el ICP (2D) se realizaron una serie de modificaciones y
adaptaciones de tal manera que se pudiese reducir el tiempo de procesamiento. As como
se explica en la parte terica, el proyecto se desarrolla sobre la hiptesis que los objetos a
medir trazarn una trayectoria lineal, es decir, en un solo eje, debido a que el objetivo es
medir la velocidad de camiones. Al tratarse de objetos de gran tamao, es difcil pensar
que harn cambios bruscos en su desplazamiento, aunque no se descarta la posibilidad de
aceleraciones y desaceleraciones.
Captulo 11
ICP (Iterative Closest Points)
Parte II
Trabajo realizado
96 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
A partir de la explicacin anterior, se deduce que el algoritmo de scan matching, puede
trabajar con un modelo que no proporcione el ngulo de rotacin y una coordenada, en
este caso el eje , as que el parmetro de salida sera simplemente la componente .
Esto supone una reduccin de instrucciones a realizar, con lo consecuente, se reduce el
tiempo de ejecucin. Cabe decir, al no aplicar la rotacin esto puede suponer una
convergencia aproximada, es decir, sin aplicar rotaciones es complicado que el modelo
converja hasta su mximo. Seguidamente, se mostrar una imagen aplicando la
transformacin con rotacin y la misma lectura sin tener en cuenta el giro y el
desplazamiento en el eje Y para mostrar este efecto.
Ilustracin 11.7 - Aplicando la transformacin con rotacin
Parte II
Trabajo realizado
Captulo 11
ICP (Iterative Closest Points)
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 97
Ilustracin 11.8 - Aplicando la transformacin sin rotacin
En la Ilustracin 11.7 se aplica el ICP-2D, en el que se tiene en cuenta el desplazamiento
en , en y el ngulo . Tener en cuenta estos aspectos permite encontrar la
transformacin, que aplicada al barrido de comprobacin (Scan 2), mejor se ajusta a la
lectura de referencia (Scan 1). Si se compara con la representacin de la Ilustracin 11.8
se puede observar como esta transformacin solo se ajusta al eje , pero al no tratar con
la transformacin en y en no se ajusta correctamente a la referencia. Cabe constar
que no se aprecian muy bien los cambios debido a la escala de representacin, ya que se
ha ajustado de manera que se observen mejor los efectos.
2.1 Parmetros de entrada
Las entradas de esta adaptacin son:
-
: Barrido actual.
-
: Barrido siguiente.
-
: Umbral de convergencia.
- : nmero mximo de iteraciones.
Al igual que el algoritmo de partida, tratamos con
, siendo el barrido de
comparacin y el de referencia, respectivamente. Para esta adaptacin reducida
solo se obtiene el valor que corresponde a la transformacin en la componente ,
lo que supone un nico valor, en lugar de un vector con 3 valores ( ). Pero
como se ha explicado con antelacin, esto es posible debido a unas ciertas
suposiciones, con el fin de ahorrar en tiempo, proporcionando una medida vlida.
De los valores mencionados, al igual que el algoritmo original, se debe ajustar el
Captulo 11
ICP (Iterative Closest Points)
Parte II
Trabajo realizado
98 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser
parmetro
.
- : indicador de sobrepasar nmero mximo de iteraciones.
- : Correspondencias tal que
.
Como se explica en el apartado anterior, la transformacin
solo tienen en
cuenta los ajustes en el eje , despreciando la componente , junto con la rotacin,
lo que significa que dicha variable se represente con un solo valor, en lugar de un
vector. Por otra parte, se obtiene la correspondencia de las lecturas (), al igual que
en el ICP-2D, interpretndose de la misma forma como se muestran en la
Ilustracin 11.2 y en la Ilustracin 11.3. Al igual que tambin se obtiene el vector
en el que se muestran valores lgicos (1-0) para indicar que se ha rebasado el
valor de iteraciones mximas, sin encontrar convergencia.
2.3 Ajustes realizados
Al igual que para el ICP-2D se pretende encontrar el valor de entrada del parmetro
se establece en el
rengo de valores comprendido entre los 300 y 700 mm, ya que por una parte
tenemos valores de desplazamiento cercanos al de desplazamiento realizado,
adems de satisfacer un tiempo de proceso relativamente pequeo.
Para adjudicar el valor definitivo para
Mediante el anlisis de las muestras para que tengan un aspecto similar al
desplazamiento ideal, se determina el valor final ha escoger para
.
Seguidamente se muestran unos ejemplos para escoger este valor, en el que
sabemos que se comprende entre los valores 300 y 700mm. Esta seleccin es un
poco a gusto del consumidor, para este caso se ha cogido como criterio elegir el
valor de
500mm
Este ejemplo se ha escogido de tal manera que se represente el motivo de la
eleccin del valor para
Al haber calculado el valor de la variable
no est ajustado para todas las velocidades, en este caso se ha hecho una seleccin
del valor a partir de unas velocidades supuestas. A mayor velocidad, mayor debe ser el
valor de dicha variable. Esto, se debe a que los barridos consecutivos se encuentran a una
mayor distancia, lo que conlleva a no encontrar el error mnimo absoluto al no establecer
correctamente las correspondencias.
Dadas las circunstancias, se puede afirmar que los resultados son fiables y se asemejan a
los esperados. Respecto a las mediciones que no alcanzan el valor de desplazamiento
programado, esto puede ser debido a acumulacin de errores por parte de las medidas,
ya que el sensor no proporciona medidas 100% fiables, o por el motivo comentado del
valor de la variable
.
Al aplicar el algoritmo y buscar el error mnimo cometido al aplicar asociaciones entre los
datos, la aparicin de muchas distorsiones pequeas pueden contribuir a calcular la
posicin de desplazamiento entre barridos consecutivos sin proporcionar la mejor
solucin, que puede ser consecuencia del parmetro de ajuste