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 , xt1 ) p ( xt1 | z1:t1 , u1:t1 )dxt1 (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 (xtm1 , wtm1 , 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.