You are on page 1of 142

Escola Politcnica Superior

Ingeniera Tcnica industrial,


Especialidad en Electrnica Industrial



Proyecto de final de carrera


Anlisis y Clculo de Desplazamiento y Velocidad
de un Objeto mediante un Sensor Lser


2011-2012






Juan Perics Font
Dirigido por:
Dr. Antoni Burguera Burguera
Dra. Yolanda Gonzlez Cid




















A mi familia

Agradecimientos
Antes de iniciar la explicacin del proyecto deseo mostrar mi agradecimiento a todas aquellas
personas cercanas a m y que me han apoyado a lo largo de estos aos.
Quisiera agradecer a mis dos tutores de proyecto, Toni Burguera y Yolanda Gonzlez, por la
ayuda y dedicacin que se me ha ofrecido a lo largo del proyecto.
Tambin a los amigos y compaeros de estos ltimos aos, especialmente a Laura, Ricardo y
Jos entre muchos otros.
Especialmente, agradecer a todos los miembros de mi familia: padres, hermanos, abuelos, tos
y primos que me han apoyado a lo largo de esta vida.

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 1


NDICE DE CONTENIDOS
PARTE I. CONCEPTOS PREVIOS ........................................................................................ 5
Introduccin .......................................................................................................................... 7 Captulo 1.
1. Motivacin y marco del proyecto ............................................................................................... 8
2. Objetivos del proyecto ................................................................................................................ 8
3. Estructura de la memoria ............................................................................................................ 9
Sensores............................................................................................................................... 11 Captulo 2.
1. Partes de un sensor ................................................................................................................... 12
1.1 Elemento sensor o captador .............................................................................................. 12
1.2 Bloque de tratamiento de seal ........................................................................................ 12
1.3 Etapa de salida .................................................................................................................. 12
2. Clasificacin segn el tipo de seal de salida ............................................................................ 12
2.1 Analgicos ......................................................................................................................... 12
2.2 Digitales ............................................................................................................................ 12
2.3 Todo-Nada ........................................................................................................................ 12
3. Caractersticas generales de los sensores ................................................................................. 13
3.1 Caractersticas estticas .................................................................................................... 13
3.2 Caractersticas dinmicas .................................................................................................. 13
4. Sensores medidores de distancia .............................................................................................. 14
4.1 Sensor lser ....................................................................................................................... 14
4.2 Sensor ultrasnico ............................................................................................................. 16
Robots.................................................................................................................................. 19 Captulo 3.
1. Tipos de robots ......................................................................................................................... 19
1.1 Robots mviles .................................................................................................................. 19
1.2 Robots manipuladores ...................................................................................................... 19
2. Robots disponibles en la UIB ..................................................................................................... 21
2.1 Pioneer 3-DX ..................................................................................................................... 21
2.2 Mitsubishi RV-6S ............................................................................................................... 21
Correlacin .......................................................................................................................... 23 Captulo 4.
1. Coeficiente de correlacin 1D ................................................................................................... 23
2. Aplicacin a imgenes ............................................................................................................... 24
3. Aplicacin a vectores para determinar desplazamientos .......................................................... 25
Scan Matching ..................................................................................................................... 27 Captulo 5.
1. Mtodos basados en Scan Matching ......................................................................................... 27
1.1 Basados en ICP .................................................................................................................. 27
1.1.1 ICP ................................................................................................................................ 28
1.1.2 IDC ................................................................................................................................ 28
1.1.3 pIC ................................................................................................................................ 28
1.2 No basados en ICP ............................................................................................................. 28
1.2.1 NDT ............................................................................................................................... 28
1.2.2 LF/SoG .......................................................................................................................... 29
NDICE DE CONTENIDOS

2 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

2. Seleccin del mtodo a usar ..................................................................................................... 29
3. Algoritmo ICP ............................................................................................................................ 30
3.1 Seudocdigo del algoritmo ICP .......................................................................................... 30
3.2 Adaptacin ICP 1D ............................................................................................................. 33
3.2.1 Minimizacin del error .................................................................................................. 34
PARTE II. TRABAJO REALIZADO ................................................................................... 37
Sensor lser ......................................................................................................................... 39 Captulo 6.
1. Seleccin del sensor de trabajo ................................................................................................. 39
2. Informacin tcnica del sensor (HOKUYO) ................................................................................ 39
3. Acceso al lser ........................................................................................................................... 40
3.1 Software grfico ................................................................................................................ 41
3.2 Cdigo C ............................................................................................................................ 42
4. Obtencin de datos ................................................................................................................... 42
4.1 Fichero de datos ................................................................................................................ 42
Robot para las simulaciones ................................................................................................ 45 Captulo 7.
1. Seleccin del robot .................................................................................................................... 45
2. Informacin tcnica del robot (Mitsubishi RV-6S)..................................................................... 45
2.1 Caractersticas RV-6S ......................................................................................................... 46
3. Acceso al robot .......................................................................................................................... 46
3.1 Melfa Basic IV .................................................................................................................... 46
3.2 Ejemplo de programacin ................................................................................................. 47
3.3 Programas usados para las simulaciones ........................................................................... 48
3.3.1 Movimiento constante de principio a fin ....................................................................... 48
3.3.2 Movimiento Discontinuo ............................................................................................... 49
3.3.3 Movimiento acelerado .................................................................................................. 49
4. Obtencin de la posicin. Aceleracin ...................................................................................... 50
4.1 Introduccin ...................................................................................................................... 50
4.2 Cdigo de obtencin de posiciones ................................................................................... 50
4.3 Explicacin para obtener las posiciones ............................................................................. 51
4.3.1 Mtodo de ejecucin en paralelo .................................................................................. 52
4.4 Representacin de las posiciones obtenidas ...................................................................... 52
Entornos muestreados ......................................................................................................... 55 Captulo 8.
1. Entorno 1 .................................................................................................................................. 55
2. Entorno 2 .................................................................................................................................. 56
3. Entorno 3 .................................................................................................................................. 57
4. Entorno 4 .................................................................................................................................. 58
5. Entorno 5 .................................................................................................................................. 58
6. Entorno 6 .................................................................................................................................. 59
Pre-procesamiento de los datos .......................................................................................... 61 Captulo 9.
1. Reordenacin del fichero .......................................................................................................... 61
2. Filtrado de la seal de entrada .................................................................................................. 62
3. Transformacin a coordenadas cartesianas .............................................................................. 63
3.1 Unir barridos ..................................................................................................................... 64
4. Eliminacin de interferencias .................................................................................................... 65
4.1 Proceso de eliminacin...................................................................................................... 65
NDICE DE CONTENIDOS

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 3

Correlacin......................................................................................................................... 67 Captulo 10.
1. Requisitos.................................................................................................................................. 67
1.1 Utilidad de las coordenadas cartesianas en la correlacin ................................................. 68
2. Procesos previos ....................................................................................................................... 68
2.1 Ordenar los valores XY....................................................................................................... 68
2.2 Rellenar matriz ordenada .................................................................................................. 69
2.2.1 Rellenar mediante escaln ............................................................................................ 70
2.2.2 Rellenar mediante interpolacin lineal .......................................................................... 70
2.3 Ventana de trabajo ............................................................................................................ 73
2.4 Resolucin de las medidas ................................................................................................. 75
3. Aplicacin de la correlacin ...................................................................................................... 76
3.1 Aplicar un umbral .............................................................................................................. 77
4. Evaluacin de los resultados ..................................................................................................... 79
4.1 Resultados ......................................................................................................................... 79
4.1.1 Velocidad 100 mm/s ..................................................................................................... 80
4.1.2 Velocidad 300 mm/s ..................................................................................................... 81
4.1.3 Velocidad 600 mm/s ..................................................................................................... 82
4.1.4 Velocidad 900 mm/s ..................................................................................................... 84
4.2 Comparativa ...................................................................................................................... 85
4.2.1 Comparacin del resultado con el desplazamiento del robot ........................................ 88
5. Conclusiones ............................................................................................................................. 90
ICP (Iterative Closest Points) .............................................................................................. 91 Captulo 11.
1. Aplicacin del algoritmo ICP (2D) .............................................................................................. 91
1.1 Parmetros de entrada ...................................................................................................... 91
1.2 Parmetros de salida ......................................................................................................... 92
1.3 Ajustes realizados .............................................................................................................. 93
2. Desarrollo de ICP-1D ................................................................................................................. 95
2.1 Parmetros de entrada ...................................................................................................... 97
2.2 Parmetros de salida ......................................................................................................... 98
2.3 Ajustes realizados .............................................................................................................. 98
3. Conclusiones referentes a ............................................................................................ 100
4. Resultados ............................................................................................................................... 100
4.1 ICP 1D.............................................................................................................................. 101
4.1.1 Velocidad 100mm/s .................................................................................................... 101
4.1.2 Velocidad 300 mm/s ................................................................................................... 102
4.1.3 Velocidad 600 mm/s ................................................................................................... 104
4.1.4 Velocidad 900 mm/s ................................................................................................... 105
4.1.5 Resultados de fiabilidad ICP 1D ................................................................................... 106
4.2 ICP 2D.............................................................................................................................. 108
4.2.1 Velocidad 100mm/s .................................................................................................... 108
4.2.2 Velocidad 300 mm/s ................................................................................................... 109
4.2.3 Velocidad 600 mm/s ................................................................................................... 111
4.2.4 Velocidad 900 mm/s ................................................................................................... 112
4.2.5 Resultados de fiabilidad ICP 2D ................................................................................... 113
5. Comparativas .......................................................................................................................... 114
5.1 Comparacin con la aceleracin del robot ....................................................................... 115
6. Conclusiones ........................................................................................................................... 116
NDICE DE CONTENIDOS

4 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

