Navegación Autónoma de un Robot Móvil usando

Anuncio
Navegación Autónoma de un Robot Móvil usando Técnicas
Probabilísticas de Localización y Mapeo basadas en Métodos Monte
Carlo Secuenciales
Iván A. Calle Flores
Universidad Nacional de Ingeniería
[email protected]

Resumen— Para que un robot pueda realizar tareas “reales”
como: transporte de objetos en una casa o industria, búsqueda y
rescate en áreas peligrosas, servicio de guía en un museo, etc.,
necesita tener capacidades de navegación autónoma. En este
trabajo, se presentan los resultados del diseño e implementación
de un robot móvil para tareas de navegación autónoma usando
técnicas probabilísticas de Localización y Mapeo basadas en
métodos Monte Carlo secuenciales. Estas técnicas, que
actualmente representan el estado del arte en la robótica móvil,
son las que le permiten a un robot estimar tanto su
configuración como el mapa de su entorno de navegación
usando la data “ruidosa” de sus sensores y actuadores. Los
resultados de la navegación autónoma de nuestro robot,
bautizado como “R2D2-00: El Robot Autónomo”, en diferentes
ambientes de la Universidad Nacional de Ingeniería, demuestran
la robustez y buen funcionamiento de nuestro sistema de
navegación autónoma. Este software de navegación autónoma,
llamado “UNI-ROS”, provee una nueva plataforma para el
desarrollo de robots autónomos.
Palabras clave– Navegación autónoma, localización, mapeo,
métodos Monte Carlo, planeamiento, control de movimiento,
R2D2-00: El Robot Autónomo, UNI-ROS.
presente en las mediciones de los sensores y actuadores. Por
este motivo, es un hecho ya comúnmente aceptado en la
comunidad de la robótica que las técnicas probabilísticas son
las más adecuadas en la formulación de algoritmos de
navegación autónoma de robots móviles [2]. De hecho en
algunos problemas (como en el mapeo) estas técnicas son las
únicas capaces de ofrecer una solución viable
(a)
(b)
Fig. 1. Ejemplos de nuevas aplicaciones robóticas. (a) Servicio de guía
en un museo. Imagen del robot Rhino, Universidad de Bonn, Alemania.
(b)Vehículos autónomos. Imagen del vehículo autónomo Stanley,
Universidad de Stanford, Estados Unidos.
I. INTRODUCTION
El problema de la navegación autónoma de robots móviles
tanto en ambientes cerrados como en exteriores ha recibido
considerable atención en los últimos años, esto debido
principalmente a la gran cantidad de posibles aplicaciones que
se le pueden dar a estos sistemas (Fig. 1). Siendo las
aplicaciones más prometedoras las tareas de asistencia al
humano como los servicios de guía en un museo, las tareas de
limpieza en una casa, etc., y las tareas como: la búsqueda y
rescate en áreas peligrosas, servicio de transporte de objetos
en industrias y hospitales, y los vehículos autónomos [1].
En estas aplicaciones, a diferencia de los sistemas
robóticos clásicos como los manipuladores robóticos, el nivel
de incertidumbre es muy alto. Esto debido principalmente a
que los entornos son altamente dinámicos (debido a la
presencia de personas, objetos inesperados, etc.), y al ruido
El autor es docente auxiliar de la Facultad de Ingeniería Mecánica,
Departamento de Ingeniería Aplicada, Universidad Nacional de Ingeniería,
Av. Túpac Amaru 210, Telf.: 481-1490, Lima, Perú (e-mail: [email protected]).
Fig. 2. El problema de localización
Para que un robot sea considerado como autónomo debe
contar con un sistema de localización el cual sea capaz de
estimar la posición y orientación del robot en un ambiente
dado (Fig. 2). Este problema de localización ha recibido
considerable atención en la comunidad robótica en las últimas
dos décadas, y como resultado se tiene una serie de
algoritmos probabilísticos capaces de resolver este problema.
Dentro de estos algoritmos, los algoritmos basados en los
métodos Monte Carlo [3] son uno de los más usados tanto
debido a su robustez como a que son capaces de trabajar con
los sensores ultrasónicos y laser, los sensores más usados en
los robots móviles.
Para que un robot sea capaz de localizarse en un ambiente
determinado este necesita tener un mapa de su entorno de
navegación (Fig. 3). En la literatura, este problema es
comúnmente referido como Localización y Mapeo
Simultaneo (simultaneous localization and mapping - SLAM)
[2], [4]. Esto porque el mapeo incluye, estimar la
configuración del robot respecto al mapa, y la construcción
del mapa usando la data ‘ruidosa’ de los sensores y la
estimación de la configuración del robot. Por mucho, este es
el problema más difícil de resolver debido a la gran dimensión
del vector de estado. Por este motivo, la aplicación de los
métodos Monte Carlo estándar en este tipo de problemas es
inaplicable debido a la dificultad de realizar el muestreo en
espacios de gran dimensión. Con el fin de superar este
inconveniente, Murphy y sus colegas [5], [6] propusieron
usar las técnicas Rao-Blackwellized con el fin de aprovechar
la ‘estructura’ del sistema bajo estudio con el fin de identificar
aquellas partes que pueden resolverse usando métodos
analíticos, y aquellas partes en las que es necesario aplicar los
métodos Monte Carlo. Recientemente Grissetti y sus colegas
[7] propusieron una manera de obtener mapas de mucha
mayor calidad, usando distribuciones propuestas de mucha
mayor precisión y usando técnicas de re-muestreo selectivas.
Esta técnica conocida como ‘gmapping’ representa el estado
del arte, y es usada por los robots más avanzados a nivel
mundial como el robot PR2 [8].
los sensores (sensor laser, encoders) y actuadores (motores
DC) de nuestro robot; y se han implementado los diversos
modelos probabilísticos del robot y sus sensores con el fin de
poder usar las diversas técnicas probabilísticas de localización
y mapeo. Adicionalmente, se han implementado un sistema de
planeamiento, basado en el algoritmo A*, y un sistema de
control de movimiento, basado en el controlador PID, con el
fin que nuestro robot pueda realizar tareas como monitoreo,
transporte de objetos, etc. Todas estos módulos han dado
lugar a nuestro software de navegación autónoma, bautizado
como UNI-ROS, el cual pretende ser una alternativa “más
fácil de usar, y con propósitos educativos” con respecto a
otros software robóticos ampliamente usados, como por
ejemplo el sistema ROS [8]. La correcta implementación de
nuestro software de navegación se ha demostrado en las
diversas pruebas experimentales desarrolladas por nuestro
robot. En estas pruebas, nuestro robot demostró sus
capacidades de navegación autónoma en diversos ambientes
de la Universidad Nacional de Ingeniería.
El trabajo presentado en este artículo se ha organizado de
la siguiente manera. En la sección II, se describen los
conceptos básicos que están presentes en cualquier algoritmo
de navegación probabilístico. En la sección III, se describe el
algoritmo de localización basado en los métodos Monte Carlo
y los resultados de su implementación. En la sección IV, se
muestra el algoritmo de mapeo conocido como ‘gmapping’ y
los resultados de su implementación. En la sección V, se
muestra el algoritmo A*, en el caso del problema de
planeamiento, y el controlador PID, en el caso del problema
de control de movimiento. En la sección VI, se muestran los
resultados experimentales de la navegación autónoma del
robot R2D2-00 en pruebas reales desarrolladas en diferentes
ambientes de la Universidad Nacional de Ingeniería.
Finalmente en la sección VII, se muestran las conclusiones y
recomendaciones.
II. MODELOS PROBABILISTICOS Y EL FILTRO DE
BAYES
Para el desarrollo de algoritmos de navegación autónoma de
un robot se requieren modelos tanto del robot como de sus
sensores. Debido al nivel de ruido/incertidumbre presente en
la navegación del robot en entornos “reales” no estructurados
y altamente dinámicos, es mucho más conveniente la
formulación de modelos probabilísticos [2].
Fig. 3. El problema del mapeo o construcción de mapas
En este trabajo se han implementado las técnicas de
localización y mapeo anteriormente mencionadas. En el caso
de la localización no solo se ha implementado el algoritmo
estándar, sino que se ha propuesto algunas mejoras con el fin
de tener un algoritmo de localización más robusto y eficiente.
También se han implementado diversas librerías para manejar
A. Modelo probabilístico de movimiento
El primer modelo está dado por la cinemática
probabilística del robot, la cual busca la descripción del
movimiento usando funciones de probabilidad. En la robótica
móvil es imposible predecir con gran precisión el movimiento
del robot debido a diversas fuentes de ruido (baches,
deslizamiento de las llantas, imprecisiones en el diseño
mecánico del robot, etc.), por lo que es más conveniente
describir el movimiento del robot usando funciones de
probabilidad. En particular, el modelo probabilístico del
movimiento de un robot está dado por la siguiente expresión:
p( xt | ut , xt 1 )
(1)
Que representa la evolución estocástica del estado debido
a las acciones de control
ut . El modelo más usado está
basado en la odometría.
B. Modelo probabilístico de las mediciones de los sensores
El segundo modelo probabilístico está dado por el modelo
de las mediciones de los sensores. A diferencia de la robótica
clásica, en las técnicas probabilísticas es necesario trabajar
con los modelos de los sensores con el fin de poder explicar
las diversas fuentes de ruido que afectan las mediciones de los
sensores. Este modelo está dado por:
p( zt | xt )
muy robustos, pueden trabajar con los sensores laser y
ultrasónicos, no presentan las restricciones de los algoritmos
basados en el filtro de Kalman, y son capaces de trabajar con
los mapas de ocupación [2].
La idea básica de los métodos Monte Carlo es trabajar
con las muestras de una variable aleatoria en vez de trabajar
directamente con la función de densidad de probabilidad de la
misma. En el problema de la localización, la variable a estimar
es la posición y orientación del robot. Este algoritmo de
localización se muestra en la Tabla 1.
Algoritmo Localizacion_MC (xt[m1] , ut , zt )
L1: for m  1: M
(2)
usado el sensor laser Hokuyo URG-04LX-UG01 el cual
tienen un alcance de 5.6 m y un precio aproximado de
1,500.00 dólares. En este tipo de sensores el modelo más
usado es el llamado ‘beam endpoint model’ [9], y es el que se
ha implementado en nuestro robot.
“ t ” a partir de la distribucion previa
p( xt 1 | z1:t 1 , u1:t 1 ) en
el instante “ t  1 ” usando la siguiente ecuacion.
p( xt | z1:t , u1:t ) 
  p ( zt | xt ) p ( xt | ut , xt1 ) p ( xt1 | z1:t1 , u1:t1 )dxt1
