Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
TESIS
ELABORADO POR
IVN ARTURO CALLE FLORES
ASESOR
Dr. ARTURO ROJAS MORENO
LIMA PER
2014
A mis padres Rene Y Fausta, por alentarme
siempre a lograr mis ms anhelados sueos,
y a mis queridos hermanos Marylia y
Eduardo.
ii
AGRADECIMIENTO
A todas aquellas personas que me apoyaron en el desarrollo del presente trabajo, mis
ms sentidas gracias. A mi asesor, el Dr. Arturo Rojas Moreno, el agradecimiento por
brindarme su asesora en el presente trabajo de tesis, y sentar las bases de gran parte
de mi conocimiento en lo que se respecta a la teora de control moderno. A aquellos
buenos profesores de la Maestra en Automtica e Instrumentacin, as como al
personal de la oficina de Post Grado de la FIEE-UNI. Tambin a la FIM-UNI por su
apoyo en la construccin del robot mvil desarrollado en el presente trabajo.
Finalmente deseo agradecer a mis padres. Mi padre Rene Calle Ziga, por su
constante apoyo tanto material como espiritual, y por siempre alentarme a seguir
adelante. Mi madre Fausta Flores Salas, por su cario y afecto, y por siempre estar
pendiente de mi familia.
iii
NDICE DE CONTENIDOS
INTRODUCCIN..1
CAPTULO I
ESTIMACIN DE ESTADO Y EL MTODO MONTE CARLO2
1.1 Estado y Estimacin de Estado..2
1.2 Interaccin de un Robot con su Entorno..4
1.2.1 Acciones de Control...4
1.2.2 Acciones de Percepcin5
1.3 Filtro de Bayes..6
1.3.1 Derivacin Matemtica..8
1.3.2 Implementaciones ms Comunes...9
1.4 El Mtodo Monte Carlo..13
1.4.1 Conceptos Bsicos..13
1.4.2 El Algoritmo SIS...14
1.4.3 El Problema de la Degeneracin ..17
CAPTULO II
CINEMTICA PROBABILSTICA DEL ROBOT MOVIL20
2.1 Configuracin Cinemtica.20
2.2 Cinemtica Probabilstica..21
2.3 Modelo Probabilstico del Robot Mvil22
2.3.1 Seales de Control..23
2.3.2 Modelamiento del Movimiento Ideal.24
2.3.3 Modelamiento del Movimiento Real..25
2.3.4 Funcin de Probabilidad de Movimiento..28
2.4 Resultados Obtenidos29
2.4.1 Movimiento Translacional + Rotacional29
2.4.2 Movimiento Translacional...30
2.4.3 Movimiento Rotacional30
CAPTULO III
MAPAS DE OCUPACIN Y MODELO PROBABILSTICO DEL SENSOR LASER32
3.1 Mapas...32
3.1.1 Mapas de Ocupacin..33
3.1.2 Resultados Obtenidos34
3.2 Sensores Laser...35
3.2.1 Mediciones Ideales del Sensor Laser..36
3.2.2 Mediciones Reales del Sensor Laser...37
3.3 Modelo Probabilstico del Sensor Laser.37
3.4 Resultados Obtenidos42
3.4.1 Primera Prueba42
3.4.2 Segunda Prueba..43
3.4.3 Conclusiones44
CAPTULO IV
LOCALIZACIN USANDO MTODOS MONTE CARLO..45
4.1 El Problema de la Localizacin45
4.2 Localizacin usando mtodos Monte Carlo Estndar.46
4.1.1 Conceptos Bsicos.46
4.1.2 Algoritmo de Localizacin..47
4.1.3 Resultados48
4.3 Localizacin usando Mtodos Monte Carlo Mejorados..52
4.3.1 Mejoras Propuestas52
4.3.2 Algoritmo de Localizacin.54
iv
4.3.3 Resultados55
4.4 Conclusiones..60
CAPTULO V
MAPEO USANDO MTODOS MONTE CARLO.62
5.1 El Problema del Mapeo.62
5.1.1 Construccin Manual de Mapas63
5.1.2 Construccin Automtica de Mapas64
5.2 Mapeo usando Mtodos Probabilsticos65
5.2.1 El Filtro de Bayes en el Mapeo.65
5.2.2 Mapeo usando el Mtodo Monte Carlo Estndar..66
5.2.3 Mapeo con Configuraciones Conocidas.67
5.3 Mapeo usando Mtodos Monte Carlo Rao-Blackwellized..70
5.3.1 Conceptos Bsicos.70
5.3.2 Algoritmo de Mapeo71
5.3.3 Resultados73
5.3.4 Conclusiones80
5.4 Mapeo usando Mtodos Monte Carlo Rao-Blackwellized Mejorados..81
5.4.1 Mejoras Propuestas.81
5.4.2 Algoritmo de Mapeo85
5.4.3 Resultados85
5.4.4 Conclusiones92
CAPTULO VI
PLANIFICACIN Y CONTROL DE MOVIMIENTO.93
6.1 Representacin del Entorno.93
6.2 Bsqueda usando Grafos.94
6.3 Planeamiento usando el Algoritmo A*96
6.3.1 Definiciones Bsicas..96
6.3.2 El Algoritmo A*.98
6.3.3 Resultados99
6.4 Control de Movimiento102
6.4.1 Conceptos Bsicos..102
6.4.2 Control PID.103
6.4.3 Resultados.103
CAPTULO VII
ARQUITECTURA DEL SOFTWARE DE NAVEGACIN AUTNOMA110
7.1 Software y Libreras de Navegacin Autnoma..110
7.2 Criterios de Programacin en la Implementacin del Software114
7.3 Arquitectura del Software de Navegacin116
CAPTULO VIII
RESULTADOS EXPERIMENTALES...118
8.1 Navegacin Autnoma en la Seccin de Posgrado de la FIEE-UNI...119
8.2 Navegacin Autnoma en el Segundo Piso de la FIM-UNI..122
8.3 Conclusiones.125
CONCLUSIONES Y RECOMENDACIONES..126
BIBLIOGRAFA129
APNDICE A
R2D2-00: EL ROBOT AUTNOMO132
A.1 Sistema de Locomocin132
A.2 Sistema Electrnico135
A.3 Sensor Laser Hokuyo URG-04LX-UG01.136
A.4 R2D2-00: El Robot Autnomo..137
v
NDICE DE TABLAS
vi
NDICE DE FIGURAS
vii
3.14 Segunda prueba...43
3.15 Segunda prueba Resultados obtenidos44
viii
5.17 Mapeo usando el mtodo Monte Carlo Rao-Blackwellized cuando M=50 - Segunda
prueba79
5.18 Mapeo usando el mtodo Monte Carlo Rao-Blackwellized cuando M=50 - Tercera
prueba79
5.19 Muestras de la funcin de probabilidad de movimiento80
5.20 Distribucin de las mediciones vs. Distribucin de movimiento...81
5.21 Distribucin propuesta que considera las mediciones...82
5.22 Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado cuando M=5
Primera prueba.87
5.23 Mapas de ocupacin de otras muestras cuando M=5 Primera prueba..87
5.24 Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado cuando M=5
Segunda prueba...88
5.25 Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado cuando M=5
Tercera prueba.88
5.26 Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado cuando M=10
Primera prueba.89
5.27 Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado cuando M=10
Segunda prueba89
5.28 Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado cuando M=10
Tercera prueba..90
5.29 Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado cuando M=15
Primera prueba.90
5.30 Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado cuando M=15
Segunda prueba91
5.31 Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado cuando M=15
Tercera prueba..91
ix
6.10 Control PID seleccionado para el control de movimiento del robot...108
6.11 Seal de error del controlador PID seleccionado.108
x
RESUMEN
Como resultado de este trabajo se tiene el primer robot mvil en nuestro pas con la
capacidad de desarrollar tareas de navegacin autnoma al ms alto nivel usando las
tcnicas del estado del arte del campo de la robtica mvil. Este robot, bautizado como
R2D2-00: El Robot Autnomo, representa el punto de partida en la construccin de
robots mviles cada vez ms avanzados en nuestro pas
xi
Abstract
As a result of the present work, it has been developed the first mobile robot in my
country, Peru, with the capacity to do autonomous navigation tasks at the highest level
using the state-of-the-art techniques of the field of mobile robotics. This robot, named
R2D2: The Peruvian Autonomous Robot, represents the point of departure in the
development of more advanced mobile robots in my country.
xii
INTRODUCCIN
Se debe resaltar que todas las variables a tratar en el presente trabajo (el estado,
los controles, las mediciones de los sensores, etc.) se modelan como variables aleatorias.
Por tal motivo, se usaran los conceptos y terminologa bsica de la teora de la
probabilidad [1], [2]. Adems se debe notar que, por motivos de conveniencia, en el caso
de variables aleatorias continuas, cuando se usa el trmino distribucin se est haciendo
referencia a la funcin de densidad de probabilidad.
3
El problema de estimacin es muy importante en muchas reas de la ciencia y la
ingeniera, y es comnmente formulado desde un enfoque probabilstico debido a que
tanto las mediciones de los sensores como la dinmica del sistema bajo estudio estn
sujetos a ruido y/o incertidumbre. El filtro de Bayes que se describe en el subcaptulo 1.3
provee el marco ms general en la tarea de estimacin de estado usando mtodos
probabilsticos, y una manera de implementar este filtro es usando los mtodos Monte
Carlo que se describen en la subcaptulo 1.4. Ntese que a lo largo del presente trabajo
el estado ser denotado por la variable x , y el valor especifico del estado en el tiempo t
estar dado por xt .
1.2.1 Acciones de Control. Son las acciones que tienen como objetivo cambiar el
estado del sistema (robot + entorno). Para esto el robot ejerce fuerzas sobre su entorno a
travs de sus actuadores. Un ejemplo de estas acciones es el movimiento de los motores
de las ruedas de un robot, el cual tiene como objetivo mover el robot hacia una nueva
configuracin (Figura 1.3).
4
La accin de control ejecutada en el intervalo (t 1; t ] se denota por la variable ut , y
p( xt | ut , xt 1 ) (1.2)
control ut . Este modelo es el primer componente que se necesita para realizar la tarea de
1.2.2 Acciones de Percepcin. Son las acciones que ejecuta el robot con el fin de
obtener informacin sobre el estado del mundo haciendo uso de sus sensores. Ejemplos
de estas acciones son por ejemplo las mediciones de un sensor laser (Figura 1.4), sensor
ultrasnico, las imgenes obtenidas por una cmara de video, etc.
5
Figura 1.4. Acciones de percepcin. (Fuente: Imagen del robot Minerva, Universidad de
Carnegie Mellon, Estados Unidos)
sobre el estado del mundo xt en un instante de tiempo dado. En general, las mediciones
zt son del tipo estocsticas debido al ruido intrnseco de los sensores as como al ruido
debido a perturbaciones externas, por lo que la dinmica probabilstica de la generacin
de mediciones se puede expresar como:
p( zt | xt ) (1.4)
6
el filtro de Kalman [3], modelos ocultos de Markov [4], filtro de partculas [5], etc., se
pueden ver como implementaciones de este filtro aplicados a casos especficos. En el
rea de la robtica mvil, este filtro representa el ncleo de cualquier algoritmo basado en
tcnicas probabilsticas.
los sensores z1:t , y la data generada por los actuadores u1:t . Una caracterstica del filtro de
Es decir, el filtro de Bayes es del tipo recursivo, y es esta propiedad lo que lo hace
adecuado para una serie de tareas de estimacin de estado en tiempo real. Debe notarse
la aparicin de los trminos p( zt | xt ) y p( xt | ut , xt 1) que representan la funcin de
Para la validacin del filtro de Bayes, el nico requisito es que el sistema bajo
anlisis cumpla con la propiedad de Markov. Esta propiedad establece que si se conoce
el estado actual del sistema, el futuro es independiente del pasado. Esta propiedad, que
tambin es comnmente usada en la teora de control, en el caso de los robots mviles
solo se cumple cuando el entorno de navegacin es del tipo esttico. Debido a que los
ambientes de navegacin del robot son dinmicos esta condicin no se satisface. Sin
7
embargo, en la prctica las diversas implementaciones del filtro de Bayes han
demostrado un buen desempeo en entornos reales [6], [7], [8].
Ntese que el nico requisito para hacer la derivacin del filtro de Bayes, es que el
sistema bajo estudio cumpla la propiedad de Markov. En el caso que el estado xt
8
1.3.2 Implementaciones ms Comunes
xt At xt 1 Bt ut t (1.11)
zt Ct xt t (1.12)
en las mediciones.
p( xt | ut , xt 1 ) N xt ; At xt 1 Bt ut , Rt (1.13)
p( zt | xt ) N zt ; Ct xt , Qt (1.14)
de tiempo t , est dada por una distribucin gaussiana con media t y covarianza t .
9
1 1
p( xt | z1:t , u1:t ) exp xt t t1 xt t
T
(1.15)
2t 2
1/2
el estado. Entre las lneas L1y L2 se realiza el paso de prediccin, y en las lneas L3
y L5 se realiza el paso de correccin. Se debe notar que este filtro representa la
solucin ms ptima en el caso de sistemas gausianos lineales.
Kalman filter ( t 1 , t 1 , ut , zt )
L1: t At t 1 Bt ut
L 2 : t At t 1 AtT Rt
L3 : K t t CtT (Ct t CtT Qt ) 1
L 4 : t t K t ( zt Ct t )
L5 : t ( I K t Ct )t
return t , t
b) Filtro extendido de Kalman. El problema principal del filtro de Kalman es que solo
es aplicable a sistemas gausianos lineales, mientras que la mayora de robots y
sensores que se usan en la robtica mvil son del tipo no lineal. El filtro extendido de
Kalman, es la versin no lineal del filtro de Kalman aplicados a sistemas gausianos
no lineales. Es decir aquellos sistemas en donde la transicin de estado y de
medidas estn dadas por ecuaciones de la forma:
xt g (ut , xt 1 ) t (1.16)
zt h( xt ) t (1.17)
10
representan el ruido representa el ruido gaussiano con media cero y covarianza Qt
en las medidas.
g (ut , t 1 )
g (ut , xt 1 ) g (ut , t 1 ) ( xt 1 t 1 )
xt 1 (1.18)
g (ut , xt 1 ) g (ut , t 1 ) Gt ( xt 1 t 1 )
h( t )
h( xt ) h( t ) ( xt t )
xt (1.19)
h( xt ) h( t ) H t ( xt t )
Este filtro ha sido, y es, extensivamente usado en la robtica mvil tanto en tareas
de localizacin y mapeo [9], [10]. Sin embargo, la desventaja principal de este
algoritmo es que no puede trabajar con los sensores laser y ultrasnicos debido a
11
que estos presentan un ruido no gausiano. Adems no puede solucionar el problema
de localizacin global que se da cuando un robot no tiene ninguna informacin sobre
su posicin inicial [11], [12].
c) Mtodos basados en celdas. Los mtodos basados en celdas, que proveen una
solucin ptima del filtro de Bayes en el caso de sistemas discretos, se han usado en
la robtica mvil mediante la discretizacin del espacio de estados continuo usando
histogramas. Esta idea se puede apreciar en la Figura 1.5, en donde se muestra la
discretizacin del estado de un robot de tipo 1D.
estas tcnicas hacen difcil la operacin del robot en tiempo real. Ntese que en el
caso del robot diferencial las celdas de discretizacin estn dadas por una matriz de
tres dimensiones (Figura 1.6)
Figura 1.6. Discretizacin del espacio contino del robot diferencial (Fuente:
http://www.probabilistic-robotics.org/)
12
1.4 El Mtodo Monte Carlo
La idea de los mtodos Monte Carlo es representar la distribucin posterior por una serie
de muestras y sus pesos, es decir esta distribucin se aproxima como:
Donde cada x0:( mt ) es una muestra o hiptesis del estado hasta el tiempo t , y los
parmetros w( m ) son los pesos o factores de importancia de cada muestra. Los factores
de importancia, como su nombre sugiere, determinan la importancia de cada muestra en
la tarea de estimacin de estado. Entonces, la distribucin de probabilidad posterior en
base a las muestras est dada por:
M
p( x0:t | z1:t , u1:t ) wt( m) ( x0:t x0:( mt ) ) (1.21)
m 1
13
Que es una aproximacin discreta de la distribucin de probabilidad del estado.
Adems, en base a estas muestras tambin es posible hallar la esperanza de cualquier
funcin f con respecto a la distribucin p( x0:t | z1:t , u1:t ) como:
M
1
E[ f ]
M
f (x
i 1
(m)
0:t ) (1.22)
La idea bsica del algoritmo SIS [16], [17] es obtener muestras de una distribucin a
partir de otra distribucin de la cual es fcil obtener muestras. Para ilustrar este concepto,
supongamos que deseamos aproximar una funcin de probabilidad f () a partir de sus
muestras, pero lo nico que tenemos a mano son muestras xi g ( x), i 1,..., N s , de una
funcin g () llamada distribucin propuesta (Figura 1.7).
14
Se puede demostrar que una muestra y i de la funcin f () se obtiene a partir de la
f ( xi )
w
i
(1.23)
g ( xi )
Este resultado se puede ver en la Figura 1.8 en donde se aprecia que las muestras
ubicadas en regiones de mayor probabilidad de f () reciben mayor peso, lo que los hace
ms importantes a la hora de estimar dicha densidad. De donde se tiene que las
muestras y i acompaadas de sus pesos son muestras de la distribucin f .
suponemos que tenemos muestras de una distribucin propuesta q( x0:t | z1:t , u1:t ) , los
15
Si adems, la distribucin propuesta se puede descomponer como:
q( x0:t | z1:t , u1:t ) q( xt | x0:t 1 , z1:t , u1:t )q( x0:t 1 | z1:t 1, u1:t 1 ) (1.25)
Entonces uno puede obtener muestras x0:i t q( x0:t | z1:t , u1:t ) aumentando cada una de
las muestras del conjunto anterior x0:i t 1 q( x0:t 1 | z1:t 1 , u1:t 1 ) con la nueva muestra
xti q( xt | x0:i t 1 , z1:t , u1:t ) . Para derivar una expresin matemtica para la actualizacin de
pesos (2.24), es conveniente hacer las siguientes operaciones
permite la implementacin de este algoritmo en tiempo real ya que solo se necesita las
16
mediciones actuales de los sensores. Por otro lado, la funcin de densidad de
probabilidad sobre el estado actual en el tiempo t se puede aproximar como:
17
N
N eff (1.30)
1 var( wk*i )
Donde wk*i p( xti | z1:t , u1:t ) / q( xti | xti1 , ut ) es el peso verdadero de la muestra, y N es
1
N eff (1.31)
w
Ns
[i ] 2
i 1
Donde w[i ] representa los pesos normalizados. Entonces si se tiene Neff N , esto
N
muestreo) de un nuevo conjunto de muestras xk( m*) a partir de las muestras que
m 1
18
M
p( xt | z1:t , u1:t ) wt( m ) ( xt xt( m ) ) (1.32)
m 1
De tal manera que despus del re-muestreo todas las muestras tengan igual
peso wt( m) 1/ M ; y lo ms importante, que la mayor cantidad de muestras este en
19
CAPTULO II
CINEMTICA PROBABILSTICA DEL ROBOT MVIL
El objetivo de este Captulo es la descripcin cinemtica del movimiento del robot mvil
implementado en el presente trabajo desde un enfoque probabilstico. Es decir, la
obtencin del modelo probabilstico de movimiento del robot. La importancia de dicho
modelo es que no solo permite describir con ms exactitud el movimiento real ruidoso
de nuestro robot, sino que es un componente principal en la formulacin de los algoritmos
de Localizacin y Mapeo. Ntese que este tipo de modelos probabilsticos son los que se
usan en los algoritmos que representan el estado del arte en la robtica.
Figura 2.1. Estado o configuracin de un robot mvil que opera en terrenos planos
(Fuente: http://www.probabilistic-robotics.org/)
La locacin del robot est dada por las variables x e y que definen sus
coordenadas respecto de un sistema de coordenadas global, y su orientacin est dado
por la variable que se mide respecto al eje X del sistema global. Entonces la
configuracin o estado del robot est dada por el vector:
x
x y (2.1)
p( xt | ut , xt 1 ) (2.2)
accin de control ut . Con el fin de ilustrar este concepto, en la Figura 2.2 se muestra la
21
Figura 2.2. Funcin de densidad de probabilidad de transicin de estado de un robot que
se mueve en 1D (Fuente: Elaboracin propia)
las fsicas, este debera ser la siguiente posicin ideal del robot. Sin embargo, a los
puntos cercanos a esta posicin tambin se les asignan alta probabilidad de ser el
siguiente estado debido a que en la prctica, el robot puede terminar en estos puntos
debido al ruido en su movimiento. Por otro lado, las posiciones muy lejanas a x 4
tienen baja probabilidad (casi cero), ya que es muy improbable que el robot termine
acabando en estas posiciones.
del robot mvil implementado en la presente tesis. Este modelo es esencial no solo para
la formulacin de algoritmos de navegacin, sino para la simulacin del movimiento real
del robot en la computadora. Para mayor detalle sobre el diseo mecnico y los diversos
componentes del robot referirse al Apndice A.
22
Ntese que de los diversos tipos de robots mviles basados en ruedas (Figura 2.3)
los robots del tipo diferencial presentan una serie de ventajas en la navegacin en
interiores [18], razn por la cual el robot implementado en el presente trabajo es del tipo
diferencial. Esto significa que el movimiento est dado por 2 motores los cuales estn
conectados a dos ruedas de traccin. Adems, se tienen un par de ruedas locas con el fin
de dotar estabilidad al sistema (ver Apndice A).
Figura 2.3. Tipos de robots mviles con ruedas ms usados (Fuente: Elaboracin propia)
v
ut t (2.3)
wt
rotacional, en donde los valores positivos representan giros en sentido anti horario, y los
valores negativos representan giros en sentido horario. Estas velocidades estn
establecidas por el mdulo de control de movimiento del robot (Captulo 6) con el fin que
este siga una trayectoria deseada.
23
2.3.2 Modelamiento del Movimiento Ideal
Para hallar las ecuaciones que describen la cinemtica ideal o libre de ruido de
nuestro robot se asume que las velocidades vt y wt que se aplican, se mantienen
constante en cada instante de tiempo. Entonces bajo esta asuncin se tiene que en cada
instante t de tiempo el robot realiza un movimiento circular alrededor de un centro de
rotacin, tal como se muestra en la Figura 2.4.
Figura 2.4. Modelamiento del movimiento ideal del robot (Fuente: http://www.probabilistic-
robotics.org/)
v v
w sin( ) w sin( wt )
x' x
v v
y ' y w cos( ) w cos( wt ) (2.4)
'
wt
Que relaciona la transicin de estado del robot luego de aplicar las acciones de
control. Ntese que esta ecuacin se refiere al tipo mas general de movimiento que es
del tipo translacional + rotacional. Para el caso del movimiento del tipo translacional
puro, que se da cuando w 0 , se requiere la formulacin de una ecuacin especial de
transicin de estado.
24
En la Figura 2.5, se muestran los resultados de la implementacin de la ecuacin
ideal de movimiento del robot, donde el crculo en azul representa la posicin inicial del
mismo. En la primera parte el robot realiza un movimiento del tipo translacional +
rotacional en donde el robot gira alrededor de un centro de rotacin (representado por el
circulo negro); luego el robot realiza un movimiento del tipo translacional; para
finalmente realizar un nuevo giro y terminar en la posicin representada por el crculo rojo.
2.5
1.5
1
y(m)
0.5
-0.5
-1
Figura 2.5. Movimiento ideal del robot mvil (Fuente: Elaboracin propia)
En la realidad, el movimiento del robot est sujeto a ruido, y esto se expresa por el hecho
que la posicin final del robot siempre va a diferir de la posicin final predicha por el
modelo ideal del robot. Esto implica que las velocidades actuales (necesarias para
llegar a la posicin final real del robot) difieren de las velocidades comandadas. Esta
diferencia representa un error o incertidumbre en las velocidades. Entonces, asumiendo
que este error tiene una funcin de densidad de distribucin gausiano, podemos modelar
las velocidades reales del robot como variables aleatorias gaussianas con media dada
por la velocidad ideal, y varianza que depende del ruido en el movimiento, de donde se
tiene la siguiente ecuacin:
25
v v 1v2 2 w2
(2.5)
w w 3v2 4 w2
Esta ecuacin expresa el hecho que las velocidades reales son del tipo aleatorio,
en donde la velocidad comandada es la que tiene mayor probabilidad. El nivel de
incertidumbre est dado por los parmetros i los cuales definen el nivel de ruido
presente que depende de factores como: el material de las llantas, la calidad del piso
(rugoso, suave, resbaloso, etc.), la precisin mecnica en la construccin del robot
(dimensionamiento al milmetro del dimetro de las ruedas, el uso de ruedas
perfectamente iguales, eje correctamente alineado, etc.), la calidad del controlador de
velocidad de las ruedas (tiempo de establecimiento, etc.), etc. En la Figura 2.6 se
muestra un ejemplo de una funcin de densidad de probabilidad de la velocidad real del
robot cuando la velocidad comandada es de 1 m/s y el ruido tiene una varianza de 1.
0.5
0.45
0.4
0.35
0.3
)
real
0.25
p(v
0.2
0.15
0.1
0.05
0
-4 -3 -2 -1 0 1 2 3 4
vreal (m/s)
Figura 2.6. Funcin de probabilidad de la velocidad real del robot (Fuente: Elaboracin
propia)
26
velocidades reales son diferentes de las comandadas, estas an son constantes en cada
instante de tiempo con el fin que el robot se mueva alrededor de un centro de rotacin.
Esta asuncin de movimiento circular, genera una degeneracin, en el sentido que
algunos puntos del espacio estado tendran cero probabilidad de ser la siguiente posicin
del robot. Entonces, con el fin de evitar este problema, se asume que el robot al llegar a
la ubicacin final realiza un pequeo giro sobre su eje. De donde el modelo para hallar la
orientacin final estara dado por:
' w t t (2.6)
Donde v2 w2 es la rotacin final del robot, que est dado por un numero
5 6
aleatorio gaussiano de media cero y desviacin estndar dado por los parmetros 5 y
6 . Entonces, la ecuacin que define el movimiento real del robot estara dada por la
siguiente ecuacin:
v v
w sin( ) w sin( w t )
x' x
v v
y ' y w cos( ) w cos( wt )
(2.7)
'
w t t
exacto de estos valores, ya que el ruido no solo depende del robot sino del entorno en el
que este opere (cada ambiente de navegacin presente diferentes tipos de pisos, y es
imposible modelar todos los posibles casos). Lo ms conveniente es desarrollar pruebas
en diferentes tipos de pisos y estimar un valor promedio para estos valores de ruido.
Luego de realizar diversas pruebas (que bsicamente consisten en comparar las
posiciones reales con las posiciones ideales para hallar el error en el movimiento), los
parmetros estimados de ruido de nuestro robot fueron:
27
2.3.4 Funcin de Probabilidad de Movimiento
de control ut . La idea bsica del algoritmo es hallar el modelo inverso del robot. Es decir,
gausiana con media '0 ' y varianza 2 . Ntese que la probabilidad total es el producto
de las probabilidades individuales.
28
2.4 Resultados obtenidos
En la Figura 2.7 se muestra los resultados en el caso que el robot realice un movimiento
del tipo translacional + rotacional. En esta figura, el crculo rojo describe el estado inicial
5
x 10
0.7
0.6
2
0.5
0.4
1.5
0.3
y(m)
0.2
1
0.1
0 0.5
-0.1
-0.2 0
-0.2 0 0.2 0.4 0.6 0.8 1 1.2
x(m)
29
2.4.2 Movimiento Translacional
En la Figura 2.8 se muestra los resultados en el caso que el robot realice un movimiento
del tipo translacional. En esta figura, el crculo rojo describe el estado inicial del robot
que se obtendra en caso de que el robot realice un movimiento perfecto libre de ruido.
5
x 10
0.5 2.5
0.4
0.3 2
0.2
0.1 1.5
y(m)
-0.1 1
-0.2
-0.3 0.5
-0.4
-0.5 0
-0.2 0 0.2 0.4 0.6 0.8 1 1.2
x(m)
En la Figura 2.9 se muestra los resultados en el caso que el robot realice un movimiento
del tipo rotacional. En este experimento, el crculo es la configuracin inicial del robot
tiempo de t 5s . La configuracin final del robot est dada por el crculo en magenta.
Ntese que en este caso las posiciones final e inicial son muy cercanas (dado que el
robot solo gira sobre su eje).
30
6
x 10
0.02
4
0.015
3.5
0.01
3
0.005 2.5
y(m)
0 2
-0.005 1.5
-0.01 1
-0.015 0.5
-0.02 0
-0.02 -0.01 0 0.01 0.02
x(m)
31
CAPTULO III
MAPAS DE OCUPACIN Y MODELO PROBABILISTICO DEL
SENSOR LASER
En este captulo solo se har una introduccin a los mapas de ocupacin. Para mayor
detalle sobre la construccin tanto manual como automtica de estos mapas referirse al
Captulo 5 del presente trabajo.
3.1 Mapas
Para que un robot pueda navegar de manera autnoma en un ambiente dado este
necesita tener un mapa de dicho ambiente. Este mapa no solo le permite al robot conocer
las caractersticas y atributos de su entorno de navegacin, sino que le permite explicar el
proceso de la generacin de las mediciones de sus sensores.
Los mapas de ocupacin permiten la descripcin del entorno de navegacin del robot
entre espacios navegables y no navegables. Para esto se hace una discretizacin del
mundo en celdas, de tal manera que las celdas que corresponden a un espacio ocupado
reciben un valor de 1 (negro) y las celdas que corresponden a un espacio libre reciben
un valor de 0 (blanco), tal como se observa en la Figura 3.1.
Estos mapas son considerados del tipo volumtrico debido a que describen en
detalle cada posicin del entorno de navegacin. La ventaja de estos mapas es que
permiten el desarrollo de algoritmos de planeamiento, ya que muestran de manera
explcita los espacios ocupados y desocupados del entorno de navegacin.
33
grande, los mapas tendrn menos calidad pero requerirn menos memoria. En la prctica,
la gran mayora de robots mviles usan celdas en el rango de 4 a 15 cm.
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 3.2. Mapa de ocupacin del segundo piso del hogar del autor (Fuente: Elaboracin
propia)
34
3.2 Sensores Laser
Los sensores laser son los sensores ms usados en el campo de la robtica mvil hoy en
da, y se usan con el fin de medir distancias al objeto ms cercano en una direccin dada.
En particular, los sensores laser hacen un barrido emitiendo seales de luz en diferentes
direcciones. De esta manera, el robot es capaz de percibir la presencia de paredes y
obstculos en una serie de direcciones (Figura 3.3).
En la Figura 3.4 se muestran las dos marcas de sensores laser ms usados: SICK
y Hokuyo. La ventaja de los sensores de la marca SICK es que proveen un mayor rango
de alcance (de hasta 80 metros); sin embargo, la gran desventaja es que son bastante
caros (el SICK LMS 200 tiene un costo aproximado de 7,000.00 dlares). Los sensores
de la marca Hokuyo, son ms accesibles, aunque tienen un menor rango. Estos dos
sensores son los ms usados por los sistemas robticos ms avanzados a nivel mundial.
35
Figura 3.4. Sensores laser SICK y HOKUYO (Fuente: http://www.sick.com/)
Figura 3.5. Mediciones ideales del sensor laser (Fuente: Elaboracin propia)
36
3.2.2 Mediciones Reales del Sensor Laser
Figura 3.6. Mediciones reales del sensor laser (Fuente: Elaboracin propia)
37
El modelo seleccionado para describir la dinmica del sensor laser, es el
comnmente llamado beam based model el cual est basado en el proceso fsico que
generan las mediciones del sensor laser en un rayo dado [19], [20]. En este modelo se
reconoce que existen 4 fuentes de ruido que afectan las mediciones del sensor laser:
a. Ruido gausiano local. Se refiere al ruido local de valores pequeos que afectan las
mediciones correctas del sensor. Este ruido es debido principalmente a errores en la
resolucin del sensor o condiciones atmosfricas presentes. Estos errores se pueden
modelar con una distribucin gausiana cuya media est dada por la medicin ideal
z k * del sensor y una desviacin estndar hit .
N zt ; zt , hit , if 0 zt zmax
k k 2 k
phit ( z | xt , m)
k
t (3.1)
0, c.c
Este modelo se puede apreciar en la Figura 3.7. Ntese que en este modelo la
desviacin estndar hit define la cantidad de ruido.
Figura 3.7. Modelo basado en rayos del sensor laser Ruido local (Fuente:
http://www.probabilistic-robotics.org/)
38
short e short zt , if 0 ztk ztk
k
pshort ( z | xt , m)
k
t (3.2)
0, c.c
Figura 3.8. Modelo basado en rayos del sensor laser Ruido debido a objetos
inesperados (Fuente: http://www.probabilistic-robotics.org/)
1, if ztk zmax
pmax ( z | xt , m)
k
t (3.3)
0, c.c
Este modelo se muestra en la Figura 3.9, donde se puede ver claramente que la
probabilidad solo es diferente de cero en el punto zmax .
39
Figura 3.9. Modelo basado en rayos del sensor laser Ruido debido a fallas (Fuente:
http://www.probabilistic-robotics.org/)
d. Ruido aleatorio. Los sensores laser pueden producir mediciones que son del todo
inexplicables. Una posible explicacin de este ruido se debe al fenmeno de cross
talk, que son las interferencias entre las mediciones de los rayos contiguos del
sensor. Estadsticamente, este ruido se modela usando una distribucin uniforme.
1/ z , if 0 ztk zmax
prand ( ztk | xt , m) max (3.4)
0, c .c
Tal como se puede apreciar en la Figura 4.10, en este modelo cualquier punto en
el intervalo 0, zmax tiene la misma probabilidad.
Figura 3.10. Modelo de probabilidad de medida del sensor laser Ruido aleatorio
(Fuente: http://www.probabilistic-robotics.org/)
Entonces, estas diferentes fuentes de error son las que afectan las mediciones
ideales del sensor laser, por lo que la funcin de probabilidad de las mediciones
p( z | x) resultante del sensor est dada por la suma ponderada de las funciones de
densidad de probabilidad individuales tal como se muestra a continuacin:
40
zhit
T
phit ( ztk | xt , m)
k
zshort pshort ( zt | xt , m)
p( zt | xt , m)
k
(3.5)
zmax k
pmax ( zt | xt , m)
zrand p ( z k | x , m)
rand t t
Figura 3.11. Modelo probabilstico del sensor laser basado en rayos (Fuente:
http://www.probabilistic-robotics.org/)
Tabla. 3.1. Algoritmo para evaluar la probabilidad de las mediciones del sensor laser
(Fuente: http://www.probabilistic-robotics.org/)
Salidas : p ( zt | xt , m)
Entradas : zt , xt , m
1: q 1
2 : for k 1: K
3: Calcular ztk para ztk
4: p zhit phit ( ztk | xt , m) zshort pshort ( ztk | xt , m)
5: zmax pmax ( ztk | xt , m) zrand prand ( ztk | xt , m)
6: q q p
7 : Retornar q
41
3.4 Resultados Obtenidos
En esta prueba el estado del robot fue x 5, 4, pi / 2 , y el nmero de rayos usados por
T
el sensor laser fue de K 25 . Esta prueba se puede ver en la figura 3.12 donde
podemos apreciar el robot y las mediciones del sensor laser.
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
En la Figura 3.13 se puede ver el modelo probabilstico del sensor p( z | x) obtenido para
las condiciones anteriormente descritas.
42
Figura 3.13. Primera prueba Resultados obtenidos (Fuente: Elaboracin propia)
En esta prueba el estado del robot fue x 7, 0, 0 , y el nmero de rayos usados por el
T
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
43
En la Figura 3.15 se puede ver el modelo probabilstico del sensor p( z | x) obtenido para
las condiciones anteriormente descritas.
3.4.3 Conclusiones
Por otro lado debe notarse que cuando se usa una mayor cantidad de rayos del
sensor laser K, las funciones de densidad de probabilidad p( z | x) tienen un valor ms
considerable, y estn mucho ms centradas alrededor de la configuracin actual del robot.
44
CAPTULO IV
LOCALIZACIN USANDO MTODOS MONTE CARLO
Tal como se vio en la seccin 1.4, la idea bsica de los mtodos Monte Carlo es trabajar
con las muestras de una variable aleatoria en vez de trabajar directamente con la funcin
de probabilidad de la misma. El algoritmo SIS descrito en la Tabla 1.3 representa el
algoritmo ms bsico que implementa el filtro de Bayes usando el mtodo Monte Carlo,
por lo que en el caso del problema de la localizacin representa el punto de partida a
partir del cual se van a derivar los algoritmos especialmente diseados para el caso de
los robots mviles.
El algoritmo SIS (ver seccin 1.4.2) requiere el uso de una funcin propuesta
q( x0:t | z1:t , u1:t ) de tal forma que sea fcil tomar muestras. En el mtodo Monte Carlo
estndar [18], [19] esta funcin usualmente se escoge como la funcin de probabilidad de
movimiento:
q( xt | xt 1 , zt , ut ) p( xt | xt 1, ut ) (4.1)
46
Esta eleccin se debe a que es posible tomar muestras de esta funcin de
distribucin. Entonces, reemplazando esta distribucin en la ecuacin (1.28) se tiene la
siguiente ecuacin de actualizacin de pesos de cada muestra:
En la Tabla 4.1 se muestra el algoritmo SIS adaptado para la tarea de localizacin de los
robots mviles. Las lneas L1, L2, L3 y L4 son casi idnticas a las lneas presentes en el
algoritmo SIS, excepto por las modificaciones descritas en la seccin anterior. Las lneas
restantes hacen la etapa de re muestreo con el fin que el algoritmo no sufra el problema
de la degeneracin (ver seccin 1.5.3).
47
4.2.3 Resultados
En las Figuras 4.2, 4.3 y 4.4 que se muestran a continuacin las lneas en rojo
representan la trayectoria real del robot, y las trayectorias en azul representan la
trayectoria estimada usando el mtodo de localizacin Monte Carlo estndar. Si estas
lneas coinciden esto significa que el algoritmo es capaz de localizar correctamente al
robot. Adems, con el fin de cuantificar los errores en la estimacin, para cada prueba se
ha realizado 10 experimentos, y se han obtenido los errores RMS de cada experimento,
los cuales se reportan en las tablas anexas 4.2, 4.3, y 4.4.
En esta prueba se analiza el desempeo del algoritmo cuando se usa una cantidad muy
pequea de muestras.
5
y(m)
-5
10 -5 0 5 10
x(m)
Figura 4.2. Localizacin usando el mtodo Monte Carlo estndar M=5 muestras
(Fuente: Elaboracin propia)
48
Tabla. 4.2. Error RMS usando el mtodo Monte Carlo estndar M=5 muestras (Fuente:
Elaboracin propia)
Experimento ERMS ( x) ERMS ( y) ERMS ( )
1 0.0830 0.0334 0.0364
En esta prueba se analiza el desempeo del algoritmo cuando se usa una cantidad
reducida de muestras.
5
y(m)
-5
10 -5 0 5 10
x(m)
Figura 4.3. Localizacin usando el mtodo Monte Carlo estndar M=10 muestras
(Fuente: Elaboracin propia)
49
Tabla. 4.3. Error RMS usando el mtodo Monte Carlo estndar M=10 muestras (Fuente:
Elaboracin propia)
Experimento ERMS ( x) ERMS ( y) ERMS ( )
1 0.0178 0.0299 0.0172
En esta prueba se analiza el desempeo del algoritmo cuando se usa una cantidad
moderada de muestras.
5
y(m)
-5
10 -5 0 5 10
x(m)
Figura 4.4. Localizacin usando el mtodo Monte Carlo estndar M=30 muestras
(Fuente: Elaboracin propia)
50
Tabla. 4.4. Error RMS usando el mtodo Monte Carlo estndar M=30 muestras (Fuente:
Elaboracin propia)
Experimento ERMS ( x) ERMS ( y) ERMS ( )
1 0.0138 0.0126 0.0134
Por otro lado, tal como se puede observar de los resultados obtenidos en las Tablas,
4.2, 4.3 y 4.4 la calidad de la estimacin depende de la cantidad de muestras usadas.
Cuando se usan pocas muestras, el error de estimacin es considerable; y a medida que
se usan ms muestras, el error de estimacin tiende a disminuir. Idealmente se podran
usar una gran cantidad de muestras con el fin de tener errores an ms pequeos, pero
la desventaja de dicho enfoque es que la carga computacional crece de manera
considerable, lo que hara que el robot no funcione en tiempo real.
51
d. Eficiencia del Algoritmo de Re-muestreo Estndar
0.8
Tiempo(seg)
0.6
0.4
0.2
0
0 50 100 150 200 250 300 350 400 450 500
M
El algoritmo Monte Carlo estndar descrito en la seccin anterior trabaja muy bien en la
tarea de localizacin; sin embargo, se le pueden hacer una serie de mejoras con el fin de
mejorar su eficiencia y hacerlo ms robusto. En esta seccin se describirn estas mejoras,
y se compararan los resultados obtenidos con los resultados que se tienen usando el
mtodo Monte Carlo estndar.
52
En base a las observaciones hechas en la seccin 1.4.3, se pueden formular las
siguientes mejoras al algoritmo Monte Carlo estndar.
1 si se ha hecho re muestreo
wt( m ) (m) ( m)
(4.3)
p( zt | xt ) wt 1 si no se ha hecho re muestreo
como se muestra en [21], la idea es hacer el paso de re-muestreo cada vez que el
tamao efectivo de las muestras sea menor que N s / 2 . Donde N s se refiere al
nmero de muestras. De esta manera se logra tener un re-muestreo del tipo adaptivo,
en el sentido que este solo se realiza cuando es necesario.
53
prctica existen dos algoritmos que se pueden usar para hacer el paso de re-
muestreo: el muestreo estratificado y el muestreo sistemtico [17]. La gran ventaja de
usar este tipo de algoritmos es que: cubren el espacio de muestra de manera
sistemtica, presentan menos problemas de varianza, y su eficiencia esta en el orden
de operaciones O(log(M )) [19]. Esta ltima ventaja permite reducir el tiempo
computacional en el re-muestreo de las muestras.
L1: r rand (0 : M 1 )
L 2 : c wt(1)
L3 : i 1
L 4 : for m 1: M
L5 : U r (m 1) M 1
L6 : whileU c
L7 : i i 1
L8 : c c wt(i )
L9 : end
L10 : xt( m ) xt(i )
L11: end
return xtm
54
Tabla. 4.6. Algoritmo de localizacin Monte Carlo secuencial mejorado. (Fuente:
Elaboracin propia)
L5 : N eff 1/ wtm
M 2
m 1
L6 : if N eff M / 2
L7 : Ejecutar algoritmo de remuestreo
L8 : wtm 1
L9 : end
return xtm
En este algoritmo las primeras cuatro lneas son idnticas a las del algoritmo Monte
Carlo estndar con la diferencia de la acumulacin de los pesos que se da en la lnea 3.
En la lnea 5 se halla el tamao efectivo de las muestras. Desde la lnea 6 hasta la lnea 9
se hace el paso de re-muestreo solo si el tamao efectivo de las muestras es menor que
M / 2 . En la lnea 7 se ejecuta el algoritmo de re-muestreo descrito en la Tabla 4.5.
4.3.3 Resultados
En las Figuras 4.6, 4.7 y 4.8 que se muestran a continuacin las lneas en rojo
representan la trayectoria real del robot, y las trayectorias en magenta representan la
trayectoria estimada usando el mtodo Monte Carlo. Adems, con el fin de cuantificar los
errores en la estimulacin, para cada prueba se ha realizado 10 experimentos, y los
errores RMS de cada experimento se reportan en las Tablas anexas 4.7, 4.8 y 4.9.
Ntese que los errores RMS en las variables x, y estn en metros, y los errores RMS en
En esta prueba se analiza el desempeo del algoritmo cuando se usa una cantidad muy
pequea de muestras.
5
y(m)
-5
10 -5 0 5 10
x(m)
Figura 4.6. Localizacin usando el mtodo Monte Carlo mejorado M=5 muestras
(Fuente: Elaboracin propia)
Tabla. 4.7. Error RMS usando el mtodo Monte Carlo mejorado M=5 muestras (Fuente:
Elaboracin propia)
Experimento ERMS ( x) ERMS ( y) ERMS ( )
1 0.0596 0.0727 0.0372
56
b. Prueba 02: Usando M 10 muestras
En esta prueba se analiza el desempeo del algoritmo cuando se usa una cantidad
reducida de muestras.
5
y(m)
-5
10 -5 0 5 10
x(m)
Figura 4.7. Localizacin usando el mtodo Monte Carlo mejorado - M=10 muestras
(Fuente: Elaboracin propia)
Tabla. 4.8. Error RMS usando el mtodo Monte Carlo mejorado M=10 muestras
(Fuente: Elaboracin propia)
Experimento ERMS ( x) ERMS ( y) ERMS ( )
1 0.0181 0.0224 0.0182
57
c. Prueba 03: Usando M 30 muestras
En esta prueba se analiza el desempeo del algoritmo cuando se usa una cantidad
moderada de muestras.
5
y(m)
-5
10 -5 0 5 10
x(m)
Figura 4.8. Localizacin usando el mtodo Monte Carlo mejorado M=30 muestras
(Fuente: Elaboracin propia)
Tabla. 4.9. Error RMS usando el mtodo Monte Carlo mejorado M=30 muestras
(Fuente: Elaboracin propia)
Experimento ERMS ( x) ERMS ( y) ERMS ( )
1 0.0138 0.0145 0.0145
58
En base a los resultados anteriores, la primera conclusin es que el algoritmo de
localizacin Monte Carlo mejorado es capaz de estimar con gran precisin la
configuracin del robot en cualquier instante de tiempo. Esto se desprende del hecho que
la trayectoria estimada por el algoritmo (trayectoria en azul) es similar a la trayectoria real
del robot (trayectoria en rojo). Y al igual que en el caso del algoritmo Monte Carlo
estndar, el error en la estimacin disminuye al aumentar el nmero de muestras.
Comparando los resultados obtenidos con los del algoritmo Monte Carlo estndar, se
tiene que los errores en la estimacin son comparables. Esto se puede apreciar al ver las
Tablas 4.10 y 4.11 donde se muestran los errores RMS promedio de ambos algoritmos al
usar diferentes nmeros de partculas.
Tabla. 4.10. Errores RMS promedio usando el mtodo Monte Carlo estndar (Fuente:
Elaboracin propia)
Eje X(m) Eje Y(m) Orientacin(rad)
M 5 0.0463 0.0430 0.0257
M 10 0.0267 0.0275 0.0172
M 30 0.0157 0.0187 0.0133
Tabla. 4.11. Errores RMS promedio usando el mtodo Monte Carlo mejorado (Fuente:
Elaboracin propia)
Eje X(m) Eje Y(m) Orientacin(rad)
M 5 0.0529 0.0571 0.0340
M 10 0.0203 0.0333 0.0197
M 30 0.0140 0.0191 0.0154
Ntese que los errores de ambos algoritmos al estimar la posicin del robot estn en
el orden de los centmetros, y el error en la estimacin de la orientacin no pasa de los
dos grados sexagesimales. Estos resultados nos muestran la gran precisin de ambos
algoritmos en la estimacin de la configuracin del robot.
59
d. Eficiencia del Algoritmo de Re-muestreo Estndar
Finalmente en la Figura 4.9 se muestran los tiempos de ejecucin del algoritmo de re-
muestreo sistemtico para diversos tamaos de muestras. Comparando estos resultados
con los de la Figura 4.5 puede notarse que los tiempos de ejecucin del algoritmo de re-
muestreo sistemtico son mucho menores que los del algoritmo de re muestreo estndar
por un factor aproximado de 10.
-5
x 10
5
4.5
4
Tiempo(seg)
3.5
2.5
2
0 50 100 150 200 250 300 350 400 450 500
M
4.4 Conclusiones
Como puede desprenderse de los experimentos anteriores, los mtodos Monte Carlo
secuenciales proporcionan una herramienta poderosa para estimar la configuracin del
robot en cualquier instante de tiempo usando las mediciones de los sensores laser. Los
resultados obtenidos nos muestran que el error en la estimacin de la posicin est en el
orden de los centmetros, y el error en la estimacin de la orientacin no pasa de los dos
tres grados sexagesimales.
60
La gran ventaja del algoritmo Monte Carlo mejorado presentado en este trabajo
sobre el algoritmo Monte Carlo estndar, es que es ms robusto al problema de prdida
de la diversidad de las muestras, al disminuir la frecuencia de re-muestreo; y al hacer uso
de algoritmos de re-muestro ms avanzados se logra disminuir los problemas de la
varianza en las muestras. Adems, estas mejoras permiten reducir los tiempos
computacionales requeridos por el algoritmo de estimacin, siendo este punto muy
importante, ya que el robot debe operar en tiempo real.
61
CAPTULO V
MAPEO USANDO MTODOS MONTE CARLO
63
Figura 5.3. Mapa de ocupacin de un entorno de navegacin (Fuente:
http://www.probabilistic-robotics.org/)
64
problema de estimar mapas involucra el manejo de espacios estados de cientos y hasta
miles de dimensiones.
Debe notarse que las tcnicas probabilsticas, son las nicas que han demostrado
xito en el problema del mapeo. Esto debido a que el nivel de ruido/incertidumbre es
mucho mejor manejado usando la teora de probabilidades y tcnicas estadsticas, que
usando tcnicas del tipo determinsticas. Tanto en la robtica mvil como en otras reas
de la ciencia, las tcnicas probabilsticas representan el estado del arte.
y m, x (5.1)
65
Reemplazando esta ecuacin en la ecuacin (1.6) tendremos la ecuacin del filtro de
Bayes en el caso del problema del mapeo.
Eliminando los ndices de tiempo de las variables del mapa, resulta en:
66
La familia de algoritmos SLAM basada en los sensores del tipo range-bearing y la
asuncin de ruido gausianos en los sensores y los actuadores, puede aproximar esta
distribucin posterior usando distribuciones gausianas [19], [22]. Sin embargo estos
algoritmos no pueden usarse con los sensores laser, ni con los mapas de ocupacin que
son el objeto del presente trabajo. El ejemplo ms conocido de esta familia, es el
algoritmo EKF-SLAM, que est basado en el filtro extendido de Kalman.
En el caso de las aproximaciones discretas realizadas por los mtodos Monte Carlo
estndar, la cantidad de muestras requeridas para cubrir de manera adecuada el espacio
estado es muy grande. Este problema se vuelve an mayor conforme la dimensin del
entorno de navegacin crece en longitud. Este hecho hace inaplicable el uso de los
mtodos Monte Carlo estndar de manera directa ya que al considerar una cantidad casi
infinita de muestras, se requeriran una cantidad infinita de recursos computacionales. En
las secciones posteriores se describirn las maneras de superar este obstculo haciendo
uso de tcnicas ms avanzadas.
se conoce las configuraciones x1:t del robot en las cuales se han tomado las mediciones
z1:t [23]. La idea central de estos algoritmos es asignar una probabilidad a cada celda
del mapa de ocupacin en funcin de su cercana al cono de ocupacin que modela las
mediciones del sensor laser (Figura 5.4).
67
Figura 5.4. Cono de ocupacin que modela las mediciones de un sensor laser (Fuente:
http://www.probabilistic-robotics.org/)
En esta figura los puntos que estn fuera del alcance del cono que encierra la
medicin del sensor laser reciben un valor neutro debido a que no se puede afirmar ni
negar la presencia de un obstculo en estas posiciones. Los puntos que estn dentro del
cono y que estn cerca del rango de la medicin obtenido por el sensor reciben una alta
probabilidad de contener espacios ocupados ya que es altamente probable que estas
posiciones contenga el obstculo que gnero la medida del sensor. Los puntos que estn
dentro del cono pero con menor rango que las mediciones del sensor reciben poca
probabilidad de contener espacios ocupados ya que es poco posible que contengan
obstculos.
68
9
6
y(m)
1 2 3 4 5 6 7 8 9
x(m)
Figura 5.5. Mediciones de distancia de un sensor laser (Fuente: Elaboracin propia)
6
y(m)
1 2 3 4 5 6 7 8 9
x(m)
69
5.3 Mapeo usando Mtodos Monte Carlo Rao-Blackwellized
En esta seccin nos centraremos en los algoritmos que constituyen el eje central de la
investigacin de la presente tesis: los algoritmos de mapeo usando mtodos Monte Carlo
Rao-Blackwellized. Como se mencion en la seccin anterior, el principal problema del
mtodo Monte Carlo estndar en el problema del mapeo es la gran dimensionalidad del
espacio estado (debido al estado correspondiente al mapa). Tal como se ver en esta
seccin el uso de las tcnicas del tipo Rao-Blackwellized hace tratable el problema de
mapeo usando las tcnicas Monte Carlo.
Sin embargo, en algunos casos, los sistemas bajo estudio tienen una parte de su
estructura que se puede manejar de manera analtica. La idea central de los algoritmos
del tipo Rao-Blackwellized es explotar estas estructuras con el fin de usar mtodos
analticos en esta parte de la estructura del problema, y usar mtodos Monte Carlo en la
parte restante. De esta manera hace posible la aplicacin de los mtodos Monte Carlo ya
que la dimensionalidad del espacio de muestras se reduce de manera considerable.
En el caso especfico del problema de mapeo la idea principal de los mtodos del
tipo Rao-Blackwellized es expresar la distribucin posterior p( x1:t , m | z1:t , u1:t ) sobre el
p( x1:t , m | z1:t , u1:t ) p(m | x1:t , z1:t ) p( x1:t | z1:t , u1:t ) (5.6)
En esta factorizacin el primer trmino se refiere a la estimacin del mapa dado que
se conocen las configuraciones del robot y las mediciones de los sensores; y el segundo
trmino se refiere a la estimacin de las configuraciones del robot dado las mediciones de
70
los sensores y actuadores. El modelo probabilstico grafico que representa esta dinmica
es el que se muestra en la Figura 5.7.
Figura 5.7. Modelo probabilstico grafico del problema del mapeo (Fuente:
http://www.probabilistic-robotics.org/)
De esta manera, al usar los mtodos Monte Carlo en combinacin con las tcnicas
Rao-Blackwellized es posible resolver el problema de mapeo de manera eficiente, ya que
el proceso de muestreo de las tcnicas Monte Carlo solo se hace en el espacio de
trayectorias (sin considerar el espacio de mapas de ocupacin) reduciendo de manera
considerable la dimensin del espacio de muestreo. Finalmente se debe comentar que
estas tcnicas actualmente representan el estado del arte en el problema del mapeo y
son usados comnmente en los robots ms avanzados a nivel mundial.
pesos de las muestras. La lnea L4 se encarga de actualizar los mapas de cada una de
las muestras usando el mtodo de mapeo con configuraciones conocidas descrito
anteriormente. Finalmente en las lneas L6 y L9 se hace el paso de re-muestreo. Como
puede notarse, en este algoritmo cada muestra representa una posible configuracin del
robot; y adems, cada muestra tiene su propio mapa que representa la creencia de la
muestra sobre la forma de su entorno de navegacin.
De esta manera, los pesos de cada muestra estaran dados simplemente por la expresin
wt[ k ] p( zt | xt[ k ] , mt[k1] ) , que es la funcin de probabilidad de las mediciones descrita en el
Captulo 3 del presente trabajo.
72
Por otro lado cabe notar que el parmetro principal de control del algoritmo se refiere
al nmero de muestras a usar. Tal como se vio en el Captulo 1, el uso de una gran
cantidad de muestras permite una mejor precisin en la estimacin pero vuelve al
algoritmo muy costoso en trminos computacionales. Por otro lado, el uso de pocas
muestras permite que el algoritmo pueda operar en tiempo real (es decir el robot puede
construir su mapa en lnea mientras se desplaza por un ambiente), pero la estimacin
puede ser muy pobre o incluso totalmente errnea.
Antes de mostrar los resultados del mapeo, en la Tabla 5.2 se muestran los tiempos
de ejecucin de las operaciones ms costosas en el proceso de mapeo. Como puede
deducirse, al aumentar el nmero de muestras aumenta el tiempo de ejecucin de
manera proporcional, haciendo que, pasado cierto lmite, el algoritmo de mapeo no pueda
operar en tiempo real. Ntese que la operacin ms costosa est dada por la
construccin del mapa, en la que el robot dado las mediciones de los sensores laser debe
actualizar el mapa de ocupacin (Figura 5.5 y 5.6). Para lograr este tiempo relativamente
pequeo se deben hacer uso de tcnicas altamente optimizadas de programacin, caso
contrario se pueden obtener tiempos de ejecucin muy grandes (en una primera
implementacin se obtuvieron tiempos de alrededor de 5 segundos).
5.3.3 Resultados
73
5
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Como puede notarse, la dimensin del espacio de mapas es enorme, lo que hace
inaplicable el uso de las tcnicas Monte Carlo estndar en el problema de mapeo. Si bien
se puede usar una resolucin mayor con el fin de reducir esta dimensionalidad, el
problema sera que los mapas construidos sean de menor calidad, incapaces de capturar
todas las caractersticas del entorno de navegacin. La desventaja de usar una menor
resolucin es que, si bien se puede obtener mapas de mejor calidad, los tiempos de
ejecucin son mucho ms largos.
74
a) Pruebas cuando M = 10
En estas pruebas se analiza los resultados del mapeo usando el mtodo Monte Carlo
Rao-Blackwellized usando M 10 muestras. Las Figuras 5.9, 5.10, 5.11, 5.12, 5.13, 5.14,
5.15, 5.16, 5.17 y 5.18 corresponden a los mapas de mayor probabilidad. Solo en el caso
de la primera prueba se muestran los mapas de ocupacin de otras muestras. Como se
recuerda, en este mtodo, cada muestra lleva su propio mapa.
Primera prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.9. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized cuando M=10 -
Primera prueba (Fuente: Elaboracin propia)
5 5 5
y(m)
y(m)
y(m)
0 0 0
-5 -5 -5
-5 0 5 10 -5 0 5 10 -5 0 5 10
x(m) x(m) x(m)
Figura 5.10. Mapas de ocupacin de otras muestras (M=10) - Primera prueba (Fuente:
Elaboracin propia)
75
Segunda prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.11. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized (M=10) - Segunda
prueba (Fuente: Elaboracin propia)
Tercera prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.12. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized (M=10) - Tercera
prueba (Fuente: Elaboracin propia)
76
b) Pruebas cuando M = 30
Primera prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.13. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized cuando M=30 -
Primera prueba (Fuente: Elaboracin propia)
Segunda prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.14. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized cuando M=30 -
Segunda prueba (Fuente: Elaboracin propia)
77
Tercera prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.15. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized (M=30) - Tercera
prueba (Fuente: Elaboracin propia)
c) Pruebas cuando M = 50
Primera prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.16. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized (M=50) - Primera
prueba (Fuente: Elaboracin propia)
78
Segunda prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.17. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized cuando M=50 -
Segunda prueba (Fuente: Elaboracin propia)
Tercera prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.18. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized (M=50) - Tercera
prueba (Fuente: Elaboracin propia)
79
5.3.4 Conclusiones
Tal como puede deducirse de los experimentos anteriores, los mapas adquiridos
usando el filtro Monte Carlo Rao-Blackwellized estndar no son de buena calidad ya que
no reflejan con mucha exactitud el mapa del entorno real. Sin bien en algunos casos los
mapas son parecidos al mapa del entorno real, en ciertas regiones estos presentan
inconsistencias que los hacen inadecuados en su uso como mapas de ocupacin.
80
5.4 Mapeo usando Mtodos Monte Carlo Rao-Blackwellized Mejorados
Tal como se pudo observar en la seccin anterior, la aplicacin del mtodo de mapeo
Monte Carlo Rao-Blackwellized estndar no provee buenos resultados en la construccin
de mapas de alta calidad de los entornos de navegacin del robot. Con el fin de remediar
estos problemas en esta seccin se mostraran una serie de mejoras, descritas en [25],
con el fin de tener un algoritmo que sea capaz de construir mapas de navegacin de alta
calidad que puedan usarse para realizar tareas de navegacin autnoma.
81
Con el fin de superar este problema es posible considerar una nueva distribucin
propuesta que tenga en cuenta las mediciones de los sensores. De esta manera la
distribucin propuesta estara mucho ms concentrada en las regiones de alta
probabilidad segn las mediciones del sensor. Tal como se muestra en [21] la
distribucin:
p( zt | xt , mt 1 ) p( xt | xt 1 , ut )
p( xt | xt 1 , ut , mt 1 , zt ) (5.7)
p( zt | xt 1 , mt 1 , ut )
Figura 5.21. Distribucin propuesta que considera las mediciones (Fuente: Grisetti, et.
[25])
82
Reemplazando la expresin en (5.7) en (5.8) resulta en la siguiente ecuacin de
actualizacin de pesos:
Esta ecuacin contiene una integral que tiene como argumento el producto de la
distribucin de las medidas con la distribucin de movimiento.
Donde xt'(i ) es el punto de partida propuesto que puede estar dado por una
muestra de la funcin de probabilidad de movimiento. Para hacer esta bsqueda se
puede hacer uso de tcnicas de optimizacin (como el algoritmo de gradiente
ascendente). Entonces, dado el punto mximo de probabilidad xt( i ) y el rea que lo
hallan usando:
K
1
ut(i ) x j p( zt | mt(i )1 , x j ) p( x j | xt(i )1 , ut ) (5.11)
(i ) j 1
K
1
(i )
t(i ) ( x j t(i ) ) ( x j t(i ) )T p( zt | mt(i )1 , x j ) p( x j | xt(i )1 , ut ) (5.12)
j 1
K
(i ) p( zt | mt(i )1 , x j ) p( x j | xt(i )1 , ut ) (5.13)
j 1
83
Como puede notarse, en el clculo de los parmetros de la distribucin gaussiana
se toma en cuenta las distribuciones de movimiento y de mediciones. Entonces al
hacer una aproximacin gausiana de la distribucin propuesta, el proceso de
generacin de muestras se puede hacer de manera eficiente debido a que existen
mtodos numricos bien fundamentados que nos permiten tomar muestras de
distribuciones gausianas.
K
wt(i ) wt(i 11) p( zt | mt(i )1 , x j ) p( x j | xt(i )1 , ut )
j 1 (5.14)
( i 1)
w t 1 n (i )
1 si se ha hecho re muestreo
wt( m ) ( m ) ( m ) (5.15)
wt 1 n si no se ha hecho re muestreo
84
5.4.2 Algoritmo de Mapeo
5.4.3 Resultados
Tal como se ver en las Figuras 5.22-5.31 la cantidad de muestras necesarias para
obtener mapas de alta calidad es mucho menor que las requeridas en las pruebas
anteriores. Este hecho se refleja en un tiempo de mapeo mucho ms rpido, y en el
menor uso de recursos computacionales. Por lo que este algoritmo de mapeo puede
usarse cuando se requiera que un robot haga mapeo en tiempo real.
85
Tabla. 5.3. Algoritmo de mapeo usando el mtodo Monte Carlo Rao-Blackwellized
mejorado (Fuente: Grisetti, et. [25]))
L 28 : N eff 1/ wt(i )
M 2
i 1
L 29 : if N eff M / 2
L30 : wt(i ) 1
L31: end
return xt[ k ] , mt[ k ]
86
a) Pruebas cuando M = 5
Primera prueba
.
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.22. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado (M=5) -
Primera prueba (Fuente: Elaboracin propia)
A continuacin se muestran los mapas de otras muestras que tienen menor probabilidad.
En las pruebas posteriores solo se mostraran los mapas de las muestras de mayor
probabilidad.
5 5 5
y(m)
y(m)
y(m)
0 0 0
-5 -5 -5
-5 0 5 10 -5 0 5 10 -5 0 5 10
x(m) x(m) x(m)
Figura 5.23. Mapas de ocupacin de otras muestras cuando M=5 - Primera prueba
(Fuente: Elaboracin propia)
87
Segunda prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.24. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado (M=5) -
Segunda prueba (Fuente: Elaboracin propia)
Tercera prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.25. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado (M=5) -
Tercera prueba (Fuente: Elaboracin propia)
88
b) Pruebas cuando M = 10
Primera prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.26. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado (M=10) -
Primera prueba (Fuente: Elaboracin propia)
Segunda prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.27. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado (M=10) -
Segunda prueba (Fuente: Elaboracin propia)
89
Tercera prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.28. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado (M=10) -
Tercera prueba (Fuente: Elaboracin propia)
c) Pruebas cuando M = 15
Primera prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.29. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado (M=15) -
Primera prueba (Fuente: Elaboracin propia)
90
Segunda prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.30. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado (M=15) -
Segunda prueba (Fuente: Elaboracin propia)
Tercera prueba
1
y(m)
-1
-2
-3
-4
-5
-5 0 5 10
x(m)
Figura 5.31. Mapeo usando el mtodo Monte Carlo Rao-Blackwellized mejorado (M=15) -
Tercera prueba (Fuente: Elaboracin propia)
91
5.4.4 Conclusiones
Estas mejoras se deben en gran parte al uso de una mejor distribucin propuesta, la
cual al tomar en cuenta no solo la seal de control u sino tambin las mediciones de los
sensores z , permite tener una distribucin con una menor varianza y mucho ms
centrada alrededor de la configuracin real del robot. Esto a su vez permite el uso de una
menor cantidad de muestras, ya que el rea de probabilidad es mucho ms reducida.
92
CAPTULO VI
PLANIFICACION Y CONTROL DE MOVIMIENTO
Hasta este punto se han desarrollado los componentes bsicos que son necesarios para
que un robot mvil pueda navegar en un ambiente dado. Es decir, dado un mapa del
entorno de navegacin, el robot tiene la capacidad de conocer en cada instante de tiempo
su configuracin respecto a este mapa; y si el robot no tiene el mapa lo puede construir
de manera autnoma. Ahora prestaremos atencin al nivel de cognicin, que representa
el componente de toma de decisiones cuyo fin es lograr que el robot logre sus metas, y
de esta manera pueda realizar tareas asignadas.
a) Construccin del grafo: En el caso del robot mvil, los nodos del grafo representan
las posiciones del robot; y los arcos representan las conexiones entre estos.
Dependiendo del algoritmo de bsqueda a usar, los nodos son aadidos al grafo en
una forma determinada. Usualmente en esta construccin se empieza por el nodo que
contiene la posicin de partida, y usando todas las acciones disponibles se van
generando los nuevos nodos del grafo.
94
nica posicin deseada: El robot tienen como objetivo llegar a solo una posicin
deseada. Si se desea llegar a otra posicin, se debe ejecutar nuevamente el
componente de planificacin con este nuevo objetivo.
Representacin binaria del mapa: Los espacios libres tienen un valor de 0, y los
espacios ocupados tienen un valor de 1.
Costo de navegacin: El costo de navegar por una celda est dado por un
nmero positivo.
95
Optimo: Si dice que un algoritmo es ptimo si es capaz de encontrar la trayectoria
ptima ms corta dentro de un conjunto posible de trayectorias.
Una vez presentados los conceptos bsicos de la representacin del entorno y los
mtodos de bsqueda basados en grafos, a continuacin se presentara uno de los
algoritmos ms populares de planificacin de trayectorias, el algoritmo A*. Se ha
escogido este algoritmo no solo porque es ptimo y completo, sino por su capacidad de
aplicacin prctica en el caso de la planificacin de trayectorias en tiempo real en
entornos dinmicos. Tal como se ver en la siguiente seccin este algoritmo puede
generar trayectorias optimas de manera muy eficiente (esta eficiencia se consigue
adems al aplicar tcnicas de programacin optimizadas a la hora de implementar el
algoritmo).
En el proceso de bsqueda usando grafos por lo general se trabaja con una serie de
conjuntos con el fin de guardar informacin sobre el proceso de bsqueda. En el caso del
algoritmo A* se trabaja con dos conjuntos:
a) Conjunto abierto (OPEN). Es el conjunto que contiene los nodos que estn siendo
analizados en determinado momento. Estos nodos son los que estn listos para ser
expandidos con el fin de generar nuevos nodos. Este conjunto tambin es llamado la
frontera por qu divide el espacio explorado del no explorado
96
b) Conjunto cerrado (CLOSED). Es el conjunto que contiene a los nodos que ya han
sido analizados. Este conjunto tiene la finalidad de eliminar las redundancias en el
proceso de generacin de nodos (elimina los caminos redundantes).
Por otro lado, el algoritmo A* al ser del tipo informado hace uso de heursticas o
conocimientos especficos acerca de un problema con el fin de ayudar al algoritmo en el
proceso de bsqueda. De esta manera, el proceso de bsqueda es mucho ms rpido, y
los requerimientos de memoria para guardar los conjuntos abierto y cerrado disminuyen
considerablemente. Este conocimiento heurstico, est definido por una funcin heurstica
dada por:
97
Donde g (n) es el costo del camino desde la posicin inicial hasta el nodo n.
Entonces si estamos buscando la solucin menos costosa, el algoritmo A* siempre
seleccionara los nodos con menor valor f en el conjunto abierto; de esta manera, la
solucin encontrada por el algoritmo siempre ser la ms ptima [1], [27].
6.3.2 El Algoritmo A*
En la tabla 6.1 se describe en pseudocdigo el algoritmo A*. Las entradas del algoritmo
son la posicin inicial del robot, la meta y la heurstica a usar en el proceso de
planificacin de trayectoria del robot mvil.
98
esta manera que el nodo ya ha sido analizado. En las lneas siguientes, se expande el
nodo seleccionado usando todas las posibles acciones (Figura 6.1), se aaden los nodos
generados en la lista abierta OPEN (L13 y L14), y si se ha descubierto un camino con
menor costo (L15 y L16) se escoge este como el nuevo camino.
6.3.3 Resultados
250
200
150
y
100
50
99
Como puede observarse la trayectoria hallada es efectivamente la ms ptima entre
la posicin de partida y la posicin de llegada. El tiempo de ejecucin del algoritmo
para hallar esta trayectoria tiene un promedio de 6.0 segundos. Este tiempo es
relativamente pequeo considerando la magnitud del entorno de navegacin del
robot.
250
200
150
y
100
50
100
de partida la coordenada (105, 45) y como punto de llegada la coordenada (160,73) .
Luego de ejecutar el algoritmo, la trayectoria hallada es la mostrada en color verde
en la Figura 6.4.
250
200
150
y
100
50
En este caso el tiempo de ejecucin del algoritmo para hallar esta trayectoria tiene
un promedio de 0.2 segundos. Ntese que en este caso si bien la distancia corta
estaba dada por la lnea recta que une el punto inicial y final, la trayectoria obtenida
es la ms ptima de acuerdo a la heurstica de Manhattan
101
6.4 Control de Movimiento
Una vez que se ha establecido la trayectoria que el robot debe seguir para llegar a su
meta, se deben establecer las acciones de control en cualquier instante de
tiempo ut vt , wt
T
adecuadas con el fin de lograr tal objetivo. Es decir se debe
desarrollar un componente de control de movimiento que asegure que el robot siga cierta
trayectoria deseada. En esta seccin se describir como el controlador del tipo PID es
capaz de lograr tal objetivo.
La tarea central del control de movimiento es asegurar que el robot siga la trayectoria
establecida por el componente de planeamiento. La tarea de este componente, es
asegurar que en cada instante de tiempo la distancia del robot a la trayectoria deseada
sea cero. Esta distancia, que es usualmente llamada CTE (cross-talk error), es la variable
a ser controlada por el sistema de control de movimiento (Figura 6.5).
102
6.4.2 Control PID
El controlador PID es uno de los algoritmos ms usados tanto en la industria como en los
centros de investigacin [31], [32]. En el caso de la industria se estima que en ms del
90% de los casos se usa este tipo de controlador. Esto es principalmente debido a que es
fcil de implementar como a sus propiedades de estabilidad en la mayor cantidad de
sistemas. La versin ms general de este algoritmo tiene la forma
1 t de(t )
u (t ) K P e(t )
Ti e(t )dt T
0 d
dt
(6.4)
k
e(i 1) e(i) e(k ) e(k 1)
u (k ) K P e(k ) K I T KD (6.5)
i 0 2 T
frecuencia de muestreo. En el caso de nuestro robot la seal de error e(k ) est dada por
el error CTE.
6.4.3 Resultados
103
del robot, para ms adelante hallar las ganancias ptimas que le permitan al robot seguir
la trayectoria deseada en el menor tiempo y con el menor error posible.
0.5
y(m)
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
Figura 6.6. Test de prueba para el diseo del controlador PID (Fuente: Elaboracin
propia)
Kp=0.05
0.5
y(m)
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
Kp=0.5
0.5
y(m)
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
Kp=1
0.5
y(m)
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
104
Kp=5
0.5
y(m)
0
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
Kp=10
0.5
y(m)
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
Kd=0.01
0.5
y(m)
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
Kd=10
0.5
y(m)
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
Kd=40
0.5
y(m)
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
105
Kd=100
0.5
y(m)
0
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
Kd=200
0.5
y(m)
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
Ki=0.0005
0.5
y(m)
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
Ki=0.001
0.5
y(m)
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
Ki=0.005
0.5
y(m)
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
106
Ki=0.01
0.5
y(m)
0
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
Ki=0.05
0.5
y(m)
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
pequeos de esta ganancia tienden a reducir el error de manera muy lenta, mientras que
valores grandes resultan en errores del tipo oscilatorio (Figura 6.7). Los resultados nos
permiten comprobar el hecho de que el controlador del tipo proporcional es del tipo
marginalmente estable. Se debe notar que aunque se usen ganancias pequeas el error
aun ser oscilatorio.
aadir una amortiguacin al sistema con el fin que el error converja de manera suave a
su valor estacionario. Tal como puede apreciarse en la Figura 6.8, al aumentar esta
ganancia, se lograr que el robot llegue a la trayectoria deseada de manera ms rpida y
ms suave, sin la presencia de oscilaciones. Tal como se mostr en [33], otra manera de
interpretar a los controladores PD es como sistemas que moldean la energa del sistema
controlado con el fin que el punto mnimo de energa coincida con la posicin deseada.
107
rpidamente, y la seal de control integral se vuelve muy grande respecto a las seales
proporcionales y derivativas)
Con el fin de tener un controlador que tenga el mejor desempeo, se debe hacer un
proceso de sintonizacin que no es otra cosa que el proceso de bsqueda de las
ganancias K P , K I , K D optimas que resulten en el mejor control de la seal de error.
0.5
y(m)
-0.5
0 1 2 3 4 5 6 7 8 9 10
x(m)
Figura 6.10. Control PID seleccionado para el control de movimiento del robot (Fuente:
Elaboracin propia)
0.2
0.15
0.1
0.05
Error
-0.05
-0.1
-0.15
-0.2
1 2 3 4 5 6 7 8 9 10
x(m)
Figura 6.11. Seal de error del controlador PID seleccionado (Fuente: Elaboracin propia)
108
Como puede verse en la Figura 6.10, el controlador propuesto es capaz de lograr
que el robot siga la trayectoria deseada con la menor oscilacin posible. De la Figura 6.11
puede observarse que el error tiene una forma suave y tiende asintticamente a cero.
Este controlador PID con las ganancias seleccionadas junto con el componente de
planeamiento desarrollado en la seccin anterior, son los encargados del movimiento del
robot. Ambos componentes garantizan que el robot llegue a las posiciones deseadas de
manera ptima y confiable. Ambos componentes, en combinacin con los componentes
desarrollados en captulos anteriores (localizacin y mapeo) permiten que nuestro robot
mvil sea capaz de desarrollar tareas de navegacin autnoma al ms alto nivel.
109
CAPTULO VII
ARQUITECTURA DEL SOFTWARE DE NAVEGACIN AUTNOMA
Una vez desarrollado todos los componentes necesarios para que un robot tenga
competencias de navegacin autnoma la tarea siguiente es el diseo de la arquitectura
del software de navegacin del robot. Es decir la tarea de combinar adecuadamente
todos estos componentes en un solo sistema de software de navegacin autnoma. En
este captulo se describir la importancia y la dificultad en la implementacin del software
de navegacin autnoma del robot, la importancia de usar tcnicas de programacin
altamente optimizadas, y los criterios que se deben seguir en la implementacin del
software de navegacin. Finalmente se muestra la arquitectura del sistema de
navegacin de nuestro robot mvil.
A diferencia de los manipuladores robticos que usan las tcnicas de control moderno
(control adaptivo, deslizante, etc.), el nivel y cantidad de software requerido por las
tcnicas probabilsticas de navegacin autnoma es mucho mayor. Por ejemplo en
trabajos tales como control de manipuladores robticos de 2 o 3 grados de libertad, la
cantidad de lneas de cdigo (en MATLAB) esta usualmente en el rango de 300 a 400
[34]. En el caso de nuestro robot mvil, se ha escrito aproximadamente 16,000 lneas de
cdigo (en MATLAB). Este cdigo contiene la implementacin de los algoritmos descritos
en captulos anteriores, as como las libreras necesarias para poder controlar los
diversos sensores usados por el robot (el sensor laser, los motores, los encoders). Es
por este motivo que las tcnicas modernas de navegacin autnomas de robos mviles
estn ubicadas dentro del campo de la Inteligencia Artificial y las Ciencias de la
Computacin.
Debido a la magnitud del desarrollo de software requerido para la implementacin de
robots autnomos, a nivel mundial se han lanzado diversas iniciativas para el desarrollo
de libreras de navegacin autnoma. La librera CARMEN Carnegie Mellon Navigation
Toolkit [35], desarrollada en el instituto de robtica de la Universidad Carnegie Mellon,
fue una de las primeras en la implementacin de algoritmos de navegacin probabilsticos.
Esta librera se us exitosamente en el robot Minerva, que hacia servicio de gua en un
museo; y el robot Nursebot, que fue diseado para servir como asistente a las personas
de la tercera edad en los centros para adultos (Figura 7.1).
111
Figura 7.2. STAIR: Stanford Artificial Intelligence Robot (Fuente: http://stair.stanford.edu/)
El proyecto STAIR dio lugar ms adelante al desarrollo del robot PR2 (Figura. 7.3),
uno de los robots ms avanzados a nivel mundial en la actualidad, y a la creacin de la
empresa Willow Garage, la que actualmente se encarga del desarrollo y mantenimiento
del software ROS: Robot Operating System [37], el cual tiene como objetivo final ser el
Linux de la robtica. Esta librera no solo es usada por el robot PR2 sino por una serie de
robots muy avanzados en diferentes partes del mundo.
112
Figura 7.3. El robot PR2 (Fuente: http://www.willowgarage.com/)
Teniendo como fuente de inspiracin las libreras antes mencionadas, fue que se
desarroll el software de navegacin autnoma de nuestro robot R2D2-00. En el caso
de nuestra librera de navegacin, el cdigo esta hecho ntegramente en Matlab, a
diferencia de las libreras mencionadas anteriormente que estn hechas en C/C++ y solo
se pueden ejecutar en el sistema operativo Linux.
Con el fin de tener una implementacin altamente eficiente se hizo uso de tcnicas
de programacin Matlab altamente optimizadas (como operaciones vectorizadas, pre
asignacin de memoria, uso de manejadores, etc.) con el fin de conseguir una eficiencia
lo ms cercana posible a C/C++. Tal como se ver en el captulo de resultados
experimentales, nuestras libreras de navegacin permiten que el robot sea capaz de
operar en tiempo real.
113
7.2 Criterios de Programacin en la Implementacin del Software
a) Modularidad
El software del robot R2D2-00 fue diseado de manera modular, en donde cada
componente se construy como un mdulo separado e independiente. Esto significa que
en la implementacin de cada componente de navegacin (localizacin, mapeo,
planeamiento, control) y en la implementacin de las libreras de control (laser, motores),
se hizo uso de las tcnicas de programacin orientada a objetos. Aun cuando el uso de
estas tcnicas introduce pequeos retardos en los tiempos de ejecucin, sus principales
ventajas son:
114
La modularidad es de gran importancia en la robtica mvil debido a la gran cantidad
de lneas de cdigo de cada componente, y a la necesidad de tener un sistema que sea
fcilmente adaptable a los cambios en software y/o hardware del robot. Este criterio se
usa no solo en el desarrollo de las libreras para los sistemas robticos ms avanzados a
nivel mundial, sino tambin en otras reas de la ingeniera.
b) Robustez
El software del robot R2D2-00 fue diseado de manera robusta de tal manera que pueda
afrontar diversos tipos de fallas. En particular los diversos mtodos de las clases
muestran en pantalla mensajes de error y/o emergencia cuando ha sucedido algn
evento que perjudica el buen desenvolvimiento del sistema. Por ejemplo cuando, no se
ha instalado adecuadamente un sensor, cuando las velocidades exceden sus valores
lmites, etc., se muestra en pantalla un mensaje con el respectivo error, y las acciones a
tomar con el fin de superar el inconveniente.
c) Eficiencia
115
7.3 Arquitectura del Software de Navegacin
Una vez definido los criterios de programacin a seguir, el siguiente paso es el diseo de
la arquitectura del software de navegacin, la cual se refiere a la adecuada combinacin
de los principales componentes que son necesarios para la navegacin autnoma de un
robot mvil (Figura 7.4). Adems se debe tener en cuenta tambin, la instalacin de los
componentes que se encarga del control del hardware del robot.
Figura 7.4. Componentes del sistema de navegacin del robot mvil (Fuente: Elaboracin
propia)
Adems de los componentes mostrados en la Figura 7.4, se debe aadir los mdulos
que se encargan del control del hardware del robot (sensores y actuadores). Por otro lado,
en el diseo de la arquitectura de navegacin se debe tener en cuenta los procesos que
deben operar en tiempo real y los que operan fuera de lnea. En el caso de tareas de
navegacin autnoma, de ahora en adelante se va a asumir que el robot tiene a mano el
mapa de su ambiente de navegacin. En caso contrario, el procedimiento para adquirir
dichos mapas fue descrito en el Captulo 6 de la presente tesis.
Tomando en cuenta el nivel de cognicin de cada uno de los mdulos del robot, la
arquitectura de software del robot se dividi en 3 capas (Tabla 7.1). En la capa ms baja,
se encuentran los mdulos que interactan directamente con el hardware del robot. En la
capa intermedia, se encuentran los mdulos de navegacin del robot. Y en la capa
superior se encuentran los mdulos de interaccin que se encargan de definir tareas y la
interaccin con el usuario.
116
Tabla 7.1. Arquitectura del software de navegacin autnoma (Fuente: Elaboracin
propia)
Mdulos de interaccin con el usuario
(asignacin de tareas, interfaz de usuario)
Mdulos de navegacin autnoma
(localizacin, mapeo, planeamiento, control de
movimiento, evitacin de obstculos)
Mdulos de interface con el hardware
(motores, sensores)
Esta arquitectura permite que el usuario pueda definir tareas al ms alto nivel,
mediante los mdulos de interaccin con el usuario. Los otros niveles no son accesibles
al usuario, y estn controlados directamente por el robot. De esta manera, nuestro robot
puede ser usado por cualquier tipo de usuarios de manera fcil y sencilla.
Finalmente, se debe notar que las tareas de navegacin autnoma estn definida por
el siguiente proceso: Primero, el usuario, a travs de la interfaz de usuario, le asigna una
tarea al robot. Por ejemplo una tarea como ve a la oficina de posgrado de la FIEE y toma
una foto, para lo cual se le suministra al robot las coordenadas de la oficina de posgrado
y se activa el mdulo de visin. Segundo, una vez definida la tarea, el mdulo de
planeamiento se encarga de planificar el camino ms ptimo con el fin de llegar a la meta
desde la posicin actual del robot. Tercero, una vez definido el camino, el robot empieza
su proceso de navegacin, haciendo uso de sus componentes de localizacin, control de
movimiento y evitacin de obstculos. Finalmente cuando el robot completa su tarea
asignada, est listo para la ejecucin de una nueva tarea.
117
CAPTULO VIII
RESULTADOS EXPERIMENTALES
119
2
-2
y(m)
-4
-6
-8
-25 -20 -15 -10 -5 0 5 10
x(m)
Figura 8.3. Mapa del ambiente de navegacin Primera prueba (Fuente: Elaboracin
propia)
En la Figura 8.4 se muestra la trayectoria recorrida segn las estimaciones del robot.
Comparando estos resultados con el resultado del movimiento real del robot, se tiene que
el robot estuvo correctamente localizado en cualquier instante de tiempo, lo cual le
permiti llegar a los puntos de paso sin ningn problema, para finalmente llegar a la
posicin final deseada. Debe notarse, que si el robot no tendra la capacidad de
localizarse correctamente en el ambiente dado, este no sera de pasar exactamente por
los puntos de paso establecido. Si el robot no estuviese correctamente localizado este
creera estar pasando por las trayectorias deseadas, pero realmente, este estara
realizando trayectorias totalmente distintas a las esperadas (lo que en la prctica hara
que el robot se choque con puertas, paredes, etc.).
-2
y(m)
-4
-6
-8
-25 -20 -15 -10 -5 0 5 10
x(m)
Figura 8.4. Trayectoria recorrida segn el robot Primera prueba (Fuente: Elaboracin
propia)
En la Figura 8.5 se muestra el error en el control de trayectoria del robot durante todo
el proceso de navegacin. Como puede notarse este error siempre estuvo acotado con
un margen de 5cm. Este resultado garantiza el buen funcionamiento del mdulo de
control de movimiento, el cual tiene como objetivo que el robot siga la trayectoria
establecida por su mdulo de control de trayectoria.
120
0.2
0.1
CTE Error
0
-0.1
-0.2
200 400 600 800 1000 1200
Step
Finalmente, en la Figura 8.6 se muestran las velocidades de los motores del robot.
Estas velocidades fueron controladas por el mdulo de control de movimiento, y como se
observa la velocidad mxima requerida fue de aproximadamente 5 rad/s.
10
5
1
wm
-5
-10
200 400 600 800 1000 1200
10
5
2
wm
-5
-10
200 400 600 800 1000 1200
Step
Figura 8.6. Velocidades angulares (rad/s) de los motores del robot Primera prueba
(Fuente: Elaboracin propia)
Finalmente, debe sealarse que esta prueba se realiz varias veces, y en todas ellas
el robot fue capaz de realizar la tarea de navegacin establecida. De esta manera se
puede garantizar que nuestro robot es capaz de realizar tareas de navegacin autnoma
en este ambiente de navegacin, el cual tiene un nivel de ruido/incertidumbre moderado.
121
8.2 Navegacin Autnoma en el Segundo Piso de la FIM-UNI
122
Figura 8.8. Imperfecciones en el piso del ambiente de navegacin Segunda prueba
(Fuente: Elaboracin propia)
6
y(m)
50 -20 -10 0 10 20 30 40 50
x(m)
Figura 8.9. Mapa del ambiente de navegacin Segunda prueba (Fuente: Elaboracin
propia)
123
efectivamente el sistema de localizacin Monte Carlo mejorado es capaz de estimar la
configuracin del robot an bajo condiciones extremas. Si el robot hubiese estado mal
localizado no hubiese sido capaz de realizar la tarea asignada en el experimento real, y
hubiese terminado realizando una trayectoria muy distinta a la deseada.
6
y(m)
50 -20 -10 0 10 20 30 40 50
x(m)
Figura 8.10. Trayectoria recorrida segn el robot Segunda prueba (Fuente: Elaboracin
propia)
0.2
0.15
0.1
0.05
CTE Error
-0.05
-0.1
-0.15
-0.2
200 400 600 800 1000 1200 1400 1600 1800 2000
Step
124
Finalmente, en la Figura 8.12 se muestran las velocidades de los motores del robot.
Estas velocidades fueron controladas por el mdulo de control de movimiento, y como se
observa la velocidad mxima requerida fue de aproximadamente 5 rad/s.
10
5
1
wm
-5
-10
200 400 600 800 1000 1200 1400 1600 1800 2000
10
5
2
wm
-5
-10
200 400 600 800 1000 1200 1400 1600 1800 2000
Step
Figura 8.12. Velocidades angulares (rad/s) de los motores del robot Segunda prueba
(Fuente: Elaboracin propia)
Finalmente, debe sealarse que esta prueba se realiz varias veces, y en todas ellas
el robot fue capaz de realizar la tarea de navegacin establecida. De esta manera se
puede garantizar que nuestro robot es capaz de realizar tareas de navegacin autnoma
en este ambiente de navegacin, el cual tiene un nivel de ruido/incertidumbre
considerable.
8.3 Conclusiones
125
CONCLUSIONES Y RECOMENDACIONES
8. Se recomienda el uso del software de alto nivel como MATLAB, Octave, o Python en
la implementacin de algoritmos probabilsticos de navegacin autnoma. Esto
principalmente debido a gran cantidad de lneas de cdigo necesario a escribir
(nuestro software de navegacin consta de aproximadamente 16,000 lneas de
cdigo). No se recomienda el uso de otras herramientas software como LabVIEW.
127
nos permite tomar lo mejor de los dos lenguajes, es decir, la velocidad de ejecucin
en C/C++, y las herramientas de manejo de datos y visualizacin de MATLAB.
10. Implementar una versin del software de navegacin del robot usando software libre
(Linux). Es un hecho ya establecido, que el software libre es mucho ms conveniente,
robusto y eficiente en aplicaciones cientficas.
128
BIBLIOGRAFA
[1] Russell, S., Norvig, P., Artificial Intelligence: A Modern Approach. 3rd edition. New
York, Prentice Hall International, 2010.
[2] DeGroot, M. H, Schervish, M. J. Probability and Statistics. Addison Wesley 3rd
Edition, 2001.
[3] Kalman, R. E. 1960. A new approach to linear filtering and predictions problems.
Trans. ASME, Journal of Basic Engineering. 1960.
[4] L. R. Rabiner. A tutorial on hidden Markov models and selected applications in
VSHHFKUHFRJQLWLRQ. In Proceedings of the IEEE, 1989.
[5] A. Doucet. On sequential simulation-EDVHG PHWKRGV IRU %D\HVLDQ ILOWHULQJ.
Technical Report CUED/F-INFENG/TR 310, Cambridge University, Department of
Engineering, Cambridge, UK, 1998.
[6] H. F. Durrant-Whyte. An Autonomous guided vehicle for cargo handling
DSSOLFDWLRQV. International Journal of Robotics Research, 15(5), 1996.
[7] Burgard, W. A. B. Cremers, D. Fox, D. Hahnel, G. Lakemeyer, D. Schulz, W. Steiner,
and S. Thrun. Experiences with an interactive museum tour-JXLGH URERW. Artificial
Intelligence 114:3-55, 1999.
[8] Pineau, J., M. Montemerlo, N. Roy, S. Thrun, and M. Pollak. Towards robotic
DVVLVWDQWV LQ QXUVLQJ KRPHV FKDOOHQJHV DQG UHVXOWV. Robotics and Autonomous
Systems 42:271-281., 2003.
[9] J. J. Leonard and H. F. Durrant-Whyte. Directed Sonar Sensing for Mobile Robot
1DYLJDWLRQ. Kluwer Academic Publishers, Boston, MA, 1992.
[10] G. Dissanayake, P. Newman, S. Clark, H. F. Durrant-Whyte, and M. Csorba. An
experimental and theoretical investigation into simultaneous localization and map
EXLOGLQJ6/$0. Lecture Notes in Control and Information Sciences: Experimental
Robotics VI, Springer, 2000.
[11] S. Thrun, D. Fox, W. Burgard, and F. Dellaert. Robust Monte Carlo localization for
PRELOHURERWV. Artificial Intelligence, 128(1-2), 2000.
[12] S. Thrun., D. Fox, and W. Burgard. Monte Carlo localization with mixture proposal
GLVWULEXWLRQVProceedings of the AAAI National Conference on Artificial Intelligence,
AAAI, Austin, TX, 2000.
[13] W. Burgard, D. Fox, D. Hennig, and T. Schmidt. Estimating the absolute position of
a mobile robot using position probability grids. In Proc. Of the Fourteenth National
Conference on Artificial Intelligence (AAAI-96), pp. 896-901, 1996.
[14] D. Fox, W. Burgard, and S. Thrun. Active Markov localization for mobile robots.
Robotics and Autonomous Systems, 25(3-4): 195-207, 1988.
[15] N. Gordon, D. Salmond, and A. F. Smith. Novel Approach to Non Linear and Non-
*DXVVLDQ%D\HVLDQ6WDWH(VWLPDWLRQ. IEE Proceedings-F, Volume 140, pp. 107-113,
1993.
[16] B. Ripley. Stochastic Simulation. Wiley, New York, 1987.
[17] J. S. Liu and R. Chen. 6HTXHQWLDO 0RQWH &DUOR0HWKRGVIRU '\QDPLFDO 6\VWHPV.
Journal of the American Statistical Association, 1998, Volume 93, pp. 1032 -1044.
[18] Siegwart, R., Nourbakhsh, I., Scaramuzza, D., Introduction to Autonomous Mobile
Robots. 2nd edition. Cambridge, MA, MIT Press 2011.
[19] Thrun, S., Burgard, W., Fox, D., Probabilistic Robotics. Cambridge, MA, MIT Press
2005.
[20] S. Thrun. $ SUREDELOLVWLF RQOLQH PDSSLQJ DOJRULWKP IRU WHDPV RI PRELOH URERW
International Journal of Robotics Research, 20(5):335-363, 2001.
[21] A. Doucet. 2Q VHTXHQWLDO VLPXODWLRQ-based methods for Bayesian filWHULQJ.
Technical report, Signal Processing Group, Dept. of Engineering, University of
Cambridge, 1998.
[22] G. Dissanayake, H. Durrant-Whyte, and T. Bailey. A computationally efficient
solution to the simultaneous localization and map building (SLAM) problem. In
ICRA 2000 Workshop on Mobile Robot Navigation and Mapping, 2000.
[23] H. P. Moravec. 6HQVRU IXVLRQ LQ FHUWDLQW\ JULGV IRU PRELOH URERWV. AI Magazine,
pages 61-74, summer 1988.
[24] D. Hahnel, W. Burgard, D. Fox, and S, Thrun. $QHIILFLHQW)DVW6/$0DOJRULWKPIRU
generating maps of large-scale cyclic environments from raw laser range
PHDVXUHPHQWV. In Proc. of the IEEE/RSJ Int. Conf. on Intelligent Robots and
Systems (IROS), pages 206-211, Las Vegas, NV, USA, 2003.
[25] G. Grisetti, C. Stachniss, W. Burgard. ,PSURYLQJ JULG-based SLAM with Rao-
Blackwellized particle filters by DGDSWLYH SURSRVDOV DQG VHOHFWLYH UHVDPSOLQJ In
Proc. Of the IEEE Int. Conference on Robotics & Automation (ICRA), pages 2443-
2448, Barcelona, Spain, 2005.
130
[26] Latombe, J. C., Robot Motion Planning. Norwood, MA, Kluwer Academic, 1991.
[27] Nilsson, N. J., Principles of Artificial Intelligence. Tioga Publishing Company, 1980.
[28] Khatib, O., Real-Time obstacle avoidance for PDQLSXODWRUV DQG PRELOH URERWV.
International Journal of Robotics Research 5, no. 1, 1986.
[29] I. Ulrich, J. Borenstein. 9)+
/Rcal obstacle avoidance with look-ahead
YHULILFDWLRQ Proceedings of the IEEE International Conference on Robotics and
Automation, San Francisco, May, 2000.
[30] D. Fox, W. Burgard, S. Thrun. 7KH G\QDPLF ZLQGRZ DSSURDFK WR FROOLVLRQ
DYRLGDQFH. IEEE Robotics and Automation Magazine 4: 23-33, 1997.
[31] K. Ogata. Modern Control Engineering. Prentice Hall, 5th Edition, 2009.
[32] R. C. Dorf, R. Bishop. Modern Control Systems. Addison Wesley.
[33] I. Calle Flores. Modelamiento y control de sistemas fsicos usando el enfoque port-
Hamiltoniano. Tesis de pregrado. Facultad de Ingeniera Mecnica - Universidad
Nacional de Ingeniera, 2010.
[34] A. Rojas Moreno. Control no lineal multivariable Aplicaciones en tiempo real.
Editorial EDUNI, 2012.
[35] M. Montemerlo, N. Roy, S. Thrun, D. Hahnel, C. Stachniss, and J. Glover.
&$50(1 the Carnegie Mellon robot navLJDWLRQWRRONLW, 2002.
[36] A. Ng, S. Gould, M. Quigley, A. Saxena, E. Berger. 67$,5+DUGZDUHDQG6RIWZDUH
$UFKLWHFWXUH. AAAI 2007 Robotics Workshop, 2007.
[37] M. Quigley, B. Gerkey, K. Conley, J. Faust, T. Foote, J. Leibs, E. Berger, R.
Wheeler, A. Ng. 526 $Q RSHQ-VRXUFH 5RERW 2SHUDWLQJ 6\VWHP. Open-source
software workshop of the International Conference on Robotics and Automation
(ICRA), 2009.
131
APNDICE A
R2D2-00: EL ROBOT AUTNOMO
Los motores usados son del tipo continuo de 12V, los cuales tienen
incorporados encoders y cajas de reduccin (Figura A.2). Estos motores son
ideales para su aplicacin en los robots mviles, ya que tienen incorporados los
sistemas anteriormente mencionados, y adems porque sus especificaciones
tcnicas (Tabla A.1) los hace adecuados para su uso en los robos mviles.
133
Tabla A.1. Especificaciones tcnicas de los motores DC del robot R2D2-00 (Fuente:
http://www.robot-electronics.co.uk/)
Voltaje nominal 12V
Torque nominal 1.5Kg/cm
Velocidad nominal 170rpm
Corriente nominal 530mA
Velocidad sin carga 216rpm
Corriente sin carga 150mA
Potencia nominal 4.22W
Resolucin del encoder 360
El sistema electrnico del robot R2D2-00 consta de dos tarjetas. La primera tarjeta
se encarga de suministrar potencia a los motores DC (Figura A.4). Esta tarjeta
recibe la energa de las bateras del robot, y segn las seales de control enviadas
por la tarjeta de control, enva las seales PWM a los motores.
134
Figura A.4. Tarjeta de potencia de los motores DC (Fuente: Elaboracin propia)
La segunda tarjeta (Figura A.5) se encarga del control de los motores a travs
de la tarjeta de potencia de los motores DC, y de la recepcin de las seales de
control enviadas desde la laptop del Robot. El procesador principal de esta tarjeta
es un DSP TMS320F28069 de la empresa Texas Instrument, y la comunicacin con
la PC es a travs del puerto USB.
135
A.3 Sensor Laser Hokuyo URG 04LX-UG01
El principal sensor del robot R2D2-00 es un sensor laser con el cual se miden las
distancias hacia los obstculos ms cercanos. Especficamente se us el sensor
URG 04LX UG01 de la marca Hokuyo (Figura A.6)
Figura A.6. Sensor laser Hokuyo URG 04LX UG01 (Fuente: http://www.hokuyo-
aut.jp/02sensor/07scanner/urg_04lx_ug01.html)
Entre las principales caractersticas de este sensor (ver Tabla A.2) podemos
resaltar las siguientes: Requiere una fuente de alimentacin de 5V DC la cual es
proporcionada directamente por el puerto USB de la Laptop, tiene una frecuencia
de muestreo de 100mseg/scan, y tiene una resolucin de 1mm. Una lectura tpica
de este sensor se muestra en la Figura A.7.
3
y(m)
-1
-2
-6 -4 -2 0 2 4 6
x(m)
Figura A.7. Lectura tpica del sensor laser Hokuyo URG 04LX UG01 (Fuente:
Elaboracin propia)
136
Tabla A.2. Especificaciones tcnicas del sensor Hokuyo URG 04LX UG01
(Fuente: http://www.hokuyo-aut.jp/02sensor/07scanner/urg_04lx_ug01.html)
137
Figura A.8. R2D2-00: El robot autnomo (Fuente: Elaboracin propia)
138