PARTE III. CONCLUSIONES FINALES .......................................................................... 119
Conclusiones .................................................................................................................... 121 Captulo 12.
1. ICP ........................................................................................................................................... 121
2. Correlacin .............................................................................................................................. 121
3. Conclusin final ....................................................................................................................... 122
Trabajos futuros ............................................................................................................... 123 Captulo 13.
1. Tiempo real ............................................................................................................................. 123
2. Sensor inmvil ......................................................................................................................... 123
3. Escala real ............................................................................................................................... 123
3.1 LIDAR .............................................................................................................................. 123
4. Sistema integrado ................................................................................................................... 124
ANEXO: MANUAL DE USUARIO .................................................................................... 125
Acceso al sensor ............................................................................................................... 127 Captulo 14.
1. Conexin ................................................................................................................................. 127
2. Drivers de acceso y cdigos ..................................................................................................... 127
3. Programa grfico ..................................................................................................................... 127
4. Cdigo C .................................................................................................................................. 127
MATLAB ........................................................................................................................... 129 Captulo 15.
1. Programas ............................................................................................................................... 129
1.1 MAIN.m (script) ............................................................................................................... 129
1.2 ICP_1D.m (function) ........................................................................................................ 129
1.3 ICP_2D.m (function) ........................................................................................................ 130
1.4 Correlation.m (function) .................................................................................................. 130
1.5 Leer_Pos_accel_pruebas.m (Script) ................................................................................. 131
1.6 Leer_Resultados.m (Script) .............................................................................................. 131
2. Entorno grfico........................................................................................................................ 131
2.1 Ejecucin ......................................................................................................................... 131
2.2 Opciones configurables ................................................................................................... 132
2.3 Men ayuda .................................................................................................................... 132
2.4 Calcular ........................................................................................................................... 132
2.5 Resultados de salida ........................................................................................................ 132
BIBLIOGRAFA .................................................................................................................. 135

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 5


PARTE I.
CONCEPTOS PREVIOS
La primera parte del presente documento, conceptos previos, tiene como objetivo aclarar los
conceptos tericos empleados en el desarrollo del proyecto. En esta parte se explicarn
aquellos trminos, mtodos y conceptos utilizados a lo largo del documento, as como el
marco y objetivos del proyecto.
Concretamente, esta parte del documento se centra en la explicacin del proyecto. Tambin
aparecen conceptos de sensores y robots, debido a que son herramientas utilizadas en algunos
aspectos.
A lo largo del documento se utilizar con frecuencia el trmino simulacin. En este contexto,
dicho trmino se referir nica y exclusivamente a la configuracin experimental utilizada que
permite reproducir de manera razonablemente buena las condiciones del sistema real en el
laboratorio. Por tanto, todas las lecturas proporcionadas por sensores que se utilicen
provendrn de sensores reales. En consecuencia, aun cuando hablemos de simulaciones, en
ningn caso significar que se utilicen datos sintticos generados por un ordenador.

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 7


Captulo 1.
Introduccin
Este proyecto de final de carrera se centra en una problemtica presente en algunas empresas
de reciclaje. Cuando un cliente lleva material para reciclar a dichas empresas, stas suelen
cobrar en funcin de la cantidad de material. En el caso que nos ocupa, los clientes llevan
escombros en camiones a la empresa de reciclaje y la empresa cobra en funcin del peso y
volumen de dichos escombros.
El proceso actual para medir el peso y el volumen es el siguiente. Cuando un camin llega
cargado a la empresa, este se detiene sobre una bscula durante unos minutos. Mientras la
bscula pesa el vehculo, un sensor lser situado sobre una plataforma mvil en el techo
realiza un barrido del vehculo con el fin de medir su volumen. El proceso se repite una vez el
camin ha descargado el material. Restando estas dos medidas tomadas antes y despus de la
descarga se calcula el peso y el volumen del material a reciclar y, por tanto, el precio a cobrar.
Este proceso presenta, actualmente, algunos problemas. El principal se debe a la existencia de
partes mecnicas para mover el sensor lser y realizar el barrido. Dadas las condiciones del
entorno, como polvo, humedad o vibraciones, dichas partes mecnicas tienen tendencia a
sufrir averas. Adems, el sistema obliga a los clientes a esperar unos minutos en cada
transporte.
Nuestra propuesta pretende solucionar ambos problemas, eliminando la necesidad de partes
mviles en el sistema. Concretamente, este proyecto pretende aprovechar el propio
movimiento del camin cuando entra o sale de la bscula para realizar el barrido y calcular el
volumen.
Para poder llevar a cabo la solucin propuesta es necesario conocer la velocidad de
desplazamiento del transporte. Dado que es complicado que el camin se desplace a una
determinada velocidad durante todo el proceso de medicin, se propone el uso de otro sensor
para medir la velocidad de desplazamiento. En este caso, se deben proporcionar dos tipos de
informacin en paralelo, el volumen y la velocidad. Esto supone el uso de dos sensores.
El uso de dos sensores implica que cada uno estar destinado a un tipo de medida. Por lo que
afecta al medidor de volumen, se debe colocar de forma que sea transversal a los
desplazamientos del camin (Ilustracin 1.1). Esta colocacin permite determinar el perfil del
vehculo. Por otra parte, el sensor que se encarga de obtener informacin para calcular la
velocidad de desplazamiento, se debe colocar de forma longitudinal o paralela al movimiento
del camin (Ilustracin 1.2). Esta colocacin supone que ambos sensores se encuentran de
forma perpendicular.
Captulo 1
Introduccin
Parte I
Conceptos Previos

8 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser


Ilustracin 1.1 - Lectura transversal para el clculo de
volumen

Ilustracin 1.2 - Lectura longitudinal para el clculo de
velocidad
Este proyecto en concreto se centra en el clculo de la velocidad de desplazamiento. As como
se muestra en la Ilustracin 1.2.
1. Motivacin y marco del proyecto
Actualmente ya existen muchos mtodos para calcular la velocidad de un objeto en
movimiento en un instante de tiempo determinado. Para integrar esta funcin dentro del
mundo industrial, se quiere plantear la posibilidad de utilizar sensores que se encarguen
de obtener el perfil del entorno, es decir, del medio que los rodea durante un intervalo de
tiempo. De esta manera se puede comparar los perfiles medidos en cada instante y as
determinar el desplazamiento para un tiempo especfico.
Por lo tanto, el proyecto se desarrolla en un mbito enfocado a la automatizacin.
Precisamente se utilizan herramientas que permitan ser controladas mediante un simple
ordenador, con la ayuda de los programas y mtodos que se explicarn durante la
evolucin de la memoria.
La importancia en el clculo de la velocidad de desplazamiento del vehculo es necesaria
para determinar el volumen. En un principio esta velocidad estaba determinada por el
mecanismo que sujetaba el sensor para realizar los barridos. De esta manera, el objetivo
de este proyecto de final de carrera consiste en calcular velocidad a partir de la
comparacin de perfiles proporcionados por sensores. Adems, dicho clculo puede ser
de utilidad para otros proyectos actualmente en desarrollo, como la medicin de
volumen, que precisa saber el desplazamiento en un instante de tiempo determinado. Es
decir, la unin de ambos proyectos dara solucin a la problemtica de la empresa de
reciclaje.
2. Objetivos del proyecto
El objetivo del proyecto consiste en realizar un estudio de posibles soluciones de medicin
de velocidad a partir de diferentes mtodos para tratar la informacin que proporciona el
sensor. Estos mtodos a utilizar son: correlacin y scan matching. Ambos mtodos




Movimiento


Movimiento
Parte I
Conceptos Previos
Captulo 1
Introduccin

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 9

comparten un objetivo, encontrar la relacin entre dos perfiles de un mismo barrido que
determina el desplazamiento entre ambos.
- La correlacin es un mtodo que determina la semejanza de forma numrica. A
mayor valor, mayor semejanza. Se explica en el Captulo 4 (pgina 23).
- El mtodo scan matching, busca una solucin, de manera iterativa, que minimice
el error al establecer afinidad entre perfiles. Se encuentra desarrollado en el
Captulo 5 (pgina 27).
A partir de la aplicacin de estos mtodos se realizarn una serie de pruebas para
determinar la fiabilidad de ambos. Adems, se determinarn algunas caractersticas de su
comportamiento. A continuacin se muestran las distintas tareas a realizar en este
proyecto de final de carrera para cumplir el objetivo mencionado:
- Desarrollo del software de interfaz con el lser.
- Realizar un conjunto de pruebas con y sin ground truth
1
.
- Desarrollar el software para el anlisis de movimiento mediante ambos mtodos,
correlacin y scan matching.
- Disear un conjunto de experimentos y medidas de calidad.
- Comparar experimentalmente las distintas propuestas.
3. Estructura de la memoria
La estructura de este documento es el siguiente:
- Parte I: Se desarrollan los conceptos previos referentes a este documento. En
esta parte se encuentran los conceptos tericos, y caractersticas, sobre el
material que se utilizar y los mtodos.
- Parte II: Una vez se han expuesto los conceptos bsicos para entender los
problemas, las opciones disponibles y la teora necesaria, se procede con el
trabajo realizado. En esta parte se encuentran las adaptaciones, procesos y
algunos resultados de los mtodos utilizados.
- Parte III: En esta parte de la memoria se encuentran las conclusiones del
proyecto, as como las posibles ampliaciones del mismo.
- Anexo:
Manual de usuario Se adjunta un manual de usuario para facilitar el uso de los

1
El trmino ground truth se refiere a la realidad objetiva con la que se quiere comparar cierta
prediccin, clculo o estimacin. En nuestro caso particular, dado que estimamos la posicin del sensor
lser mediante tcnicas con cierto grado de imprecisin, como scan matching o correlacin, el ground
truth se corresponde a la posicin real del sensor. De este modo, podremos evaluar la calidad de las
estimaciones obtenidas comparndolas con el ground truth.
Captulo 1
Introduccin
Parte I
Conceptos Previos

10 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

programas y la aplicacin de los mtodos. Tambin se aade el acceso al sensor
lser utilizado.
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 11