(3)
wt[ m ]  p( zt | xt[ m ] )
L6 :
Muestrear "x[ m ] " con probabilidad  wt[ m ]
L7 :
xt[i ]  xt[ m ]
return  xt[ m ] 
Tabla 1. Algoritmo de localización Monte Carlo
En este algoritmo, la línea 2 hace el paso de predicción
que consiste en la actualización de las muestras usando la
función de probabilidad de movimiento del robot. En la línea
3, se asigna a cada muestra un peso o factor de importancia
mediante el que se especifica que muestras son más relevantes
en base a las mediciones del sensor. Desde la línea 5 hasta la
línea 8 se hace el llamado re-muestreo que consiste en
quedarnos con las muestras que tengan mayor probabilidad.
Este último paso es importante, ya que nos permite quedamos
con las partículas más relevantes en la estimación de la
configuración del robot.
5
y(m)
y(m)
funciones de probabilidad de las mediciones, y de transicion
de estados anteriormente descritas. Los algoritmos de
localización y mapeo basado en los métodos Monte Carlo
-5
representan
una instancia del filtro de Bayes cuando se usa
0
5
10
métodos -5basados en el muestreo
[3].
x(m)
L3:
L8 : end
5
Este filtro es del tipo recursivo, y es esta propiedad la que
lo hace adecuado para una serie de tareas de estimacion de
estado en tiempo real. Debe notarse la aparicion de los
0
p( zt | xt ) y p(xt | ut , xt 1) que representan las
terminos
xt[ m ] ~ p( xt | ut , xt[m1] )
L 4 : end
L5 : for i  1: M
Que representa la dinámica probabilística de la generación
de las mediciones zt . En el caso de nuestro robot, se ha
C. Filtro de Bayes
Finalmente, en la tarea de estimación de estado, el punto
de partida de cualquier algoritmo probabilístico está dado por
el filtro de Bayes [2], el cual nos permite calcular la
distribucion sobre el estado p( xt | z1:t , u1:t ) en el instante
L2 :
0
-5
-5
0
5
10
x(m)
Fig. 4. Localización usando el método Monte Carlo (M=30)
III. LOCALIZACIÓN USANDO METODOS MONTE
CARLO
Los algoritmos de localización usando métodos Monte
Carlo recientemente se han vuelto muy populares en el campo
de la robótica, y esto es debido principalmente a que: son
Luego de haber implementado este algoritmo, en la Figura
4, se muestran los resultados de las simulaciones. En esta
figura se muestra un ambiente de navegación donde las partes
en negro representan las paredes, y las partes en blanco son
los espacios libres. La línea en rojo es la trayectoria real del
robot, y la trayectoria en azul es la trayectoria “estimada” por
el algoritmo de localización Monte Carlo (en este
experimento el número de muestras usadas fue de 30).
Tal como puede notarse, el algoritmo Monte Carlo logra
estimar con gran precisión la configuración del robot en
cualquier instante de tiempo. Con el fin de cuantificar la
precisión del algoritmo, en la Tabla 2 se muestran los errores
RMS en la estimación de la configuración del robot en 10
experimentos. De estos resultados puede concluirse que el
error en la estimación de la posición está en el orden de los 2
cm, y el error en la estimación del ángulo está en el orden de
los 0.2 rad.
[i ]
Donde la variable w
son los pesos normalizados.
Entonces, tal como se muestra en [11], la idea es hacer el
paso de re-muestreo cada vez que el tamaño efectivo de las
muestras sea menor que M / 2 . Donde M se refiere al
número de muestras. Haciendo estas adaptaciones al
algoritmo Monte Carlo estándar, se tiene el algoritmo Monte
Carlo que se muestra en la Tabla 3.
Algoritmo Localizacion_MC (xtm1 , wtm1 , ut , zt )
L1: for m  1: M
L2 :
xt[ m ] ~ p ( xt | ut , xt[m1] )
L3 :
wt[ m ]  p ( zt | xt[ m ] )  wt[m1]
Experimento
ERMS ( x)
ERMS ( y)
ERMS ( )
1
0.0138
0.0126
0.0134
L 4 : end
2
0.0182
0.0175
0.0120
3
0.0161
0.0161
0.0141
L5 : N eff  1/   wt[ m ] 
4
0.0151
0.0213
0.0131
L7 :
Ejecutar algoritmo de remuestreo
5
0.0144
0.0156
0.0134
L8 :
wt[ m ]  1
6
0.0122
0.0174
0.0133
L9 : end
7
0.0121
0.0201
0.0136
return  xtm 
8
0.0179
0.0191
0.0124
9
0.0184
0.0219
0.0122
10
0.0184
0.0254
0.0159
M
2
m 1
L6 : if N eff  M / 2
Tabla. 3. Algoritmo de localización Monte Carlo secuencial mejorado
Tabla. 2. Error RMS usando el método Monte Carlo (M=30)
El principal inconveniente del algoritmo de localización
mostrado en la Tabla 1 se refiere a la perdida de diversidad de
las muestras debido al paso de re-muestreo. Luego del remuestreo existen muchas muestras que son copias de otras
muestras, y hay la posibilidad que la muestra ‘correcta’ sea
eliminada y reemplazada por otra. Una manera de evitar este
problema es mediante la reducción de la frecuencia de
muestreo [2], pero la elección de una adecuada frecuencia no
es muy simple. Si el re-muestreo se realiza con mucha
frecuencia se puede incurrir en el problema de pérdida de
diversidad; si por el contrario, el re-muestreo se hace con
poca frecuencia, las muestras pueden caer en regiones de
poca probabilidad, y por tal representar pobremente la
distribución sobre el estado.
Experimento
ERMS ( x)
ERMS ( y)
ERMS ( )
1
0.0138
0.0145
0.0145
2
0.0162
0.0166
0.0157
3
0.0118
0.0192
0.0153
4
0.0120
0.0190
0.0150
5
0.0155
0.0171
0.0165
6
0.0166
0.0324
0.0157
7
0.0161
0.0166
0.0148
8
0.0125
0.0200
0.0159
9
0.0117
0.0180
0.0152
10
0.0142
0.0179
0.0152
Tabla. 4. Error RMS usando el método Monte Carlo mejorado (M=30)
Una manera de evaluar la calidad de las muestras respecto
a la distribución que estas aproximan es mediante el tamaño
efectivo de las muestras [10], del cual una aproximación de
esta variable está dada por la siguiente ecuación:
N eff 
1
w 
Ns
i 1
[i ] 2
(4)
Luego de haber implementado este algoritmo, en la Tabla
4 se muestran los errores RMS obtenidos en las simulaciones
usando 30 muestras. Tal como se puede ver, los errores son
similares a los obtenidos en la Tabla 2. Sin embargo la ventaja
de este algoritmo es que es más robusto al problema de la
perdida de la diversidad de muestras, y al hacer el paso de re
muestreo solo cuando es necesario, nos permite tener un
ahorro de recursos computacionales.
Tal como se mencionó en la sección I los métodos RaoBlackwellized nos permiten la aplicación de los métodos
Monte Carlo en problemas que tienen un estado de gran
dimensionalidad, como el caso del problema del mapeo. La
primera implementación de los métodos Rao-Blackwellized
aplicadas a la construcción de mapas de ocupación usando
sensores laser fue la desarrollada en [12]. Este algoritmo
permite la construcción de mapas de ocupación de buena
calidad, pero la principal dificultad es que requiere de un gran
número de muestras y recursos computacionales.
El módulo de mapeo implementado en nuestro sistema es
el desarrollado en [7], el cual es capaz de construir mapas de
alta calidad al hacer uso de distribuciones propuestas que
toman en cuenta las mediciones de los sensores laser, y al
hacer uso de un re-muestreo de tipo adaptivo. Este algoritmo,
conocido como ‘gmapping’, representa el estado del arte en
los algoritmos de mapeo basados en los métodos de
muestreo, y es el usado en el módulo de navegación del
software robótico ROS [8]. Luego de haber implementado
este sistema en las figuras 5 y 6 se muestran los resultados
obtenidos usando 5 y 10 muestras respectivamente.
Finalmente, en las figuras 7 y 8 se muestran los resultados
obtenidos al usar los métodos Rao-Blackwellized estándar
que usa como distribución propuesta a la función de densidad
de transición de estado (1). Como puede notarse, los mapas
obtenidos no pueden tomarse como los mapas de navegación,
y no pueden usarse para realizar tareas de localización. Si
bien se puede incrementar la calidad de los mapas obtenidos
usando una mayor cantidad de muestras, la principal
dificultad es la gran cantidad de recursos computacionales
que se requiere para tal fin.
5
4
3
2
1
y(m)
IV. MAPEO USANDO LOS METODOS MONTE CARLO
RAO-BLACKWELLIZED
0
-1
-2
-3
-4
5
-5
4
-5
0
5
10
x(m)
3
Fig.7. Mapeo usando el método Rao-Blackwellized estándar (M=10)
2
y(m)
1
5
0
4
-1
3
-2
2
-3
1
y(m)
-4
-5
0
-1
-5
0
5
10
-2
x(m)
Fig.5. Mapeo usando el método ‘gmapping’ (M=5)
-3
-4
-5
5
-5
4
0
5
10
x(m)
Fig.8. Mapeo usando el método Rao-Blackwellized estándar (M=30)
3
2
V. MODULOS DE PLANIFICACION Y
PLANEAMIENTO
y(m)
1
0
Con el fin que nuestro robot ‘R2D2-00’ sea capaz de
desarrollar tareas de navegación autónoma, necesita tener un
módulo de planificación de trayectorias y un módulo de
control de movimiento.
-1
-2
-3
-4
-5
-5
0
5
x(m)
Fig.6. Mapeo usando el método ‘gmapping’ (M=10)
10
A. Planeamiento usando el algoritmo A*
En el módulo de planeamiento, se escogió el algoritmo A*
debido a que es del tipo completo y optimo [13]. Es decir si
existe una solución, este algoritmo es capaz de hallar a la
misma; y la solución encontrada es la óptima en el sentido que
es la que minimiza una función de costo. Luego de haber
implementado este algoritmo, en la Figura 9 se muestra uno
de los resultados que se obtiene al usar este algoritmo usando
una heurística del tipo Manhattan.
250
200
integral,
K D es la ganancia derivativa, y T es la frecuencia
de muestreo. En el caso de nuestro robot la señal de error
e(k ) está dada por el error CTE.
Luego de realizar una adecuada sintonización de las
ganancias del sistema, se tuvieron los resultados que se
muestran en la Figura 11. Como puede observarse, el
controlador PID desarrollado hace que el robot sea capaz de
llegar a la trayectoria de referencia de manera suave y en el
menor tiempo posible.
y
150
y(m)
0.5
100
0
-0.5
50
0
1
2
3
4
5
x(m)
6
7
8
9
10
Fig. 11. Control de movimiento del robot R2D2-00
50
100
150
200
x
250
300
350
400
Fig. 9. Planificación de trayectorias
Como puede observarse la trayectoria hallada es
efectivamente la más óptima entre la posición de partida y la
posición de llegada. El tiempo de ejecución del algoritmo
para hallar esta trayectoria tiene un promedio de 3 segundos.
Este tiempo es relativamente pequeño considerando la
magnitud del entorno de navegación del robot. Nótese que
la matriz de ocupación tiene una dimensión 275  400
usando una discretización del entorno en celdas de 4 cm.
B. Control de movimiento usando el controlador PID
Con el fin que el robot siga el camino establecido por el
módulo de planeamiento se requiere un sistema de control de
movimiento que establezca las señales de control adecuadas.
Fig. 12. R2D2-00: El robot autónomo
VI. RESULTADOS EXPERIMENTALES
Fig. 10. Problema del control de movimiento de un robot móvil
Para este fin se puede usar un controlador PID con el fin
de minimizar el error CTE (Fig. 10). La versión discreta de
este controlador está dada por:
k
 e(i  1)  e(i) 
 e(k )  e(k  1)  (5)