Captulo 2.
Sensores
El proyecto se inicia con la captacin de informacin del entorno. En este captulo se darn los
conceptos referentes a los elementos utilizados para esta necesidad.
Recordemos que el objetivo del proyecto consiste en medir la velocidad de desplazamiento.
Esta velocidad se determina a partir del desplazamiento extrado mediante la comparacin de
dos perfiles del entorno.
Hay muchas herramientas que pueden proporcionar la informacin del entorno. La dificultad
es que no nos sirve cualquier instrumento, slo aqul capaz de proporcionar el perfil del
entorno de manera rpida y con una sobrecarga de informacin mnima. Por tanto, se debe
realizar un pequeo estudio de los posibles equipos tiles para este proceso.
Por ejemplo una cmara sera til para medir el desplazamiento, ya que con la informacin
obtenida del entorno se puede determinar el desplazamiento. Adems, se trata de una
herramienta relativamente barata en comparacin a otra. No obstante, el principal motivo por
el que no resulta til el uso de una cmara para este proyecto, es debido a que se trata de un
instrumento muy sensible a la iluminacin, circunstancia que no la hace conveniente en un
entorno real. Tambin hay que tener en cuenta que el coste de procesamiento de imgenes es
elevado si lo comparamos con otros mecanismos para captar informacin del entorno. Por
este motivo se estudian otros tipos de sensores.
Se denomina sensor a los dispositivos capaces de transformar variables fsicas en seales
elctricas codificadas, ya sea en forma digital o analgica.
Al descartar el uso de una cmara se deben analizar los tipos de sensores que mejor se ajusten
a nuestras necesidades. En otras palabras, el sensor que seleccionemos debe proporcionar
informacin capaz de representar el entorno.
A lo largo de este captulo se explicarn diferentes partes, caractersticas y definiciones
referentes a los sensores que se utilizarn durante el documento. Siendo aplicable a
mecanismos como son ahora los robots, ya que la informacin que utilizan estos mecanismos
son sensores. Por otra parte, se aplican estos conceptos a un nivel ms amplio en algunos
experimentos realizados. Estos conceptos son necesarios para la eleccin del tipo de sensor.
Una vez seleccionado el tipo de sensor se determinar el sensor que se utilizar finalmente en
el proyecto, junto con sus caractersticas especficas haciendo referencia a estos conceptos.
Captulo 2
Sensores
Parte I
Conceptos Previos

12 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

Hasta ahora se ha hecho referencia al concepto de barrido a cada pasada que realizaba el
mecanismo para la medicin de volumen (pgina 8). A partir de este momento, el concepto de
barrido har referencia a cada perfil medido en cada instante por el sensor. De esta manera, se
utiliza el concepto de lectura al conjunto de barridos (perfiles) realizados a lo largo de una
medicin que comprende la totalidad del desplazamiento del objeto.
Los conceptos de este captulo se han extrado de las siguientes fuentes: Control Sensors and
Actuators [1] y Autmatas Programables [2].
1. Partes de un sensor
1.1 Elemento sensor o captador
Un elemento sensor o captador convierte las variaciones de magnitudes fsicas en
variaciones de magnitud elctrica o magntica. Esta magnitud se denomina seal.
1.2 Bloque de tratamiento de seal
En el bloque de tratamiento de seal se procesa la informacin obtenida en el
captador mediante circuitos electrnicos.
1.3 Etapa de salida
En la etapa de salida se transforma la seal para adaptarla a las necesidades de la
carga exterior: amplificacin, codificacin de la seal, interruptores, etc.
2. Clasificacin segn el tipo de seal de salida
Segn la codificacin de la magnitud de medida, los sensores se pueden clasificar en:
2.1 Analgicos
Los sensores analgicos proporcionan como salida un valor en continua de tensin
o corriente dentro del campo de medida.
2.2 Digitales
Los sensores digitales san como salida una seal codificada en forma de pulsos o de
forma codificada en palabra digital ya sea en binario, hexadecimal, BCD u otro
sistema.
2.3 Todo-Nada
Los sensores Todo-Nada (tambin conocidos como Verdadero-Falso) nicamente
indican cuando se rebasa un cierto umbral.
Parte I
Conceptos Previos
Captulo 2
Sensores

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 13

3. Caractersticas generales de los sensores
Para definir el comportamiento real de los sensores se compara con un modelo ideal y se
definen una serie de caractersticas en las que se muestran las desviaciones respecto al
ideal. Se clasifican en dos grandes grupos: caractersticas estticas y dimmicas.
3.1 Caractersticas estticas
Las caractersticas estticas son aquellas que describen el comportamiento del
sensor en rgimen permanente. Se definen a continuacin:
1. Campo de medida: Es el rango de valores de la magnitud de entrada
comprendido entre el mximo y el mnimo valor detectable por el sensor
con una tolerancia del error aceptable.
2. Resolucin: Mnima diferencia entre dos valores muy prximos
distinguibles por el sensor.
3. Precisin: Define la mxima desviacin entre una medida real y un valor
terico en unas condiciones de entorno determinadas.
4. Repetibilidad: Mxima desviacin entre varias mediadas de un mismo valor
de entrada, con el mismo sensor y las mismas condiciones de entorno.
5. Linealidad: Se dice que un sensor es lineal si existe una nica relacin
constante entre los incrementos de salida y los correspondientes valores de
entrada, dentro del campo de medida.
6. Sensibilidad: Es la relacin entre la salida por unidad de magnitud de
entrada. Se dice que un sensor es muy sensible cuando presenta grandes
variaciones para pequeas fluctuaciones de entrada. Para sensores lineales
este valor se mantiene constante, mientras que para los no lineales
depende del punto en que se mida.
7. Ruido: Distorsin producida por el mismo sensor en la salida que desvirta
respecto al valor terico.
8. Histresis: Se dice que un sensor presenta histresis al presentar
variaciones en la salida al tomar unos mismos valores de entrada de forma
creciente o decreciente.
3.2 Caractersticas dinmicas
Las caractersticas dinmicas describen el comportamiento del sensor en rgimen
transitorio, definen su respuesta temporal. Se presentan a continuacin:
Captulo 2
Sensores
Parte I
Conceptos Previos

14 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

1. Velocidad de respuesta: Mediante este parmetro se mide la capacidad de un
sensor para representar en la salida las variaciones de la entrada sin retraso.
1.1. Tiempo de retardo: Se define as al tiempo transcurrido desde la entrada
de un escaln hasta que la salida alcanza el 10% de su valor permanente.
1.2. Tiempo de subida: Es el tiempo que tarda la salida desde que alcanza el
10% hasta el 90% de su valor permanente.
1.3. Tiempo de establecimiento al 99%: Tiempo que tarda la salida desde la
aplicacin de un escaln de entrada hasta alcanzar su rgimen
permanente con una tolerancia de 1%.
2. Respuesta frecuencial: Relacin entre la sensibilidad y la frecuencia cuando la
entrada es una excitacin sinusoidal. Suele representarse mediante un
diagrama de Bode.
3. Estabilidad y derivas: Caractersticas que indican la desviacin de salida para
una misma entrada para variaciones de parmetros exteriores diferentes al
que se quiere medir, as como las condiciones ambientales o la alimentacin
entre otros.
4. Sensores medidores de distancia
Recordemos que el tipo de sensor interesante a utilizar en este proyecto es aquel que nos
permita obtener un perfil del entorno. Este tipo de sensores suelen proporcionar
distancia, as que nos centraremos en este tipo de instrumentos. Entre los ms habituales
encontramos dos tipos de sensores:
- Sensor lser.
- Sensor ultrasnico.
4.1 Sensor lser
El lser (Light Amplification by Simulated Emission of Radiation), consiste en una
seal electromagntica con una longitud de onda comprendida en el espectro
visible, luz ultravioleta y luz infrarroja. Una peculiaridad del lser es que se trata de
una seal monocromtica, lo que implica que no tiene dispersin. Adems, se trata
de una seal electromagntica coherente, es decir, su longitud de onda se
mantiene constante. En resumen, el lser es una seal electromagntica
controlada.
Los sensores lser pueden utilizarse como detectores de distancia mediante tiempo
de vuelo y anlisis de interferencias. El anlisis mediante tiempo de vuelo trata la
distancia mediante el tiempo entre la emisin y la recepcin. Por otra parte, el
anlisis de interferencias se realiza mediante la comparacin de dos seales, la
emitida con la recibida.
Parte I
Conceptos Previos
Captulo 2
Sensores

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 15

El anlisis de interferencias (interferometra) se basa en la superposicin de dos
ondas de igual frecuencia, una directa y la otra reflejada. Los sensores generan un
haz de luz que se divide en dos partes ortogonales mediante un separador. Un haz
se aplica sobre un espejo plano fijo, mientras el otro refleja sobre el objeto cuya
distancia se quiere determinar. Los dos haces se superponen de nuevo en el
separador, de forma que al separarse del objeto se generan mximos y mnimos a
cada mltiplo de la longitud de onda del haz. La distancia se mide contando dichas
oscilaciones o franjas, obtenindose una salida digital de elevada precisin. Para
ilustrar este esquema se propone la Ilustracin 2.1.
La interferometra, as como se ha explicado, presenta un problema. Al producirse
mximos y mnimos se obtienen ambigedades, es decir, sera incapaz de medir
distancias superiores a la longitud de onda. Por ese motivo, los sensores aplican
una solucin basada en la emisin de dos seales desfasadas y distinta frecuencia.
Cada haz produce ambigedades, pero tratados en conjunto aparecen
aproximadamente a los 5 metros en el caso del sensor utilizado. Por esta razn,
entre otras, el sensor tiene limitaciones a la hora de medir ciertas distancias.

Ilustracin 2.1 - Interferometra
Las caractersticas de los sensores lser son:
+ Elevada inmunidad a las perturbaciones electromagnticas externas.
+ Alta velocidad de respuesta y de conmutacin.
+ Permiten la identificacin de colores.
+ Capaz de proporcionar distancias considerables con una resolucin
aceptable.
Es difcil detectar objetos transparentes, as como plsticos o cristal. Ver
Ilustracin 2.2
No es efectivo en ambientes con presencia de polvo. Ver Ilustracin 2.3



Sensor


Objeto
Espejo
Espejo

Contador de
pulsos
Captulo 2
Sensores
Parte I
Conceptos Previos

16 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser


Ilustracin 2.2 - Efectos ante un cuerpo transparente


Ilustracin 2.3 - Efectos del polvo a la seal del lser
4.2 Sensor ultrasnico
El sensor ultrasnico determina la distancia mediante el tiempo entre la emisin de
la seal y la recepcin de su eco. En este caso la seal es un ultrasonido, es decir,
sonidos no detectables por el odo humano. Esta tcnica est basada en la forma
aplicada por naturaleza, por ejemplo, la evitacin de obstculos por los murcilagos
mediante el eco de un sonido emitido. El ms conocido es el snar, utilizado en
medios acuticos.
Las caractersticas de este sensor son:
+ Es capaz de detectar cualquier tipo de material y color, incluso materiales
invisibles.
+ Capaz de proporcionar distancias considerables con una resolucin
aceptable.
Es difcil trabajar en ambientes con mucha contaminacin acstica y en
entornos donde se trabaje con materiales chirriantes, como por ejemplo, el
choque de metales o de cristales.
Al ser un sonido, necesita un medio para propagarse, entonces, si estamos
en una fbrica el sonido se propaga por aire, circunstancia que limita la
utilizacin en entornos donde la velocidad del aires sea elevada, as como
una boca de aire acondicionado.
Tiene limitaciones a la hora de trabajar con diferentes formas de material.
Ver Ilustracin 2.4 e Ilustracin 2.5




Sensor

Objeto transparente
(Cambio de medio)




Sensor

Polvo

Haz emitido
Rebote del haz
emitido
Parte I
Conceptos Previos
Captulo 2
Sensores

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 17

Puede verse alterado por la radiacin emitida por cuerpos calientes. Ver
Ilustracin 2.6.

Ilustracin 2.4 - ngulo (o) mximo de trabajo para detectar objetos planos


Ilustracin 2.5 - ngulo (o) mximo de trabajo para detectar objetos rugosos





Sensor


Sensor

Objeto liso
Objeto muy
rugoso
o

o
Captulo 2
Sensores
Parte I
Conceptos Previos

18 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser


Ilustracin 2.6 - Medidas en funcin de la irradiacin de calor por parte del objeto





Sensor
Objeto fro
Medida
correcta









Sensor
Objeto caliente

Medida
incorrecta






Sensor
Objeto caliente
Medida
posible

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 19


Captulo 3.
Robots
En este captulo se explica el uso de los robots aplicado en este proyecto.
El objetivo principal de este proyecto consiste en el clculo de velocidad de un objeto a partir
del uso de varios mtodos. Para poder saber la fiabilidad o exactitud de los clculos para estas
velocidades, es necesario conocer la velocidad de desplazamiento y posicin del objeto a
priori. Dado que aplicarlo en un caso real resulta muy complicado se hace uso de robots. Estas
herramientas nos permiten configurar un desplazamiento, velocidad y aceleraciones para
poder simular casos de la vida real como son por ejemplo aceleraciones, desaceleraciones y
paradas entre otros.
A continuacin, se expondrn diferentes tipos de robots, junto con sus caractersticas para
saber las posibilidades que hay para poder realizar dichas simulaciones.
La referencia bibliogrfica de este captulo se centra en Robtica Industrial. Tecnologa,
programas y aplicaciones [3]. Adems de hacer uso de conceptos ya explicados en el Captulo
2.
1. Tipos de robots
Los robots se clasifican en dos grandes grupos, los manipuladores y los mviles.
1.1 Robots mviles
Los robots mviles, como indica su nombre, son capaces de desplazarse de manera
autnoma. El inconveniente que presentan estos robots es la localizacin, debido a
que el sistema de coordenadas de la base cambia en el espacio y el entorno vara.
Este problema, supone una programacin ms avanzada para la evitacin de
obstculos y saber reaccionar adecuadamente ante ellos. Adems, se requieren
diferentes tipos de sensores para determinar su localizacin espacial.
1.2 Robots manipuladores
Los robots manipuladores, a diferencia de los mviles, tiene siempre la base fija, es
decir, el sistema de coordenadas de la base no cambia. Tambin son conocidos
como brazo robot. Se caracterizan por tener una anatoma parecida al brazo de una
persona (hombro, codo y mueca), que les permite realizar una gran cantidad de
Captulo 3
Robots
Parte I
Conceptos Previos

20 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

movimientos tiles. Dependiendo del nmero y tipo de articulaciones de que
disponga, puede realizar ms o menos combinaciones.
A partir del tipo de movimientos que pueda realizar, se clasifican en cuatro
configuraciones bsicas:
1. Configuracin polar. Ilustracin 3.1.
2. Configuracin cilndrica. Ilustracin 3.2.
3. Configuracin de coordenadas cartesianas. Ilustracin 3.3.
4. Configuracin de brazo articulado. Ilustracin 3.4.


Ilustracin 3.1 - Configuracin polar


Ilustracin 3.2 - Configuracin cilndrica



Ilustracin 3.3 - Configuracin de coordenadas
cartesianas


Ilustracin 3.4 - Configuracin de brazo articulado

Parte I
Conceptos Previos
Captulo 3
Robots

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 21

2. Robots disponibles en la UIB
El grupo de Sistemas, Robtica y Visin de la Universitat de les Illes Balears dispone,
entre otros, de los siguientes robots:
- Robot mvil Pioneer 3-DX.
- Brazo industrial Mitsubishi RV6S.
Los robots anteriormente mencionados son los que se haban planteado utilizar. Para
poder decidir con cul nos quedamos se presentan sus principales caractersticas. La
eleccin del robot de trabajo se expone en la pgina 45.
2.1 Pioneer 3-DX

Ilustracin 3.5 - Pioneer 3-DX
La informacin del robot Pioneer 3-DX se encuentra en la referencia [4]. El diseo
de este robot est enfocado a tareas de desarrollo e investigacin. Se trata de un
robot mvil dotado de snar, bateras y codificadores pticos. Se desplaza
mediante traccin diferencial, caracterstica que le permite hacer rotaciones sobre
su propio eje o sobre una rueda, entre otros, aumentando su versatilidad. Su
estructura es de aluminio y puede cargar con 23 Kg. Su velocidad mxima de
traccin alcanza 1.6 m/s, mientras que la velocidad de rotacin alcanza los 300/s.
Su programacin se basa en lenguaje C, con la opcin de utilizacin de libreras
ARIA (ActivMedia Robotics Interface for Applications).
2.2 Mitsubishi RV-6S
La informacin del robot Mitsubishi RV-6S se encuentra en la fuente: [5]. Este tipo
de robot est diseado para entornos industriales, como por ejemplo apilamiento
de materiales. Adems, resulta til para estudios de desarrollo e investigacin.
Captulo 3
Robots
Parte I
Conceptos Previos

22 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

Se trata de un robot de configuracin brazo articulado, tambin conocido como
brazo robot. Se caracteriza por tener 6 grados de libertad, lo que permita una gran
cantidad de movimientos, adems de proporcionar un rea de trabajo bastante
amplia. Este robot puede trabajar con cargas mximas de 12 kg y puede alcanzar
velocidades de hasta 9.3 m/s.
El lenguaje de programacin es en MELFA BASIC IV. Mediante el software COSIROP
es posible enviar los programas a su controladora para interpretar las instrucciones
y ejecutarlas.

Ilustracin 3.6 - Robot Mitsubishi RV-6S

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 23


Captulo 4.
Correlacin
La correlacin se puede definir como la correspondencia o relacin recproca entre dos o ms
cosas o conjuntos de cosas.
El objetivo de aplicar este mtodo es encontrar la correspondencia de un conjunto de valores
respecto a otro, de forma que comparndolos, se encuentre la mxima afinidad entre ellos. La
aplicacin de este mtodo en el proyecto tiene como objetivo determinar el desplazamiento
de un objeto a partir de la comparacin de dos perfiles del entorno.
1. Coeficiente de correlacin 1D
A continuacin se muestra una adaptacin, a partir de la definicin del coeficiente de
correlacin, la expresin para tratar con conjuntos de mismas dimensiones y as poder
reducir los clculos.
Supongamos dos matrices e , donde corresponde a la desviacin tpica de las
mismas y

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

los puntos del barrido actual. Se


aplica una estimacin de desplazamiento

sobre

se obtiene

. Por este motivo, se establecen correspondencias asociando a


cada punto de

(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

tal que la suma de distancias al cuadrado entre

)
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 (

) por una cuadrcula de manera


que en cada celda de la cuadrcula se aplica la distribucin normal a partir
Parte I
Conceptos Previos
Captulo 5
Scan Matching

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 29

de la desviacin tpica y de la media de los valores correspondientes a la
misma celda.
Posteriormente, se calcula la celda a la que pertenecera cada punto del
barrido actual (

). El error a minimizar se define como la suma de los


valores obtenidos por cada punto de

al proyectarse sobre la celda


definida por

.
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 (

). A partir del conjunto de las distribuciones de

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 (

), siendo la medida de error la suma de valores de


incertidumbre para cada punto del barrido actual. Por tanto se busca la
transformacin que reduce el error.
2. Seleccin del mtodo a usar
A pesar de los diferentes mtodos existentes, en el proyecto se ha escogido trabajar con
el mtodo ICP. Los motivos a esta eleccin son los siguientes:
- Es muy probable encontrar un mnimo entre dos barridos consecutivos con
desplazamientos pequeos.
- Es muy comn en el mundo de la robtica y de la automatizacin ya que se trata
de un mtodo simple y eficaz.
- En comparacin a los otros mtodos descritos es el ms rpido.
Captulo 5
Scan Matching
Parte I
Conceptos Previos

30 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

3. Algoritmo ICP
El algoritmo ICP se centra en establecer correspondencias mediante la distancia eucldea
entre los puntos del barrido actual (

) 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.
-

: Conjunto de puntos comprendidos en

.
-

: Conjunto de puntos comprendidos en

.
-

: Estimacin de la transformacin en la iteracin .


-

: Error ICP en la iteracin .


- : Se indica con este smbolo a la composicin de transformaciones que se
ha generalizado para tratar puntos y a conjuntos de puntos.
Por ejemplo, si se tratara de un punto referenciado al sistema , entonces

seran las coordenadas de referenciadas a . De esta misma forma,

que seran las coordenadas de respecto del sistema .


En la Ilustracin 5.1 se muestra un ejemplo.
En el Cdigo 5.1 de la pgina 32 se muestra el algoritmo ICP en forma de
seudocdigo. A continuacin se explican algunos detalles. La simbologa utilizada
esta definida en el propio cdigo.
Parte I
Conceptos Previos
Captulo 5
Scan Matching

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 31