u (k )  K P e(k )  K I  T
 KD 


2
T



i 0 
Donde e(k ) es la señal de error del sistema en el instante
k , K P es la ganancia proporcional, K I es la ganancia
Una vez implementados todos los módulos de navegación
autónoma descritos anteriormente, la tarea es combinar
adecuadamente todos estos componentes en un paquete
software de navegación autónoma. En el caso de nuestro
sistema, para la implementación de las librerías se han usado
los criterios de modularidad, flexibilidad y robustez. El
lenguaje de computación seleccionado fue MATLAB debido
a su entono amigable de programación, sus herramientas de
visualización, y a la facilidad con que se puede realizar tareas
de corrección de código ‘debugging’. Como resultado, se
tiene el sistema de navegación autónoma bautizado como
‘UNI-ROS’ (el cual consta de aproximadamente 10,000
líneas de código), el cual al estar hecho en un lenguaje de alto
nivel es fácil de usar y se puede usar con propósitos
A. Navegación autónoma en la sección de posgrado de la
FIEE-UNI.
La primera prueba de navegación autónoma se desarrolló en
la sección de posgrado de la FIEE-UNI (Fig. 13). Las
características de este ambiente es que contiene un nivel de
ruido moderado, debido a que hay pocas personas que se
desplazan en dicho ambiente, y debido a que el piso no
contiene imperfecciones considerables (baches, agujeros, etc.)
distintas a las esperadas (lo que en la práctica haría que el
robot se choque con puertas, paredes, etc.).
2
0
-2
y(m)
educativos. Este sistema es el que se encarga de la
navegación del robot ‘R2D2-00’ (Fig. 12)
-4
-6
-8
-25
-20
-15
-10
-5
0
5
10
x(m)
Fig.15. Trayectoria recorrida según el robot – Primera prueba
B. Navegación autónoma en la FIM-UNI
La segunda prueba de navegación autónoma se desarrolló en
el segundo piso de la facultad de Ingeniería Mecánica de la
UNI (Fig. 16). Este ambiente, a diferencia de la sección de
posgrado de la FIEE, tiene un nivel de ruido muy elevado,
debido a la mayor presencia de personas (estudiantes y
profesores), y debido a las múltiples imperfecciones del piso
de este ambiente. Además se debe agregar que este ambiente
es considerablemente más grande. Todas las dificultades
anteriores hacen que la navegación autónoma de cualquier
robot en este ambiente sea todo un reto.
Fig. 13. Ambiente de navegación – FIEE UNI
En la Figura 14 se muestra el mapa de ocupación de este
ambiente. Este mapa contiene el pasadizo principal, y la
sección A (en posteriores experimentos se van a considerar
todos los salones). Como puede notarse el mapa no es fiel
reflejo del ambiente de navegación real (ya que no contiene
algunos detalles presentes en el ambiente real como la mesa
ubicada en el pasadizo, y la mesa y las carpetas del salón A).
En este mapa, los puntos en rojo son los puntos de paso por
los cuales debe pasar el robot en su movimiento. El objetivo
de esta prueba es que el robot empiece en la posición (0,1)
haga el recorrido definido por los puntos en rojo, y vuelva al
punto de partida.
Fig. 16. Ambiente de navegación – FIM UNI
2
0
y(m)
-2
-4
-6
-8
-25
-20
-15
-10
-5
0
5
10
x(m)
Fig.14. Mapa del ambiente de navegación – Primera prueba
En la Figura 15 se muestra la trayectoria recorrida según
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
ningún problema, para finalmente llegar a la posición final
deseada. Debe notarse, que si el robot no tendría la capacidad
de localizarse “correctamente” en el ambiente dado, este no
sería de pasar exactamente por los puntos de paso
establecido. Si el robot no estuviese correctamente localizado
este creería estar pasando por las trayectorias deseadas, pero
realmente, este estaría realizando trayectorias totalmente
Fig. 17. Imperfecciones en el piso del ambiente de navegación – Segunda
prueba
Respecto a las imperfecciones del piso de este ambiente,
en la Figura 17 se muestran los casos más relevantes
encontrados en el desarrollo del presente experimento. La
primera imperfección se refiere a la presencia de un agujero
de una profundidad considerable; y la segunda se refiere a la
presencia de un canal a lo largo del pasadizo. Ambas
imperfecciones representa una fuente de ruido “considerable”
en el movimiento del robot. Debe notarse que estas
imperfecciones son imposibles de modelar usando un modelo
del tipo determinístico de movimiento del robot.
En la Figura 18 se muestra el mapa de ocupación de este
ambiente. Al igual que en el caso del mapa de la sección de
posgrado, este mapa no contiene la presencia de algunos
detalles como (basureros, casilleros, etc.). En este mapa, los
puntos en rojo son los puntos de paso por los cuales debe
pasar el robot en su movimiento. El objetivo de esta prueba es
que el robot empiece en la posición (0,0) haga el recorrido
definido por los puntos en rojo, y termine en la posición (8,1).
AGRADECIMIENTOS
El autor desea agradecer al INIFIM-UNI por todo el
apoyo recibido durante el desarrollo del robot R2D2-00.
8
6
y(m)
Finalmente debe mencionarse que nuestro sistema de
navegación autónoma ‘robot R2D2-00 + software UNI-ROS’
puede ser usado por estudiantes e investigadores debido al
bajo costo de nuestro robot (aproximadamente 2,500.00
USD), y a que nuestro software de navegación (hecho
íntegramente en MATLAB) es: amigable al usuario, fácil de
usar, y puede ser expandido con otros módulos adicionales
(visión, audio, etc.)
4
REFERENCES
2
[1]
0
40
50
-20
-10
0
10
20
30
40
50
Fig.18. Mapa del ambiente de x(m)
navegación – Segunda prueba
[2]
[3]
En la figura 19 se muestra la trayectoria recorrida según la
estimación del robot. Comparando estos resultados con el
recorrido real del robot, se puede comprobar que
efectivamente el sistema de localización Monte Carlo
mejorado es capaz de estimar la configuración del robot aún
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.
[4]
[5]
[6]
[7]
8
6
[8]
y(m)
40
4
2
[9]
0
50
-20
-10
0
10
20
30
40
50
x(m) el robot – Segunda prueba
Fig. 19. Trayectoria recorrida según
VII. CONCLUSIONES
En el presente trabajo se implementó un robot móvil
diseñado para realizar tareas de navegación autónoma en
entornos reales. Este robot, bautizado como “R2D2-00: El
Robot Autónomo” al contar con un sistema de localización
basado en el método Monte Carlo es capaz de estimar su
configuración en cualquier instante de tiempo usando la data
“ruidosa” de sus sensores. Y al contar con un sistema de
mapeo, basado en el algoritmo ‘gmapping’, es capaz de
construir mapas de alta calidad de cualquier ambiente de
navegación en interiores. Además, al contar con un módulo
de planeamiento, basado en el algoritmo A*, y módulo de
control de movimiento, basado en el controlador PID, es
capaz de desarrollar tareas de navegación autónoma como:
limpieza, monitoreo, transporte de objetos, etc. En futuros
trabajos se describirá el desempeño de nuestro robot en la
realización de dichas tareas.
[10]
[11]
[12]
[13]
R. Siegwart, I. R. Nourbakhsh, D. Scaramuzza, Introduction to
Autonomous Mobile Robots. 2nd edition. Cambridge, MA, MIT Press
2011.
S. Thrun, W. Burgard, D. Fox, Probabilistic Robotics. Cambridge,
MA, MIT Press 2005.
S. Thrun, D. Fox, W. Burgard, and F. Dellaert. Robust Monte Carlo
Localization for mobile robots. Artificial Intelligence, 128(1-2), 2000.
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.
A. Doucet, J.F.G. de Freitas, K. Murphy and S. Russell. RaoBlackwellised particle filtering for dynamic Bayesian networks. In
Proc. Of the Conference on Uncertainty in Artificial Intelligence
(UAI), 2000.
K. Murphy. Bayesian map learning in dynamic environments. In Neural
Info. Proc. Systems (NIPS), 1999.
G. Grisetti, C. Stachniss, and W. Burgard. Improving grid-based slam
with Rao-Backwellized particle filters by adaptive proposals and
selective resampling. In Proc. Of the IEEE Int. Conference on Robotics
& Automation (ICRA), pages 2443-2448, Barcelona, Spain, 2005.
M. Quigley, B. Gerkey, K. Conley, J. Faust, T. Foote, J. Leibs, E.
Berger, R. Wheeler, A. Ng. “ROS: An open-source Robot Operating
System”. Open-source software workshop of the International
Conference on Robotics and Automation (ICRA), 2009.
S. Thrun. A probabilistic online mapping algorithm for teams of mobile
robots. International Journal of Robotics Research, 20(5):335-363,
2001.
J. S. Liu and R. Chen. Sequential Monte Carlo Methods for Dynamical
Systems. Journal of the American Statistical Association, 1998,
Volume 93, pp. 1032 -1044.
A. Doucet. On sequential simulation-based methods for Bayesian
filtering. Technical Report CUED/F-INFENG/TR 310, Cambridge
University, Department of Engineering, Cambridge, UK, 1998.
D. Hahnel, W. Burgard, D. Fox, and S. Thrun. An efficient FastSLAM
algorithm for generating maps of large-scale cyclic environments from
raw laser range measurements. In Proc. of the IEEE/RSJ int. Conf. on
Intelligent Robots and Systems (IROS), pages 206-211, Las Vegas,
NV, USA, 2003.
S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach. 3rd
edition. New York, Prentice Hall International, 2010.
Descargar