Ilustracin 5.1 - Ejemplo representativo de composicin
Se define para el nmero de iteracin. En el proceso de Asociacin de
correspondencias se relaciona

mediante la transformacin

aplicada en

, es decir,

. Se aplican asociaciones a todos los puntos


correspondientes al barrido actual con el de referencia. Dichas asociaciones se
encuentran descritas en la variable

.
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 (

) es la suma de todas las distancias al


cuadrado. Este proceso se implementa en la Minimizacin. En esta parte del
algoritmo se busca el argumento de

que hace que error sea el mnimo.


El algoritmo itera los bloques Asociacin de correspondencias y Minimizacin hasta
encontrar el correspondiente fin. Se aplican dos tipos de condiciones para acabar
de iterar.
La primera condicin consiste en encontrar la convergencia. Se considera como
convergencia si el radio de error

entre iteraciones consecutivas se encuentra por


debajo de un cierto umbral

. Entonces, se debe cumplir la expresin (5.1):



1
min
1
k k
k
k
e e
E d
e

= < (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

: Estimacin de la transformacin inicial

: Umbral de convergencia
Salida:

: Estimacin de transformacin

: Error de ICP en la iteracin


Programa:

1 inicio
2 ;
3

;
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

se comprueban todos los valores de

para encontrar el valor que asemeja con

. 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

se utiliza para determinar la convergencia. Mientras este valor


sea superior a

y no se haya sobrepasado el nmero mximo de iteraciones se


continua iterando. De este modo nos aseguramos que el error como mximo ser
inferior a

. Este parmetro

es importante que est ajustado al tipo de


medidas que se van a tratar, ya que no todos los valores son vlidos.
La minimizacin del algoritmo descrito en este apartado, ICP 2D, se utiliza la
solucin cerrada de Lu & Milios [7].
3.2 Adaptacin ICP 1D
Lo que se pretende con el algoritmo ICP 1D es minimizar el error, considerndose
como la suma de la distancia eucldea entre los puntos asociados. A continuacin se
explicar el funcionamiento de este algoritmo para el caso de 1D (traslacin) al ser
una propuesta de este proyecto final de carrera que se adapta mejor al tipo de
datos a utilizar. El caso 2D (rotacin + traslacin) se encuentra ampliamente
descrito en las referencias y a lo largo de este captulo.
En la Ilustracin 5.2, Ilustracin 5.3 e Ilustracin 5.4 se muestra un ejemplo
aplicando ICP a dos barridos consecutivos realizando varias iteraciones. En cada
iteracin se asocia el punto ms cercano entre ambos barridos. Se aplica una
transformacin para converger. Este proceso se repite hasta encontrar el mnimo
error entre ambos barridos, recordando que el error es la suma de las distancias al
cuadrado de las asociaciones. En resumen, se aplica el algoritmo para encontrar la
transformacin que haga encajar mejor los puntos entre ambos barridos.

Ilustracin 5.2 - Iteracin i
: puntos del barrido
actual (

).
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

tal que la expresin sea mnima.



( ) ( ) ( )
( )
2
2
0
N
xi xi yi yi
i
e Tx p q Tx p q
=
= + +

(5.2)
Siendo

la traslacin en que se busca en el mtodo ICP 1D. Entonces, al


aplicar

en resultar que sea lo ms semejante o prximo a .


Entonces la minimizacin busca el argumento

que minimiza el error (5.3)


descrito en la ecuacin (5.2).
( ) ( )
argmin
x x
T e T = (5.3)
A continuacin, en la Ilustracin 5.5 se utiliza el mismo barrido, tanto en
como en , para diferentes valores de

.
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

debe ser cero.



Y Y
X X
Parte I
Conceptos Previos
Captulo 5
Scan Matching

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 35


Ilustracin 5.5 - Error de ICP para diferentes valores de


La derivada del error (5.4) al igualarla a cero permite encontrar el valor de

que resulta ser el argumento que minimiza el error, es decir, el que


cumple la expresin (5.3).

( ) ( )
1
( )
2 2
N
x
x xi xi
i
x
e T
N T p q
T
=
c
=
c

(5.4)
Al igualar a cero la expresin (5.4) se obtienen los valores 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.
-

: Valor inicial de la transformacin.


-

: distancia mnima de correspondencia, al rebasar este valor, no se


aplica correspondencia entre puntos.
- : nmero mximo de iteraciones.
Por lo que respecta a

, se tratan de las lecturas realizadas. El algoritmo


implementado est diseado para recibir las medidas descompuestas en dos
dimensiones, en este caso X e Y. Entonces,

tendrn la misma estructura,


siendo la primera fila la componente en X y la segunda fila los de Y.
Captulo 11
ICP (Iterative Closest Points)
Parte II
Trabajo realizado

92 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

Inicialmente se debe declarar los valores de la transformacin

, 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

, de acuerdo como se explica en el apartado terico,


debe ser un valor aproximado a la diferencia que se espera encontrar entre
barridos consecutivos. Esto permite despreciar correspondencias mayores a este
umbral y as asegurar que la distancia calculada ser inferir a este.
Finalmente se define el parmetro para determinar el nmero mximo a
iterar en caso de no encontrar la convergencia.
1.2 Parmetros de salida
Los valores de salida que nos proporciona el cdigo aplicado son:
-

: Valor de la transformacin a aplicar en

tal que se asemeje al


mximo con

.
- : 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

. En cada posicin se encuentra el valor de posicin de los puntos de


correspondencia. Para entender mejor esta explicacin se dispone de un ejemplo
visual:
Parte II
Trabajo realizado
Captulo 11
ICP (Iterative Closest Points)

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 93


Ilustracin 11.2 - Ejemplo de correspondencias


Ilustracin 11.3 - Ejemplo de valor de correspondencias de la variable
Para el ejemplo anterior, se ha supuesto que el orden de los datos corresponde a su
organizacin. En ese caso, se encuentra la correspondencia de cada medida de


con

. El valor contenido en la variable , son las posiciones de los valores de


cada barrido, por ejemplo la primera columna nos indica que la primera posicin
del barrido a tratar se corresponde con la primera posicin el de referencia, la
segunda del barrido de comparacin con la primera de referencia, as para todos los
casos.
1.3 Ajustes realizados
A partir del programa inicial, se han realizado pruebas para ajustar el parmetro de
la distancia mnima (

), ya que dependiendo de este valor se obtienen


diferentes resultados debido que define la distancia eucldea a partir de la cual no
se establecen correspondencias. Entonces, se ha intentado establecer un valor
ptimo para trabajar con las velocidades probadas, ya que este valor vara. Algunos
proporcionan un error mnimo, pero su tiempo de ejecucin es medianamente
elevado. De esta manera se pretende considerar como valor ptimo al valor que
mejor se ajuste a las siguientes condiciones: proporcionar el resultado que mejor se
aproxime a la realidad con el mnimo tiempo posible.
En primer lugar se necesita saber el rango de posibles valores para

. 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

para diferentes velocidades.


Comprendidas entre 100 mm/s y 600 mm/s.
Y
1
X
2 3 4
1 1 2 3



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.
-

: Valor inicial de la transformacin (solo en la componente ).


-

: 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

. El ajuste de este parmetro se explica en el apartado Ajustes


realizados, que se encuentra a posterior.
2.2 Parmetros de salida
Los valores de salida para este cdigo son:
-

: Valor de la transformacin a aplicar en

tal que se asemeje al


mximo con

.
- : 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

que proporcione el error y el coste computacional mnimos, se ha realizado


por inspeccin visual, ya sea mediante los grficos de representacin del tiempo de
proceso junto con la distancia calculada, o a partir del grfico de posiciones de
desplazamiento para cada barrido, sabiendo a priori el tipo de desplazamiento que
se realiza. A continuacin se muestra un ejemplo del proceso realizado para el caso
de una dimensin, es el mismo proceso que para el caso 2D, pero debido a que son
programas diferentes, se deben hacer estudios particulares.
En la Ilustracin 11.9 se muestran un conjunto de resultados para diferentes valores
de

, relacionando cada color con una lectura diferente. Debemos encontrar


aquella

que proporcione un tiempo de ejecucin reducido y el error de


medicin sea el mnimo. Sabiendo a priori que la distancia recorrida es de 772mm.
A partir de las graficas se deduce que el valor ptimo de

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

, considerado como ptimo, se observa


que la grfica de desplazamiento sea lo ms semejante al esperado, es decir,
sabiendo el tipo de desplazamiento que realiza.
Parte II
Trabajo realizado
Captulo 11
ICP (Iterative Closest Points)

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 99


Ilustracin 11.9 - Representacin grfica para determinar


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

ms elevado comprendido en ese rango que mientras no se realice


desplazamiento se obtenga la mnima variacin posible, explicados en el ejemplo
que se describe a continuacin.

Ilustracin 11.10 - Ejemplo para

500mm
Este ejemplo se ha escogido de tal manera que se represente el motivo de la
eleccin del valor para

. Entonces, el valor escogido es el de 500mm. En la


memoria solo se encuentra una mera representacin del proceso para elegir dicho
Captulo 11
ICP (Iterative Closest Points)
Parte II
Trabajo realizado

100 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

valor. En realidad, se ha realizado un estudio caso por caso determinando las
diferencias, llegando a la conclusin que el que valor coincidente entre todas las
muestras que presenta una variacin mnima se encuentra muy prximo a los
500mm.
Los cambios indicados en la Ilustracin 11.11 aportan informacin errnea, ya que
debido a esas pequeas fluctuaciones, donde el sistema est esttico, hacen
incrementar el valor de la medida del desplazamiento, haciendo creer una mejora.
Esto nos afecta al valor de la velocidad, ya que cuantos ms picos se calculen, peor
se calcular el valor de la velocidad.

Ilustracin 11.11 - Ejemplo para 600mm
3. Conclusiones referentes a


Al haber calculado el valor de la variable

ha resultado salir el mismo valor tanto para


ICP 1D como para 2D. Entonces para asegurarnos de realizar bien los clculos se
recomienda ajustar este parmetro para calibrar el sistema. Esto afecta a la calidad de los
clculos adems de despreciar utilidad del programa, ya que el tiempo de respuesta se ve
involucrado.
4. Resultados
Seguidamente se mostrarn un conjunto de resultados. Se analizan los comportamientos
de ambos algoritmos detallados anteriormente aplicados a diferentes entornos y
velocidades. Los entornos muestreados son los que aparecen en el Captulo 8 (pgina 55).

Cambios
Parte II
Trabajo realizado
Captulo 11
ICP (Iterative Closest Points)

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 101

4.1 ICP 1D
4.1.1 Velocidad 100mm/s

Ilustracin 11.12 - 100 mm/s Entorno 1

Ilustracin 11.13 - 100 mm/s Entorno 2
Captulo 11
ICP (Iterative Closest Points)
Parte II
Trabajo realizado

102 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser


Ilustracin 11.14 - 100 mm/s Entorno 3
En el caso de tener un desplazamiento de 100mm/s, tal como presentan las
ilustraciones comprendidas entre la Ilustracin 11.12 hasta la Ilustracin
11.14, se muestran un conjunto de resultados muy favorables. A pesar de la
aparicin de variaciones a lo largo del desplazamiento, los resultados son
favorables ya que los resultados se aproximan mucho a la realidad.
Las fluctuaciones de los grficos son inevitables, ya que la organizacin
espacial de las medidas no siempre es correcta. Esto causa la variacin en
asociacin de los puntos y por tanto en la minimizacin, generando estas
pequeas fluctuaciones en los clculos. Las imprecisiones de las medidas se
deben al entorno, ya que el efecto de la luz al incidir sobre un cuerpo puede
variar segn sus caractersticas.
4.1.2 Velocidad 300 mm/s

Ilustracin 11.15 - 300 mm/s Entorno 1
Parte II
Trabajo realizado
Captulo 11
ICP (Iterative Closest Points)

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 103


Ilustracin 11.16 - 300 mm/s Entorno 2

Ilustracin 11.17 - 300 mm/s Entorno 3
A partir de las ilustraciones comprendidas entre la Ilustracin 11.15 hasta la
Ilustracin 11.17 se puede observar que al trabajar con una velocidad
mayor, en este caso 300mm/s, se obtienen menos barridos. Por este
motivo la existencia de fluctuaciones se ha reducido.
Captulo 11
ICP (Iterative Closest Points)
Parte II
Trabajo realizado

104 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

4.1.3 Velocidad 600 mm/s

Ilustracin 11.18 - 600 mm/s Entorno 1

Ilustracin 11.19 - 600 mm/s Entorno 2
Parte II
Trabajo realizado
Captulo 11
ICP (Iterative Closest Points)

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 105


Ilustracin 11.20 - 600 mm/s Entorno 3
A partir de la Ilustracin 11.18 hasta la Ilustracin 11.20 se muestran los
resultados a partir de una cierta velocidad para diferentes entornos. Al igual
que en la configuracin anterior, el nmero de barridos ha disminuido a
causa de la velocidad.
El motivo por el que no se alcanza la velocidad terica se debe a las posibles
imprecisiones del propio sensor o de los tratamientos previos, as como
tambin a la aplicacin del mtodo, ya que el valor de desplazamiento
depende del valor de transformacin que minimiza el error.
4.1.4 Velocidad 900 mm/s

Ilustracin 11.21 - 900 mm/s Entorno 2
Captulo 11
ICP (Iterative Closest Points)
Parte II
Trabajo realizado

106 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser


Ilustracin 11.22 - 900 mm/s Entorno 3
4.1.5 Resultados de fiabilidad ICP 1D
Valor de desplazamiento medio [mm]
Velocidad [mm/s] Entorno 1 Entorno 2 Entorno 3
100 706.4668 688.9869 730.8615
200 717.6192 712.5682 757.8183
300 725.2917 716.9047 753.6431
400 726.9559 718.0204 749.4861
500 729.8635 715.2248 749.3882
600 725.9902 717.0607 749.5415
700 715.5770 749.0391
800 715.1006 752.6808
900 706.1289 747.9323
Tabla 11.1 - Valores promedio de desplazamiento calculados
Sabiendo que el desplazamiento real es de 772mm, se ha analizado el error
a partir del desplazamiento terico frente al calculado, que se muestra en
las grficas partiendo de la Ilustracin 11.23 hasta la Ilustracin 11.25.
Los resultados que se muestran en estas ilustraciones son los errores
obtenidos a partir de diferentes entornos. La barra ms ancha y de color
azul oscuro representa la media de los errores cometidos para un conjunto
determinado tipo de ficheros. Por ejemplo si se escoge el conjunto
Robot_01_xx, se representa la media del conjunto comprendido entre
Robot_01_01 hasta Robot_01_10.
La barra ms fina de color azul claro es la desviacin tpica de los errores
para cada conjunto.
Parte II
Trabajo realizado
Captulo 11
ICP (Iterative Closest Points)

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 107

Por lo que se observa en las figuras, el Entorno 3 es el ms favorable con un
error medio mximo del 5%, mientras que el Entorno 2 presenta unos
errores ms elevados, en este caso el error medio mximo es de un 10%.

Ilustracin 11.23 - Representacin de errores de desplazamiento para el Entorno 1

Ilustracin 11.24 - Representacin de errores de desplazamiento para el Entorno 2

Ilustracin 11.25 - Representacin de errores de desplazamiento para el Entorno 3
Captulo 11
ICP (Iterative Closest Points)
Parte II
Trabajo realizado

108 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

4.2 ICP 2D
4.2.1 Velocidad 100mm/s
Dados los resultados para la velocidad de 100mm/s, tal como se puede ver
en las ilustraciones comprendidas entre la Ilustracin 11.26 hasta la
Ilustracin 11.28. El peor resultado parece ser el referente al Entorno 2, ya
que el grfico no alcanza la velocidad terica.

Ilustracin 11.26 - 100 mm/s Entorno 1

Ilustracin 11.27 - 100 mm/s Entorno 2
Parte II
Trabajo realizado
Captulo 11
ICP (Iterative Closest Points)

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 109


Ilustracin 11.28 - 100 mm/s Entorno 3
4.2.2 Velocidad 300 mm/s
Al igual que en la velocidad anterior, los resultados para la velocidad de
300mm/s presenta un mayor error los Entornos 1 y 2. Dentro del conjunto
de entornos mostrados, el que presenta los mejores resultados es el
Entorno 3. Tal como se puede ver en las ilustraciones comprendidas entre
la Ilustracin 11.26 hasta la Ilustracin 11.28.

Ilustracin 11.29 - 300 mm/s Entorno 1
Captulo 11
ICP (Iterative Closest Points)
Parte II
Trabajo realizado

110 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser


Ilustracin 11.30 - 300 mm/s Entorno 2

Ilustracin 11.31 - 300 mm/s Entorno 3

Parte II
Trabajo realizado
Captulo 11
ICP (Iterative Closest Points)

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 111

4.2.3 Velocidad 600 mm/s

Ilustracin 11.32 - 600 mm/s Entorno 1

Ilustracin 11.33 - 600 mm/s Entorno 2
Captulo 11
ICP (Iterative Closest Points)
Parte II
Trabajo realizado

112 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser


Ilustracin 11.34 - 600 mm/s Entorno 3
4.2.4 Velocidad 900 mm/s

Ilustracin 11.35 - 900 mm/s Entorno 2
Parte II
Trabajo realizado
Captulo 11
ICP (Iterative Closest Points)

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 113


Ilustracin 11.36 - 900 mm/s Entorno 3
4.2.5 Resultados de fiabilidad ICP 2D
Valor de desplazamiento medio [mm]
Velocidad [mm/s] Entorno 1 Entorno 2 Entorno 3
100 748.934 717.4831 770.5120
200 749.7780 737.7632 796.8206
300 757.9244 743.0907 786.3118
400 761.4300 743.9171 780.8362
500 761.8113 741.1246 781.7934
600 755.0795 743.5951 782.8753
700 740.8337 782.3027
800 740.6574 785.2802
900 729.1386 780.1458
Tabla 11.2 - Valores promedio de desplazamiento calculados
Al igual que en ICP 1D, se ha calculado el error cometido a partir del
desplazamiento, resultando las ilustraciones comprendidas entre la
Ilustracin 11.37 y la Ilustracin 11.39.
Para estas representaciones se observa que efectivamente, el error para el
caso bidimensional, el error mximo medio calculado se encuentra sobre el
7%. Para estas ilustraciones tambin se deduce que el mejor entorno es el
Entorno 3, presentando unos errores medios mximos del 3%. Los errores
del Entorno 3 en conjunto tienen un error medio del 2%.

Captulo 11
ICP (Iterative Closest Points)
Parte II
Trabajo realizado

114 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser


Ilustracin 11.37 - Representacin de errores de desplazamiento para el Entorno 1

Ilustracin 11.38 - Representacin de errores de desplazamiento para el Entorno 2

Ilustracin 11.39 - Representacin de errores de desplazamiento para el Entorno 3
5. Comparativas
En las representaciones del punto anterior (Resultados), se puede observar que se
detectan pequeos desplazamientos donde no debera haber. Estas fluctuaciones se
Parte II
Trabajo realizado
Captulo 11
ICP (Iterative Closest Points)

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 115

deben a imprecisiones en las lecturas a causa de la sensibilidad (Captulo 2) del sensor
frente el material que trata, o por el propio sistema de captacin. El sensor resulta las
mediciones se encuentran en un rango de 20 a 1000mm, lo que puede contener un error
dado por el sensor de 10mm (Captulo 6, [11]). Por otra parte, 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

. Por otra parte, a


mayor velocidad, mayor es el espacio entre lectura y lectura, y menos barridos se realizan
teniendo menos referencias. Todo este conjunto de peculiaridades son causa de los
resultados obtenidos.
5.1 Comparacin con la aceleracin del robot
Al igual que se representa la diferencia entre las posiciones instantneas del robot,
frente a las calculadas, en este mtodo se realiza la misma comparacin para
observar la calidad de los resultados.

Ilustracin 11.40 - Velocidad instantnea del robot
Captulo 11
ICP (Iterative Closest Points)
Parte II
Trabajo realizado

116 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser


Ilustracin 11.41 - ICP 1D

Ilustracin 11.42 - ICP 2D
A partir de las ilustraciones anteriores, se ve claramente que apenas hay diferencias
en cuanto a resultado entre utilizar un modelo u otro. De modo que se debe elegir
el mtodo que procese con mayor rapidez. Esta seleccin se explica en el siguiente
apartado.
6. Conclusiones
Si se observan los errores cometidos en el clculo del desplazamiento, ilustraciones
presentes en las secciones 4.1 y 4.2 de este mismo captulo, se pueden extraer las
siguientes conclusiones:
1. ICP 1D comete ms error de clculo que ICP 2D.
2. Se observa que el Entorno 2 ambos mtodos tienen mayor error, esto se debe al
tipo de material que se analiza.
Parte II
Trabajo realizado
Captulo 11
ICP (Iterative Closest Points)

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 117

Referente a los tiempos de ejecucin se muestra la Ilustracin 11.43 los tiempos de
ejecucin medios de las muestras anteriores. Al igual que para determinar el error de
desplazamiento, se ha hecho el promedio de cada velocidad para cada entorno (1, 2 y 3).

Ilustracin 11.43 - Representacin de tiempo de proceso
Efectivamente, vemos que el tiempo de ejecucin del modelo unidimensional es menor al
2D. Al tener que elegir entre un mtodo u otro, se debe tener en cuenta los errores
cometidos, junto con el tiempo de ejecucin.
Para las condiciones explicadas durante el desarrollo de la memoria, solo hay
desplazamiento en una componente espacial, y al cometer una ligera diferencia en el
margen de error, es recomendable usar ICP 1D para sistemas en el que se precise rapidez
y no mucha precisin. En cambio en sistemas que se precise mayor precisin, no se
descarta el uso de ICP 2D.

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 119


PARTE III.
CONCLUSIONES FINALES
Llegados a este punto de la memoria se puede concluir con que los objetivos marcados para el
proyecto han sido superados con xito. A continuacin, se expondrn las conclusiones del
proyecto.

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 121


Captulo 12.
Conclusiones
En este captulo se exponen las comparaciones de los mtodos utilizados. Por una parte
las diferencias entre ICP 1D y 2D. Por otra parte, se exponen las conclusiones al utilizar la
correlacin. Finalmente se llega a una conclusin a partir de las diferencias de utilizar el
mtodo ICP frente a la correlacin.
1. Correlacin
Los experimentos que se han realizado, determinan que para las simulaciones realizadas
con el robot. Para determinar el conjunto de procesos que mejor resultado han
proporcionado se hace a partir de los errores en el clculo, as como en el tiempo de
ejecucin. En el caso de rellenar los huecos, mejores resultados han sido los que se ha
aplicado interpolacin lineal. Por otra parte, al aplicar diferentes valores de resolucin, la
que ha proporcionado menor error con un tiempo de ejecucin reducido, se trata de la
resolucin a 5mm. A diferencia de 10mm, tarda ms, pero los errores cometidos son ms
pequeos. Por otra parte, la resolucin que proporcionaba diferencias ms pequeas
entre el desplazamiento terico y el calculado corresponde a la resolucin de 1mm, pero
el tiempo de ejecucin es muy elevado.
El mtodo de correlacin es que es muy sencillo de ajustar, con lo que se puede aplicar a
diferentes condiciones. El usuario puede configurar los procesos que quiere que se
apliquen. Por otra parte, al igual que ICP 1D, no resulta conveniente aplicar la correlacin
en desplazamientos que contengan rotaciones.
2. ICP
A partir de los resultados que se han obtenido entre utilizar el mtodo unidimensional o
bidimensional se intentar llegar a una conclusin sobre que algoritmo proporciona
mayor ventajas.
Entre ICP 1D e ICP 2D, la diferencia en los resultados es casi despreciable, aunque ICP 2D
proporciona menor error. Por otra parte, ICP 1D es ms rpido que ICP 2D. Para el caso de
aplicar ICP en desplazamientos sin giros resulta muy til la aplicacin de ICP 1D, en caso
contrario, es conveniente tratar con ICP 2D.
Captulo 12
Conclusiones
Parte III
Conclusiones finales

122 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

En conclusin de ICP, el que mejor resultados ha proporcionado es ICP 2D. A pesar que el
tiempo de ejecucin es ligeramente superior a ICP 1D, los errores cometidos son
menores.
3. Conclusin final
Al comparar ICP con correlacin, los resultados a nivel de error entre ICP 2D y correlacin
aplicando la resolucin de 5mm son prcticamente iguales. Por lo que afecta al tiempo de
ejecucin, se obtienen mayor rapidez al aplicar ICP.
La conclusin para determinar el mtodo que mejor se ha adaptado a las condiciones
proporcionando errores pequeos y un tiempo de ejecucin muy favorable, se decide que
es ICP 2D.
A pesar de la conclusin determinada, cabe decir que todos los mtodos han resultado
satisfactorios, unos ms que otros.
Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 123


Captulo 13.
Trabajos futuros
Vistos los buenos resultados de este proyecto en las simulaciones, se estima que aplicado
a escala real, utilizando los sensores adecuados, puede aplicarse para diferentes procesos,
ya sea el mencionado en la introduccin de la memoria (camiones) o en procesos como
por ejemplo una cinta transportadora.
Seguidamente se exponen algunas continuaciones y mejoras aplicables.
1. Tiempo real
El proyecto de final de carrera ha tratado solo con informacin offline, es decir, las
pruebas se han guardado en ficheros que posteriormente se han analizado. La mejora que
se propone es adaptar el proyecto para trabajar a tiempo real. En lugar de almacenar las
medidas en ficheros, hacer que el propio programa de los mtodos capte la informacin
del sensor y la analice a medida que la recibe.
2. Sensor inmvil
Para la realizacin de las simulaciones se ha desplazado el sensor en lugar de los objetos.
La ampliacin que se propone para este caso es realizar pruebas en el que el sensor
permanezca inmvil y sean los objetos los que se desplacen.
3. Escala real
Una curiosidad que tenemos en mente es la prueba de los algoritmos para el caso de los
camiones. Debido a las limitaciones del sensor, y la indisponibilidad de trabajar con estos
objetos no se ha realizado. Pero si se pudiese optar por el uso de un sensor de mayor
alcance podra aplicarse sin problemas.
3.1 LIDAR
Para adaptar el proyecto a un modelo para tratar con camiones, u otros equipos
donde el alcance del sensor es considerable, se propone el uso de un sensor tipo
LIDAR. Este tipo de sensor es ms potente y robusto que el utilizado para el anlisis.
Simplemente bastara adaptar la salida del sensor para que coincida con el
programa propuesto, o haciendo ligeras modificaciones.
Captulo 13
Trabajos futuros
Parte III
Conclusiones finales

124 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

4. Sistema integrado
Si se diese el caso que las pruebas propuestas se han concluido con xito y se interesara
aplicar los algoritmos en un sistema integrado, podra programarse un chip para realizar
las funciones correspondientes.


Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 125


ANEXO:
MANUAL DE USUARIO
Este anexo se proporciona para aquellos usuarios que estn interesados en los modos de
acceso al sensor y las funciones de los cdigos implementados.
El material utilizado en el proyecto se encuentra en el CD. Por lo que respecta al acceso al lser
se encuentra en la carpeta urg-0.8.15. Por otra parte, se adjuntan los cdigos de control para
el robot (carpeta Robot). Finalmente, los archivos correspondientes a la programacin en
MATLAB, las lecturas obtenidas por el sensor y un conjunto de pruebas, estn en la carpeta
MATLAB.


Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 127


Captulo 14.
Acceso al sensor
En este captulo se describirn los pasos que se han seguido para el acceso al sensor. El punto
de partida se centra en los programas proporcionados por HOKUYO. Todo el material
necesario se encuentra en la web de referencia [11].
1. Conexin
El modo de acceso al sensor se basa en comunicacin USB. El sensor que se ha utilizado
dispone de una adaptacin de la fuente de alimentacin para que se realice a partir de
otra conexin USB. En resumen, dispone de dos conexiones USB, una para la
comunicacin y otra para la alimentacin.
2. Drivers de acceso y cdigos
En la web del fabricante se encuentran a disposicin de los usuarios los drivers necesarios
para tener acceso al sensor. Tambin se encuentran los cdigos fuente de ejemplo
(Fuente: [13]).
3. Programa grfico
EL fabricante del sensor lser proporciona un entorno grfico para familiarizarse con el
instrumento. A partir de este programa tambin se pueden hacer mediciones, cada
barrido se guarda en un fichero diferente.
4. Cdigo C
De los archivos que se encuentran en la web [13], el que ha resultado interesante utilizar
es el llamado md_scan.c se trata de un ejemplo de capturar barridos continuamente. Este
cdigo se ejecuta para un determinado nmero de barridos. Para el proyecto interesaba
recibir un conjunto de barrido a los que se les llama lecturas y guardarlos en ficheros.
Cada lectura constituye a la medicin durante la totalidad del desplazamiento.
En el programa se pone por defecto que el uso del puerto utilizado para la comunicacin
es el COM3. Esto se puede editar a nivel de cdigo. Una vez se configura con el puerto por
el que se quiere realizar la comunicacin, se debe conectar el USB correspondiente a la
comunicacin a ese puerto, en caso contrario aparece un error.
Captulo 14
Acceso al sensor
Anexo:
Manual de usuario

128 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

Los ajustes que se han realizado es la creacin de un fichero de datos que proporcione el
paso, la distancia y el tiempo de barrido. El nombre del fichero de salida tiene como
nombre por defecto data_001.txt, el cual se tiene que renombrar manualmente si se
desean guardar ms lecturas, en caso contrario se sobrescribe.
Con la ayuda de Visual Studio [14]: abrir el proyecto que se encuentra en esta direccin
urg-0.8.XX\Samples\c en esta carpeta se encuentran disponibles todos los ejemplos que
se han utilizado como punto de partida.
El que se ha utilizado en el proyecto se encuentra disponible con el material adjunto con
el nombre de md_scan_modif.c ejecutable de este cdigo se encuentre en la carpeta urg-
0.8.XX\Samples\c\Solution.
En el momento de compilar el programa se ha realizado tipo aplicacin (Release) de esta
manera se obtiene un ejecutable. Entonces, todos los procesos de captura de mediciones
con el sensor se realizan mediante este ejecutable.

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 129


Captulo 15.
MATLAB
1. Programas
El desarrollo del proyecto se ha realizado en MATLAB. En esta parte se sealarn los
archivos (*.m) necesarios para ejecutar el programa, as como sus funciones.
1.1 MAIN.m (script)
Este Script es donde se desarrolla todo el cdigo para ejecutar los diferentes
mtodos y guardar sus resultados. En este se ha realizado bucles tanto para tratar
el conjunto de ficheros como para estudiar las caractersticas de cada mtodo,
como por ejemplo la resolucin en el caso de la correlacin.
Ms adelante se ver que Program_g.m es una adaptacin del cdigo MAIN.m a
una funcin para utilizarlo en el programa grfico.
La funcin common.m realiza las funciones comunes como transformar la
informacin captada por el sensor a coordenadas cartesianas, adems de unir N
barridos consecutivos. Concretamente, divideN.m es la funcin que se encarga de
transformar las medidas a coordenadas cartesianas y unir N barridos.
1.2 ICP_1D.m (function)
Esta funcin es la que se encarga de aplicar ICP 1D. Se trata de un conjunto de
instrucciones y funciones que lo hacen posible. A continuacin de muestran los
subprogramas que utiliza esta funcin y sus caractersticas.
- apply_icp_1D: esta funcin es la que se encarga de obtener el resultado de
icp, aplicando asociacin de valores y minimizacin a partir de diferentes
funciones.
- compose_points: esta se encarga de aplicar la transformacin obtenida al
barrido actual para ajustarlo al barrido de referencia.
- closest_points: asociacin de correspondencias entre barridos.
Captulo 15
MATLAB
Anexo:
Manual de usuario

130 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

- cartesian_distance: se encarga de obtener el error a partir del mdulo de la
asociacin de correspondencias realizada.
- least_squares_1D: se encarga de determinar la transformacin para la
asociacin de correspondencias realizada para el caso 1D.
1.3 ICP_2D.m (function)
Al igual que ICP_1D.m se trata de un conjunto de funciones que realizan los clculos
pertinentes para aplicar ICP 2D.
- apply_icp: esta funcin engloba un conjunto de funciones e instrucciones
que finalmente proporcionan el resultado de este mtodo.
- compose_points: al igual que en ICP_1D se encarga de aplicar la
transformacin obtenida.
- closest_points: asociacin de correspondencias entre barridos.
- cartesian_distance: se encarga de obtener el error a partir del mdulo de la
asociacin de correspondencias realizada.
- least_squares_distances: se encarga de determinar la transformacin para
la asociacin de correspondencias realizada para el caso 2D.
1.4 Correlation.m (function)
Esta funcin contiene un conjunto de funciones que ajustan los procesos a utilizar
en la correlacin.
- reordenar: a partir de coordenadas cartesianas se ordenan los valores de
de tal manera que entre posiciones del vector haya un incremento en una
unidad de valor . Se mantiene cada valor de al correspondiente valor de
.
- rellenar: este proceso consiste en rellenar los huecos producidos al
ordenar. Se puede realizar de varias formas, pero en el proyecto se han
implementado la interpolacin lineal y mediante escaln.
- ventana: para reducir el coste computacional se permite la reduccin de la
ventana de trabajo y la modificacin de la resolucin.
- apply_correlation: esta funcin es la que realiza realmente la correlacin.
Se aplican rotaciones (funcin de matlab: circshift) para determinar el
desplazamiento. En el programa que se adjunta se realiza una rotacin
hacia la izquierda de una posicin.

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 131

1.5 Leer_Pos_accel_pruebas.m (Script)
Se trata de un script para interpretar la informacin del robot y adaptarla a partir
del tiempo proporcionado por el sensor. Para adaptar la informacin del robot a la
del sensor es necesario haber obtenido anteriormente el tiempo por parte del
sensor. Este tiempo calculado se guarda en una carpeta mediante un fichero
(tiempo.mat) que posteriormente este script accede para realizar los cambios
oportunos.
1.6 Leer_Resultados.m (Script)
Una vez se obtienen los tiempos de ejecucin y desplazamientos calculados para
cada mtodo estos resultados se encuentran guardados en la carpeta
Guardados\<nombre del archivo>\<mtodo usado> mediante el fichero
tiempo.mat. Una vez se dispone de esta informacin se estudian los resultados
mediante el error cometido frente a lo esperado por ground truth, adems de
realizar una comparacin mediante los tiempos de proceso.
2. Entorno grfico
Para facilitar el uso del programa a los usuarios se ha creado un programa de grfico. El
diseo de este programa est pensado para usuarios finales, de manera que puedan
ejecutarlo de forma simple, obteniendo los resultados bsicos. Los resultados que se
pueden obtener mediante este programa es la grfica de la velocidad en funcin del
tiempo, la distancia calculada y el tiempo de proceso. Ver Ilustracin 15.1.
A partir de la creacin de entornos grficos mediante GUIDE, se ha creado una interfaz
grfica para el usuario (PGrafico).
Al utilizar GUIDE permite la creacin de un entorno grfico a partir de el diseo, es decir,
se configura visualmente. Cada mdulo que se introduce produce una funcin en el
cdigo de este programa. Para interactuar con los datos que se introducen en el sistema
se hace uso de las instrucciones get y set. En la fuente [15] se encuentra un manual para
realizar los pasos bsicos de programacin.
El programa grfico realiza las mismas ejecuciones que en MAIN.m a partir de
Program_g.m que se encuentra integrado en el cdigo del entorno visual.
2.1 Ejecucin
Para ejecutar el programa grfico escribir el nombre del programa, para este caso
PGrafico, en la lnea de comandos de MATLAB. Para que sea posible, Current
Folder debe sealar la ubicacin donde se encuentra el archivo.
Captulo 15
MATLAB
Anexo:
Manual de usuario

132 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

2.2 Opciones configurables
Los usuarios de este programa disponen de facilidades para elegir los mtodos a usar.
Tambin se puede configurar los parmetros como la altura del sensor, la ventana de
trabajo y la resolucin. As como el fichero a tratar.
2.3 Men ayuda
El programa dispone de una pequea ayuda (Instrucciones) que explican los detalles para
trabajar y configurarlo.
2.4 Calcular
Finalmente, una vez el usuario ha configurado el programa se procede al clculo,
mediante el botn Calcula.
2.5 Resultados de salida
Los resultados que siempre se obtienen al seleccionar cualquier mtodo son los que
aparecen en el mismo programa, Resultados. Por otra parte, si se ha seleccionado la
opcin de Grfico de velocidad se obtienen diferentes figuras, una para cada mtodo
seleccionado. Se indica en cada figura el mtodo usado en el encabezado de la misma.

Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 133


Ilustracin 15.1 - Programa grfico


Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser 135

BIBLIOGRAFA

[1] C. W. D. Silva, Control Sensors and Actuators, New Jersey, Pretince-Hall, 1989, pp. 125-
131.
[2] Josep Balcells y Jos Luis Romeral, Autmatas Programables, Barcelona, marcombo.
Boixareu editores., 1997, pp. 113-126.
[3] M. P. Groover, M. Weiss, R. N.Nagel y N. G.Odrey, Robtica Industrial. Tecnologa,
programas y aplicaciones., Madrid: McGRAW-HILL, 1989.
[4] Adept MobileRobots Pioneer 3-DX, [En lnea]. Available:
http://www.mobilerobots.com/ResearchRobots/PioneerP3DX.aspx. [ltimo acceso: 6
Mayo 2012].
[5] Mitsubishi Electric, [En lnea]. Available:
http://www.consys.ru/sites/default/files/documents/rv-6s-12s.pdf. [ltimo acceso: 5
Marzo 2012].
[6] A. Burguera Burguera, ICP-BASED ALGORITHMS, de A Contribution to Mobile Robot
Localization Using Sonar Sensors, Palma de Mallorca, 2009, pp. 121-144.
[7] F. Lu y E. Milios, Robot pose estimation in unknow enviorments by matching 2D range
scans., de Journal of Intelligent and Robotic Systems, 1997, pp. 18(3):249-275.
[8] A. Burguera, Y. Gonzlez and G. Oliver, "Probabilistic sonar scan matching for robust
localization," in Proceedings of the International Conference on Robotics and Automation
(ICRA), Rome(Italy), April 2007.
[9] P. Biber and W. Straer, "The normal distribution transform: a new approach to lase scan
matching," in International Conference on Intelligent Robots and Systems (IROS), volume
3, October 2003.
[10] P. Biber, Map Building and Localitzation for Long-Term Operation of Mobile Robots in
Dynamic Environments., de PhD thesis, Wilhem-Schickard-Institut, Germany, 2007.
[11] HOKUYO, [En lnea]. Available: http://www.hokuyo-
aut.jp/02sensor/07scanner/urg_04lx.html. [ltimo acceso: 27 Octubre 2011].
[12] HOKUYO (Programs), [En lnea]. Available: http://www.hokuyo-
aut.jp/02sensor/07scanner/download/urg_programs_en/. [ltimo acceso: 6 10 2011].
Bibliografa

136 Anlisis y Clculo de Desplazamiento y Velocidad de un Objeto mediante un Sensor Lser

[13] FULP (Fundacin Universitaria de Las Palmas), [En lnea]. Available:
http://www.fulp.ulpgc.es/articulos/vp27_09_articulos01.pdf. [ltimo acceso: 25 Abril
2011].
[14] Visual C++ 2010 Express, Microsoft Visual Studio, [En lnea]. Available:
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-
express. [ltimo acceso: 7 Mayo 2012].
[15] D. O. B. Guerrero, Scribd - MATLAB GUIDE, [En lnea]. Available:
http://www.scribd.com/doc/99908994/Matlab-Guide. [ltimo acceso: 12 julio 2012].

You might also like