UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE INGENIERÍA ELÉCTRICA GENERACIÓN DE MAPA DE ENTORNO PARA NAVEGACIÓN DE VEHÍCULO TERRESTRE AUTÓNOMO TESIS PARA OPTAR AL GRADO DE DOCTOR EN INGENIERÍA ELÉCTRICA SEBASTIÁN ISAO PARRA TSUNEKAWA PROFESOR GUÍA: JAVIER RUIZ DEL SOLAR SAN MARTÍN MIEMBROS DE LA COMISIÓN: MARCOS ORCHARD CONCHA MIGUEL TORRES TORRITI PEDRO NÚÑEZ TRUJILLO SANTIAGO DE CHILE 2014 RESUMEN DE LA TESIS PARA OPTAR AL GRADO DE DOCTOR EN INGENIERÍA ELÉCTRICA POR: SEBASTIÁN ISAO PARRA TSUNEKAWA. FECHA: PROF. GUÍA: SR. JAVIER RUIZ DEL SOLAR GENERACIÓN DE MAPA DE ENTORNO PARA NAVEGACIÓN DE VEHÍCULO TERRESTRE AUTÓNOMO En la actualidad los sistemas de navegación autónoma de vehı́culos terrestres ya son una realidad. Estos sistemas son capaces de navegar de manera autónoma por caminos tanto estructurados como no estructurados. Para la adecuada interacción de estos sistemas autónomos con su entorno, la información perceptual debe ser integrada en un mapa para su posterior utilización. Esta integración puede tener distintos enfoques y representaciones dependiendo del origen de la información y del uso dado. Los sistemas autónomos de navegación han tenido éxito desde el punto de vista técnico gracias, entre otras cosas, a los sensores empleados; los cuales frecuentemente incluyen sensores LIDAR tridimensionales. Sin embargo, el uso de estos mismos sensores impiden su masificación debido a su alto costo. Este costo elevado se debe a que la gran mayorı́a de ellos son dispositivos de uso industrial y no tienen aplicaciones automotrices o de consumo masivo. Dentro de este ámbito, el Centro Avanzado de Tecnologı́a para la Minerı́a (AMTC) está desarrollando un vehı́culo autónomo terrestre para ser utilizado como plataforma de desarrollo para tecnologı́a en la industria minera. Se busca generar un sistema que se pueda portar a la industria. Con este fin, este proyecto plantea el uso de un número limitado de sensores y unidades de computo. Este trabajo de tesis se enmarca dentro del proyecto de vehı́culo autónomo del AMTC. Esta tesis propone que un conjunto reducido de sensores de rango bidimensionales es suficiente para la generación de mapas de entorno en tiempo real, que puedan ser utilizados para la navegación autónoma de un vehı́culo terrestre. Se postula que las variaciones en la pose de los sensores de rango utilizados para construir los mapas de entorno, causadas por las vibraciones del vehı́culo debido a su naturaleza no-rı́gida y a las irregularidades del terreno, pueden ser estimadas y compensadas utilizando una unidad inercial y un sistema de estimación del estado del vehı́culo basado en el uso de un Filtro de Kalman Extendido. Este estimador de estado puede enriquecer su estimación mediante el uso de sensores internos del vehı́culo y de estimaciones de la morfologı́a del terreno realizadas en instantes anteriores. Se postula asimismo que la fusión temporal de las mediciones de los sensores de rango, compensadas por el sistema de estimación de pose, puede ser implementada usando Filtros de Kalman por celda. También es propuesta una metodologı́a de evaluación que asume la carencia de un ground truth contra el cual comparar. Debido a lo ligado de la estimación del vehı́culo con el mapa de entorno, una observación LIDAR inmediata al vehı́culo es comparada con la morfologı́a acumulada en el mapa permitiendo evaluar la estimación del trayecto recorrido y la integración de las observaciones simultáneamente. El sistema propuesto es evaluado en caminos no pavimentados a diferentes velocidades, mostrando un mejor desempeño tanto cuantitativo como cualitativo al ser comparado con el caso en que no se usa el estimador de estado propuesto. Además es analizado el desempeño del estimador de estado y sus variantes a nivel de trayectorias, comparándolo con las trayectorias de las observaciones GPS. Para todo lo anterior se implementa sobre una arquitectura de software versátil y adaptable a diferentes fuentes de información. Agradecimientos A mi familia por su apoyo constante e incondicional, que hizo posible llegar a estas instancias. Sin ellos esto no hubiese sido posible. A Carmen por acompañarme desde la parte final de este proceso, alegrándome cada dı́a y dándome ánimos para seguir adelante. A Tera y Atto por acompañarme y alegrarme en los momentos más difı́ciles. Al profesor Javier Ruiz del Solar por guiarme en esta tesis y todo su apoyo durante este tiempo. A los profesores Marcos Orchard, Miguel Torres y Pedro Núñez por sus correcciones que permitieron terminar este documento. A Rodrigo Asenjo por todos estos años llenos discusiones sobre temas tecnológicos, y en especial por sus constructivas correcciones sobre el idioma español. A Paul Vallejos por sus constructivas conversaciones que siempre deben llegar a un veredicto final, y ası́ aprender cosas nuevas. A Eliana Monardes y Renée Kellinghusen por toda la ayuda y preocupación durante todos estos años, en especial a sus constantes recordatorios. A Rafael Rodrı́guez como amigo, compañero de carrera y doctorado, con quien nunca una conversación es considerada demasiado nerd. A Pepe Inostroza y Patricio Escobedo por sus conversaciones completamente no relacionadas con la Universidad. A Mauricio Correa, Mauricio Mascaró, Fernando Bernuy y Daniel Herrmann que también estuvieron involucrados en partes del proyecto del vehı́culo, y también como miembros de los laboratorios de Robótica y de Robótica de Campo. Agradecido de haber podido participar por tantos años de los ramos SD20A y EI2001, gracias a sus alumnos logré cultivar la paciencia necesaria para la vida y me permitieron recobrar la capacidad de asombro. A muchas otras personas que también influyeron en este trabajo pero no alcanzan a ser nombradas. A la administración de la Laguna Carén y del Parque O’Higgins por permitir realizar pruebas del vehı́culo en sus instalaciones. Finalmente, agradezco a CONICYT que a través de su programa Becas para Estudios de Doctorado en Chile y al Centro Avanzado de Tecnologı́a para la Minerı́a (Proyecto CONICYT FB009) por el financiamiento para la realización de esta tesis. En especial al AMTC que gracias a su infraestructura fue posible realizar este trabajo. Tabla de contenido 1. Introducción 1.1. Antecedentes . . . . . . . . . . . . . . . 1.1.1. Fundamentación general . . . . . 1.1.2. Definición del problema a abordar 1.2. Objetivos . . . . . . . . . . . . . . . . . 1.3. Hipótesis . . . . . . . . . . . . . . . . . . 1.4. Metodologı́a . . . . . . . . . . . . . . . . 1.5. Aportes del trabajo de tesis . . . . . . . 1.6. Estructura de este documento . . . . . . . . . . . . . . 1 2 2 2 3 3 3 4 4 2. Revisión bibliográfica 2.1. Vehı́culos autónomos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Software en Robótica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Sistemas de estimación de mapas de entorno . . . . . . . . . . . . . . . . . . 5 6 8 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. Marco teórico 3.1. Arquitecturas de software y modalidades de comunicaciones 3.1.1. Medios de comunicación entre procesos . . . . . . . . 3.1.2. Arquitecturas de IPC . . . . . . . . . . . . . . . . . . 3.2. Middlewares . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. ROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4. Mapas para la robótica . . . . . . . . . . . . . . . . . . . . . 3.4.1. Tipos de mapas . . . . . . . . . . . . . . . . . . . . . 3.5. Principio de funcionamiento de un LIDAR . . . . . . . . . . 4. Vehı́culo Autónomo AMTC 4.1. Vehı́culo . . . . . . . . . . . . . . . . . . . . . . . 4.1.1. Descripción de modificaciones del vehı́culo 4.2. Hardware y Software . . . . . . . . . . . . . . . . 4.2.1. Computador . . . . . . . . . . . . . . . . . 4.2.2. Sensores . . . . . . . . . . . . . . . . . . . iii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 13 14 16 18 19 20 21 22 . . . . . 25 26 27 30 30 31 4.3. Discusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. Metodologı́a de mapeo del terreno en tiempo 5.1. Observaciones . . . . . . . . . . . . . . . . . . 5.1.1. Pipeline de las observaciones . . . . . . 5.1.2. Extracción de caracterı́sticas . . . . . . 5.2. Modelo cinemático del vehı́culo . . . . . . . . 5.3. Estimación del estado del vehı́culo . . . . . . . 5.3.1. Estimación directa . . . . . . . . . . . 5.3.2. Estimación mediante EKF . . . . . . . 5.4. Proyección espacial de observaciones . . . . . 5.5. Fusión de Observaciones en mapa del terreno . 5.5.1. Nubes de puntos . . . . . . . . . . . . 5.5.2. Mapas de grilla . . . . . . . . . . . . . 6. Resultados 6.1. Datos de evaluación . . . . . . . . . . . . . 6.2. Evaluación de métodos SLAM . . . . . . . 6.3. Trayectorias . . . . . . . . . . . . . . . . . 6.3.1. Trayectoria GPS . . . . . . . . . . 6.3.2. Trayectoria de Odometrı́a . . . . . 6.3.3. Trayectoria de Estimación Directa . 6.3.4. Trayectoria de Estimación EKF . . 6.4. Estado y Superficie . . . . . . . . . . . . . 6.4.1. Configuración del montaje . . . . . 6.4.2. RMSE como métrica de evaluación 6.4.3. Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7. Conclusiones 7.1. Comunicaciones y Middleware . . . . . . . . . . . 7.2. Caracterı́sticas de los sensores . . . . . . . . . . . 7.3. Diseño e implementación del estimador de estado 7.4. Mapa de entorno . . . . . . . . . . . . . . . . . . 7.5. Aportes del trabajo de tesis . . . . . . . . . . . . 7.6. Trabajo futuro . . . . . . . . . . . . . . . . . . . . Bibliografı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 . . . . . . . . . . . 36 37 37 39 43 46 46 48 52 53 54 54 . . . . . . . . . . . 57 58 60 62 62 62 70 77 87 87 87 88 . . . . . . 95 96 96 96 97 97 98 99 A. Cálculo de la esperanza del mı́nimo RMSE 104 B. ROSBAGs 106 iv C. Paper 116 v Lista de figuras 2.1. 2.2. 2.3. 2.4. 2.5. Sandstorm de Carnegie Mellon University . Stanley de Stanford Racing Team . . . . . . Boss de Carnegie Mellon University . . . . . Google driverless car . . . . . . . . . . . . . Diagrama de flujo del sistema de software de . . . . . . . . . . . . . . . . . . . . Stanley . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 7 7 8 3.1. 3.2. 3.3. 3.4. Arquitectura de servidor central . . . . . Arquitectura peer-to-peer . . . . . . . . . Arquitectura Broadcast . . . . . . . . . . Descripción de ecos en una emisión láser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 17 18 23 4.1. 4.2. 4.3. 4.4. Vehı́culo Autónomo del AMTC . . . . . . . . . . Intervención en el maletero . . . . . . . . . . . . . Intervención en la ventana del maletero . . . . . . Botón de emergencia montado en el parachoques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 28 29 29 5.1. Flujo de datos de lo observaciones . . . . . . . . . . . . . . . . . . . 5.2. Ejemplo de calibración una cámara mediante un chessboard . . . . . 5.3. Visualización gráfica de la condición de Ackermann . . . . . . . . . 5.4. Modelo equivalente de bicicleta . . . . . . . . . . . . . . . . . . . . 5.5. Datos experimentales para la estimación de γ . . . . . . . . . . . . 5.6. Regresión y linealización para cálculo de γ . . . . . . . . . . . . . . 5.7. Aproximación de trayectoria en caso del estado directo . . . . . . . 5.8. Aproximación de trayectoria por arcos de cı́rculos . . . . . . . . . . 5.9. Estimación de Pitch y Roll proveniente de las alturas de las ruedas 5.10. Ejemplo de nube de puntos de sensor láser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 40 43 44 45 46 47 50 53 54 6.1. 6.2. 6.3. 6.4. . . . . . . . . . . . . . . . caminos . . . . . 59 60 60 . . . . . . . . . . . . Ejemplo de observaciones en plano XY de los sensores láser . . . . Recorrido de set de datos sobre camino de tierra . . . . . . . . . . . Ejemplo de imágenes del recorrido del camino de tierra . . . . . . . Histograma de velocidades por porcentaje de distancia recorrida en de tierra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi 61 6.5. 6.6. 6.7. 6.8. 6.9. Comparativa de la trayectoria GPS y Odometrı́a en grabación 7 . . . . . . . Comparativa de la trayectoria GPS y Odometrı́a en grabación 8 . . . . . . . Comparativa de la trayectoria GPS y Odometrı́a en grabación 9 . . . . . . . Comparativa de la trayectoria GPS y Odometrı́a en grabación 5 . . . . . . . Diferencia de posición y rumbo entre trayectorias GPS y Odometrı́a en grabación 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.10. Diferencia de posición y rumbo entre trayectorias GPS y Odometrı́a en grabación 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.11. Diferencia de posición y rumbo entre trayectorias GPS y Odometrı́a en grabación 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.12. Diferencia de posición y rumbo entre trayectorias GPS y Odometrı́a en grabación 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.13. Comparativa de la trayectoria GPS y Odometrı́a en grabación 1 . . . . . . . 6.14. Comparativa de la trayectoria GPS y Estimación Directa en grabación 7 . . 6.15. Comparativa de la trayectoria GPS y Estimación Directa en grabación 8 . . 6.16. Comparativa de la trayectoria GPS y Estimación Directa en grabación 9 . . 6.17. Comparativa de la trayectoria GPS y Estimación Directa en grabación 5 . . 6.18. Diferencia de posición y rumbo entre trayectorias GPS y Estimación Directa en grabación 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.19. Diferencia de posición y rumbo entre trayectorias GPS y Estimación Directa en grabación 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.20. Diferencia de posición y rumbo entre trayectorias GPS y Estimación Directa en grabación 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.21. Diferencia de posición y rumbo entre trayectorias GPS y Estimación Directa en grabación 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.22. Comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.23. Comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24. Comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.25. Comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.26. Detalle del punto final de la comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 7 . . . . . . . . . . . . . . . 6.27. Detalle del punto final de la comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 8 . . . . . . . . . . . . . . . 6.28. Detalle del punto final de la comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 9 . . . . . . . . . . . . . . . vii 63 64 65 66 66 67 67 68 69 71 72 73 74 74 75 75 76 78 79 80 81 82 83 84 6.29. Detalle del punto final de la comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 5 . . . . . . . . . . . . . . . 6.30. Diferencia de posición y rumbo entre trayectorias GPS y Estimación EKF con variación de parámetro γ en grabación 7. . . . . . . . . . . . . . . . . . . . . 6.31. Diferencia de posición y rumbo entre trayectorias GPS y Estimación EKF con variación de parámetro γ en grabación 8. . . . . . . . . . . . . . . . . . . . . 6.32. Diferencia de posición y rumbo entre trayectorias GPS y Estimación EKF con variación de parámetro γ en grabación 9. . . . . . . . . . . . . . . . . . . . . 6.33. Diferencia de posición y rumbo entre trayectorias GPS y Estimación EKF con variación de parámetro γ en grabación 5. . . . . . . . . . . . . . . . . . . . . 6.34. Comparación de la modificación de la descripción del robot durante las tomas de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.35. Diagrama del cálculo del RMSE . . . . . . . . . . . . . . . . . . . . . . . . . 6.36. Histograma de rapidez del vehı́culo en grabaciones 1-2 . . . . . . . . . . . . . 6.37. Medida ROC de grabaciones 1-2 . . . . . . . . . . . . . . . . . . . . . . . . . 6.38. Histograma de rapidez del vehı́culo en grabaciones 3-6 . . . . . . . . . . . . . 6.39. Medida ROC de grabaciones 3-6 . . . . . . . . . . . . . . . . . . . . . . . . . 6.40. Diagrama de secciones del RMSE . . . . . . . . . . . . . . . . . . . . . . . . 6.41. Gráfico RMSE por secciones y RMSE mı́nimo esperable . . . . . . . . . . . . 6.42. Imagen frontal y vista superior mapa de elevación . . . . . . . . . . . . . . . 6.43. Imagen frontal y vista superior mapa de elevación con coloración RGB . . . 6.44. Imagen frontal y vista superior mapa de elevación con coloración RGB de una superficie no observada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii 84 85 85 86 86 87 88 90 90 90 91 92 92 93 93 94 Lista de tablas 3.1. Valores de reflectividad 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. 4.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Especificaciones fı́sica del vehı́culo . . . . . . . . . . Especificaciones técnicas del computador ARK3440 Especificaciones técnicas SICK LMS291-S05 . . . . Especificaciones técnicas SICK LMS151-10100 . . . Especificaciones técnicas SICK LD-MRS HD . . . . Especificaciones técnicas Crossbow NAV440 . . . . Especificaciones técnicas Delphi ESR . . . . . . . . Comparativa entre cámaras . . . . . . . . . . . . . . . . . . . . . 27 31 31 32 32 33 34 34 6.1. Caracterı́sticas de grabaciones en camino de tierra y en pavimento . . . . . . 6.2. Resultados de medidas de grabaciones 1-2 . . . . . . . . . . . . . . . . . . . 6.3. Resultados de medidas de grabaciones 3-6 . . . . . . . . . . . . . . . . . . . 60 89 91 ix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Capı́tulo 1 Introducción Índice 1.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.1. Fundamentación general . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.2. Definición del problema a abordar . . . . . . . . . . . . . . . . . . 2 1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3. Hipótesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4. Metodologı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.5. Aportes del trabajo de tesis . . . . . . . . . . . . . . . . . . . . . . 4 1.6. Estructura de este documento . . . . . . . . . . . . . . . . . . . . . 4 1.1. 1.1.1. Antecedentes Fundamentación general En la actualidad, los sistemas de navegación para vehı́culos terrestres son una realidad [43] [47] [5] [54]. Estos sistemas son capaces de navegar de manera autónoma caminos tanto estructurados como no estructurados. Estos avances han permitido que la investigación de sistemas autónomos terrestres obtenga relevancia y estos se han vuelvo conocidos por la sociedad. Los sistemas autónomos de navegación actuales han tenido éxito desde el punto de vista técnico gracias entre otras cosas a los sensores empleados. Pero la gran mayorı́a de los sistemas autónomos tienen una dependencia alta del sistema de localización GPS. Esto acota en gran medida el desempeño en zonas donde la calidad del servicio es baja o simplemente no esta disponible. Además estos sensores utilizados impiden su masificación debido a su alto costo. Este costo elevado viene de que la gran mayorı́a de ellos son dispositivos industriales y no de enfoque automotriz o de consumo masivo. Mientras la fabricación de estos dispositivos no se masifique y no bajen sus precios, es necesario explorar otros enfoques de navegación autónoma. Este trabajo tesis plantea el diseño e implementación de un sistema de percepción para ser usado en un vehı́culo autónomo terrestre. Este vehı́culo es parte de un proyecto de investigación y desarrollo del Centro Avanzado de Tecnologı́a para la Minerı́a (AMTC) de la Universidad de Chile. El proyecto vehı́culo autónomo AMTC busca la implementación de un vehı́culo autónomo terrestre como plataforma de desarrollo de tecnologı́as aplicables a la industria minera. Como se busca desarrollar un vehı́culo acorde a los ambientes presentes en la industria minera, una de las restricciones planteadas es la no dependencia del un sistema GPS. Otra restricción planteada es el uso de recursos de computo y sensoriales limitados, de manera de generar un sistema utilizable en la industria. 1.1.2. Definición del problema a abordar En los actuales sistemas de navegación de vehı́culos terrestres autónomos, la información perceptual utilizada en estos suele cubrir todo el entorno del vehı́culo a cada momento. Para esto, un gran número de sensores, o bien sensores de elevado costo, son requeridos, ası́ como una gran capacidad de cómputo para el elevado nivel de información. Esto eleva el costo de un sistema autónomo de manera considerable y no permite la comercialización de proyectos como el vehı́culo de Google [54]. Mientras no se desarrollen sistemas autónomos de menor costo estos no podrán masificarse.w Una manera de disminuir el costo de un sistema autónomo es la utilización de un número reducido de sensores y aprovechar al máximo la información entregada de estos. El problema que se aborda en el trabajo de tesis es proponer un sistema de percepción y de fusión capaz de generar una representación del entorno que permita la navegación de un vehı́culo terrestre, teniendo en consideración un número reducido de sensores y campo perceptual acotado. 2 1.2. Objetivos El objetivo general de esta tesis es la generación de un mapa de entorno local que le permita a un vehı́culo terrestre navegar de manera segura. Se propone para ello un estimador de estado basado en un filtro de Kalman extendido, que en conjunto con una estructura de mapa de grilla que fusiona observaciones usando un enfoque de filtrado tipo Kalman unidimensional generan un mapa de entorno local utilizable para planificación de trayectorias. Debido a la necesidad de funcionamiento en tiempo real, la complejidad del sistema debe mantenerse acotada. Debido al reducido número de sensores utilizados, las fuentes de información perceptual son analizadas para extraer la máxima información aprovechable, transformándolas en información útil. Para ello se propone un esquema en que la información sensorial es “mejorada” al extraer diversas caracterı́sticas que son asociadas a su posición espacial, que en una etapa posterior podrı́a no ser extraı́ble directamente. Todo esto en el contexto de una arquitectura de software que sea versátil y adaptable a diversas configuraciones. 1.3. Hipótesis Como hipótesis general de este trabajo se postula que un conjunto reducido de sensores de rango bidimensionales es suficiente para la generación de mapas de entorno en tiempo real, que puedan ser utilizados para la navegación autónoma de un vehı́culo terrestre. Como hipótesis especı́fica se postula que las variaciones en la pose de los sensores de rango utilizados para construir los mapas de entorno, causadas por las vibraciones del vehı́culo debido a su naturaleza no-rı́gida y a las irregularidades del terreno, pueden ser estimadas y compensadas utilizando una unidad inercial y un sistema de estimación del estado del vehı́culo basado en el uso de un Filtro de Kalman Extendido. Este estimador de estado puede enriquecer su estimación mediante el uso de sensores internos del vehı́culo y de estimaciones de la morfologı́a del terreno realizadas en instantes anteriores. Se postula asimismo que la fusión temporal de las mediciones de los sensores de rango, compensadas por el sistema de estimación de pose, puede ser implementada usando Filtros de Kalman por celda. 1.4. Metodologı́a Se propone la siguiente metodologı́a de trabajo para la generación de un mapa de entorno para navegación de un vehı́culo terrestre: 1. Analizar las caracterı́sticas de los sensores disponibles y definir su utilización. 2. Determinar los requerimientos de comunicación entre los procesos y definir el uso de middleware. 3. Implementación y puesta en marcha de los sistemas de adquisición de sensores. 4. Diseño e implementación de un estimador del estado del vehı́culo, que permita realizar la integración de las observaciones en el tiempo. 5. Diseñar e implementar un mapa de entorno apto para la integración de las observaciones de los sensores de distancia. 3 El resultado de esta metodologı́a llevará a la generación en tiempo real de un mapa de entorno apto para navegación de vehı́culos dentro las restricciones planteadas. Además este enfoque es replicable y escalable a los recursos disponibles en otras aplicaciones, como tipo de plataforma móvil, conjunto de sensores disponibles y recursos de computacionales disponibles. 1.5. Aportes del trabajo de tesis Se diseña la estructura de un sistema perceptual que posee un enfoque escalable en número de sensores y que permite el cómputo distribuido, que es una caracterı́stica muy deseable en un sistema de tiempo real para navegación de vehı́culos. Para la estimación del estado del vehı́culo, la metodologı́a propuesta asume una pose no rı́gida para el sensor ası́ como del mecanismo de suspensión del vehı́culo. Por lo tanto el ruido asociado a la vibración del vehı́culo y a la pose del sensor es considerada explı́citamente. El nivel de vibraciones es estimado en tiempo real usando mediciones del sensor inercial. Un filtro extendido de Kalman es utilizado para la estimación del estado. El estado es relevante en una vecindad al vehı́culo y no de manera global. Esto difiere con otras aplicaciones tradicionales en las cuales existe una alta disponibilidad de sistema GPS. Se diseña un sistema de estimación del entorno donde el ruido asociado a las vibraciones son consideradas al momento de integrar las observaciones al mapa. Esto permite fusionar observaciones provenientes de distintos sensores en diferentes instantes de tiempo, diferenciándose del enfoque tradicional donde solo se fusiona basado en las caracterı́sticas del sensor. Esto también es utilizado en la estimación de la pose del vehı́culo. 1.6. Estructura de este documento La tesis está estructurada de la siguiente manera: En el Capı́tulo 2 se presenta una revisión bibliográfica sobre vehı́culos autónomos, software en proyectos de robótica y sistemas similares al propuesto por esta tesis. El Capı́tulo 3 describe el marco teórico sobre el cual se basa la tesis. El Capı́tulo 4 describe al vehı́culo autónomo del AMTC, ası́ como las modificaciones realizadas y dispositivos instalados. El Capı́tulo 5 presenta la metodologı́a propuesta para la generación de un mapa de entorno. El Capı́tulo 6 presenta las pruebas y evaluación realizadas a los sistemas propuestos en el Capı́tulo 5. Finalmente el Capı́tulo 7 presenta conclusiones, discusiones y el trabajo futuro. 4 Capı́tulo 2 Revisión bibliográfica Índice 2.1. Vehı́culos autónomos . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2. Software en Robótica . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3. Sistemas de estimación de mapas de entorno . . . . . . . . . . . . 9 2.1. Vehı́culos autónomos Figura 2.1: Vehı́culo con la participación en DARPA Grand Challenge 2004, Sandstorm de Carnegie Mellon University, 2004 Desde los inicios de la robótica, los robots móviles terrestres han estado presentes por ser una de las formas más naturales y simples de desplazamiento. Estos pueden usar variados principios para desplazarse por el terreno, siendo las ruedas uno de los medios más comunes. Tradicionalmente estos robots terrestres son máquinas creadas especı́ficamente para ser robots y no para otros fines. Históricamente, se ha tratado de convertir máquinas de manufactura masiva en robots. Para el caso de los automóviles, el primer intento se remontan al año 1925 con el primer automóvil tele-operado [44]. Otro de los intentos más conocidos, y uno de los proyectos más grandes corresponde al proyecto Eureka Prometheus a [55] en el año 1987 que buscaba implementar vehı́culos autónomos, logrando en 1995 un viaje de 1600[Km] por la Autobahn alemana. Figura 2.2: Ganador DARPA Grand Challenge,Stanley de Stanford Racing Team, 2005 Un gran auge en el interés de este tipo de robots se observa desde la competencia impulsada por DARPAb en el año 2004. Esta competencia, DARPA Grand Challenge [7], buscaba que los participantes siguiesen una ruta de 240[Km] por el desierto de Mojave en Estados Unidos de manera autónoma por caminos de tierra. En esa ocasión ningún concursante a PROgraMme b Defense for a European Traffic of Highest Efficiency and Unprecedented Safety, 1987-1995 Advanced Research Projects Agency 6 logró llegar a la meta, siendo Sandstorm de Carnegie Mellon University [48](ver Figura 2.1), el vehı́culo que logró recorrer la mayor distancia, completando 11,78[km] del recorrido(4,9 % del recorrido total) antes de chocar contra una roca. Al año siguiente, el DARPA Grand Challenge [4] se llevó acabo nuevamente y en esta ocasión cinco equipos completaron el recorrido de 228[Km], siendo Stanley [43] de Stanford Racing Team (ver Figura 2.2) el ganador completando la ruta en 6 horas 53 minutos 58 segundos. En el año 2007, la competencia cambió de enfoque, buscando un reto mayor, y pasó a llamarse DARPA Urban Challenge [5]. Esta nueva competencia buscaba la interacción directa entre los competidores en un ambiente urbano en el que tendrı́an que obedecer las reglas de tránsito en un recorrido de 96[Km], siendo el ganador el vehı́culo Boss de Carnegie Mellon University [47](ver Figura 2.3). Figura 2.3: Ganador del DARPA Urban Challenge,Boss de Carnegie Mellon University, 2007 Después de estas competencias, muchas iniciativas han surgido buscando solucionar el problema de automóviles autónomos que no requieran de infraestructura especial y que puedan interactuar con vehı́culos no autónomos entre las cuales se destaca la iniciativa Google Chauffeur de GoogleX, que es el sistema de software de navegación de sus Google driverless cars [54] (ver Figura 2.4). Estos son vehı́culos estándares con equipamiento instalado avaluado en U SD150, 000, donde el mas visible corresponde a un sensor Velodyne HDL-64E [49] montado en el techo del vehı́culo. En el equipo de trabajo de este proyecto se encuentran Sebastian Thurn y Christopher Urmson, lı́deres de los equipos de Stanford y Carnegie Mellon University respectivamente. Figura 2.4: Google driverless car [54] Una de las principales dificultades actuales para la masificación de vehı́culos autónomos es el costo del sistema sensorial y computacional, los vehı́culos que participaron en las iniciativas 7 DARPA tenı́an centenas de miles de dólares en equipo, volviéndolo no comercializable. Para los próximos años, los fabricantes de vehı́culos proyectan ofrecer comercialmente automóviles autónomos con las certificaciones que les permitan funcionar libremente. Un asunto pendiente es el cambio en las leyes que cada paı́s deberá realizar para permitir su uso. 2.2. Software en Robótica En un comienzo, antes del siglo XVII, los robots eran verdaderas “artesanı́as”, muy complejas desde el punto de vista mecánico, pero que no cumplı́an casi ninguna funcionalidad práctica [11, 35]. Su funcionamiento estaba basado meramente en sistemas mecánicos sin componentes eléctricos, pero pese a esto, podı́an ser configurados para cambiar su comportamiento. A medida que la tecnologı́a fue evolucionando, el uso de componentes eléctricos y electrónicos se hizo común, pero inicialmente sólo como sistemas radio controlados, en especial para aplicaciones militares. Pero una vez que los computadores se masificaron para el control de robots, esto gracias a la miniaturización de componentes, todo esto cambió radicalmente. Al poder modificar de manera sencilla el comportamiento y las estrategias de control sobre los robots, la programación tomó incluso más importancia que la implementación mecánica. En la actualidad cualquier proyecto robótico posee una estructura de software compleja basada en múltiples etapas interconectadas. Para esto muchos de ellos utilizan softwares de apoyo ya implementados y de esta manera no tener que implementarlas nuevamente, acelerando el desarrollo, abstrayendo la programación y evitando posibles errores. Figura 2.5: Diagrama de flujo del sistema de software de Stanley [43] Un ejemplo de la complejidad de un sistema de software es el proyecto Stanley [43]. En la Figura 2.5 se pueden apreciar las distintas etapas presentes y como se interconectan datos 8 de cada etapa. Este sistema esta basado en three layer architecture [9] que define tres capas: capa de control, capa de secuenciamiento y capa de deliberación. Para la comunicación entre procesos se utilizo un enfoque centralizado con comunicaciones sı́ncronas bidireccionales, pero que se utilizaron en un solo sentido para evitar deadlocks y poseen un servidor central que gestiona las comunicaciones y la transferencia de datos. En el proyecto Boss [47], para la comunicación e interpretación de sus comunicaciones entre procesos se utilizó LCM [25], lo que les da un enfoque de comunicación ası́ncrona y no coordinada, pero de baja latencia. Luego de las competencias DARPA, surgieron nuevas iniciativas que buscaban generar sus propios vehı́culos autónomos, pero que a su vez permitiesen el intercambio de los desarrollos con otros grupos de trabajo y de esta manera acelerar el desarrollo de estas tecnologı́as. Algunos grupos de trabajo desarrollaron drivers y estrategias de control que actualmente están disponible para su uso (libre o con restricciones, dependiendo de su licenciamiento) en otros desarrollos. Esto permite directamente que grupos pequeños realicen desarrollos especı́ficos en un área de investigación gracias a que disponen de una base consolidada sobre la cual trabajar. Pero este enfoque tiene la desventaja que dificulta la monetización de un desarrollo. Dependiendo del licenciamiento que tengan los desarrollos base, estos pueden obligar a la liberación del desarrollo o impedir su monetización, diferenciándose de las licencias comerciales que si lo permiten. Bajo esta filosofı́a de desarrollo comunitario y libre, surge por ejemplo el robot PR2 de Willow Garage que es exclusivamente para investigación. Este robot promueve el uso de ROSa [31,35], permitiendo que personas no tenı́an acceso al robot participaran en el desarrollo de su software. Esto permite que el tiempo involucrado en el desarrollo de un proyecto tenga un desarrollo sea menor y que permita enfocarse en las caracterı́sticas relevantes. Estas desarrollos comunitarios suelen tener un enfoque general a los problemas, por lo que al momento de enfrentarlos a problemas con restricciones especificas, no suelen tener rendimiento alto al no poder adaptarse correctamente. Esto lleva a requerir implementaciones especificas en caso de que un requerimiento sea muy particular o tenga restricciones técnicas especificas. 2.3. Sistemas de estimación de mapas de entorno La estimación del mapa del terreno es un componente importante en la navegación para robots en ambientes exteriores. Diferentes tipos de representaciones han sido usadas para mapear terrenos (por ejemplo, grilla 2D de ocupancia, grilla 3D de ocupancia basada en voxels b ), siendo los mapas elevación o mapas de alturas 2.5D uno de los preferidos como opción en aplicaciones de navegacion en robots terrestres ( [22], [33], [46], por nombrar algunos), debido a su compactibilidad, bajo requerimiento computacional e insensibilidad al error de discretización de altura [46]. Los mapas de elevación “almacenan en cada celda de una grilla discreta la altura de la superficie, la cual corresponde a su ubicación en el ambiente [32]”. En algunos sistemas de mapeo, la varianza de la altura es también almacenada para cada una de las celdas [22, 33]. Hay que mencionar que este tipo de enfoque es posible para superficies terrestres por ser representable como un manto, la limitación de esta es que para cada posición (x, y) solo se representa una altura, por lo que objetos verticales no son representables a Robot Operating System pixel b volumetric 9 correctamente. La estimación de la altura del terreno para las celda en un mapa 2.5D requiere de una correcta fusión de múltiples mediciones obtenidas en diferentes instantes de tiempo durante el desplazamiento. La incerteza de las mediciones y la incerteza de la posea del sensor en cada instante de tiempo debe ser considerada en el proceso de fusión. Esto es abordado en [22], donde ser propone un sistema de estimación de terreno basado en mixture-model que incorpora ambas incertezas, junto con el mapa de mediciones y las mediciones de la celda en el mapa. El mapeo del terreno y el algoritmo de estimación usan un análisis probabilı́stico de los errores, asumiendo que tienen distribución Gaussiana. El sistema proyecta las detecciones de los sensores en el sistema de coordenadas globales usando un modelo acoplado de la posición de sensores, haciendo la propagación formal de los errores. La localización del vehı́culo es obtenida de un GPS, sin el uso de ningún algoritmo de estimación de estado. Tres mejoras fueron propuestas en [33] para mejorar el desempeño en tiempo real del sistema propuesto en [22]: una ventana de selección es usada para limitar el área de la distribución de probabilidades de cada medición, un algoritmo de clustering es usado para simplificar la tarea de detección de objetos y un vector virtual es introducido para reducir el costo computacional del algoritmo. A pesar de estas mejoras, no hay cambios fundamentales al sistema de estimación de terreno propuesto en [22]. En [43] un modelo de Markov de primer orden es propuesto para modelar el drift del error de la estimación de la pose en el tiempo. La altura del mapa de puntos es asumida Gaussiana con una varianza que escala linealmente con la diferencia de tiempos de los puntos. Entonces un test probabilı́stico es usado para detectar la presencia de un obstáculo. Ası́, este trabajo se enfoca en la detección de obstáculos, más que en proporcionar un mapa que represente exactamente el entorno. En [32] se presenta un enfoque que permite a un robot móvil lidiar con objetos verticales y sobresalientes en los mapas de elevación presentados. El enfoque usa cuatro clases (celdas transitables, brecha vertical, estructura vertical y posiciones detectadas desde arriba) para clasificar ubicaciones en el ambiente y lidiar con estructuras sobresalientes. El mapa de elevaciones es actualizado usando una fusión tipo filtro de Kalman (en cada celda, la información nueva es fusionada con las estimación existente considerando sus varianzas). El cierre del loop del mapa es resuelto de manera offline y el vehı́culo se condujo a velocidades bajas en caminos pavimentados. Por otro lado existe el enfoque del SLAM b [42] [6] el cual busca solucionar el problema doble, generar un mapa de entorno y localizarse de manera simultanea. Los métodos SLAM se dividen principalmente en dos tipos: online y offline. Mientras el offline busca reconstruir a posterior el mapa y la ruta que recorrió el robot, el online busca hacerlo inmediatamente de manera de poder planificar su recorrido utilizando el mapa recién construido. SLAM es una de las metodologı́as más estudiadas en robótica debido a su importancia para robots móviles. La gran mayorı́a de los métodos de SLAM son en dos dimensiones. El disponer de observaciones de los mismos objetos pero desde posiciones diferentes permiten estimar el desplazamiento en el mapa e incorporar con coherencia las observaciones nuevas al mapa. Otro gran incoveniente de los metodos SLAM en general es su alto nivel de computo que requiere, problema que no es crı́tico en el caso de SLAM offline pero si lo es para el caso online. Por este motivo, es tı́pico observar que para el caso online los robots deben detenerse a ubicación y orientación espacial Localization And Mapping, Localización Y Mapeado Simultáneos b Simultaneous 10 para procesar las observaciones antes de tomar una decisión de ruta. Muchos métodos de SLAM están disponibles para la comunidad en OpenSLAM.org [6]. Uno de lo métodos ampliamente utilizados es GMapping [12] [13] el cual asume un “mundo” plano en dos dimensiones y utiliza mapas de grilla como mapa. Al ser plana su representación, solo es capaz de estimar guiñada en el mapa. En [18] se presenta HectorSlam, una implementación de SLAM que pese a representar el mapa en dos dimensiones realizan una estimación de la localización en seis dimensiones. Esto permite realizar generar un mapa aún cuando la superficie del suelo tenga inclinaciones irregulares. Este método ha tenido un gran desempeño en la competencia RoboCup Rescue. En [8] se presenta RGB-D SLAM, una implementación de SLAM que utiliza una representación del mapa en tres dimensiones, para ello utiliza un sensor Kinect. Debido al principio de funcionamiento de este sensor, le permite de manera directa estimar los calces entre dos observaciones sucesivas y de esta manera obtener el desplazamiento del sensor, esto es la tarea compleja de solucionar en el SLAM en tres dimensiones, esto le permite funcionar de manera online gracias a la nube de puntos “organizada”. En [27] se presenta SLAM6D, esta implementación esta incorporada en el toolkit 3DTK [26]. Este toolkit incluye funcionalidades para el manejo optimizado de nubes de puntos, generando mapas complejos en tres dimensiones y estimaciones de pose en seis dimensiones. Lamentablemente su funcionamiento no esta pensado para ser utilizado de manera online y sus estructuras de datos no son directamente compatibles con otros sistemas. 11 Capı́tulo 3 Marco teórico Índice 3.1. Arquitecturas de software y modalidades de comunicaciones . . 13 3.1.1. Medios de comunicación entre procesos . . . . . . . . . . . . . . . 14 3.1.2. Arquitecturas de IPC . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2. Middlewares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.3. ROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.4. Mapas para la robótica . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.4.1. Tipos de mapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.5. Principio de funcionamiento de un LIDAR . . . . . . . . . . . . . 22 En este capı́tulo se presentará una breve introducción a temas relacionados con esta Tesis Doctoral, conocimiento que fue relevante al momento de tomar decisiones durante el desarrollo. En la primera sección se describirá sobre los diferentes medios de comunicaciones entre procesos en un sistema computacional. En una segunda sección se comentarán las implementaciones que fueron evaluadas. En una tercera parte se expone una pequeña descripción de ROS. En una cuarta parte se describen las caracterı́sticas de tipos tipos de mapas para navegación y mapeo. Y para finalizar una descripción del principio de funcionamiento de los sensores utilizados en el vehı́culo autónomo. 3.1. Arquitecturas de software y modalidades de comunicaciones Dentro de un sistema autónomo afloran diversas dificultades. A diferencia de los sistemas que no interactúan fı́sicamente con su entorno, un sistema autónomo que lo hace debe tener en consideración los tiempos de respuesta y latenciasa . Hay tareas que son necesarias de que se ejecuten antes de un determinado plazo, después del cual ya no es posible realizar la acción de control. También está la problemática que surge al momento en que muchos procesos interactúan simultáneamente, esto genera caminos crı́ticos del procesamiento de la información en conjunto con eventos ası́ncronos a procesar. En un sistema de alta complejidad, el procesamiento es altamente no secuencial y la necesidad de realizar muchas tareas simultáneamente se convierte en una necesidad. Procesadores multi-cores o el uso de un cluster de computadores permite realizar computo en paralelo, pero agrega la necesidad de comunicar estos procesos de manera eficiente. Para lograr la interacción adecuada entre los procesos se debe contar con un medio de comunicaciones (ICP, Inter-Process Communication). Dependiendo del uso o las caracterı́sticas de la información que se comunique, diferentes caracterı́sticas pueden ser necesarias, por ejemplo: Comunicaciones sı́ncronas o ası́ncronas, latencias fijas o variables, prioridad o relevancia de cada mensaje, comunicaciones centralizadas o distribuidas. La “salud” de un proceso en un sistema complejo es de vital importancia. ¿Qué hacer en caso que un proceso falle?. Responder a esta pregunta es complicado cuando un sistema interactúa con el mundo real, donde puede llevar a un accidente. En el caso de una respuesta errónea o inesperada podrı́a provocar un fallo generalizado o decisiones peligrosas. Para prever estos casos, la supervisión de las salidas crı́ticas o poseer redundancia sobre ciertos procesos podrı́a ser una solución en este ámbito. En el caso de una falta de respuesta, como en el caso de un proceso caı́do o detenido, revisar si se sigue ejecutando o si la frecuencia de su salida está dentro de rangos normales es necesario para generar una alerta. Dependiendo del tipo de proceso y cuan relevante sea para el sistema, la acción de contingencia puede ir desde reiniciar el módulo a una alerta completa que detenga el sistema y accione los sistemas de emergencia. Otra importante caracterı́stica, ya no desde el punto de vista del desempeño técnico, corresponde a las herramientas disponibles durante el desarrollo del software, en especifico para debuggear b un sistema. Al momento de programar cualquier sistema, las posibilidades de tener errores siempre existe, por lo que es necesario disponer de herramientas que permitan de a suma de los retardos dentro de una red de debug, de la palabra bug(bicho), corresponde a la acción de eliminar errores b españolización 13 manera lo menos invasiva localizar la razón y la ubicación de un error. En un sistema de alta complejidad con comunicaciones entre múltiples procesos y en tiempo real esta herramienta debe permitir observar las comunicaciones de la manera menos invasiva posible para el proceso o la comunicación de manera de no alterar el comportamiento y desempeño del proceso. 3.1.1. Medios de comunicación entre procesos Existen diferentes medios para comunicar información entre dos o mas procesos ejecutándose en un mismo computador. Cada uno tiene caracterı́sticas propias que le dan valor frente a los otros. Estos medios dependen de la implementación en el sistema operativo, por lo que podrı́an no estar disponibles en algún sistema operativo en especı́fico. Utilizando estos medios de comunicación básicos, se implementan librerı́as de comunicaciones que son usadas mediante sus APIs a con lo cual es posible abstraerse de la implementación. Para el caso de LINUX tenemos que los principales medios de comunicación son [23]: Memoria compartida La manera mas simple e intuitiva de compartir información entre procesos, consiste en un espacio de memoria común a la que distintos procesos tienen acceso. En esta memoria los procesos pueden leer y escribir generando una comunicación bidireccional. Es la manera mas rápida de comunicación al no tener que copiar la información compartida, haciendo muy eficiente en el caso de tener que comunicar grandes volúmenes de información. La falta de arbitraje sobre este espacio de memoria por parte del sistema es su mayor defecto. No poder controlar cuando un proceso escribe, lee, o quien la accede, pone en peligro la integridad de la comunicación. Esta memoria puede ser accedida por cualquier numero de procesos simultáneamente, por lo que una coordinación debe ser implementada para asegurar la integridad de la información. Semáforo Los semáforos son herramientas provistas por el kernel b para coordinar el acceso a un recurso compartido por parte de uno o más procesos. Su principal caracterı́stica es que son operaciones atómicasc , de manera que es seguro usarlas para la tarea de compartir recursos y ası́ evitar los problemas generados por las carreras crı́ticas. Son implementados como una variable compartida que es usada como contador, en caso de solicitar el uso del recurso, el contador es decrementado en uno. Una vez decrementado, en caso que el resultado sea negativo, la solicitud será puesta en espera hasta que ese resultado se mayor o igual a cero. Al terminar el uso del recurso, el valor del semáforo es incrementado en uno. Un caso particular de los semáforos es el “semáforo binario” o mutex d el cual es usado para evitar un doble acceso a un recurso. Los semáforos son usados para proteger recursos como las memorias compartidas e implementar un sistema de comunicación, pero por sı́ mismas son un medio de comunicación entre a Application programming interface, conjunto de funciones y procedimientos disponibles de un software del sistema operativo, software encargado de coordinar los recursos del computador c operación indivisible para asegurar su integridad d MUTual EXclusion o exclusión mutua b núcleo 14 dos o más procesos, todo depende de como se le interprete, siendo más una herramienta de sincronización. Archivo proyectado en memoria Este medio de comunicación se basa en el uso de un “archivo”, al cual uno o más procesos acceden de manera simultanea, pudiendo leer o escribir en él. En su implementación el “archivo” es copiado en memoria, y de esta manera que los diferentes procesos accedan directamente a la memoria y no al sistema de archivos, ya que el acceso a disco es más lento. La implementación se encarga de gestionar el acceso a este recurso, y que cuando se libere, volverlo al sistema de archivos. Este “archivo” no necesariamente es un archivo del sistema de disco, sino que puede ser por ejemplo: un dispositivo fı́sico, una interfaz de usuario, un recurso de red. Su principal caracterı́stica es el carácter permanente del medio de comunicación, en el caso que el recurso se desocupe y otro proceso requiera usarlo nuevamente, la información anterior seguirá disponible, siendo esto transparente para el proceso. Pipe y FIFO Las Pipes a son un dispositivo de comunicación unidireccional que permite a dos procesos comunicarse. Mientras uno escribe por un extremo del pipe, por el otro lado se leen estos datos. Por la manera en que están implementados, tienen una capacidad máxima de datos que pueden retener. Si el extremo que lee del pipe no lo hace y este se llena, el extremo que escribe esperará hasta que haya espacio. Ası́ mismo, si el pipe se vacı́a, el proceso que lee esperará hasta que haya información que leer. Las FIFOs b son un tipo especial de pipe que están mapeadas en el sistema de archivos, por este motivo también son llamados named pipes c . A diferencia de los pipes, múltiples procesos pueden escribir y leer simultáneamente de una FIFO. Socket Los sockets son un medio de comunicación bidireccional entre dos procesos. Estos está en una capa de abstracción mas arriba que los analizados anteriormente. La principal caracterı́stica de los sockets es que pueden comunicar de manera bidireccional a dos procesos, los cuales no necesariamente están en un mismo computador, pero sı́ en la misma red. Internamente el enlace es manejado de manera diferente, si la comunicación es entre procesos dentro del mismo computador o si es entre computadores distintos, pero la implementación permite abstraerse de esto. La información enviada es dividida en packets d de menor tamaño, que son los que finalmente se envı́an. Al definir un socket, un estilo de control para la comunicación debe ser definido, y determinará como son manejados los packets y como se hacen llegar al socket de destino. Hay dos principales estilos de control para los sockets: a tuberı́a b First In First Out, primero en entrar primero en salir nombrada d paquetes c tuberı́a 15 Orientado a la conexión: En este enfoque se garantiza la entrega de todos los packets en el orden en que fueron enviados. En el caso de pérdida o desorden de los packets por problemas en la red, el receptor solicita el reenvı́o de la información, que solo es entregada una vez que se recibe el mensaje completo. El protocolo de este tipo más usado es el TCP a . No orientado a la conexión: En este enfoque no se garantiza la entrega de los packets ası́ como tampoco se garantiza el orden en que lleguen. Pero esto mismo hace que la latencia de la comunicación sea mucho menor. El protocolo de este tipo más usado es el UDP b Desde el punto de vista de los procesos, se definen dos roles. El de cliente que es el encargado de iniciar el enlace al solicitar una conexión al servidor, y el de servidor que esta siempre esperando una solicitud de conexión. Una vez iniciada la conexión, el comportamiento del enlace en ambos procesos es el mismo, es similar a tener dos pipes, uno de escritura y uno de lectura. 3.1.2. Arquitecturas de IPC Dependiendo de los requerimientos del sistema robótico que se estén tratando de cumplir, diferentes enfoques y arquitecturas de como interactuaran los procesos pueden ser necesarios. A continuación se exponen algunos de estos tipos de arquitectura,que en su gran mayorı́a son implementados mediante sockets para poder comunicarse con procesos en otros computadores. Central server: En este enfoque de comunicaciones un proceso central es el encargado de manejar las comunicaciones. Si dos procesos quieren comunicarse entre sı́, primero deben definir que es lo que se comunicarán. Cada proceso se identificará con el servidor central y permanecerán conectados a este mientras dure la comunicación. El servidor central recibirá los mensajes de cada proceso y los hará llegar a donde corresponda. Este enfoque disminuye el número total de conexiones, ya que los procesos generan una única conexión al servidor central y a través de este se realizan todas las comunicaciones. Esto genera un máximo de conexiones igual al numero total de procesos. La Figura 3.1 muestra un diagrama de ejemplo de este esquema. En su contra, todo el tráfico que se genere pasará por el servidor central, que debe recibirlo y reenviarlo, aumentando la latencia de la comunicación entre los procesos. En caso que un proceso no este corriendo en el mismo computador que el servidor central, el enlace hasta el servidor pasara por la red externa, lo que aumentará la latencia que incluso puede propagarse a los procesos que si se ejecutan en el mismo computador. El servidor central también puede almacenar información como parámetros que los procesos puedan necesitar. Dentro de esta categorı́a caen los sistemas que tienen un proceso central, que aparte de manejar las comunicaciones también maneja los dispositivos. Peer-to-Peer: En el esquema “punto a punto” si un procesos necesita comunicarse con otro, lo hace de manera directa sin que los datos pasen por ningún otro proceso. Esto no quiere decir que no pueda existir un proceso o tabla que coordine la comunicación a Transmission b User Control Protocol Datagram Protocol 16 Figura 3.1: Arquitectura de servidor central entre los procesos, solo que la información transferida no pasará por este. La Figura 3.2 muestra un diagrama de ejemplo de este esquema. Este enfoque trata de minimizar el uso de los recursos de comunicación al sólo existir un enlace para cada canal de información. La latencia del enlace es reducida al mı́nimo que permita el protocolo de control de transmisión del enlace. En caso de un proceso este en otro computador, sólo los enlaces con este proceso se verı́an afectados por la latencia el enlace de red, ya que los enlaces entre procesos de un mismo computador no se afectan directamente. Figura 3.2: Arquitectura peer-to-peer Broadcast En este esquema, cada procesos envı́a su mensaje a todos los procesos presentes, y no solo a los procesos con los que se busca comunicar. Por este motivo cada proceso debe estar siempre escuchando todo, y descartar los mensajes que no van dirigidos a él. El carácter unidireccional y ası́ncrono de la comunicación lo hace perfecto para enviar comandos y mensajes pequeños. Por lo que los procesos que solo reciban información no deben mantener una conexión establecida de transmisión de datos. La Figura 3.3 muestra un diagrama de ejemplo del esquema broadcast. Este esquema trata de minimizar la latencia de la comunicación y el número de conexiones permanentes. Por sus limitaciones de implementación, el tamaño de los mensajes suele ser reducido, por lo que no es apto para intercambiar cantidades grandes de información. Este enfoque esta reservado para redes pequeñas, por que en el caso que uno o más procesos este fuera del computador, los mensajes generados deberá salir a la red, y dependiendo de la topologı́a de la red, podrı́an inundarla de mensajes repetidos. 17 Figura 3.3: Arquitectura Broadcast 3.2. Middlewares En un sistema robótico en el que se requiere la interconexión de muchos procesos diferentes, implementar las comunicaciones entre los procesos a medida, vuelve demasiado especifica la implementación del sistema y puede ser una fuente importante de errores. Si cada sistema tiene su propio sistema de comunicación, herramientas y estándares, esto impide la reutilización de estos módulos del sistema en otros sistemas y también dificulta el desarrollo distribuido. Es por esto que el uso de middlewares se adapta a los sistema robóticos. En [10] se describe un middleware como “... una clase se software que ayuda mantener la complejidad y heterogeneidad inherente en un sistema distribuido. Esta definida como una capa de software que esta sobre el sistema operativo pero bajo los programas de aplicación y que provee de una abstracción al programar en un sistema distribuido ... ”. En este mismo trabajo definen que las razones para utilizar un middleware son la portabilidad, la confiabilidad y manejo de la complejidad. Existen muchos middlewares diferentes, cada uno con sus caracterı́sticas propias. A continuación se presentan algunos que son considerados como los más relevantes: CARMEN: Es el middleware implementado por Carnegie Mellon University, de ahı́ su nombrea , alrededor del año 2003. Para la comunicación entre procesos se utiliza la implementación de IPC de Simmons [40], por lo que usa el esquema de servidor central. Provee drivers para algunos sensores y plataformas robóticas, ası́ como algunas implementaciones de algoritmos de navegación y herramientas afines, como monitores gráficos y sistema de grabación de mensajes. Pese a ser uno de los primeros proyectos de middleware especı́ficos para robótica, no logró surgir y solo fue ocupado por algunos proyectos, pero marcó un precedente para los que vinieron después. LCM: Es la implementación de middleware [25] realizada por el MIT para la competencia DARPA Urban Challenge con su vehı́culo TALOS [19]. El nombre viene de Lightweight Communications and Marshalling b , por que principalmente provee de un sistema de comunicaciones entre procesos y no otras funcionalidades. Es un sistema de filosofı́a publicador/subscriptor que define el empaquetado de los datos dentro de estos mensajes. Su implementación está basada en broadcast de mensajes mediante UDP, lo que implementa un sistema de muy baja latencia. a CARnegie MEllon robot Navigation toolkit ligeras y ordenamiento b Comunicaciones 18 Al ser una comunicación transversal, también permite el monitoreo y loggeo de los mensajes permitiendo reproducirlos de manera transparente para los procesos sin alterar el desempeño de las comunicaciones de manera significativa. Pese a proveer solo el sistema de comunicaciones, su simplicidad de uso lo ha hecho popular y está presente en variados proyectos. RoboComp: Es un middleware [20] implementado por The Robotics and Artificial Vision Laboratory (ROBOLAB) de la Universidad de Extremadura. Para la comunicación entre procesos utiliza ICE [57], este es un middleware de comunicaciones orientado a objetos que implementa múltiples estilos de comunicación. Uno de los principales beneficios de RoboComp, es que ICE esta implementado en muchos lenguajes de programación y tiene soporte en la mayorı́a de los sistemas operativos, permitiendole extenderse a ellos. Implementa una abstracción de hardware(HALa ) que le permite mantener bajo control la complejidad del código y abstraer de este al programador. Además provee un conjunto de herramientas visuales para complementar su funcionamiento. ROS: Es un middleware que se concibe en Stanford University, pero que logra su éxito bajo Willow Garage b . Su nombre viene de Robot Operating System [31, 34] que aún cuando no es un sistema operativo propiamente tal, provee de herramientas que lo asemejan a uno aún cuando corra sobre Linux. Provee un sistema de comunicación de procesos peerto-peer y muchas otras funcionalidades que se describen en la Sección 3.3. Lo que lo ha vuelto altamente popular es la gran comunidad de desarrolladores que ha logrado crear. Esto ha posibilitado un alto intercambio de ideas e implementaciones, que van desde drivers de dispositivos, a algoritmos de control muy especı́ficos. Sus estándares bien definidos de como programar y su versatilidad, le ha permitido surgir hasta convertirse en uno de los middleware más activos actualmente. 3.3. ROS ROS [31] es un acrónimo para Robot Operating System, y es un middleware especializado para la robótica. Su activa comunidad ha sido una de las principales razones que le han permitido crecer explosı́vamente desde su lanzamiento. Las principales caracterı́sticas de este middleware son una robusta y flexible infraestructura de comunicaciones, caracterı́sticas especı́ficas enfocadas a robots y una extensiva colección de herramientas relacionadas. Además ROS integra dentro de sus funcionalidad librerı́as bien difundidas, como son: Gazebo [30] como simulador multi-robot, OpenCV [16] como librerı́a de manipulación de imágenes, PCL [29, 36] como librerı́a de percepción y procesamiento 3D y MoveIt! [41] como librerı́a de planeamiento de movimiento. Otro aspecto importante para su masificación, es que provee soporte para dos lenguajes de programación: C++ y Python. Sistema de administración de software ha permitido el fácil intercambio de código permitiendo que comunitariamente haya generado un mayor soporte para robots, dispositivos y sensores más utilizados. Su arquitectura de comunicaciones entre procesos es de tipo peer-to-peer, pero posee un servidor central encargado de coordinar las comunicaciones de los procesos. Este servidor a Hardware Abstraction Layer de proyectos robóticos b Incubadora 19 también permite monitoriar el estado de los procesos y ha permitido la creación de variadas herramientas de debuggeo y visualización, que invaden lo menos posible a los procesos, manteniendo el desempeño del sistema. El sistema de comunicación entre procesos está implementado con dos enfoques. Por un lado está el enfoque publicador/subscriptor en donde un proceso publica la información bajo un topic a y otro se subscribe a ese tema. Este esquema permite además la existencias de múltiples publicadores en un mismo tema, ası́ como múltiples subscriptores. La comunicación es ası́ncrona ya que el publicador no se entera que se han subscrito a su topic. El otro enfoque es el de prestador/cliente, donde un proceso prestador ofrece un servicio y el cliente lo utiliza, entregando parámetros y recibiendo de vuelta un resultado. La información es procesada en el prestador del servicio, y el cliente espera hasta obtener el resultado de vuelta, siendo esta una comunicación sı́ncrona. En ROS, cada proceso es llamado node b , habiendo un nodo especial llamado roscore. Este nodo es el encargado de coordinar las comunicaciones, supervisar a los otros nodos, proveer del servidor de parámetros y servir de nodo de loggeo de rosout. Rosout es un topic común para los nodo para desplegar información del funcionamiento. Otra de las caracterı́sticas disponibles en ROS, son los rosbag. Un rosbag corresponde a una grabación de los mensajes que fueron transmitidos por los nodos en un cierto momento. Este tipo de log de mensajes puede ser reproducido posteriormente para ser utilizado por los nodos, siendo transparente a los nodos que esos mensajes son grabaciones. Esta caracterı́stica permite “generar” las entradas de un sistema sin que necesariamente estén se estén generando “online”. Dentro de las principales herramientas gráficas disponibles en ROS para complementar el funcionamiento del sistema se encuentran: rviz: Es un entorno tridimensional de visualización que permite desplegar desde información sensorial hasta modelos del robot. rxplot: Permite, en tiempo real, visualizar variables numéricas en función del tiempo en forma de gráfico. rxbag: Permite la visualización de un rosbag en formato de linea temporal y controlar su reproducción. rxgraph: Entrega una visualización en forma de grafo, de los nodos y los tópicos con los que se interconectan. Este grafo se genera en tiempo real, desplegando además información relevante sobre el estado del nodo y el tópico. 3.4. Mapas para la robótica En robótica, al referirse a mapas se habla de una estructura de datos que represente un lugar fı́sico en el que se encuentra el robot y las cosas presentes en el lugar. Dentro de los usos de los mapas en la robótica, por ejemplo, son de vital importancia al momento de afrontar la problemática de navegación robótica, donde es necesario disponer de una representación del entorno para poder desplazarse espacialmente. Una navegación a tópico o tema b nodo 20 eficiente esta estrechamente relacionada con una representación de mapa adecuada. Los algoritmos de navegación suelen estar optimizados a la estructura de dato de su mapa, por lo que es habitual encontrar algoritmos con estructuras propias, de manera de generar alguna caracterı́stica necesaria. También existen estructuras de mapas generales, que les permite ser versátiles en sus implementaciones y servir para diferentes usos. Esto se observa comúnmente cuando se requiere algún mapa para múltiples tareas simultáneamente. 3.4.1. Tipos de mapas El enfoque del mapa dependerá directamente del uso dado, los usos tı́picos son [50]: navegación, localización, path planning a , exploración y comunicación. Básicamente los tipos de mapas existentes para la robótica son dos: Topológicos: Corresponden a los mapas que registran las relaciones existentes entre ubicaciones en el mapa. Este tipo de mapa son comúnmente almacenado en estructuras tipo grafos. Dentro de esta categorı́a, los enfoques tı́picos son los grafos de vistas y los grafos de ruta. Métricos: Corresponden a los mapas que representan la posición de los objetos registrados en el mapa. No se almacena explı́citamente la relación entre los objetos, siendo necesario calcularlo a partir del sus posiciones. Dentro de esta categorı́a, los enfoques tı́picos son los basados en ocupancia, representación geométrica y los basados en landmarks. Las propiedades que debe tener un mapa dependiendo de su uso están definidas por tres caracterı́sticas: Extractabilidad y Mantenibilidad: Corresponde a la caracterı́stica que debe tener el mapa para poder acceder adecuadamente a la información presente y agregar nueva de manera dinámica. Adecuada información: Se refiere a que la información contenida por el mapa es la adecuada para el uso que se le dará. Esta información se puede almacenar de manera implı́cita o explı́cita, pero lo importante es que la información esté contenida y no exista pérdida de ella. Eficiencia y escalabilidad: La eficiencia de un mapa corresponde a la caracterı́stica de incorporar información nueva y recuperar la almacenada, siendo esto en consideración al espacio utilizado o al cómputo requerido. Con respecto a la escalabilidad, si el tamaño máximo del mapa esta acotado a un cierto tamaño fijo o puede crecer dinámicamente. En caso de ser de tamaño dinámico, es importante si la eficiencia varı́a con respecto al tamaño que tiene. Dentro del los mapas métricos, existen varios enfoques de como implementarlos, principalmente separados en cuantas dimensiones se tienen en consideración. En el caso de solo considerar 2D, el cual es el mapa tı́picamente utilizado al momento de realizar implementaciones robóticas, el eje z suele ser simplificado y solo utilizadas las dimensiones x e y del entorno. En este caso, un objeto estará representado por una ubicación espacial sea cual fuese a planeamiento de trayectoria 21 su posición vertical. Este enfoque presenta una gran simplificación al momento de realizar cómputos y almacenarlo, y es el más utilizado por robots, en especial en robots terrestres. En el caso de necesitar el modelado del entorno en 3D, se requiere tener nuevas consideraciones con respecto a los cálculos y geometrı́a utilizada. Además, el utilizar una nueva dimensión agrega un requerimiento mayor de almacenamiento para datos, ası́ como la necesidad acceder a los datos de manera ordenada y eficiente. La manera intuitiva de afrontar el problema es almacenar todas las observaciones con sus componentes espaciales, pero tiene en su contra el alto espacio de almacenamiento a utilizar ya que crece dinámicamente con el número de observaciones. Diversas estructuras de datos han sido propuestas para este tipo de problemas, entre los que se encuentran: grillas 2D, 2.5D y 3D [22, 24, 33, 43, 46], quadtree [37], KDtree [27, 29], octree [29, 56], y muchos otros. 3.5. Principio de funcionamiento de un LIDAR LIDAR es el acrónimo de LIght Detection And Ranging, pero también de la unión de las palabras LIght y raDAR. En aplicaciones robóticas, la habilidad de medir distancias a los objetos de manera remota o sin contacto es indispensable para lograr un desplazamiento por el medio ambiente. Sensores de ultrasonido son buenas alternativas para sistemas robóticos pequeños o cuando una alta resolución no es requerida. Las principales cualidades que poseen este tipo de sensores es buena resolución en ángulo y distancia que pueden lograr, ası́ como una alta tasa de muestreo, esto lo hace una de las alternativas más usada en proyectos de robótica móvil. La resolución en distancia tiene la caracterı́stica de permanecer constante en todo el recorrido, a diferencia de lo que pasa con otros métodos como la triangulación o la luz estructurada. [52]. Como ya se mencionó, su funcionamiento esta basado luz (no necesariamente visible). Haces de luz son proyectados sobre el objeto al cual se quiere estimar la distancia y se mide el tiempo que tarda en volver la luz. Asumiendo conocida y constante la velocidad de la luz en el aire, el tiempo resultante corresponde al viaje de la luz recorriendo dos veces la distancia al objeto (3.1). c · ∆t (3.1) 2 Este principio de funcionamiento es conocido como Time-of-Flight a [52], por que la distancia se estima directamente del tiempo que demora en ir y volver la luz. Es el mismo principio de funcionamiento que los sensores de ultrasonido pero utilizando otra tipo de onda. Pero no siempre se puede implementar directamente de esta manera, dado que la implementación de un mecanismo para medir diferencias de tiempo tan pequeños puede resultar complejo y caro, otros métodos para estimar la diferencia de tiempo son empleados. Uno muy usado es la utilización de luz modulada, en este caso la emisión de luz es modulada en amplitud con una frecuencia ω (ω = 2πf ), ∆t se transforma en la fase φ entre la luz emitida y la recibida. La medición de la fase de dos señales es más simple de implementar que la medición precisa del tiempo. Reemplazando términos en la Ecuación (3.1) para el caso de luz modulada, se puede expresar en función de la fase como (3.2). Este método fija que la máxima distancia estimable tiene directa relación con la longitud de onda λ de la frecuencia moduladora. d= a tiempo de vuelo 22 λ·φ (3.2) 4 Debido a que la emisión no esta perfectamente colimadaa , a medida que se alejan del sensor los rayos van divergiendo y aumentando el área de proyección. Esta apertura es conocida como spot diameter b y crece linealmente con la distancia al sensor, haciendo crecer el área que cubre este punto a medida que se aleja. De esta manera un punto puede cubrir diferentes objetos a diferentes distancias en una misma observación. En la Figura 3.4 se muestra como podrı́an generarse estos múltiples reflejos con una sola emisión del láser. d= Figura 3.4: Ejemplo de múltiples ecos de una emisión láser, donde al llegar el primer reflejo, el segundo aún le falta por recorrer distancia Los sensores que pueden detectar estos múltiples reflejos son denominados Multi Echoc . Para detectar estos múltiples ecos, se registra la forma de onda de toda la recepción de luz y es analizada para determinar los posibles reflejos de objetos y sus distancias. Otro de los parámetros importantes para un sensor LIDAR es el spot spacing d , que es la distancia a la que están situados entre medidas el punto de medición. Está en directa relación con la resolución angular, y en caso de que el espaciamiento de los puntos sea menor que el diámetro del punto, existirá un traslape en el área de observación entre observaciones sucesivas. Reflectividad e corresponde a la cantidad de energı́a del láser que es reflejada de vuelta al sensor. Dependiendo de las caracterı́sticas del sensor, una cierta cantidad de energı́a es necesaria para determinar una observación válida. Cada objeto tiene una reflectividad propia que esta determinada por su material. Una relación entre esta reflectividad y de la distancia de observación determinará si es posible detectar un objeto. Esta reflectividad depende de la longitud de onda de la luz utilizada, y tiene un valor de 100 % para una “superficie blanca reflectante perfectamente difusa” [3, 14, 39]. Por como esta definida, el valor puede ser mayor a un 100 % dependiendo del material y su acabado. En la Tabla 3.1 se muestran algunos ejemplo de reflectividad. a luz cuyos rayos son paralelos entre sı́ del punto c Múltiples ecos d espaciamiento de puntos e Reflectivity, reflectancia b diámetro 23 Tabla 3.1: Valores de reflectividad relativa (según KODAK standards) para algunos materiales [38, 51] Material asfalto negro agua cartón negro mate tablas de maderas cartón gris tierra madera sin procesar PVC gris vegetación aluminio mate concreto blanco papel mate blanco nieve aluminio anodizado negro acero sin óxido brillante acero brillante reflector 24 Reflectividad [ %] 3% 5% 10 % 17 % 20 % 30 % 40 % 50 % 50 % 74 % 78 % 80 % 80 % 110 % a 150 % 120 % a 150 % 140 % a 200 % mayor a 2000 % Capı́tulo 4 Vehı́culo Autónomo AMTC Índice 4.1. Vehı́culo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.1.1. Descripción de modificaciones del vehı́culo . . . . . . . . . . . . . . 27 4.2. Hardware y Software . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.2.1. Computador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.2.2. Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.3. Discusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1. Vehı́culo El proyecto de vehı́culo autónomo desarrollado en el AMTC está implementado en un Volkswagen Tiguan. El objetivo principal en este caso es la implementación de una plataforma de desarrollo para tecnologı́as de navegación y automatización de vehı́culos orientado a la minerı́a. Tener un vehı́culo minero real a la disposición de la investigación es muy difı́cil debido al alto costo de ellos y por ello la utilización de un vehı́culo convencional se vuelve una necesidad. Un automóvil es capaz de recorrer largas distancias, tiene de una escala más adecuada que un robot de laboratorio, y es capaz de recorrer ambientes mineros al igual que una maquinaria minera. Una de las caracterı́sticas importantes para la plataforma de desarrollo es que mantenga las caracterı́sticas de vehı́culo convencional permitiéndole transitar libremente por las calles sin la necesidad de un vehı́culo extra que lo transporte. Para esto las intervenciones al vehı́culo tratan de ser lo menos invasivas, de manera que cumpla con la reglamentación vigente en Chile. En la Figura 4.1 se puede apreciar el vehı́culo durante una de las pruebas en el parque O’Higgins. Figura 4.1: Vehı́culo Autónomo del AMTC Como se mencionó anteriormente corresponde a un Volkswagen Tiguan año 2010, cinco puertas, patente CRJZ21. Es un vehı́culo todoterreno con tracción a las cuatro ruedas con un motor bencinero de cuatro cilindros 2.0L 125KW (16V) Turbo FSI. Tiene capacidad para 4 pasajeros más el conductor y un porta maletas amplio. En la Tabla 4.1 se encuentran algunas de las caracterı́sticas fı́sicas del vehı́culo. a batalla, distancia entre eje delantero y trasero entre ruedas izquierdas y derechas b distancia 26 Tabla 4.1: Especificaciones fı́sica del vehı́culo Especificaciones del vehı́culo Valor Masa 1590[Kg] Largo 4427[mm] Ancho 1809[mm] Alto 1686[mm] a Wheelbase 2604[mm] b Track 1686[mm] 4.1.1. Descripción de modificaciones del vehı́culo Para convertirlo en un vehı́culo autónomo muchas modificaciones se han llevado acabo en el vehı́culo. A continuación se describen algunas de las más relevantes que se han realizado: Instalación de parrilla para sensores: Para el montaje de sensores en el vehı́culo se instaló una estructura de perfiles de aluminio extruido MiCRO. Estos perfiles tienen canales donde se pueden montar dispositivos de manera precisa y mucha firmeza, permitiendo cambios de configuración de los dispositivos fácilmente. Son utilizados perfiles de 45x45 [mm] y 45x90 [mm] de la linea estructural de MiCRO. Para la fijación de esta estructura al vehı́culo, una parrilla para carga de equipaje es fijada a los soportes del techo del vehı́culo. Esto permite desmontar toda la estructura en caso de ser necesario. En la Figura 4.1 se puede ver la parrilla instalada en el vehı́culo con los sensores instalados y en la Figura 4.3 se alcanza a ver la parte posterior de la parrilla y se puede apreciar la forma de los perfiles de aluminio. Actuación del volante: Para la intervención del volante un motor brushless DC fue montado junto a la columna de dirección mediante una cadena. El motor brushless DC es marca Emoteq modelo HT03005-C01-H y tiene incorporado un resolver marca LNT modelo RE21-1-D64. El controlador del motor es marca Maccon modelo SWM 48-25R-CT es empleado para controlar el motor. La intervención permite un manejo normal del volante cuando no se esta en modo autónomo [21]. Actuación del freno: Para la actuación del pedal de freno un actuador lineal fue instalado a los pies del asiento del copiloto. Este servomotor tira de una piola de acero que tira del pedal de freno. Esta piola esta montada de tal manera que permite accionar el pedal aún cuando el actuador no se accione. El actuador lineal es un servo-tubo marca Copley modelo STA2508P-155-S-S-03-F. El controlador del motor es marca Accelnet modelo Panel ADP-090-36-S [21]. Intervención del acelerador: El pedal del acelerador fue intervenido de manera electrónica. El acelerador en este vehı́culo corresponde a dos referencias de voltaje generadas en el pedal, y que deben ser coherentes entre ellas. Para intervenirlas, un sistema genera estos voltajes y emula al comportamiento del pedal [21]. Intervención del freno de mano: La palanca de freno de mano de este vehı́culo es completamente electrónica. Una emulación de la palanca fue agregada al vehı́culo en paralelo a la palanca original. La palanca de freno de mano además tiene la funcionalidad 27 de parada de emergencia en caso de accionarse por sobre 20 [Km/h], lo que permite accionar este sistema de emergencia en caso de ser necesario [21]. Actuación de la palanca de cambios: Para la intervención, es necesario reemplazar la palanca por un sistema que sea capaz de desplazar la varilla que mueve originalmente la palanca. Para ello un actuador con desplazamiento lineal es instalado en su lugar. Una primera intervención fue implementada por [21], pero ha tenido que ser modificada posteriormente. Figura 4.2: Intervención en el maletero Rack para controladores y computadores: El maletero del vehı́culo fue asignado para ubicar los controladores y computadores del sistema autónomo. En la Figura 4.2 se puede apreciar estas intervenciones. Para esto un implemento un rack a donde se instalaron los controladores y computadores abordo. Además un switch ethernet y reguladores de voltajes están ubicados en esta área. Una baterı́a de plomo ácido también esta en el maletero. Los interruptores principales del sistema autónomo están ubicados también acá. Intervención bus CAN: Es necesario realizar una intervención al bus CAN del vehı́culo para poder leer de él información relevante. El vehı́culo dispone de tres buses CAN, y la intervención es sobre el bus PowerTrain. Debido a la gran cantidad de mensajes que fluyen por este bus, un Gateway es utilizado para filtrar los mensajes relevantes del bus. Pasada de cables al exterior: Una gran parte de los dispositivos instalados en el exterior del vehı́culo deben conectarse por cables que deben llegar al maletero del vehı́culo. Para esto la ventana lateral del maletero fue retirada y reemplazada por una goma con un a soporte metálico para alojar equipamiento 28 Figura 4.3: Intervención en la ventana del maletero ducto que lleva al exterior. En la Figura 4.3 se puede apreciar esta intervención. Esto permite llevar los cables al exterior, sin que entre agua o polvo al maletero. Figura 4.4: Botón de emergencia montado en el parachoques Sistema de parada de emergencia: Para evitar accionamientos del sistema autónomo de manera accidental mientras se trabaja cerca del vehı́culo, interruptores de emergencia fueron instalados en diversas partes. Para habilitar el sistema autónomo todos los pulsadores deben estar no activados, y en el caso que alguno se presione, el sistema autónomo se desactiva y acciona una parada de emergencia. Estos interruptores están instalados tanto en el exterior como en el interior del vehı́culo. En la Figura 4.4 se puede apreciar uno de los interruptores montado en el parachoques trasero del vehı́culo. 29 Baliza de precaución: Al momento de estar habilitado el modo autónomo o el modo telecomandado, una baliza color amarilla es activada para advertir el estado del vehı́culo. En la Figura 4.3 se puede apreciar la ubicación de la baliza. Conexión a baterı́a: Una conexión directa desde la baterı́a hasta el maletero fue agregada. Esta conexión no tiene fusible como el socket de 12 [V] del maletero, lo que permite alimentar más dispositivos. En reemplazo del fusible un disyuntor magnético de 40 [A] fue instalado como disyuntor principal, y tres disyuntores térmicos de 10 [A] para las diferentes redes eléctricas. El alternador del vehı́culo entrega suficiente potencia para alimentar todos los componentes. Instalación de radio-modem: El vehı́culo tiene instalado un radio-modem Teledesign Systems Inc. modelo TS4000B (5 [W], 450-470 [MHz]) que le permite supervisar el comportamiento del sistema autónomo durante el funcionamiento. Por este mismo canal es posible tele-comandar el vehı́culo ası́ como accionar el sistema de emergencia para detenerlo. En la Figura 4.2 se puede los radio-modem instalados a la izquierda del computador. 4.2. Hardware y Software El sistema de automatización esta compuesto de múltiples controladores y procesadores encargados de controlar el vehı́culo y realizar las tareas asignadas. El control de los actuadores y supervisión del sistema hardware especializado es empleado. Como dispositivos básico de control son usados microcontroladores PIC24HJ256GP610A en un formato de socket diseñado por AMTC. Esta placa denominada AMTC-brain es utilizada en placas de control especialmente diseñadas para cada tarea, que incorporan los transceiver y hardware adicional para cada función desempeñada. Para el control de alto nivel, un computador con estándar automotriz es utilizado procesar la información perceptual proveniente de los sensores. 4.2.1. Computador El computador corresponde a un Advantech ARK-3440. Este computador es de estándar automotriz, no tiene ventilador y un disco duro SSDa lo que le permite estar expuesto a ambientes con vibraciones. Las caracterı́sticas técnicas están expuestas en la Tabla 4.2. Con respecto al software utilizado en el vehı́culo, el sistema operativo instalado en el computador es Ubuntu 12.04. Git [45] es utilizado para el versionamiento del software implementado para ser utilizado en el vehı́culo de manera de coordinar la version que se ejecuta y supervisar los cambios sobre esta. ROS es utilizado como middleware principal, el cual se describe en la Sección 3.3. Mientras está en ejecución el sistema autónomo es posible comunicarse con el computador mediante la interfaz Ethernet desde el interior del vehı́culo. Estando en el laboratorio, el computador se conecta automáticamente a la red inalámbrica permitiéndole transferir actualizaciones del código o datos capturados. a Solid State Drive, unidad de estado solido 30 Tabla 4.2: Especificaciones técnicas del computador ARK3440 Modelo Procesador Chipset RAM Disco duro Ethernet Wifi Interfaz serial Interfaz USB Watchdog timer Voltaje Consumo tı́pico Consumo máximo Dimensiones 4.2.2. ARK-3440 Intel i7 610E 2.53GHz Intel QM57 4GB SSD 64GB 2 x GigaE Intel WiFi Link 5300 2 x RS232, 1 x RS232/422/485 6 x USB 2.0 timer 255 niveles, controlado por software 9[VDC] - 34[VDC] 38[W] 47.94[W] 220 x 102.5 x 200[mm] Sensores El vehı́culo tienen instalado diversos sensores que son usados para su navegación autónoma. Para suministrar la energı́a a los sensores se dispone de diferentes bus de poder. Cada sensor tiene su propia manera de conectarse al sistema. A continuación se presenta una lista los sensores instalados en el vehı́culo: SICK LMS291-S05: Este sensor es un LIDAR muy utilizado en sistemas robóticos. En la Tabla 4.3 se exponen las caracterı́sticas del sensor. Su popularidad esta esta dada por su frecuencia de barrido, buen rango y robustez frente a la luz solar. También su costo bajo con respecto a otros sensores le favoreció en su popularidad. Tabla 4.3: Especificaciones técnicas SICK LMS-291 Modelo Ángulo de escaneo Frecuencia de escaneo Resolución angular Resolución radial Error tı́pico Rango Temperatura de operación Interfaz de comunicación Voltaje Consumo tı́pico LMS291-S05 180° 75[Hz] 0.25° ,0.5° ,1.0° 10[mm] +/-35[mm] 30[m] (10 % de reflectividad)/ 80[m](máximo) 0 a 50 [°C] RS-422 24[VDC] +/-15 % 30[W] Entre sus cualidades negativas está su baja precisión en distancia. Otra caracterı́stica negativa es su tasa de transferencia de datos limitada, lo que le limita a no poder entregar las distancias y las reflectancias simultáneamente. 31 SICK LMS151: Este sensor LIDAR es de uso industrial de menor rango que el LMS291, pero con mayor ángulo de escaneo. En la Tabla 4.4 se muestran las caracterı́sticas del LMS151. Pese a ser de menor frecuencia de barrido que el LMS291, este LIDAR posee buena resolución angular y resolución de distancia. Ası́ como su gran ángulo de escaneo le da una gran versatilidad. Su interfaz ethernet le permite tener un mayor bandwidth comparado a otras interfases, logrando entregar las mediciones de distancia simultáneamente que las de reflectancia, enriqueciendo las mediciones. Tabla 4.4: Especificaciones técnicas SICK LMS151-10100 Modelo Ángulo de escaneo Frecuencia de escaneo Resolución angular Error tı́pico Error sistemático Rango Temperatura de operación Interfaz de comunicación Voltaje Consumo tı́pico LMS151-10100 270° 50[Hz] 0.25° ,0.5° +/-12[mm] +/-30[mm] 18[m] (10 % de reflectividad)/ 50[m](máximo) -30 a 50 [°C] Ethernet 10.8 a 30[VDC] 8.4[W] Tabla 4.5: Especificaciones técnicas SICK LD-MRS HD Modelo Ángulo de escaneo Frecuencia de escaneo Resolución angular horizontal Separación entre capas Resolución radial Error tı́pico Rango Temperatura de operación Interfaz de comunicación Voltaje Consumo tı́pico LD-MRS-400102 85° 50[Hz] 0.125° ,0.25°, 0.5° 0.8° (3.2° en total) 40[mm] +/-100[mm] 50[m] (10 % de reflectividad) -40 a 70 [°C] Ethernet 9 a 27[VDC] 8[W] SICK LD-MRS HD: Este LIDAR posee caracterı́sticas muy especiales. La primera que resalta es su capacidad de no solo disponer de una capa de barrido sino que cuatro capas de barrido simultáneos. Además implementa tecnologı́a Multi-eco, de hasta 3 ecos. Esto le permite ser mas robusto frente condiciones climáticas adversas. Tiene un tamaño reducido, y esta diseñado pensando en sistemas móviles. En la Tabla 4.5 se muestran sus caracterı́sticas relevantes. 32 Este sensor además es muy compacto y liviano. Es capaz de entregar las detecciones además de algunas banderas con información extra sobre la medición. Pese a todo esto la practica ha mostrado que no es muy preciso ni constante detectando superficies del terreno, su habilidad de tener 4 capas le permite discriminar obstáculos directamente. Otra información relevante que entrega un sensor es la duración del eco recibido, la cual es entregada en metros. Este valor tiene correlación con el ángulo de observación de la superficie observada. Crossbow NAV440: Es una INSa marca Crossbow que además incorpora un receptor GPS. Esta unidad realiza la integración de las mediciones de los acelerómetros, giróscopos y magnetómetros, para estimar el desplazamiento realizado. Esta fusión lo realiza internamente mediante un filtro de Filtro de Kalman Extendido (EKF). La utilización del GPS le permite referenciar globalmente sus estimaciones. Algunas caracterı́sticas técnicas son expuestas en la Tabla 4.6. Tabla 4.6: Especificaciones técnicas Crossbow NAV440 Modelo NAV440 Frecuencia de salida 100[Hz] Precisión de orientación (pitch,roll) <0.4° Precisión de orientación (yaw) <1.0° rms (magnético) Precisión de posición <3[m] Error velocidad angular <10[°/h] Temperatura de operación -40 a 71 [°C] Interfaz de comunicación RS232 Voltaje 9 a 42[VDC] Consumo tı́pico <4[W] Kvaser Leaf Light HS: Corresponde a una interfaz CAN instalada para que el computador pueda recibir y transmitir información en un bus CAN. El bus al que esta conectado es el bus CAN de automatización, y no es el powertrain CAN bus b del vehı́culo. En este bus se publica mucha información referente al vehı́culo y hablar en el podrı́a afectar el funcionamiento de este. El computador para obtener información del powertrain lo hace mediante el gateway CAN. Este se conecta a ambos buses y retransmite los mensajes de interés del powertrain al bus de automatización, sirviendo de filtro para no atender tantos mensajes. Esta interfaz se conecta al computador mediante USB, y es accedida mediante la librerı́a canlib. Radar Delphi ESR: Es un radar de uso automotriz, utilizado en vehı́culos comerciales. La sigla ESR proviene de Electronically Scanning Radar c , esto implica que no tiene partes móviles como los radares tradicionales, donde el barrido es un movimiento mecánico a Inertial Navigation System, sistema de navegación inercial CAN principal de más bajo nivel del vehı́culo c radar de barrido electrónico b bus 33 de la antena. Posee dos lóbulos de detección, uno de angosto de 20° de apertura que le permite medir hasta 174 [m] y uno ancho de 90° de apertura hasta 60 [m]. En su funcionamiento normal, es capaz de integrarse al bus CAN del vehı́culo y adquirir los datos necesarios para sus calculo, y controlar el sistema de velocidad del vehı́culo, permitiéndole disminuir la velocidad o frenar. En la Tabla 4.7 se exponen sus caracterı́sticas. Tabla 4.7: Especificaciones técnicas Delphi ESR Modelo Delphi ESR Frecuencia de salida 20[Hz] Rango de velocidades -100 a 25 [m/s] Rango de distancias 60[m] / 174[m] Apertura de detección 90° / 20° Interfaz de comunicación CAN Voltaje 12[VDC] Consumo tı́pico aprox 10[W] Por el principio de funcionamiento del radar, internamente se obtiene información de velocidad con mejor precisión que de posición. Internamente a estos objetos se les hace seguimiento y la información entregada finalmente corresponde a detecciones de objetos con su posición, velocidad y aceleración. El radar esta conectado el bus CAN de automatización pero solo interactúa con el computador, el cual le provee la información necesaria para funcionar. Cámara de espectro visible: En el vehı́culo existen dos cámaras de espectro visible instaladas. La primera de ellas es la AVT Manta G-046C y la segunda corresponde a una Sony Playstation Eye. En la Tabla 4.8 se muestran las comparativas entre sus caracterı́sticas. Tabla 4.8: Comparativa entre cámaras Modelo AVT Manta G-046C Tipo de sensor CCD Máximo framerate 67[fps] Máximo tamaño de imagen 780 x 580 Lente 8mm F=1.4D D=45° Tipo de interfaz GigaEthernet Voltaje 8 a 30[VDC] Sony Playstation Eye CMOS 120[fps] 640 x 480 D= 56° o 75° USB 2.0 USB Originalmente la cámara Manta G-046C fue elegida para realizar detección de camino, y su conveniente interfaz de conexión. La Playstation Eye fue agregada posteriormente, para supervisión pero gracias a sus buenas caracterı́sticas y bajo costo se siguió utilizando. Posee un FOVa mayor y una sensibilidad elevada, con lo que puede obtener imágenes con menor motion blur. a Field Of View, campo de visión. Corresponde ángulo solido sobre el cual el sensor captura información 34 4.3. Discusión En este Capı́tulo se han presentado las caracterı́sticas del vehı́culo y sus modificaciones, los sensores y el sistema computacional. Estos elementos son la base sobre la cual se plantea la metodologı́a de mapeo propuesta, la cual tiene caracterı́sticas muy particulares dadas las limitaciones y restricciones impuestas por todo este sistema. En el capı́tulo siguiente se expone la metodologı́a propuesta por esta Tesis Doctoral. 35 Capı́tulo 5 Metodologı́a de mapeo del terreno en tiempo real Índice 5.1. Observaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.1.1. Pipeline de las observaciones . . . . . . . . . . . . . . . . . . . . . 37 5.1.2. Extracción de caracterı́sticas . . . . . . . . . . . . . . . . . . . . . 39 5.2. Modelo cinemático del vehı́culo . . . . . . . . . . . . . . . . . . . . 43 5.3. Estimación del estado del vehı́culo . . . . . . . . . . . . . . . . . . 46 5.3.1. Estimación directa . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.3.2. Estimación mediante EKF . . . . . . . . . . . . . . . . . . . . . . . 48 5.4. Proyección espacial de observaciones . . . . . . . . . . . . . . . . . 52 5.5. Fusión de Observaciones en mapa del terreno . . . . . . . . . . . 53 5.5.1. Nubes de puntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.5.2. Mapas de grilla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 El proceso de mapeo del entorno propuesto consta principalmente de dos etapas: Una primera etapa consiste en obtener una observación del entorno que represente alguna caracterı́stica relevante del entorno. Una segunda etapa consta en determinar espacialmente donde se encuentra esta caracterı́stica. Dado el enfoque de mapeo de entorno que se está buscando solucionar, esta segunda etapa consiste en determinar cuanto se ha desplazado el vehı́culo desde la última observación y como ha cambiado su pose tridimensional. El mapeo de entorno propuesto no busca conseguir una coherencia espacial global como serı́a necesario para aplicaciones de geomensura. En esta caracterı́stica se diferencia la metodologı́a propuesta del SLAM. La coherencia local-temporal es la necesaria para una navegación apropiada y segura, pero que cumpla con los requerimientos temporales presentados. En este Capı́tulo se describirá el procesamiento realizado a las observaciones provenientes de los sensores de distancia LIDAR. Se describirá también la metodologı́a para la estimación del estado del vehı́culo, describiendo su modelo de movimiento y las diferentes opciones propuestas para la estimación del movimiento de este. También se describirá de qué manera es realizada la proyección de una observación a un marco de referencia “global”, ası́ como las diferentes propuestas de medio de almacenaje e integración de estas observaciones. 5.1. Observaciones Como observación entenderemos la información relevante ubicada en el espacio que se puede utilizar para identificar el entorno del robot. La principal fuente de estas observaciones de este sistema proviene de los sensores LIDAR del vehı́culo (Sección 4.2.2). Estos sensores contienen información espacial (x, y, z)t de la presencia de un objeto. Pero además de las información espacial de cada medida, la relación entre ellas aporta información relevante. Dependiendo del tipo de sensor, estos pueden aportar información extra recopilada por su mecanismo de funcionamiento. Dentro de los enfoques usados en mapeo, las observaciones son fusionadas espacialmente y posteriormente caracterı́sticas son extraı́das de la fusión. Este enfoque funciona bien si el resultados de esta extracción no es requerida con urgencia inmediata, por ejemplo en el caso de la construcción de un mapa para ser usado posteriormente. Esta fusión y extracción de caracterı́sticas de muchos datos suele ser costosa en tiempo, por lo que su utilización en una aplicación en tiempo real suele quedar descartada, como suele ocurrir con los métodos de SLAM tradicionales. Este enfoque además tiene en contra que requiere de la integración de observaciones para la extracción de caracterı́sticas, agregando latencia a la extracción. El enfoque propuesto aquı́ consiste en la utilización de caracterı́sticas pero solo de ı́ndole local temporal y espacial. De esta manera la latencia del flujo de información es baja, y puede ser utilizada en la toma de decisiones. Las caracterı́sticas propuestas sin caracterı́sticas de baja carga de cómputo, que utilizan la información instantánea disponible y no requieren de muchas observaciones integradas. 5.1.1. Pipeline de las observaciones El esquema de flujo de datos implementado para las observaciones corresponde a un pipeline. En la Figura 5.1 se muestra un diagrama del flujo de datos y nodos involucrados en el proceso, partiendo a la izquierda con la adquisición y terminando a la izquierda en la utilización de las observaciones enriquecidas. 37 Las etapas relevantes del flujo son: Nodo driver: Es el encargado de comunicarse directamente con el sensor a través de la interfaz fı́sica. Controla su configuración, adquiere las observaciones, las interpreta para generar el mensaje y las publica en su tópico correspondiente. Puede recibir mediante llamadas a servicios u mensajes de control cambios en la configuración del sensor. Hay que notar que diferentes modelos de sensores pueden entregar sus observaciones en formatos diferentes y agregar información adicional propia del sensor en el mismo mensaje. Nodo proyección y enriquecimiento En este nodo se realiza la proyección espacial de la observación del sensor LIDAR. Hasta el momento las observaciones están referenciadas al sistema de coordenadas centrado en el sensor, siendo necesario proyectarlas al sistema de coordenadas local al vehı́culo. Esta proyección es realizada en coordenadas cartesianas(x, y, z). Para realizar esta proyección es necesario disponer del estado del vehı́culo para saber su pose con respecto al sistema de coordenadas local al vehı́culo. Esta pose es obtenida de la estimación realizada que es explicada en la Sección 5.3. Por sı́ sola esta proyección implica una perdida de información, por lo que además de las coordenadas espaciales resultantes se agrega canales de datos con la información necesaria para suplir esta perdida. A este proceso se le llama enriquecimientoa de las observaciones. Un ejemplo de la información perdida al realizar la proyección es la pose del sensor al momento de la observación, lo que se refleja en la perdida de la distancia y ángulos en que fueron observadas. El instante de tiempo en que fue observada también es relevante y es incorporada al observación enriquecida. También hay información proveniente de otras fuentes que es agregada. Un ejemplo de esto es la información RGBb del punto espacial. Si el punto espacial es posible proyectarlo dentro de los margenes de una imagen observada por una cámara, la información de color es asociada a la observación espacial. Esta proyección es explicada en la Sección 5.1.2. Además dependiendo del modelo del sensor, existe información intrı́nseca propia de cada sensor, como por ejemplo reflectancia de la observación, duración del pulso observado, capa y eco de la observación, entre otras. Además otras caracterı́sticas son agregadas a las observaciones. Algunas de estas caracterı́sticas requieren parámetros propios dependiendo del sensor utilizado, como algunas no pueden ser extraı́das por la naturaleza del sensor. Estas caracterı́sticas son explicadas con mayor detalle en la Sección 5.1.2. La salida de este módulo es mensaje en formato de PointCloud multidimensional debido a que contiene la proyección cartesiana, la información original para cada observación y los canales con información agregada. Una de las cualidades de la implementación realizada es su fácil extensión a nuevas caracterı́sticas si grandes modificaciones. Nodo final: Corresponde al nodo que utilice la información de las caracterı́sticas generadas. Esto puede ir desde la construcción de un mapa en base a ellas o en la generación de a enhance b Red, Green, Blue 38 alertas, dependiendo del uso que se le de a la caracterı́stica extraı́da. También puede corresponder a un clasificador que permita clasificar las observaciones enriquecidas bajo alguna caracterı́sticas en particular utilizando la información agregada. Figura 5.1: Esquema de flujo de las observaciones, desde el sensor a su utilización 5.1.2. Extracción de caracterı́sticas En esta sección se presentarán algunas de las caracterı́sticas o información agregada a las observaciones. Fusión láser-imagen En la Sección 5.1.1, una de las tareas del nodo de proyección y enriquecimiento es el agregar la información visual a la observación del sensor de distancia LIDAR. Para lograr esto, se debe encontrar la relación de transformación existente entre el punto espacial de la observación y el pixel correspondiente en la imagen, siendo posible que no exista. Uno de los requerimientos para que esta transformación sea valida es que ambos puntos sean observables desde ambos sensores, ya que un punto espacial puede proyectarse fuera de los margenes de la imagen y en ese caso no hay información de color. Para realizar la transformación se utiliza la implementación disponible en OpenCV [16] y que ROS tiene integrada. Esta transformación esta basada en el modelo de cámara pin hole más componentes polinomiales para compensar de deformación radial [2]. Las Ecuaciones (5.1) y (5.2) corresponden a la proyección del modelo pin hole sin considerar el modelo de distorsión del lente, donde (u, v) corresponden a la posición en pı́xeles en la imagen, (X, Y, Z) son los puntos espaciales a proyectar en coordenadas cartesianas, A es la matriz de parámetros geométricos intrı́nsecos de la cámara y R|t son los parámetros extrı́nsecos de la cámara que corresponden a la rotación y traslación espacial de esta. m0 = A · [R|t] · M 0 39 (5.1) u fx v = 0 1 0 0 fy 0 X cx r1 1 r1 2 r1 3 t1 Y cy · r2 1 r2 2 r2 3 t2 · Z 1 r3 1 r3 2 r3 3 t3 1 (5.2) El procedimiento de obtención de los parámetros intrı́nsecos y deformación radial de la cámara es llamado procedimiento de calibración. En [58,59] es propuesto un procedimiento de calibración mediante un patrón de geometrı́a conocido (originalmente era utilizado un patrón de cuadrados, pero evolucionó en un chessboard a ) que es mostrado desde varias perspectivas y en todo el campo visual de la cámara (Figura 5.2). A partir de estas imágenes son calculados los parámetros geométricos y el patrón de distorsión. Figura 5.2: Ejemplo de calibración una cámara mediante un chessboard [2] Esta proyección no es biyectiva, mientras un punto espacial solo tienen un pı́xel donde proyectarse, por la naturaleza plana de una imagen, un pı́xel proyectado en el espacio corresponde a un rayob , por lo que un pı́xel corresponde infinitos puntos. El tı́pico uso de esta proyección es “dibujar” la observación espacial en la imagen y corregir la distorsión de la imagen, pero en este caso se realiza al revés, el pı́xel es “dibujado” en el punto al agregar su información de color a la ubicación espacial. Como la ubicación en pı́xeles es una discretización, el color es determinado mediante técnicas de sub-pixel. Debido a que los sensores, LIDAR y cámara, no tienen la misma área de cobertura, puede ser que como resultado de la proyección se obtenga un pı́xel no existente en la imagen. Además, en un esquema en que los mensajes de información llegan de manera ası́ncrona, la imagen y el láser no tienen el mismo timestamp, por lo que hay que tener en consideración este desplazamiento extra. Como la ubicación del vehı́culo es conocida en tiempos anteriores, el desplazamiento de los puntos espaciales del LIDAR son agregados al desplazamiento del vehı́culo al proyectarla en la imagen. Como la sincronización está marcada por la recepción del mensaje de distancia del sensor LIDAR, un buffer de la imagen debe ser guarda para a tablero b rayo de ajedrez o semi-recta, es una recta que tiene un origen y se extiende hasta el infinito 40 extraer el color en un tiempo posterior, la proyección es realizada sobre la imagen en la ubicación espacial correspondiente a su timestamp. En la implementación realizada, en caso que el resultado de la proyección localice al punto fuera de la imagen, se le asignará un color negro (RGB = (0, 0, 0)) pero con canal de transparencia (alpha) igual a cero, para marcar la diferencia de un punto de color negro, y además se marca un indicador de que esa observación no fue pintada. Puntos de quiebres Los puntos de quiebresa corresponden a puntos donde mediciones LIDAR sucesivas se pueden clasificar como interrumpidas. Estas interrupciones pueden estar dadas por sombras de objetos mas cercanos o por cantos del objeto observado. Estos puntos permiten definir agrupaciones de puntosb , donde una grupo de observaciones contiguas deberı́an ir de punto de quiebre a otro. k(r, φ)l − (r, φ)l−1 )k > ri−1 · sin∆φ + 3σr sin (λ − ∆φ) (5.3) Para la implementación se utilizo lo propuesto en [28], donde se utilizan caracterı́sticas geométricas e intrı́nsecas al sistema de medición LIDAR rotacional. En la Ecuación 5.3 se expresa como se discrimina un punto de quiebre. (r, φ)l corresponde a la observación i, ∆φ es el paso angular entre mediciones, σr es la desviación estándar de la medición de distancia propia del sensor y λ es un parámetro de ajuste de máximo separación entre medidas. Este enfoque es debido a que dependiendo de la distancia de la observación depende de cuanto es necesario considerar como una ruptura de las observaciones. Puntos de adyacentes y cúmulos Los puntos adyacentes son obtenidos a partir de los puntos de quiebres explicados anteriormente. Corresponde a cuantos puntos hay hasta el siguiente punto de quiebre, esto hacia la derecha y la izquierda. Esto permite saber si hay que considerar vecindades de los puntos sin tener que explorar el arreglo de observaciones. Los cúmulos es una etiqueta agregada a los datos que identifican agrupaciones de observaciones contiguas. Donde el número de observaciones de un cúmulo corresponden a los adyacentes hacia ambas direcciones más uno. Estas etiquetas son incrementales desde izquierda a derecha, partiendo de 0. De esta manera si es necesario saber cuantos cúmulos hay solo basta buscar el extremo derecho. Índice de curvatura El ı́ndice de curvatura corresponde a una estimación de la curvatura entre observaciones sucesivas. Esto permite obtener información geométrica o de como están dispersas las observaciones dentro de un cúmulo. La Ecuación 5.4 expresa el cálculo de este ı́ndice. indiceCurvaturai = p ~lef t − p~i × p~right − p~i p ~lef t − p~right a breakpoints b clusters 41 (5.4) Este ı́ndice esta basado en el calculo de áreas de triángulos utilizando producto cruz vectorial. Para cada punto es calculado p~i es buscado un p~lef t como el mı́nimo entre sus adyacentes hacia la izquierda y un número fijo que representa la máxima diferencia angular de las medias a tomas. Análogamente se define también p~right . Un mayor valor de este ı́ndice permite determinar cuando un cúmulo de observaciones presenta un cambio de dirección como puede ser en una solera o una esquina en una pared por ejemplo. En caso de ser bajo este ı́ndice, indica una alineación de las observaciones. Hay que tener en cuenta que debido a la precisión de las mediciones de distancia, a distancias cercanas este indicador serás más ruidoso por que la relación de distancia entre puntos adyacentes y distancias observadas al sensor. Flags Flags o banderas corresponde a una estructura de datos que permite almacenar información binaria pertinente a una observación. Esta flag permite recuperar de manera directa si una observación tiene o no registra alguno de las caracterı́sticas. También en esta estructura se almacenan algunas de las caracterı́sticas entregadas por algunos sensores en particular. Por ejemplo el LDMRS, entrega si una observación es transparente (existe algún eco detrás de esta observación) o si es ruido meteorológico. También si un la observación tiene incorporada color es registrado en esta estructura. Toda mensaje de observaciones tiene agregada este canal, ya que se utiliza como canal de control. Índices Corresponde a un número entero que permite recorrer mediciones validas de manera contigua. En un sensor LIDAR de una capa no es mucho aporte, pero para un sensor multieco como es el caso del sensor LDMRS, permite recorrer las observaciones por capas, ası́ como también se le agrega un ı́ndice para recorrer las observaciones de manera vertical. Básicamente estos ı́ndices están implementando un mapeo para recorrer de manera ordenada las observaciones. Caracterı́sticas del sensor LDMRS Las mas relevantes caracterı́sticas que entrega únicamente el sensor LDMRS corresponde a: DeltaTime, EchoWidth, Layer, Echo y Transparent. DeltaTime corresponde a cuanto tiempo a transcurrido desde que se empezó a realizar una medición. Esto permite saber exactamente en que momento se observo la medición. Otros sensores estos tiempos los consideran constantes y solo dependientes del ángulo, pero como este sensor tiene varias capas, estos tiempos se entregan explı́citamente. EchoWidth es una medición de distancia de cuanto tiempo se observo un eco. Indirectamente significa el tiempo de duración del eco, pero se entrega en unidades de metro. Este permite saber que tan perpendicular fue el rebote del láser sobre la superficie. Layer y Echo son la información relevante por ser un sensor multi-capa y multi-eco. Identifica que a que eco corresponde y en que capa fue observado. Una observación no es Transparent si es que es el ultimo eco percibido. 42 Caracterı́sticas del sensor LM151 La única información extra que entrega este sensor es la intensidad de la reflectancia percibida de vuelta. Esto permite interpretar en cierta medida el “color” en infrarojo del material sobre el que reboto la observación. Existen metodologı́as para con esta información realizar correcciones de distancias. Por ejemplo, al observar la reflectancia es posible discriminar entre pavimento, pintura de calle, pasto, vehı́culos. 5.2. Modelo cinemático del vehı́culo El modelo de movimiento del vehı́culo planteado corresponde a la de un vehı́culo con cuatro ruedas, de las cuales dos son orientables para cambiar la dirección del movimiento. Esta orientación de cada ruedas debe ser coordinado para obtener un movimiento adecuado. El ángulo de las ruedas deben cumplir con la condición de Ackermann [17]. Esta condición geométrica representada en forma de ecuación se expresa en (5.5) y corresponde a que todas las ruedas deben tener el mismo centro de giro como se muestra en la Figura 5.3. track corresponde a las distancia entre las ruedas frontales, wheelbase es la distancia entre eje trasero y eje delantero, y O es el centro de rotación. cot (α)o − cot (α)i = track wheelbase (5.5) Figura 5.3: Visualización gráfica de la condición de Ackermann La condición de Ackermann es necesaria para tener un movimiento sin desplazamiento lateral de las ruedas bajo condiciones estáticas o bajas velocidades. Bajo estas condiciones no hay fuerzas laterales en las ruedas. En una implementación real de un sistema de dirección de un vehı́culo no siempre se cumple la condición de Ackermann en todo su recorrido, ya que condiciones más dinámicas es requerido otro comportamiento intencionalmente. Considerar la 43 existencia de un único radio de rotación del vehı́culo al desplazarse es una buena aproximación como modelo cinemático. El movimiento del vehı́culo está definido para este modelo como un movimiento circular uniforme instantáneo en un plano, del cual el radio de giro es modificado mediante el ángulo del volante. El desplazamiento del vehı́culo está dado por la velocidad de este. En un esquema de vehı́culo autónomo, la referencia de entrada a la dirección y a la velocidad es conocida, pero cuando lo conduce una persona no, por esta razón se decidió no utilizar las referencias de entradas y solo los valores observados del vehı́culo. El modelo de movimiento se implementó pensando tener un sistema de uso general, sin considerar el comportamiento interno del vehı́culo y sólo basarse en su movimiento, y no depender del funcionamiento interno que no siempre esta disponible. De la condición de Ackermann se puede deducir también que el movimiento de cada rueda no es simétrico al momento del virar a la izquierda o a la derecha, por lo que el ángulo de una rueda no es un buen ángulo a considerar para definir el estado del vehı́culo. Si se hace un modelo de bicicleta equivalente para el vehı́culo, esto es considerar una rueda “virtual” al centro del eje delantero, que cumpla con la condición de Ackermann, y considerar ese ángulo como el ángulo de dirección. En la Figura 5.4 se aprecia el modelo equivalente y del cumplimiento de la condición de Ackermann se obtiene la Ecuación (5.6), que es la relación existente entre los tres ángulos anteriores. cot (α) = cot αi + cot αo 2 (5.6) Figura 5.4: Modelo equivalente de bicicleta y radio de giro El ángulo α no es medible en un vehı́culo real por que no existe fı́sicamente como tal. Lo mismo ocurre con el radio de giro. El ángulo del volante αwheel si existe, sin embargo la relación de este ángulo con α no es conocida a priori pero deberı́a ser cercana a lineal. Geométricamente, a partir de la Figura 5.4 es posible deducir que existe una relación geométrica entre α, wheelbase y el r, dado que el angulo α se repite entre las ruedas y el centro de rotación. Esta relación se expresa en la Ecuación (5.7). sin (α) = wheelbase r 44 (5.7) Pese a que la implementación de la dirección del vehı́culo αwheel no es lineal con respecto α [17], pero se busca una aproximación lineal a esta relación con la forma de la Ecuación (5.8), donde β es una constante real. (5.8) α ≈ β · αwheel Mediante datos experimentales de conducción del vehı́culo se puede encontrar una relación entre estos datos, pero α no es posible medirlo directamente, por lo que se busca un método indirecto para su estimación. De la relación entre r y α, en conjunto con una aproximación para aceleraciones bajas proveniente de un movimiento circular uniforme vt = ωt · rt que corresponde a la velocidad lineal para movimientos circulares sin aceleraciones. Esta aproximación suficientemente válida para casos de bajas aceleraciones de vt . De lo anterior es posible despejar una relación para ω y α (Ecuación (5.9)). vt · sin (αt ) (5.9) wheelbase Si además se hace notar que α esta acotado en un rango pequeño, es posible aproximarlo como α ≈ sin (α) y de esta manera se llega a la expresión de la Ecuación (5.10). Con γ una constante real. ωt = ωt ≈ vt · β · αtwheel ≈ vt · αtwheel · γ wheelbase γ · αtwheel = (5.10) ωt vt (5.11) 0.15 ωt rad [ ] νt m 0.1 0.05 0 −0.05 −0.1 −4 −3 −2 −1 0 1 2 3 4 5 6 αtwheel [rad] Figura 5.5: Discretización de datos para la estimación de γ En base a la Ecuación (5.10) y mediante datos experimentales de conducción, utilizando ωzt como ωt que es la velocidad angular en el eje z de la IMU y vt y αtwheel proveniente directamente del bus CAN del vehı́culo, de esta manera la Ecuación (5.10) es transformada en la Ecuación (5.11). Como los datos para la estimación son numerosos y no tienen una distribución uniforme con respecto al ángulo en la representación de αwheel y además tienen error asociados a la medición por no ser medidos con vt constante, la estimación se realiza sobre una simplificación de los datos. Los valores de αwheel son discretizados y a los valores de ωt y vt se le calcula la media para cada celda de discretización de αwheel . El gráfico en la Figura 5.5 muestra estos datos sobre un recorrido de αwheel . 45 En el gráfico en la Figura 5.5 se expresa la Ecuación (5.11), el gráfico expresa la relación entre γ · αwheel y αwheel y esto implica que realizando una regresión lineal sobre estos datos es posible determinar γ. Buscando una linealización de la forma: y(x) = κ · x, se determina que κ = 0,02359[1/m], con un R2 = 0,9992. En el gráfico en la Figura 5.6 se muestra los datos utilizados en la regresión y la linealización obtenida. 0.1 angulos positivos angulos negativos aproximacion lineal 0.08 0.06 ωt rad [ ] νt m 0.04 0.02 0 −0.02 −0.04 −0.06 −3 −2 −1 0 1 2 3 4 5 αtwheel [rad] Figura 5.6: Datos sobre los que fue realizada la regresión y la linealización resultante Además de poder determinar γ, también se logra determinar β, resultando en una relación de reducción de αwheel a α de 16,27 : 1. Este valor es cercano del rango tı́pico para este tipo de vehı́culos, como lo expresa Reza Jazar en su libro [17]. 5.3. Estimación del estado del vehı́culo Como se explicó anteriormente, la estimación de cuanto se ha desplazado y como ha cambiado la orientación del vehı́culo de un momento a otro es una de las bases para poder integrar las observaciones de un terreno. La primera tarea consiste en definir que es el “estado” o al menos que es lo que se busca que contenga. En este caso se entenderá como estado a las variables necesarias para poder definir la posición y orientación del vehı́culo, y las condiciones internas del vehı́culo que permitan determinar una nueva posición y una nueva orientación en un ∆t en el caso de no cambiar las condiciones del vehı́culo. De esta manera se define un estado mı́nimo como el estado que contiene las coordenadas espaciales del vehı́culo p~, la orientación ~q y velocidad lineal v. Siendo h iT h iT p~ = x y z la posición tridimensional en el eje de referencia fijo y ~q = qw qx qy qz el cuaternión con la orientación del vehı́culo. Se proponen dos estimaciones de estado, las cuales tienen enfoques distintos y se utilizarán para comparar el rendimiento del sistema. 5.3.1. Estimación directa Esta estimación del estado ~x está basada en la utilización directa de la información proveniente del vehı́culo y de la IMU sin ningún filtro extra. El nombre estimación directa o pseudo-estado viene del hecho que los datos se utilizan directamente y no mediante un filtrado o procesamiento extra, por lo que tampoco tiene etapa predictiva. Solamente el vector p~ es calculado como la integración de la velocidad orientada con ~q proveniente de la IMU. 46 El vector ~x está conformado de la siguiente forma: h ~xt = p~t ~qt vt iT (5.12) La actualización de la posición p~t es calculada como: p~t = p~t−1 + ~qt ◦ ∆~pt ◦ ~qt? (5.13) Con ∆~pt definido como el desplazamiento del vehı́culo siguiendo una lı́nea recta durante ∆t (Ecuación (5.14)). Este modelo de desplazamiento está basado en que es posible aproximar la trayectoria por un ∆~pt recto y después una rotación. La frecuencia a la que se calcula este estado es del orden de 300[Hz]. A esta frecuencia se calculan pequeños desplazamientos por lo que la aproximación tiene validez para el rango de velocidades que se utiliza. Además esta frecuencia está sobre las frecuencias de las observaciones de los sensores evitando tener dos observaciones consecutivas sin cálculo de desplazamiento entre ellas. En la Figura 5.7 se muestra el concepto de esta aproximación. h ∆~pt = v · ∆t 0 0 iT (5.14) Figura 5.7: Aproximación de trayectoria en caso del estado directo Además ~qt es calculado directamente a partir de la orientación entregada por la IMU, pero los valores vienen como pitch a , roll b y yaw c . Por eso es necesario realizar una conversión a la representación como cuaternión mediante la Ecuación (5.15). Esta ecuación utiliza la conversión definida por la función definida en la Ecuación (5.16). a cabeceo b alabeo c guiñada 47 U IM U ) , θt ~qt = qY P R (ψtIM U , φIM t (5.15) cos ( 2θ ) · cos ( φ2 ) · cos ( ψ2 ) + sin ( 2θ ) · sin ( φ2 ) · sin ( ψ2 ) sin ( θ ) · cos ( φ ) · cos ( ψ ) − cos ( θ ) · sin ( φ ) · sin ( ψ ) 2 2 2 2 2 2 qY P R (ψ, φ, θ) = φ ψ φ ψ θ θ ) · sin ( ) · cos ( ) + sin ( ) · cos ( ) · sin ( ) cos ( 2 2 2 2 2 2 cos ( 2θ ) · cos ( φ2 ) · sin ( ψ2 ) − sin ( 2θ ) · sin ( φ2 ) · cos ( ψ2 ) 5.3.2. (5.16) Estimación mediante EKF El otro método de estimación del estado es mediante un filtro de Kalman Extendido [53], el que fusiona la información proveniente de las diferentes fuentes y genera un estado. El vector de estado ~xt incluye todas las variables mı́nimas que definen el estado del vehı́culo, agregando algunas nuevas: h ~xt = p~t ~qt vt αtwheel ηt iT (5.17) Con p~t siendo un vector 3D representando la posición de relativa de SL relativo a SG , ~qt es un cuaternión representado la orientación de SL a relativo a SG b , vt es un escalar representando la rapidez del vehı́culo, αwheel es un escalar representando el ángulo del volante y ηt la varianza de la vibración del vehı́culo en el eje z del vehı́culo. El problema de la estimación es resuelta en este caso con la implementación de un filtro de kalman extendido o EKF por su sigla en ingles. El estado αtwheel es agregado para la etapa predictiva y ηt para la etapa de fusión de datos. El ηt solo puede estar presente en este estimador por que es una estimación generada por la etapa correctiva, por lo que en el caso de la estimación directa no esta presente. A continuación se exponen las etapas predictivas y correctivas del filtro. Etapa predictiva En la etapa predictiva son usadas las ecuaciones tı́picas de un EKF : ~xt = f (~xt−1 , u~t , 0) Pt− = At · Pt−1 · ATt + Q (5.18) Con At la matriz jacobiana de las derivadas parciales de f () con respecto a ~xt , Q es la matriz de covarianza del ruido del proceso y u~t es la orden de actuación. El ruido del proceso es caracterizado y se define Q. En el modelo, u~t es considerada como desconocida, aún cuando u~t puede ser conocida para el caso de conducción autónoma. Esto es busca considerar el caso en que otro sistema, por ejemplo una persona, realice la conducción. La función f (·) es definida por las Ecuaciones (5.19) a sistema b sistema de referencia local de referencia global 48 ? p~− ~t−1 + ~qt−1 ◦ ∆~pt ◦ ~qt−1 t =p ~qt− = ~qt−1 ◦ ∆~qt vt− = vt−1 − αtwheel ηt− (5.19) wheel = αt−1 = ηt−1 Con ∆~pt como la variación tridimensional en el eje de referencia SLt con respecto a SLt−1 ,y ∆~qt la variación de la orientación de SLt con respeto a SLt−1 , siendo ∆~qt un cuaternión. El cambio de la posición del vehı́culo, en el sistema de referencia local SL , es calculado de dos maneras dependiendo del valor de αtwheel . Si αtwheel = 0: vt · ∆t ∆~pt = 0 0 (5.20) Y si αtwheel , 0: rt · sin (ωt · ∆t) ∆~pt = rt · (1 − cos (ωt · ∆t)) 0 (5.21) Con rt una estimación del radio de rotación, ωt la velocidad angular en torno al eje z de SL y ∆t el intervalo de tiempo desde la última actualización del filtro. La trayectoria del vehı́culo en ∆t es aproximada como circular. En la Figura 5.8 se muestra un esquema de la aproximación de trayectorias por arcos de cı́rculos. ωt y rt son aproximados usando la estimación de αwheel y vt en la Ecuación (5.22) y en la Ecuación (5.23). ωt = vt · αtwheel · γ rt = 1 vt = wheel ωt αt ·γ (5.22) (5.23) Con γ el factor de ajuste que depende del vehı́culo calculado en la sección 5.2. ∆~pt está definido por dos casos de αwheel , en el caso de αtwheel = 0 provoca que rt = ∞, y en este caso el limite de la Ecuación (5.21) corresponde a la Ecuación (5.20). La diferencia de la pose angular ∆~qt es calculada como: ∆~qt = qY P R (ωt · ∆t, 0, 0) (5.24) Con qY P R dada como la función expresada en la Ecuación (5.16) que convierte una orientación expresada con ángulos yaw, pitch y roll en su representación como cuaternión. El resto de los elementos del vector de estado no son actualizados en la etapa predictiva, por lo que mantienen el valor actual. 49 Figura 5.8: Aproximación de trayectoria en caso de la estimación del estado mediante EKF, implementada mediante arcos de cı́rculos sucesivos Etapa correctiva A continuación se muestran las ecuaciones tı́picas para la etapa correctiva de un EKF. Kt = Pt− HtT (Ht Pt− HtT + Rt )−1 ~xt = ~x− x− t + Kt (zt − h(~ t )) (5.25) Pt = (I − Kt Ht )Pt− Con Ht la matriz Jacobiana de derivadas parciales de h(·) con respecto a ~x− t , Rt la matriz de covarianzas del ruido de medición y Kt la ganancia de Kalman. La corrección es realizada de manera secuencial usando información perceptual obtenida de la IMU y los sensores internos del vehı́culo, ası́ como también el uso de las observaciones virtuales obtenidas del mapa de elevaciones, el cual es considerado como un soft-sensor. En el modelo se eligió transformar las diferentes mediciones (por ejemplo, la velocidad angular entorno al eje z) de los sensores al espacio del estado del filtro, y de esta manera tener una linealización exacta para la operación de este. Ası́, la función h(·) es la función identidad y Ht una matriz identidad. Esta transformación mantiene los efectos de las estadı́sticas de alto orden, mejorando el desempeño del filtro de Kalman [22]. Naturalmente, esto significa que las matrices Rt correspondiente a cada fuente de información deben ser estimadas exactamente para tener una fusión basada en filtrado de Kalman adecuada. Las matrices de covariancia del ruido de las mediciones correspondientes a la IMU y mediciones del vehı́culo son invariantes en el tiempo, y son denotadas como RIM U y Rvehicle respectivamente. La matriz de la covarianza del ruido asociada a la medición virtual, proveniente del mapa de elevaciones, es denotado como Rtmap y es cambiante en el tiempo. 50 La IMU provee observaciones que permiten actualizar los componentes de la pose, ángulo del volante y varianza de la vibración del vector de observaciones. Las medidas de orientación U y θ IM U son usadas directamente para actualizar ~ qtIM U mediante qY P R definido ψtIM U , φIM t t como la función 5.16. U IM U ~qtIM U = qY P R (ψtIM U , φIM , θt ) t (5.26) Despejando αwheel de la ecuación (5.22),y siendo la observación del ángulo del volante obtenido de la velocidad angular entorno al eje z proveniente de la IMU ωtz se obtiene: αtIM U = ωtz vt · γ (5.27) La cuantificación de la vibración del vehı́culo en el eje z es estimada como la varianza de la aceleración en el eje z de la IMU: Nf −1 ηtIM U = X i=0 (azt−i − āzt )2 Nf (5.28) Con Nf el número de muestras sobre las que se calcula, y āzt el valor promedio de la aceleración sobre las Nf muestras. ~ IM U queda definido como: Finalmente Z t ∗ IM U ~ q t IM U ~ Zt = ∗ IM U α t (5.29) ηtIM U Donde ∗ corresponde a componentes que no se actualizan y se reemplazan por las ya estimadas en el estado. El vehı́culo provee mediciones que permiten actualizar la componente de rapidez y el ángu~ vehicle . Dado que los sensores internos del vehı́culo lo del volante del vector de observaciones Z t ~ vehicle está compuesto por proveen la velocidad de las cuatro ruedas y el ángulo del volante, Z t los siguientes componentes: ∗ ∗ ~ tvehicle = 1 (v vehicle,rl + v vehicle,rr ) Z 2 t t vehicle αt ∗ (5.30) Donde vtvehicle,rl es la velocidad de la rueda trasera izquierda y vtvehicle,rr es la velocidad de la rueda trasera derecha. El mapa de elevaciones provee observaciones virtuales que permiten actualizar la pose fl fr rr ~ map . Sean hrl del vector observacional Z t , ht , ht y ht las alturas de las ruedas traserat izquierda, trasera-derecha, frontal-izquierda y frontal-derecha respectivamente. Estas alturas son obtenidas evaluando el mapa del terreno (mapheight [·] [·], arreglo definido en Sección 5.5.2) en las coordenadas normalizadas de los puntos de contacto de las ruedas con la superficie 51 estimada. Ası́, los ángulos de rotación entorno al eje x e y del vehı́culo están dados por la Ecuación (5.31). En la Figura 5.9 se muestran los ángulos reflejados en el vehı́culo. φmap = arcsin t h̄rear − h̄ft ront t wheelbase h̄lef t − h̄right t θtmap = arcsin t track (5.31) lef t right rr Con h̄ft ront = (hft l + hft r )/2, h̄rear = (hrl = (hft l + hrl = (hft r + t t + ht )/2, h̄t t )/2 y h̄t hrr t )/2. ~ map estará dado como: Ası́ Z t ∗ map map qY P R (ψt , φt , θt ) map ~ ∗ Zt = ∗ ∗ (5.32) Con qY P R dado por la Ecuación (5.16), y donde ψt corresponde al valor estimado actual de yaw de SL con respecto a SG . La matriz de la covarianza del ruido asociada a la medición virtual que provee el mapa de elevaciones Rtmap es calculada como: 0 0 map 0 Rt,q Rtmap = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (5.33) map Con Rt,q definido como: 1 0 map Rt,q = 0 0 0 1 0 0 0 0 1 0 0 0 fl fr rr · max χt , χt , χrl , χ t t 0 1 (5.34) rr Donde χft l , χft r , χrl t y χt son las varianzas asociadas a las alturas de las ruedas frontalizquierda, frontal-derecha, trasera-izquierda y trasera-derecha, respectivamente. Estos valores son obtenidos al evaluar las coordenadas normalizadas x e y de los puntos de contacto de las ruedas con el piso en el mapa de varianzas (mapvar [·] [·] arreglo definido en la Sección 5.5.2). Las matrices de la covarianza del ruido RIM U y Rvehicle son estimadas en un proceso de calibración estándar. 5.4. Proyección espacial de observaciones Debido al principio de funciones de un LIDAR, las observaciones son expresadas en coordenadas polares relativas al sensor LIDAR (Sección 3.5), donde cada observación esta compuesta por la distancia dt y el ángulo θt , y cada conjunto de observaciones tiene Nsamples . 52 Figura 5.9: Estimación de Pitch y Roll proveniente de las alturas de las ruedas Con el fin de fusionar las mediciones del sensor adquiridas en diferentes instantes de tiempo, de uno o más sensores, las observaciones son primero transformadas a coordenadas cartesianas y después proyectadas en el sistema local de referencia SL , y finalmente sobre el sistema global SG . Para la primera proyección, es necesario conocer la pose del sensor en SL , la cual SL L es dada por un vector de posición tridimensional p~Slaser y un cuaternión de orientación ~qlaser . La pose del vehı́culo, presente en el estado ~xt , es utilizada para la segunda proyección. Ası́, las mediciones LIDAR ρ~St,iG ∈ R3 son obtenidas como: h ρ~laser = 0 dt,i · cos (θt,i ) dt,i · sin (θt,i ) 0 t,i SG SG ρ~St,iG = xSt,iG yt,i zt,i h iT iT SL SL ? L = ~qt ◦ ~qlaser ◦ ρ~laser ◦ ~qlaser + p~Slaser ◦ ~qt? + p~t t,i n (5.35) (5.36) o Donde i ∈ 1, ..., Nsamples . La ecuación (5.35) es la forma “quaterniorizada” del vector SL L de orientación. La posición p~Slaser y la orientación ~qlaser corresponden a la pose del sensor en el sistema de referencia SL , la cual no cambia en el tiempo al ser una montura fija. Para cada medición LIDAR i, la varianza de la medida χt,i es estimada. Los dos principales factores considerados para esta estimación son la distancia medida dt,i y la varianza de las vibraciones en el eje z ηt definida en la Sección 5.3.2. Entonces, la estimación para χt,i propuesta está definida como: χt,i = κd · d2t,i + κη · ηt + κbase (5.37) Donde κd , κη y κbase (0,04, 0,5 y 0,1, respectivamente) son factores de ajustes calculados mediante una minimización sobre un set de datos de una superficie lisa a distintas velocidades. κd corresponde al factor aportado por la distancia de la observación, κη corresponde al aporte dado por las vibraciones al momento de observación y κbase es el aporte intrı́nseco de la medición aportado por las caracterı́sticas del sensor involucrado. 5.5. Fusión de Observaciones en mapa del terreno Una vez obtenida la observación en el sistema de referencia SG , la siguiente etapa consiste en almacenarla de alguna manera útil. Para almacenarla es necesario disponer de una 53 estructura que sea capaz de guardar la información espacial y otras caracterı́sticas de las observaciones, y también poder recuperar estas. A continuación se presentan algunas de las estructuras que se han utilizado para almacenar estas observaciones ası́ como algunas de sus caracterı́sticas fundamentales. 5.5.1. Nubes de puntos Es la manera más intuitiva de almacenar las observaciones, y consiste en almacenar cada una de las observaciones. Básicamente, son arreglos gigantes que almacenan en la información de posición cartesiana. En la Figura 5.10 se muestra un ejemplo de una nube de puntos de observaciones de sensores LIDAR. Figura 5.10: Ejemplo de nube de puntos parcial de sensor láser LMS-151, Parque O’Higgins El principal problema con las nubes de puntos es que requieren “grandes espacios de memoria” para guardar tal volumen de información y normalmente no están organizadas para búsqueda o procesamiento de los datos. Información relevante sobre su vecindad con otros puntos se puede utilizar para lograr mejoras a los sistemas de almacenamientos de nubes de puntos que permiten guardar de manera más eficiente estos datos, sin embargo son omitidos en primera instancia. Aun ası́, los volúmenes de información siguen siendo muy elevados, haciendo que en la practica, realizar procesamiento en tiempo real sea una tarea difı́cil. Es por esta razón que se busca simplificar los datos antes de realizar cualquier tipo de procesamiento. 5.5.2. Mapas de grilla El fundamento para implementar una estructura para mapas basado en grillas es su versatilidad al momento de almacenar diferentes tipos de información en la celda, ası́ como las caracterı́sticas geométricas de la estructura de grilla. Es posible acceder de manera directa a una celda y encontrar relaciones geométricas de esta con sus vecinos. La estructura propuesta tiene como fundamento que las áreas observadas no son muy extensas entorno al vehı́culo y el recorrido del vehı́culo no cubre completamente toda la 54 superficie dejando muchos espacios sin observaciones. Un ejemplo claro de esto son las calles en una ciudad donde el área de las calles es menor que el área de las cuadras. Por eso la estructura propuesta corresponde a una grilla de grillas que son inicializadas de manera dinámica y que también permite su eliminación. La abstracción de esta estructura de datos permite acceder a la información de cada celda en base a su posición cartesiana con respecto a un eje de coordenadas arbitrario, permitiendo extraer la información de cualquier punto espacial directamente. La implementación de la estructura de grilla esta compuesta por tres principales elementos: contenedor de grillas, contenedor de celdas y las celdas. El contenedor de grillas corresponde a una estructura de datos donde se almacenan grillas, que son generadas a medida que una celda es accedida. Cada grilla es almacenada indexada con el valor de una función hash de la posición espacial (x, y). Cada grilla cubre una área que corresponde un cuadrado de lado Mceldas · ∆celda , donde ∆celda es el tamaño de la celda y Mceldas es el número de celdas por lado que tienen una grilla. El contenedor de celdas corresponde a una matriz cuadrada de tamaño Mceldas × Mceldas donde cada elemento de la matriz es una celda. Cada celda es una estructura de datos que varia de la implementación de mapa necesaria, definiendo sus métodos de fusión propias. Como se mencionó antes, las grillas son posibles de eliminar basadas criterios geométricos, por lo que si el vehı́culo se aleja de cierta zona son eliminadas, esto por que solo es busca la información local del ambiente. Esto en conjunto con la función hash permite que todo el área del mapa sea una estructura donde el limite de alcance esta dado por el limite de resolución del tipo de dato de las posiciones espaciales (en este caso, representación de punto flotante). Mapa de elevaciones de un único nivel En este caso la celda esta representada como un altura y una varianza, esto implica que la estructura de mapa se comporte como un mapa de elevación 2.5D. Lo que se busca representar en este tipo de mapa es una superficie donde la altura define el limite entre el espacio ocupado y el libre, donde el libre esta sobre el ocupado. Esto genera que observar cosas desde abajo no sea interpretable. n o Las mediciones láser ρ~St,iG ; i ∈ 1, ..., Nsamples son almacenas en el mapa. Dado el hecho de que más de una medición LIDAR puede ser mapeada en una misma celda, la varianza de la medición es considerada para el proceso de fusión. Por lo tanto, el mapa almacena dos valores para cada celda: la altura medida mapheight y la varianza de la estimación mapvar . Si se asume que las mediciones LIDAR y la estimación de altura en el mapa tienen una distribución Gaussiana, ellas pueden ser fusionadas de manera usando un enfoque de óptima SG filtrado tipo Kalman [53]. Ası́, en una celda con posición xSt,iG , yt,i , un filtro Kalman 1D estima la variable de estado (altura) y su varianza como: SG SG SG + mapvar xSt,iG yt,i · zt,i χt,i · mapheight xSt,iG yt,i h SG mapheight xSt,iG yt,i = h ih i ih i h SG SG mapvar yt,i yt,i + χt,i h ih SG mapvar xSt,iG yt,i · χt,i h SG mapvar xSt,iG yt,i = h ih i i ih 55 ih i (5.38) i SG mapvar xSt,iG yt,i + χt,i h ih i (5.39) SG SG Con i ∈ 1, ..., Nsamples , xSt,iG , yt,i , zt,i correspondientes a las coordenadas cartesianas de las observaciones LIDAR. Este enfoque busca solucionar la representación de las superficies para la navegación del vehı́culo. Al extender su uso a otras tareas, el principal problema de este enfoque es la imposibilidad de representar dos observaciones muy dispares sobre una misma celda y de esta manera generando varianzas excesivas que no es posible reparar como un solo objeto, como ocurre al observar un elemento vertical(por ejemplo un poste o una pared). Por esta razón una variación a este sistema es presentado al implementar mapa de elevaciones de multi-nivel. n o Mapa de elevaciones de multi-nivel En este implementación la celda corresponde a un arreglo de intervalos que son agregadas dinámicamente. Cada intervalo almacena su altura mı́nima (Z min ), altura máxima (Z max ) y número de observaciones (N hit ). Al momento de agregar una nueva observación, esta es convertida en un intervalo como lo expresa la Ecuación (5.40): √ χt,i √ S max Zt,i = zt,iG + χt,i SG min Zt,i = zt,i − (5.40) hit Nt,i =1 SG SG Con i ∈ 1, ..., Nsamples , xSt,iG , yt,i , zt,i , χt,i correspondientes a las coordenadas cartesianas de las observaciones LIDAR y a la varianza de la observación. Al momento de fusionarlas, se recorre el arreglo de y se revisan los calces de los intervalos almacenados con el intervalo nuevo. Un calce ocurre cuando un limite del intervalo queda contenido en otro intervalo. En caso de existir un calce, la celda es actualizada como lo expresa la Ecuación (5.41): n o min Z min = min Z min , Zt,i max Z max = max Z max , Zt,i (5.41) hit N hit = N hit + Nt,i En caso de no existir calce entre los intervalos, este intervalo es agregado al arreglo. Además regularmente es posible fusionar intervalos para reducir el número de estos basado en algún criterio dados por arbitrario. En las pruebas se fusionaban los intervalos basado en que no existiera una distancia mı́nima de ∆celda , correspondiendo al tamaño de la celda. Esto se realiza de la misma manera a lo expresado en la Ecuación (5.41), pero agregando a los limites ∆celda . Esta implementación permite representar estructuras tridimensionales, volúmenes, basándose en un mapa de grilla, logrando representar túneles y objetos en el ambiente a costa de un mayor computo y complejidad. 56 Capı́tulo 6 Resultados Índice 6.1. Datos de evaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 6.2. Evaluación de métodos SLAM . . . . . . . . . . . . . . . . . . . . 60 6.3. Trayectorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 6.3.1. Trayectoria GPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 6.3.2. Trayectoria de Odometrı́a . . . . . . . . . . . . . . . . . . . . . . . 62 6.3.3. Trayectoria de Estimación Directa . . . . . . . . . . . . . . . . . . 70 6.3.4. Trayectoria de Estimación EKF . . . . . . . . . . . . . . . . . . . . 77 6.4. Estado y Superficie . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 6.4.1. Configuración del montaje . . . . . . . . . . . . . . . . . . . . . . . 87 6.4.2. RMSE como métrica de evaluación . . . . . . . . . . . . . . . . . . 87 6.4.3. Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 En este capı́tulo se presentan los resultados obtenidos de la metodologı́a propuesta. En una primera parte se presentan los resultados obtenidos analizando la trayectoria obtenida por los estimadores de estado. Estos estimadores son odometrı́a, estimación directa (pseudoestado) y estimación mediante EKF. Estos son comparados contra la trayectoria obtenida mediante GPS. En una segunda parte se analiza el desempeño de la estimación directa y la estimación mediante EKF al generar las superficies. Para esto realizaron diversos experimentos variando las configuraciones del sistema. La necesidad de tener un método de evaluación para los resultados fue la principal razón de los cambios en las configuración de los experimentos. Al no disponer de un ground truth de superficies o del estado del vehı́culo para realizar comparación y evaluar la validez del modelo, modificaciones a la configuración original son hechas para la utilización de uno de los sensores como ground truth. En la Sección 6.1 se describen los set de datos utilizados para la evaluación del método. En la Sección 6.2 se describe el intento de adaptación de algún método de SLAM disponible al sistema robótico. En la Sección 6.3.1 se describe la trayectoria basada en observaciones GPS utilizada para compararla con las trayectorias propuestas. En la Sección 6.3.2 se exponen las comparativas de las trayectorias generadas en base a la odometrı́a. En la Sección 6.3.3 se exponen las comparativas de las trayectorias generadas en base a la estimación directa. En la Sección 6.3.4 se exponen las comparativas de las trayectorias generadas en base a la estimación mediante EKF y el análisis de la sensibilidad del parámetro γ. En la Sección 6.4.1 se describe el montaje de sensores y las modificaciones a este para la metodologı́a de la evaluación. En la Sección 6.4.2 se describe el uso del RMSE como métrica de evaluación. En la Sección 6.4.3 los resultados y observaciones obtenidas del sistema. Finalmente en la Sección 6.4.3 se presentan ejemplos de la superficie estimada y ejemplos de malas estimaciones. 6.1. Datos de evaluación Los principales sets de datos de evaluación fueron grabado al interior del parque O’Higgins, el cual está ubicado en la comuna de Santiago, Chile. Estos sets de datos fueron capturados mientras un conductor manejaba el vehı́culo por un camino de tierra rugoso a velocidades bajas (< 10[m/s]) y a velocidades medias (< 20[m/s]) y en camino pavimentado a velocidades bajas (< 10[m/s]). Cada grabación tiene mediciones de tres sensores láser, una IMU, un RADAR, dos cámaras, un GPS y la información interna del bus CAN del vehı́culo. (ver dispositivos en la Sección 4.2.2 y detalle de los sets en el Anexo B). Como se explicó antes, el mapa del terreno es construido con las mediciones de los sensores LIDAR. El sensor SICK LMS291 y LMS151 tienen un plano de barrido, mientras que el SICK LD-MRS HD tiene cuatro. Los tres sensores LIDAR están montados en diferentes ángulos de inclinación para lograr diferentes distancias de observación. Considerando el vehı́culo sobre una superficie plana, para las observaciones del sensor SICK LMS291, el plano de escaneo impacta en el suelo a 16[m] en frente del vehı́culo. Para el caso del SICK LD-MRS, el plano de escaneo inferior llega a 19[m], mientras que los superiores no alcanzan a tocar el suelo. El plano de escaneo del sensor SICK LMS151 está en el plano YZ de SL , justo enfrente del vehı́culo (notar montaje modificado en Figura 6.34). Las observaciones de este sensor 58 permiten tener una representación con menor error de la superficie por la que se desplaza el vehı́culo, debido a que se disminuye la distancia a la que se observa. Las observaciones son menos distorsionadas por los movimientos verticales del vehı́culo y además posee una mayor densidad de observaciones. En la Figura 6.1 se puede observar un ejemplo de observaciones del conjunto de sensores. Figura 6.1: Ejemplo de observaciones en plano XY de los sensores LIDAR, LMS151(verde), LMS291(rojo) y LD-MRS(azul) La principal zona sin pavimentar utilizada está formada por un camino muy irregular de unos 800[m] de largo con pendientes ascendentes y descendentes. El camino es un recorrido hecho de tierra rodeado de pasto y algunos árboles. La diferencia de altura entre el punto mı́nimo y el máximo del recorrido es de unos 3[m] aproximadamente. En la Figura 6.2 se puede apreciar el recorrido proyectado en una imagen satélital y un ejemplo del recorrido observado mediante el sensor LM151. Para realizar la evaluación de las trayectorias generadas se utilizaron 3 recorridos en superficies pavimentadas del parque y se contrastaron con una trayectoria de un camino de tierra. Estos recorridos tienen un largo promedio de 1000[m]. Para realizar la evaluación del estimador de estado y superficies se utilizaron 6 recorridos a diferentes rangos de velocidad y sentidos del recorrido, en la Tabla 6.1 se describen las condiciones de estos recorridos. En la Figura 6.4 se presentan los histogramas de velocidad de las grabaciones en camino de tierra, normalizado por la distancia recorrida. a Imagen de GoogleMaps 59 (a) vista satelitala (b) nube de puntos Figura 6.2: Recorrido de set de datos sobre camino de tierra Figura 6.3: Ejemplo de imágenes del camino de tierra Tabla 6.1: Caracterı́sticas de grabaciones en camino de tierra y en pavimento ID de la grabación 1-2 3-6 7-9 6.2. Tipo de suelo sin pavimento sin pavimento con pavimento Rango de velocidad Condición bajo seco y soleado media seco y soleado bajo seco y soleado Evaluación de métodos SLAM Se analizó la posibilidad de utilizar alguno de los métodos de SLAM cuyas implementaciones estuviesen disponibles y fuesen compatibles con el middleware utilizado y datos 60 Figura 6.4: Histograma de velocidades por porcentaje de distancia recorrida en caminos de tierra disponibles, para realizar comparativas con la metodologı́a propuesta. Los métodos analizados están descritos en la Sección 2.3. El primer enfoque analizado es GMapping [12,13], el que debido a su enfoque planar no es posible adecuarlo al sistema perceptual. Los sensores de distancias utilizados en el vehı́culo, como está descrito en la sección anterior, están instalados inclinados con respecto al vehı́culo. El segundo enfoque analizado es RGB-D SLAM [8]. En este caso pese a que realiza una estimación de localización en seis dimensiones e integra el ambiente en tres dimensiones, la información sensorial no es compatible. Esto debido a que este método requiere de información de distancia organizada y bidimensional (como una imagen) para poder realizar los calces para la estimación de desplazamiento. La información proveniente de los sensores LIDAR, aún cuando contengan la información de color al igual que la medición del sensor Kinect, los puntos repetidos observados entre diferentes observación son insuficientes. El ultimo enfoque analizado es HectorSlam [18]. El sistema se logró adaptar de manera correcta al sistema disponible en el vehı́culo. La información sensorial es del mismo tipo a la utilizada y se generó la información odométrica en el formato necesario. Los resultados obtenidos no fueron satisfactorios, debido a que las observaciones sucesivas eran muy similares entre ellas. Gran parte de las observaciones son de la superficie del terreno y al realizar un desplazamiento no existe mayor cambio en la observación. Aún cuando se observen objetos verticales y se observe el desplazamiento en observaciones sucesiva, la observación de la superficie frente al vehı́culo es considerada como un objeto frontal, y aún cuando la odometrı́a indique desplazamiento, la corrección basada en la observación frena al vehı́culo. 61 6.3. 6.3.1. Trayectorias Trayectoria GPS Debido a la falta de un ground truth para el estado real del vehı́culo, el uso de la trayectoria generada por la mediciones reportadas por un receptor GPS son una buena alternativa en este caso. Basado en la caracterı́sticas de las estimación de posición mediante GPS [1], una vez obtenida una estimación, su error estará acotado. El receptor que se ha utilizado no posee una gran exactitud pero suficiente para comparar una trayectoria a gran escala, en el plano de la superficie terrestre, ya que la estimación de altura tiene muy baja precisión. No es directo realizar la comparación de la trayectoria GPS y las estimaciones de la trayectoria. Las estimaciones GPS son entregadas en latitud a y longitud b mientras que las estimaciones están en coordenadas cartesianas locales en metros. Para solucionar esto, las coordenadas GPS son convertidas a coordenadas UTMc [15] y se le resta la posición inicial, de esta manera quedan localmente referenciadas. Para realizar estas evaluaciones se emplearon set de datos de conducción en zonas pavimentadas dentro del parque (set 7-9) y un recorrido de camino de tierra (set 5). Debido a que las mediciones de GPS son entregadas a una frecuencia de 1[Hz], esta trayectoria tendrá un retraso con las estimaciones. La estimación del rumbo a partir de estas observaciones también tienen un retraso que se puede apreciar en las comparaciones por ser estimada a partir de dos mediciones sucesivas. Además los recorridos terminan con el vehı́culo detenido, por lo que las estimaciones de rumbo para estas trayectorias al ser calculadas en base a la diferencia de las posiciones, se vuelven muy ruidosas y malas, por lo que las diferencias de rumbo tenderán a no muy fidedignas. 6.3.2. Trayectoria de Odometrı́a En una primera evaluación se analiza la estimación de la trayectoria solo mediante la odometrı́a. Esta odometrı́a corresponde a la generación de la trayectoria basada en la Ecuación (5.10) y en la Ecuación (5.14) solo en dos dimensiones. Como la trayectoria de basada en Odometrı́a no tiene una referencia global para el ángulo inicial, esta fue alineada a la trayectoria del GPS en el tiempo inicial. En la Figuras 6.5, 6.6, 6.7 y 6.8 se muestran las comparativas entre las trayectorias. En las trayectorias están marcadas posiciones de manera de tener una apreciación de la comparación a nivel temporal, estas marcas ocurren cada 5[s]. Es claramente apreciable y esperable que la posición final no coincida con la trayectoria del GPS. En las Figuras 6.9, 6.10, 6.11 y 6.12 se muestran las diferencias de las posiciones y rumbos durante el recorrido. En estos gráficos se puede apreciar que las distancias entre las trayectorias comparadas tiende a ser creciente, lo que, esto es esperable por que la trayectoria de odometrı́a es completamente en lazo abierto con respecto a la orientación, por lo que la diferencia de rumbo no puede ser reducida. También es apreciable como el retardo en la estimación del rumbo por parte del GPS genera que las diferencias de rumbo sean muy poco estables, que sumado a la baja frecuencia de muestreo del GPS empeora la comparación. La a distancia angular desde un paralelo a la linea del Ecuador angular desde un meridiano al meridiano de referencia(Greenwich) c Universal Transverse Mercator b distancia 62 350 300 250 Norte [m] 200 150 100 50 0 GPS odometria −200 −150 −100 −50 Este [m] 0 50 100 150 Figura 6.5: Comparativa de la trayectoria GPS y Odometrı́a en grabación 7 (camino pavimentado). trayectoria de odometrı́a es calculada a una frecuencia muy superior a la del GPS, por lo que solo es comparada en los puntos en los instantes dados por el GPS. Del análisis realizado a estas trayectorias, este error viene principalmente asociado a velocidades medias y altas, y situaciones con virajes cerrados, donde el vehı́culo experimenta un comportamiento más dinámico en su trayectoria. Esto se puede corroborar al observar el desempeño de la trayectoria de odometrı́a en un recorrido a bajas velocidades. En la Figura 6.13 se puede ver como las trayectorias coinciden de manera muy cercanas durante todo el recorrido. De este análisis, el modelo de movimiento del vehı́culo basado en odometrı́a tiene un desempeño que le permite ser utilizado al momento de planificar trayectorias en distancia cortas, a nivel de un mapa local al vehı́culo. 63 200 100 0 Norte [m] −100 −200 −300 −400 GPS odometria −500 −50 0 50 100 150 Este [m] 200 250 300 Figura 6.6: Comparativa de la trayectoria GPS y Odometrı́a en grabación 8 (camino pavimentado). 64 GPS odometria 50 0 −50 Norte [m] −100 −150 −200 −250 −300 −50 0 50 100 Este [m] 150 200 Figura 6.7: Comparativa de la trayectoria GPS y Odometrı́a en grabación 9 (camino pavimentado). 65 400 350 300 Norte [m] 250 200 150 100 50 GPS odometria 0 −300 −250 −200 −150 −100 −50 Este [m] 0 50 100 Figura 6.8: Comparativa de la trayectoria GPS y Odometrı́a en grabación 5 (camino de tierra). 70 80 distancia entre GPS y odometria angulo entre GPS y odometria 60 60 50 40 grados [°] distancia [m] 40 20 30 0 20 −20 10 0 −40 0 50 100 150 200 250 0 tiempo [s] 50 100 150 200 250 tiempo [s] Figura 6.9: Diferencia de posición y rumbo entre trayectorias GPS y Odometrı́a en grabación 7. 66 50 60 distancia entre GPS y odometria angulo entre GPS y odometria 45 40 40 20 35 30 grados [°] distancia [m] 0 25 −20 20 15 −40 10 −60 5 0 −80 0 20 40 60 80 100 tiempo [s] 120 140 160 180 0 20 40 60 80 100 tiempo [s] 120 140 160 180 Figura 6.10: Diferencia de posición y rumbo entre trayectorias GPS y Odometrı́a en grabación 8. 120 60 distancia entre GPS y odometria angulo entre GPS y odometria 50 100 40 80 grados [°] distancia [m] 30 60 20 40 10 20 0 0 −10 0 50 100 150 200 250 0 tiempo [s] 50 100 150 200 250 tiempo [s] Figura 6.11: Diferencia de posición y rumbo entre trayectorias GPS y Odometrı́a en grabación 9. 67 90 20 distancia entre GPS y odometria angulo entre GPS y odometria 80 10 70 0 60 grados [°] distancia [m] −10 50 −20 40 −30 30 −40 20 −50 10 0 −60 0 10 20 30 40 50 tiempo [s] 60 70 80 90 100 0 10 20 30 40 50 tiempo [s] 60 70 80 90 100 Figura 6.12: Diferencia de posición y rumbo entre trayectorias GPS y Odometrı́a en grabación 5. 68 GPS odometria −50 −100 −150 Norte [m] −200 −250 −300 −350 −400 −450 −300 −250 −200 −150 −100 −50 Este [m] 0 50 100 Figura 6.13: Comparativa de la trayectoria GPS y Odometrı́a en grabación 1 (camino de tierra). 69 6.3.3. Trayectoria de Estimación Directa La estimación directa del estado, tal como se presenta en la Sección 5.3.1, esta basada en la utilización de la orientación entregada por la IMU y la velocidad del vehı́culo. En esta evaluación se presenta la comparación de la trayectoria generada por esta estimación y la generada de las mediciones GPS. Al igual que en el caso de la trayectoria de la odometrı́a las trayectorias GPS presentan inconvenientes por su tasa de muestreo y poca exactitud local, por lo que en distancias largas esos inconvenientes dejarı́an de importar. En las Figuras 6.14, 6.15, 6.16 y 6.17 se presentan las comparativas de las trayectorias GPS y las trayectorias de estimación directa. En las trayectorias están marcadas posiciones de manera de tener una apreciación de la comparación a nivel temporal, estas marcas ocurren cada 5[s]. Al observar estas comparaciones, inmediatamente se puede apreciar una mejora para los caso en que el vehı́culo se desplaza en superficies pavimentadas con respecto a las trayectorias basadas solo en odometrı́a. Esta mejora principalmente proviene del hecho que la estimación de orientación de la IMU provee una referencia global al rumbo gracias a su magnetómetro. El tener esta referencia externa le permite no acumular error permanente con respecto al rumbo del vehı́culo y de esta manera no acumular error en la trayectoria. En las Figuras 6.18, 6.19, 6.20 y 6.21 se muestran las diferencias de las posiciones y rumbos durante el recorrido. En estos gráficos es posible apreciar que en los casos de pavimento, los error finales de las posiciones están dentro de un radio de 10[m] aún después de recorrer más de 1000[m] en promedio. Un caso a aparte es el caso de comparación con el camino de tierra. Esta trayectoria al ser mucho más dinámica que los casos pavimentados, la IMU no logra entregar un rumbo muy similar al desplazamiento observado por el GPS. En la Figura 6.17 es apreciable como la densidad de marcadores en la trayectoria es muy baja en un comienzo mostrando que la velocidad elevada, y una curva muy dinámica pueden generar malas estimaciones de orientación a la IMU. Esto provoca que al extraviar el rumbo en un comienzo la distancia entre ambas trayectorias no logra recuperase, siendo apreciable en la Figura 6.21. En esta figura se muestra como la distancia entre las trayectorias crece desde un comienzo y sigue creciendo a lo largo del recorrido, aún cuando la diferencia de rumbo si disminuye. 70 350 300 250 Norte [m] 200 150 100 50 GPS pseudo−estado 0 −200 −150 −100 −50 Este [m] 0 50 100 150 Figura 6.14: Comparativa de la trayectoria GPS y Estimación Directa en grabación 7 (camino pavimentado). 71 200 100 0 Norte [m] −100 −200 −300 −400 GPS pseudo−estado −500 −50 0 50 100 150 Este [m] 200 250 300 Figura 6.15: Comparativa de la trayectoria GPS y Estimación Directa en grabación 8 (camino pavimentado). 72 GPS pseudo−estado 50 0 −50 Norte [m] −100 −150 −200 −250 −300 −100 −50 0 50 100 Este [m] 150 200 250 Figura 6.16: Comparativa de la trayectoria GPS y Estimación Directa en grabación 9 (camino pavimentado). 73 GPS pseudo−estado 400 350 300 Norte [m] 250 200 150 100 50 0 −300 −250 −200 −150 −100 Este [m] −50 0 50 100 Figura 6.17: Comparativa de la trayectoria GPS y Estimación Directa en grabación 5 (camino de tierra). 20 50 distancia entre GPS y pseudo−estado angulo entre GPS y pseudo−estado 18 40 16 30 14 20 10 grados [°] distancia [m] 12 10 0 8 −10 6 −20 4 −30 2 0 −40 0 50 100 150 200 250 0 tiempo [s] 50 100 150 200 250 tiempo [s] Figura 6.18: Diferencia de posición y rumbo entre trayectorias GPS y Estimación Directa en grabación 7. 74 18 60 distancia entre GPS y pseudo−estado angulo entre GPS y pseudo−estado 16 40 14 20 10 grados [°] distancia [m] 12 0 8 6 −20 4 −40 2 0 −60 0 20 40 60 80 100 tiempo [s] 120 140 160 180 0 20 40 60 80 100 tiempo [s] 120 140 160 180 Figura 6.19: Diferencia de posición y rumbo entre trayectorias GPS y Estimación Directa en grabación 8. 25 35 distancia entre GPS y pseudo−estado angulo entre GPS y pseudo−estado 30 20 25 20 15 grados [°] distancia [m] 15 10 10 5 0 5 −5 0 −10 0 50 100 150 200 250 0 tiempo [s] 50 100 150 200 250 tiempo [s] Figura 6.20: Diferencia de posición y rumbo entre trayectorias GPS y Estimación Directa en grabación 9. 75 40 30 angulo entre GPS y pseudo−estado distancia entre GPS y pseudo−estado 35 20 30 10 grados [°] distancia [m] 25 20 0 15 −10 10 −20 5 0 −30 0 10 20 30 40 50 tiempo [s] 60 70 80 90 100 0 10 20 30 40 50 tiempo [s] 60 70 80 90 100 Figura 6.21: Diferencia de posición y rumbo entre trayectorias GPS y Estimación Directa en grabación 5. 76 6.3.4. Trayectoria de Estimación EKF La trayectoria basada en la Estimación EKF es la presentada en la Sección 5.3.2. En esta evaluación se presenta la comparación de la trayectoria generada por esta estimación y la generada de las mediciones GPS. A diferencia de las anteriores comparaciones, se le agrega el análisis de la sensibilidad de la trayectoria frente a la variación del parámetro γ. Este parámetro esta presente en la etapa predictiva (Ecuación (5.22), Sección 5.3.2), y corresponde al factor utilizado en el modelo cinemático del vehı́culo (Sección 5.2). Para analizar la incidencia del modelo cinemático en la trayectoria basada en EKF, se exponen las trayectorias generadas sobre un mismo recorrido pero con variaciones del parámetroγ. El parámetro γ es modificado desde 0,5 · γ hasta 1,5 · γ en incrementos de 0,1 · γ, lo que genera 11 trayectorias. En las Figuras 6.22, 6.23, 6.24 y 6.25 se presentan las comparativas de las trayectorias GPS y las trayectorias de estimación basada en EKF. En las trayectorias están marcadas posiciones de manera de tener una apreciación de la comparación a nivel temporal, estas marcas ocurren cada 5[s]. En las Figuras 6.26, 6.27, 6.28 y 6.29 se presenta una sección de las figuras anteriores donde se puede apreciar con mayor detalle el punto final de las trayectorias y como difieren entre ellas. Visualmente a una gran escala amplia (Figuras 6.22, 6.23, 6.24 y 6.25) las diferentes trayectorias no se aprecian distintas entre si y tienen un comportamiento similar al observado en la Sección 6.3.3. Pero al observarlas a una escala menor, del orden de metros, (Figuras 6.26, 6.27, 6.28 y 6.29) se logran observar como para cada valor del parámetro γ se tiene un punto final de la trayectoria diferente. Esto es debido por que el parámetro γ es utilizado para calcular ∆~pt durante la etapa predictiva (Ecuación (5.21)), generando pequeñas variaciones en la trayectoria, pese a que durante la etapa correctiva se corrija la orientación. Estas variaciones de trayectorias pueden parecer ı́nfimas y generar trayectorias similares a las generadas por la estimación directa, pero como se analiza en la Sección 6.4, tiene una incidencia importante al momento de integrar las observaciones de los sensores. En la Figura 6.26 se puede apreciar estas diferencias debido a que el segmento final de las trayectorias quedan ubicadas paralelas una tras otra y como la correspondiente al valor original de γ queda ubicada cerca de la estimación de la trayectoria del GPS. En las Figuras 6.30, 6.31, 6.32 y 6.33 se muestran las diferencias de las posiciones y rumbos durante el recorrido, para cada variación del parámetro γ. Es posible observar como se dispersan la diferencias de las trayectorias al momento de realizar virajes generando diferencias de rumbo por momentos que se transforman en diferencias en la trayectoria a posterior. Un caso particular es el presentado en la Figura 6.33, en esta figura se puede apreciar una ocurrencia similar a la observada con la estimación directa para este mismo recorrido. Una vez que se genera una diferencia el rumbo, que es amplificada con la variación γ, las trayectorias se separan y las diferencias no se reducen debido a la forma de la trayectoria. En la Figura 6.29 se puede observar como los puntos finales de la trayectoria terminan alineados sobre la mismo rumbo de la trayectoria, caso opuesto a lo ocurrido en la Figura 6.26. 77 GPS estimaciones 350 300 250 Norte [m] 200 150 100 0.5 gamma 0.6 gamma 0.7 gamma 0.8 gamma 0.9 gamma 1.0 gamma 1.1 gamma 1.2 gamma 1.3 gamma 1.4 gamma 1.5 gamma 50 0 −200 −150 −100 −50 Este [m] 0 50 100 150 Figura 6.22: Comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 7 (camino pavimentado). 78 200 100 0 GPS estimaciones Norte [m] −100 0.5 gamma 0.6 gamma 0.7 gamma 0.8 gamma 0.9 gamma 1.0 gamma 1.1 gamma 1.2 gamma 1.3 gamma 1.4 gamma 1.5 gamma −200 −300 −400 −500 −50 0 50 100 150 Este [m] 200 250 300 Figura 6.23: Comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 8 (camino pavimentado). 79 50 0 GPS estimaciones −50 0.5 gamma 0.6 gamma 0.7 gamma 0.8 gamma 0.9 gamma 1.0 gamma 1.1 gamma 1.2 gamma 1.3 gamma 1.4 gamma 1.5 gamma Norte [m] −100 −150 −200 −250 −300 0 50 100 Este [m] 150 200 Figura 6.24: Comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 9 (camino pavimentado). 80 400 GPS estimaciones 350 0.5 gamma 0.6 gamma 0.7 gamma 0.8 gamma 0.9 gamma 1.0 gamma 1.1 gamma 1.2 gamma 1.3 gamma 1.4 gamma 1.5 gamma 300 Norte [m] 250 200 150 100 50 0 −250 −200 −150 −100 Este [m] −50 0 Figura 6.25: Comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 5 (camino de tierra). 81 148 GPS estimaciones 146 144 142 Norte [m] 140 0.5 gamma 0.6 gamma 0.7 gamma 0.8 gamma 0.9 gamma 1.0 gamma 1.1 gamma 1.2 gamma 1.3 gamma 1.4 gamma 1.5 gamma 138 136 134 132 130 128 −185 −180 −175 −170 Este [m] −165 −160 Figura 6.26: Detalle del punto final de la comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 7 (camino pavimentado). 82 GPS estimaciones −470 0.5 gamma 0.6 gamma 0.7 gamma 0.8 gamma 0.9 gamma 1.0 gamma 1.1 gamma 1.2 gamma 1.3 gamma 1.4 gamma 1.5 gamma −480 Norte [m] −490 −500 −510 −520 −530 145 150 155 160 165 Este [m] 170 175 180 Figura 6.27: Detalle del punto final de la comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 8 (camino pavimentado). 83 85 0.5 gamma 0.6 gamma 0.7 gamma 0.8 gamma 0.9 gamma 1.0 gamma 1.1 gamma 1.2 gamma 1.3 gamma 1.4 gamma 1.5 gamma Norte [m] 80 75 GPS estimaciones 70 30 40 50 60 Este [m] 70 80 90 Figura 6.28: Detalle del punto final de la comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 9 (camino pavimentado). 450 440 Norte [m] 430 420 0.5 gamma 0.6 gamma 0.7 gamma 0.8 gamma 0.9 gamma 1.0 gamma 1.1 gamma 1.2 gamma 1.3 gamma 1.4 gamma 1.5 gamma 410 GPS estimaciones 400 −120 −100 −80 −60 −40 −20 Este [m] Figura 6.29: Detalle del punto final de la comparativa de la trayectoria GPS y Estimación EKF con variación de parámetro γ en grabación 5 (camino de tierra). 84 60 25 0.5 gamma 0.6 gamma 0.7 gamma 0.8 gamma 0.9 gamma 1.0 gamma 1.1 gamma 1.2 gamma 1.3 gamma 1.4 gamma 1.5 gamma 20 40 20 grados [°] distancia [m] 15 0 10 0.5 gamma 0.6 gamma 0.7 gamma 0.8 gamma 0.9 gamma 1.0 gamma 1.1 gamma 1.2 gamma 1.3 gamma 1.4 gamma 1.5 gamma 20 5 40 0 0 50 100 150 200 60 0 250 50 100 150 200 250 tiempo [s] tiempo [s] Figura 6.30: Diferencia de posición y rumbo entre trayectorias GPS y Estimación EKF con variación de parámetro γ en grabación 7. 30 60 0.5 0.5 gamma gamma 0.6 0.6 gamma gamma 0.7 0.7 gamma gamma 0.8 0.8 gamma gamma 0.9 0.9 gamma gamma 1.0 1.0 gamma gamma 1.1 1.1 gamma gamma 1.2 1.2 gamma gamma 1.3 1.3 gamma gamma 1.4 1.4 gamma gamma 1.5 1.5 gamma gamma 25 20 0.5 gamma 0.5 gamma 0.6 gamma 0.6 gamma 0.7 0.7gamma gamma 0.8 0.8gamma gamma 0.9 0.9gamma gamma 1.0gamma gamma 1.0 1.1 gamma 1.1 gamma 1.2 gamma 1.2 gamma 1.3 gamma 1.3 gamma 1.4 gamma 1.4 1.5gamma gamma 1.5 gamma 40 20 grados [°] distancia [m] 0 15 −20 10 −40 5 −60 0 0 20 40 60 80 100 tiempo [s] 120 140 160 −80 180 0 20 40 60 80 100 tiempo [s] 120 140 160 180 Figura 6.31: Diferencia de posición y rumbo entre trayectorias GPS y Estimación EKF con variación de parámetro γ en grabación 8. 85 25 60 50 0.5 0.5gamma gamma 0.6 0.6gamma gamma 0.7 0.7gamma gamma 0.8 0.8gamma gamma 0.9 0.9gamma gamma 1.0 gamma 1.0 gamma 1.1 1.1gamma gamma 1.2 1.2gamma gamma 1.3 1.3gamma gamma 1.4 1.4gamma gamma 1.5 1.5gamma gamma distancia [m] 15 40 0.5 gamma 0.5 gamma 0.6 gamma 0.6 gamma 0.7 gamma 0.7 gamma 0.8 gamma 0.8 gamma 0.9 gamma 0.9 gamma 1.0 gamma 1.0 gamma 1.1 gamma 1.1 gamma 1.2 gamma 1.2 gamma 1.3 gamma 1.3 gamma 1.4 gamma 1.4 gamma 1.5 gamma 1.5 gamma 30 grados [°] 20 20 10 10 5 0 0 0 50 100 150 200 −10 250 0 50 100 tiempo [s] 150 200 250 tiempo [s] Figura 6.32: Diferencia de posición y rumbo entre trayectorias GPS y Estimación EKF con variación de parámetro γ en grabación 9. 50 40 0.5 0.5gamma gamma 0.6 0.6gamma gamma 0.7 0.7gamma gamma 0.8 0.8gamma gamma 0.9 gamma 0.9 gamma 1.0 gamma 1.0 gamma 1.1 1.1gamma gamma 1.2 1.2gamma gamma 1.3 1.3gamma gamma 1.4 1.4gamma gamma 1.5 1.5gamma gamma 45 40 35 0.5gamma gamma 0.5 0.6gamma gamma 0.6 0.7gamma gamma 0.7 0.8gamma gamma 0.8 0.9 gamma 0.9 gamma 1.0gamma gamma 1.0 1.1gamma gamma 1.1 1.2gamma gamma 1.2 1.3gamma gamma 1.3 1.4gamma gamma 1.4 1.5gamma gamma 1.5 30 20 10 grados [°] distancia [m] 30 25 0 −10 20 −20 15 −30 10 −40 5 0 0 10 20 30 40 50 tiempo [s] 60 70 80 90 −50 100 0 10 20 30 40 50 tiempo [s] 60 70 80 90 100 Figura 6.33: Diferencia de posición y rumbo entre trayectorias GPS y Estimación EKF con variación de parámetro γ en grabación 5. 86 6.4. 6.4.1. Estado y Superficie Configuración del montaje Como fue explicado anteriormente, el montaje original de los sensores debió ser modificado para la nueva necesidad. En este nuevo esquema el sensor SICK LMS-151 fue trasladado de su ubicación original sobre la parrilla (donde apuntaba al suelo a varios metros delante del vehı́culo) a estar montado justo delante del parachoques (montado del soporte del radiador) apuntando al suelo en la misma lı́nea del parachoques. Las principales dificultades de esta configuración corresponden a la extensión y recorrido del cable de comunicaciones y alimentación del sensor. Debido a su limitada extensión no pueden quedar tendidos de manera permanente. Una segunda dificultad es que el sensor al quedar sobresaliente de la lı́nea original del vehı́culo le impide poder circular de manera legal por caminos públicos. Además el sensor ocluye la placa patente del vehı́culo. Por estas razones, el sensor debı́a ser desmontado y montado nuevamente cada vez que el vehı́culo es trasladado al lugar de pruebas. Figura 6.34: Comparación de la modificación de la descripción del robot durante las tomas de datos, a la derecha es el montaje original, a la izquierda es la modificación El resto de los sensores siguen en su ubicación original, salvo pequeños cambios de orientación. En la Figura 6.34 se muestran una comparativa de los sensores, en ambas configuraciones, siendo el más notorio el cambio de ubicación del sensor SICK LMS-151. 6.4.2. RMSE como métrica de evaluación Para realizar la evaluación de la fusión de las observaciones y la estimación del estado se utilizó como medida el RMSEa . La Ecuación (6.1) es el cálculo del RMSE donde a y b son los ı́ndices de inicio y de fin del subconjunto de mediciones ocupadas para la evaluación. Estas cubren 120◦ delante del vehı́culo. Para ellos las medidas del sensor SICK LMS-151 montado como esta descrito en Sección 6.4.1 son comparadas con las altura almacenadas en el mapa de observaciones ya fusionado. a Root Mean Square Error 87 RM SE = v u 2 u Pb u i=a mapheight (Xsensor,i , Ysensor,i ) − Zsensor,i t b−a (6.1) La idea detrás de esta medida es que una buena estimación del estado del vehı́culo proveerá una buena estimación del desplazamiento desde donde se capturaron las observaciones e integraron hasta cuando se posiciona el vehı́culo sobre ellas. En caso de que esta sea una mala estimación, una diferencia existirá entre la superficie observada integrada en el mapa y la medición instantánea capturada por el sensor SICK LMS-151. Para cada medición del sensor SICK LMS-151 dentro del área de comparación se proyecta en la grilla se calcula el RMSE. En la Figura 6.35 se muestra a que corresponden las mediciones del sensor SICK LMS-151. Figura 6.35: Diagrama del cálculo del RMSE Una de las caracterı́sticas del RMSE, es que considera el error medio y la varianza simultáneamente. Esto conlleva a que aún teniendo una correcta estimación, el RMSE no podrá ser cero por que esta acotado por la varianza proveniente del sensor. Dentro de las caracterı́sticas de un sensor la precisión del es cuanto puede variar su medición, aún cuando tenga una perfecta exactitud. Para este sensor σ 2 es igual a 0,0122 . Realizando un desarrollo matemático de la esperanza del RMSE para el caso de una medición de una superficie perfectamente plana y perfectamente estimada pero considerando la varianza del sensor se puede determinar el valor mı́nimo esperable para esta medida. El valor resultante mı́nimo esperable por un escaneo del sensor del RMSE es 0,0101. El desarrollo de este cálculo esta incorporado en el Anexo A. 6.4.3. Experimentos Camino de tierra El sistema de estimación de terreno basado en Kalman (Sección 5.3.2) es comparado contra el sistema base (Sección 5.3.1), el cual usa directamente la información de la IMU como entrada de orientación y la rapidez del vehı́culo. Además el uso de las observaciones virtuales provenientes del mapa del terreno es analizado en conjunto con estimador de estado basado en Kalman. Ası́ las siguientes configuraciones del sistema fueron analizados: S1 “sistema base”: La información de la IMU y de la rapidez del vehı́culo son utilizadas para obtener el desplazamiento y el cambio de orientación. Ningún filtro de Kalman es 88 utilizado para la estimación de la pose o para la fusión del terreno, por lo que todas la mediciones de distancia tienen el mismo peso. S2 “Estimador de estado”: El sistema S2 corresponde al estimador propuesto usando todas las fuentes de información descritas. S3 “Estimador de estado sin feedback del mapa”: El sistema S3 corresponde al estimador propuesto usando todas las fuentes de información descritas, excepto el feedback de la altura del mapa. Como ya se ha mencionado, las mediciones obtenidas del sensor montado en el plano YZ del vehı́culo son usadas para la construcción del ground truth. Estas medidas no son incorporadas al mapa, y son comparadas con los valores de altura correspondientes de mapheight . Al no haber una manera directa de poder evaluar el error de la estimación de estadom por no poseer un ground truth de este, se debe realizar de una manera indirecta. La manera propuesta para realizar esta evaluación consiste en comparar el error de la integración del mapa con la medición frontal de la superficie del terreno sin integrarla. De esta manera, en caso de tener una buena estimación del estado conllevará a una coincidencia de los perfiles del terreno y en caso de disparidad entre ellas podrı́a significar un error de la estimación del estado. Para cuantificar esta discrepancia, tres tipos de medidas son propuestas: 1. El RMSE (Root Mean Square Error) de cada perfil laser y luego integrado sobre todo el recorrido (Ecuación (6.1)). Este valor posteriormente es normalizado por el numero total de muestras capturadas, de esta manera es comparable en diferentes recorridos, el cual es denominado RMSEsample . 2. El porcentaje del recorrido total para el cual el RMSE de S2 y S3 es mejor que el caso S1. 3. El porcentaje del recorrido para el cual el RMSE se encuentra debajo de un umbral variable. Esti genera una curva similar a una curva ROC (Receiver Operating Curve). En un primer experimento el sistema fue comparado usando las grabaciones 1 y 2 (baja velocidad). La Figura 6.36 muestra el histograma de esta velocidades sobre el recorrido total que corresponde a 1,6[Km]. La Tabla 6.2 muestra RMSE de cada sistema (1) y su comparativa (2), y la Figura 6.37 muestra la medida (3). Se puede observar que para los sistema S2 y S3 los resultados del RMSE total son considerablemente menores que el caso de S1, reduciéndose aproximadamente a un tercio de S1. También es apreciable que el rendimiento de S2 y S3 es al menos un 80 % del tiempo menor que S1. Y en el caso S2 en que se usa toda la información es ligeramente superior al caso S3 cuando se omite la información del mapa. Tabla 6.2: Resultados de medidas (1) y (2) de grabaciones 1-2 RMSEsample % mejor que S1 S1 S2 S3 −3 −3 41,5877 · 10 [m] 14,7799 · 10 [m] 14,8113 · 10−3 [m] — 81,21 % 80,26 % 89 Figura 6.36: Histograma de rapidez del vehı́culo en grabaciones 1-2 Figura 6.37: Medida (3) de grabaciones 1-2. % de celdas para las cuales RMSE es menor que un umbral. En el segundo experimento los sistemas son comparados usando las grabaciones 3-6 (velocidad media). La Figura 6.38 muestra el histograma de velocidades, sobre el recorrido total que corresponde a 3,2[Km]. La Tabla 6.3 se muestra RMSEsample de cada sistema (1) y su comparativa (2), y la Figura 6.39 muestra la medida (3). Ası́ como en el caso de las grabaciones 1-2 se puede observar que los sistemas que usan el estimador (S2 y S3) obtiene un menor RMSEsample en comparación con el sistema base, de hecho es aproximadamente dos tercios del sistema base. Los casos en que S2 y S3 son mejor que S1 y comparativamente con el caso de las grabaciones 1-2 son menores. En esta ocasión al comparar S2 y S3, S3 marca un desempeño menor que S2, siendo aproximadamente un 10 % menor que el S2. Evaluación por secciones En la sección anterior se evaluó mediante el RMSE de la superficie durante todo el recorrido, donde el área de evaluación corresponde la zona frontal del vehı́culo. Otro análisis Figura 6.38: Histograma de rapidez del vehı́culo en grabaciones 3-6 90 Tabla 6.3: Resultados de medidas (1) y (2) de grabaciones 3-6 RMSEsample % mejor que S1 S1 S2 S3 78,990 · 10−3 [m] 52,4298 · 10−3 [m] 57,8229 · 10−3 [m] — 63,18 % 59,95 % Figura 6.39: Medida (3) de grabaciones 3-6. % de celdas para las cuales RMSE es menor que un umbral. a esta evaluación corresponde al RMSE seccionado por áreas frente al vehı́culo. En la Figura 6.40 se muestra como se divide el área de evaluación. Las evaluaciones se realizaron dividiendo las mediciones del sensor frontal en siete segmentos de igual cobertura angular, y estos segmentos no tienen traslape entre ellos. Por tener una cobertura angular constante, la superficie que cubre no son iguales, pero el calculo del RMSE se realiza sobre el mismo numero de observaciones. Para cada segmento se calcula el RMSE, en base a la Ecuación 6.1 cada segmento tiene diferentes ı́ndices a y b, pero b − a es entre 34 a 35 mediciones. Algo particular surge de la existencia de un RMSE mı́nimo esperable explicado en la Sección 6.4.2 y desarrollado en el Anexo A. Cada segmento tiene un propio RMSE mı́nimo esperable, siendo mayor hacia la parte central de las observaciones y declinando en medida que la observación del sensor es más oblicua a la superficie. En la Figura 6.41 se muestra un gráfico del RMSE por secciones y el RMSE mı́nimo para esa sección. Las varianzas de las muestras también esta representado. Los datos mostrados en esta figura corresponden a datos capturados al interior del parque O’higgins por los caminos pavimentados al costado de una laguna bajo condiciones de conducción normales. De la Figura 6.41 se pueden realizar variadas observaciones. Por naturaleza del RMSE, la principal diferencia entre el RMSE medido y el RMSE mı́nimo esperable es la provocada por el error medio de la proyección de las observaciones. Son mediciones observadas e integradas a más de 15 [m] hasta que llegan al vehı́culo un error de menos de 0,05 [m]. Con respecto a la curvatura opuesta observada del RMSE con respecto al RMSE mı́nimo esperable, esto es esperable ya que una pequeña variación en la estimación ángulo roll del vehı́culo generarı́a un comportamiento de ese estilo por la diferencia de ángulo entre las dos superficies. Este error de ángulo puede estar dado por una mala estimación o por un pequeño error en el ángulo de montaje de los sensores. 91 Figura 6.40: Diagrama de secciones del RMSE 0.05 RMSE minimo RMSE 0.045 RMSE y varianza de RMSE 0.04 0.035 0.03 0.025 0.02 0.015 0.01 0.005 0 −60 −40 −20 0 angulo [grados] 20 40 60 Figura 6.41: Gráfico RMSE por secciones, con varianza y RMSE mı́nimo esperable Ejemplos de superficies En esta sección se mostraran algunos ejemplos de las superficies estimadas para realizar una análisis cualitativo. La información existen en el mapa de elevación es principalmente la existencia de observaciones sobre una celda y su altura. Además la información de color si esta disponible puede ser desplegada sobre la celda, permitiendo su uso posterior para una etapa posterior de procesamiento o solo visualización. La visualización del mapa de elevaciones puede ser un poco incomoda en un documento impreso, los ejemplos que se mostraran incluyen una imagen correspondiente al mapa y una imagen observada por la cámara visible. En la Figura 6.42 se puede observar la cobertura y el alcance de sistema de mapeo. En el centro se observa la representación del vehı́culo en conjunto con la trayectoria que ha recorrido hasta el momento, como una linea roja dejada tras su paso. Este ejemplo esta extraı́do del comienzo de la grabación número cuatro. En la escena que se observa se aprecia una superficie sin mayores cambios de alturas, dadas por las tonalidades de la superficie, hacia la trayectoria del vehı́culo. Hacia los costados del camino, por el lado derecho se observa una bajada que lleva hasta el borde de una laguna, donde en el mapa se puede apreciar una brecha sin observaciones que viene dada por la sombra del borde y por la presencia de agua. En este caso es posible observar sobre el agua por que esta zona tiene muchas plantas de loto sobre el agua. Esta brecha es claramente observable y demarca una zona que no debe ser transitada. 92 Figura 6.42: Imagen frontal y vista superior mapa de elevación, color como altura Hacia el lado izquierdo de la marcha del vehı́culo se puede apreciar en la imagen visible una subida de altura hacia el pasto, la cual se puede apreciar como un cambio de tonalidad en la vista superior del mapa. Además se pueden apreciar los troncos de arboles y sus sombras que generan sobre el mapa. Este tipo de sombras de observación son caracterı́sticas de tener pocos sensores y no se pueden solucionar teniendo esta limitación. Figura 6.43: Imagen frontal y vista superior mapa de elevación con coloración En la Figura 6.43 se puede apreciar otro ejemplo de mapa de altura. En este ejemplo a diferencia del anterior, los colores representan los colores provenientes de la imagen visible . Al momento de realizar la proyección de los sensores LIDAR, es buscan su ubicación en la ultima imagen disponible. Esto es más eficiente y más efectivo que buscar la proyección de la imagen sobre la superficie ya integrada. El observar el mapa de esta manera provoca que la percepción de altura se pierde por completo. Sólo es posible distinguir los puntos que son que no han sido observados en el mapa. Este ejemplo esta extraı́do del comienzo de la grabación número tres. En este escena se puede observar como la senda del camino es apreciable fácilmente, pero las sombras de los arboles dan mucho contraste al piso impidiendo su reconocimiento. En la información espacial están definidos los bordes y las superficies, como los estaban en la Figura 6.42. 93 Al lado izquierdo de la marcha del vehı́culo hay una pared que no permite a las observaciones del sensor LIDAR, por eso el corte abrupto que se observa. Por el lado derecho de la marcha del vehı́culo hay un canal de regadı́o el cual es apreciable nuevamente por la falta de observaciones que genera la sobra del borde sobre los sensores LIDAR. Más allá del canal, hay una planicie que esta un poco mas bajo que el camino y tienen muchos arboles. Estos arboles generan sombras sobre las superficie y por eso que lo observado tiene sectores sin observaciones. Uno de los problemas observados en el sistema de percepción es la disposición de los sensores. Existen situaciones en la limitante de disponer pocos sensores impiden observar de manera adecuada la superficie próxima al vehı́culo. Observar a mayor distancia permite tener una mayor distancia de reacción y permite una velocidad mayor de manejo. Pero el observar a una mayor distancia con el sensor genera que en situaciones de caminos con pendientes, zonas no sean observadas. Tradicionalmente, esto es solucionado mediante sensores situados a diferentes distancias. Esto podrı́a ser solucionado mediante un sistema actuado de sensores permitiendo un ángulo configurable dependiendo de la situación. Figura 6.44: Imagen frontal y vista superior mapa de elevación con coloración de una superficie no observada En la Figura 6.44 se muestra una situación como la descrita anteriormente. Corresponde a la parte más alta del recorrido de tierra, en donde al terminar el vehı́culo de subir la loma, se encuentra con una zona plana. Debido a lo empinado de la subida y el ángulo de los sensores, estos no son capaces de observar el primer trayecto sobre la loma. La extensión de la zona no observada coincide con la distancia a la cual tocan la superficie los sensores LIDAR. Y esto podrı́a ser solucionado mediante un sensor LIDAR con pitch variable. En la configuración original de sensores estas situaciones son cubiertas con el sensor LMS151, mejorando en parte estas situaciones. 94 Capı́tulo 7 Conclusiones Índice 7.1. Comunicaciones y Middleware . . . . . . . . . . . . . . . . . . . . . 96 7.2. Caracterı́sticas de los sensores . . . . . . . . . . . . . . . . . . . . . 96 7.3. Diseño e implementación del estimador de estado . . . . . . . . . 96 7.4. Mapa de entorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 7.5. Aportes del trabajo de tesis . . . . . . . . . . . . . . . . . . . . . . 97 7.6. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 7.1. Comunicaciones y Middleware Pese a que toda la primera etapa de la tesis alcanzó a estar implementada utilizado LCM, el cambio a la utilización de ROS fue acertada. ROS en su momento no estaba tan consolidado ni estable a como es actualmente, por lo que LCM fue elegido en un comienzo por su buenas prestaciones. Pero con el lanzamiento de ROS Fuerte, el proyecto dejó LCM y se mudó a la utilización de ROS. Esto permitió principalmente la utilización de las herramientas de visualización y debuggeo existentes en ROS. Los drivers de sensores que estaban disponibles en ROS fueron utilizados y los que no, fueron portados de las implementaciones previamente creadas con LCM. 7.2. Caracterı́sticas de los sensores La elección de los sensores utilizados en el vehı́culo no fueron parte de este trabajo de tesis. Probablemente de haber sido ası́, no se hubiesen seleccionado los mismos sensores. En base a las propiedades intrı́nsecas de cada sensor, se definió que función debe cumplir cada sensor dentro del sistema perceptual de manera de aprovechar al máximo la información del conjunto. Como resultado de este análisis, el sensor LD-MRS mostró poseer mejor desempeño para detección de obstáculos y el LMS291 posee buen desempeño para observar superficies. El sensor LMS151 se dejó sin una tarea fija de manera de utilizarlo tanto para detecciones como para evaluaciones dependiendo del objetivo. De las caracterı́sticas analizadas de los sensores disponibles, se definieron caracterı́sticas comunes extraı́bles de todos los sensores, ası́ como caracterı́sticas propias para cada tipo de sensor. Estas caracterı́sticas fueron utilizadas para generar reglas heurı́sticas que permitiesen en cierta medida clasificar las observaciones de manera sencilla. 7.3. Diseño e implementación del estimador de estado El estimador de estado diseñado e implementado mediante un EKF demostró ser una mejora efectiva con respecto a la estimación entregada por la INS más los datos del vehı́culo para la estimación local y la coherencia del mapa integrado. El diseño interconectado de la estimación del ambiente y la estimación del estado entrega resultados satisfactorios, obteniéndose mejores resultados que considerarlos por separado. El considerar las vibraciones del vehı́culo como parte del error de la estimación permite una mejor fusión de las observaciones. El método propuesto y utilizado en la evaluación del estimador de estado es una alternativa ad-hoc para el caso de no disponer de un ground truth contra que comparar los resultados. Al momento de comparar la trayectoria generada por el estimador de estado mediante EKF y el estimador de mediante estimación directa no existen grandes diferencias dejando en evidencia que la principal diferencia esta dada por estimación de la orientación instante a instante más que a largo plazo. Y esto es una de las limitaciones del sistema al no poder mantener la coherencia global de la trayectoria, lo cual es esperable al no tener una retroalimentación de esto. Además de la comparación de las trayectorias se puede concluir que la utilización de una trayectoria solo basada en el modelo cinemático del vehı́culo serı́a suficiente para realizar una 96 planificación de trayectoria en un corto plazo, como podrı́a ser el alcance de los mapas de entorno generados. Del análisis de la sensibilidad del estimador basado en EKF para el parámetro γ se puede concluir que pese a no a afectar a gran escala la trayectoria, si afecta a una escala menor. Se generan trayectorias levemente diferentes, las cuales podrı́an ser un aporte a la diferencia de desempeño entre el estimador EKF y el estimador directo. 7.4. Mapa de entorno El diseño de mapa de entorno presentado permite cumplir con la restricción de desempeño en tiempo real exigido. Además la estructura de mapa implementada permite de manera versátil incorporar nuevas capas de manera de almacenar nueva información o metodologı́as de fusión. La utilización de grillas de dos dimensiones para almacenar el entorno tuvo un buen desempeño para el enfoque planteado. Su fuerte integración con la estimación del estado del vehı́culo, debido a la utilización cruzada en las correcciones mantiene coherentes ambas estimaciones. Pese a no ser una representación realista del ambiente, la información presente es consistente para que un sistema de navegación pueda desplazar el vehı́culo de manera apropiada bajo las restricciones planteadas en un comienzo. 7.5. Aportes del trabajo de tesis Se a estudiado y definido la utilización de una arquitectura de software y la utilización de un Middleware de apoyo para el sistema de navegación del vehı́culo. Esto permite un desarrollo de software amigable y escalable. Se ha generado un procedimiento para aprovechar la información presente en observaciones de sensores láser. La estructura de pipeline presentada para las observaciones permite implementar de manera sencilla nuevas estrategias de segmentación manteniendo la simpleza y baja complejidad del software. Se diseño un procedimiento para la estimación de la relación de viraje de un vehı́culo y mediante una unidad inercial, sin necesariamente disponer de la información mecánica correspondiente al vehı́culo. Este procedimiento se puede extender a otro tipo de maquinaria , incluso si no es similar a la de un vehı́culo utilizado en esta tesis. El estimador de estado propuesto realiza una estimación adecuada para ser utilizada en la navegación de un vehı́culo, sin depender de un sistema de localización global. El método utilizado para retro-alimentar a la orientación de la estimación del estado con la estimación de la superficie es un aporte no visto anteriormente. Este estimador al estar acoplado con estimación del entorno, no es posible evaluar su desempeño por si solo. Dado a lo anterior, se propuso una metodologı́a para la evaluación del estimador del estado basado en mediciones espaciales en diferentes instantes de tiempo. Esta metodologı́a de evaluación pese a no poder medir directamente la estimación del estado o la fusión de las medidas, evalúa de manera adecuada al ser dependiente principalmente de la orientación y el desplazamiento del vehı́culo durante el proceso de fusión. Se ha implementado una estructura de representación de entorno de baja complejidad pero adecuada para ser utilizada en la implementación de un sistema de navegación autónomo. 97 Extra a lo anterior, se ha implementado un conjunto de software anexo que permite implementar de manera estructurada software para el sistema autónomo. También se realizaron implementaciones de interfaces y sensores que no estaban disponibles anteriormente. 7.6. Trabajo futuro Actualmente, la etapa de navegación autónoma del vehı́culo es la etapa faltante para poder cerrar el lazo de control completamente. Esto permitirı́a la validación de este sistema perceptual en un sistema autónomo. Probablemente, una vez completado el lazo de control las etapas requieran de ajustes para un correcto funcionamiento. Una vez que este sistema esté funcionando, los lı́mites de funcionamiento podrán ser medidos y se podrá evaluar adecuadamente los sistemas en su conjunto. Por otro lado, nuevas estrategias de mapeo del entorno podrı́an ser probadas y evaluadas al disponer del sistema con funcionamiento modular y tener un punto de partida contra el cual poder evaluar estas nuevas estrategias. Además una estrategia diferentes podrı́a ser utilizada con respecto a que información es integrada en el mapa. Si se cambia a solo incorporar caracterı́sticas que puedan ser consideradas peligrosas en vez de tratar de estimar la superficie, esto podrı́a generar mapas más livianos y algoritmos para genera trayectorias eficientes. 98 Bibliografı́a [1] Borre, K., Akos, D. M., Bertelsen, N., Rinder, P., and Jensen, S. H. A software-defined GPS and Galileo receiver: a single-frequency approach. Springer, 2007. [2] Bradski, G., and Kaehler, A. Learning OpenCV: Computer vision with the OpenCV library. O’Reilly Media, Inc., 2008. [3] Budde, W. Calibration of reflectance standards. Standardization in Spectrophotometry and Luminescence Measurements (1976), 75–85. [4] Buehler, M., Iagnemma, K., and Singh, S. The 2005 darpa grand challenge. Springer Tracts in Advanced Robotics 36, 5 (2007), 1–43. [5] Buehler, M., Iagnemma, K., and Singh, S. The DARPA urban challenge: autonomous vehicles in city traffic, vol. 56. springer, 2009. [6] Cyrill Stachniss, Udo Frese, G. G. Openslam.org. http://openslam.org/. [7] DARPA. Darpa grand challenge autonomous ground vehicles. https://web.archive. org/web/20131205081657/http://archive.darpa.mil/grandchallenge04/. Accessed: 2014-04-14. [8] Engelhard, N., Endres, F., Hess, J., Sturm, J., and Burgard, W. Real-time 3d visual slam with a hand-held rgb-d camera. In Proc. of the RGB-D Workshop on 3D Perception in Robotics at the European Robotics Forum, Vasteras, Sweden (2011), vol. 180. [9] Gat, E., et al. On three-layer architectures, 1998. [10] Gill, C. D., and Smart, W. D. Middleware for robots. In Proceedings of the AAAI Spring Symposium on Intelligent Distributed and Embedded Systems (2002). [11] Graefe, V., and Bischoff, R. From ancient machines to intelligent robots - a technical evolution -. In Electronic Measurement and Instruments, 2009. ICEMI09. 9th International Conference on (2009), IEEE, pp. 3 – 418. [12] Grisetti, G., Stachniss, C., and Burgard, W. Improving grid-based slam with rao-blackwellized particle filters by adaptive proposals and selective resampling. In Robotics and Automation, 2005. ICRA 2005. Proceedings of the 2005 IEEE International Conference on (2005), IEEE, pp. 2432–2437. 99 BIBLIOGRAFÍA [13] Grisetti, G., Stachniss, C., and Burgard, W. Improved techniques for grid mapping with rao-blackwellized particle filters. Robotics, IEEE Transactions on 23, 1 (2007), 34–46. [14] Grum, F., and Wightman, T. Absolute reflectance of eastman white reflectance standard. Appl. Opt 16, 11 (1977), 2775–2776. [15] Hager, J. W., Behensky, J. F., and Drew, B. W. The universal grids: Universal transverse mercator (utm) and universal polar stereographic (ups). edition 1. Tech. rep., DTIC Document, 1989. [16] Itseez. Opencv. http://opencv.org/. Accessed: 2014-04-20. [17] Jazar, R. N. Vehicle dynamics: theory and application. Springer, 2008. [18] Kohlbrecher, S., Von Stryk, O., Meyer, J., and Klingauf, U. A flexible and scalable slam system with full 3d motion estimation. In Safety, Security, and Rescue Robotics (SSRR), 2011 IEEE International Symposium on (2011), IEEE, pp. 155–160. [19] Leonard, J., How, J., Teller, S., Berger, M., Campbell, S., Fiore, G., Fletcher, L., Frazzoli, E., Huang, A., Karaman, S., et al. A perceptiondriven autonomous urban vehicle. Journal of Field Robotics 25, 10 (2008), 727–774. [20] Manso, L., Bachiller, P., Bustos, P., Núñez, P., Cintas, R., and Calderita, L. Robocomp: a tool-based robotics framework. In Simulation, Modeling, and Programming for Autonomous Robots. Springer, 2010, pp. 251–262. [21] Mascaró, M. Diseño e implementación de sistemas de actuación electro-mecánica para vehı́culos terrestres autónomos. Memoria Ingenierı́a Civil Eléctrica, Universidad de Chile, 2011. [22] Miller, I., and Campbell, M. A mixture-model based algorithm for real-time terrain estimation. Journal of Field Robotics 23, 9 (2006), 755–775. [23] Mitchell, M., Oldham, J., and Samuel, A. Advanced linux programming. Sams Publishing, 2001. [24] Montemerlo, D., Roy, N., and Thrun, S. Perspectives on standardization in mobile robot programming: The carnegie mellon navigation (carmen) toolkit. In Intelligent Robots and Systems, 2003.(IROS 2003). Proceedings. 2003 IEEE/RSJ International Conference on (2003), vol. 3, IEEE, pp. 2436–2441. [25] Moore, D., Olson, E., and Huang, A. Lightweight communications and marshalling for low-latency interprocess communication. DSpace@MIT (2009). [26] Nuchter, A. 3dtk - the 3d toolkit. http://slam6d.sourceforge.net/. [27] Nuchter, A., Lingemann, K., Hertzberg, J., and Surmann, H. 6d slam-3d mapping outdoor environments. Journal of Field Robotics 24, 8-9 (2007), 699–722. 100 BIBLIOGRAFÍA [28] Nunez, P., Vazquez-Martin, R., del Toro, J. C., Bandera, A., and Sandoval, F. Feature extraction from laser scan data based on curvature estimation for mobile robotics. In Robotics and Automation, 2006. ICRA 2006. Proceedings 2006 IEEE International Conference on (2006), IEEE, pp. 1167–1172. [29] OpenPerception. Pcl: Point cloud library. http://pointclouds.org/. Accessed: 2014-04-20. [30] OpenSourceRoboticsFoundation. Gazebo. http://gazebosim.org/. Accessed: 2014-04-20. [31] OpenSourceRoboticsFoundation. Ros: Robot operating system. http://ros. org/. Accessed: 2014-04-20. [32] Pfaff, P., Triebel, R., and Burgard, W. An efficient extension to elevation maps for outdoor terrain mapping and loop closing. The International Journal of Robotics Research 26 (2007), 217–230. [33] Qiu, Q., Yang, T., and Han, J. A new real-time algorithm for off-road terrain estimation using laser data. Science in China Series F: Information Sciences 52, 9 (2009), 1658–1667. [34] Quigley, M., Conley, K., Gerkey, B., Faust, J., Foote, T., Leibs, J., Wheeler, R., and Ng, A. Y. Ros: an open-source robot operating system. In ICRA workshop on open source software (2009), vol. 3. [35] Rossi, C., Russo, F., and Russo, F. Ancient Engineers and Inventions. Springer, 2009. [36] Rusu, R. B., and Cousins, S. 3D is here: Point Cloud Library (PCL). In IEEE International Conference on Robotics and Automation (ICRA) (Shanghai, China, May 9-13 2011). [37] Samet, H. The quadtree and related hierarchical data structures. ACM Computing Surveys (CSUR) 16, 2 (1984), 187–260. [38] Sick. LMS200/211/221/291 Laser Measurement Systems : TECHNICAL DESCRIPTION. Sick AG, 12 2006. [39] Sick. LD-MRS Laser Measurement Sensor : Operating Instructions. Sick AG, 04 2011. 12. [40] Simmons, R., and Dale, J. Inter-process communication: A reference manual. ipc version 6.0. Robotics Institute, Carnegie Mellon University (1997). [41] Sucan, I. A., and Chitta, S. Moveit! http://moveit.ros.org/. Accessed: 201404-20. [42] Thrun, S., Burgard, W., and Fox, D. Probabilistic robotics. MIT press, 2005. 101 BIBLIOGRAFÍA [43] Thrun, S., Montemerlo, M., Dahlkamp, H., Stavens, D., Aron, A., Diebel, J., Fong, P., Gale, J., Halpenny, M., Hoffmann, G., et al. Stanley: The robot that won the darpa grand challenge. Journal of field Robotics 23, 9 (2006), 661–692. [44] TimeMagazine. Time magazine. science: Radio auto, houdina., 1925. [45] Torvalds, L. Git. http://git-scm.com/. Accessed: 2014-04-20. [46] Tse, R., Ahmed, N., and Campbell, M. Unified mixture-model based terrain estimation with markov random fields. In Multisensor Fusion and Integration for Intelligent Systems (MFI), 2012 IEEE Conference on (2012), IEEE, pp. 238–243. [47] Urmson, C., Anhalt, J., Bagnell, D., Baker, C., Bittner, R., Clark, M., Dolan, J., Duggins, D., Galatali, T., Geyer, C., et al. Autonomous driving in urban environments: Boss and the urban challenge. Journal of Field Robotics 25, 8 (2008), 425–466. [48] Urmson, C., Anhalt, J., Clark, M., Galatali, T., Gonzalez, J. P., Gowdy, J., Gutierrez, A., Harbaugh, S., Johnson-Roberson, M., Kato, H., et al. High speed navigation of unrehearsed terrain: Red team technology for grand challenge 2004. Robotics Institute, Carnegie Mellon University, Pittsburgh, PA, Tech. Rep. CMURI-04-37 (2004). [49] Velodyne. Hdl-64e. https://web.archive.org/web/20140411015142/http:// velodynelidar.com/lidar/hdlproducts/hdl64e.aspx. Accessed: 2014-04-17. [50] Wallgrun, J. O. Hierarchical Voronoi Graphs: Spatial Representation and Reasoning for Mobile Robots. Springer, 2009. [51] wavelength, N. Identifying materials by their reflectivity. Electronically, 2009. [52] Webster, J. G. The Measurement, Instrumentation, and Sensors: Handbook. Springer, 1999, ch. 9, p. 1. [53] Welch, G., and Bishop, G. An introduction to the kalman filter, 1995. [54] Wikipedia. Google driverless car. https://web.archive.org/web/20140402022101/ http://en.wikipedia.org/wiki/Google_driverless_car. Accessed: 2014-04-17. [55] Williams, M. Prometheus-the european research programme for optimising the road transport system in europe. In Driver Information, IEE Colloquium on (1988), IET, pp. 1–1. [56] Wurm, K. M., Hornung, A., Bennewitz, M., Stachniss, C., and Burgard, W. Octomap: A probabilistic, flexible, and compact 3d map representation for robotic systems. In Proc. of the ICRA 2010 workshop on best practice in 3D perception and modeling for mobile manipulation (2010), vol. 2. [57] ZeroC. Ice - internet communications engine. http://www.zeroc.com/. 102 BIBLIOGRAFÍA [58] Zhang, Z. Flexible camera calibration by viewing a plane from unknown orientations. In Computer Vision, 1999. The Proceedings of the Seventh IEEE International Conference on (1999), vol. 1, IEEE, pp. 666–673. [59] Zhang, Z. A flexible new technique for camera calibration. Pattern Analysis and Machine Intelligence, IEEE Transactions on 22, 11 (2000), 1330–1334. 103 Apéndice A Cálculo de la esperanza del mı́nimo RMSE A. Cálculo de la esperanza del mı́nimo RMSE Asumiendo una superficie plana, y una estimación de la superficie perfecta, pero un sensor 2 distinto de 0. Bajo esta premisa se obtiene que altura medida obtenida de la con un σsensor medición del sensor serı́a: Zlaser (αi ) = di · cos (αi ) − hsensor (A.1) 2 . Donde E[di ] = hsensor /cos (αi ) y V ar[di ] = σsensor Bajo estas condiciones, se llega a que las E[Zlaser ] y la V ar[Zlaser ] es: E[Zlaser ] = V ar[Zlaser ] = hsensor · cos (αi ) − hsensor = 0 cos (αi ) 2 Zlaser di (A.2) 2 2 · σsensor = cos(αi )2 · σsensor (A.3) El RMSE se calcula como: s RM SE = 2 i=1 (di · cos (αi ) − hsensor ) PN (A.4) N Por lo que calculando la E[RM SE]: sP 2 N i=1 (di · cos (αi ) − hsensor ) E [RM SE] = E N (A.5) Desarrollando un poco la ecuación se llega a : sP E [RM SE] = E 2 N i=1 Zlaser (αi ) = v h i u PN 2 u E Z (α ) i laser t i=1 N N (A.6) 2 Como E Zlaser = V ar [Zlaser ] + |E [Zlaser ]|2 : h i s E [RM SE] = σsensor · 2 i=1 cos (αi ) PN (A.7) N 2 Para el caso particular del sensor utilizado en esta evaluación, σsensor = 0,0122 , además los ángulos que se utilizan van entre −60◦ y 60◦ con un paso de 0,5◦ ,por esto: −pi −pi αi = − , 3 3 pi ∆αi = → N = 241 360 De esta manera el calculo de la sumatória: N X cos (αi )2 = 169,8683 (A.8) (A.9) (A.10) i=1 Por lo que el RMSE minimo para ese sensor: s E [RM SE] = σsensor · 169,8683 = 0,8396 · σsensor = 0,0101 241 (A.11) 105 Apéndice B ROSBAGs B. ROSBAGs Archivo Fecha Hora Duración Distancia Información Observaciónes 2014-01-16-10-15-09.bag 16 de Enero de 2014 10:15:09 239 [s] 832 [m] GPS, Gateway, PS3-Eye, LDMRS, LMS151, LMS291 IMU Nav440, PS3-Move, Radar ESR LMS151 montado frontal 6 velocidad [m/s] 5 4 3 2 1 0 0 50 100 150 200 250 segundos [s] 107 B. ROSBAGs Archivo Fecha Hora Duración Distancia Información Observaciónes 2014-01-16-10-19-17.bag 16 de Enero de 2014 10:19:17 144 [s] 802 [m] GPS, Gateway, PS3-Eye, LDMRS, LMS151, LMS291 IMU Nav440, PS3-Move, Radar ESR LMS151 montado frontal 14 12 velocidad [m/s] 10 8 6 4 2 0 0 50 100 150 segundos [s] 108 B. ROSBAGs Archivo Fecha Hora Duración Distancia Información 2014-01-16-10-23-54.bag 16 de Enero de 2014 10:23:54 150 [s] 778 [m] GPS, Gateway, PS3-Eye, LDMRS, LMS151, LMS291 IMU Nav440, PS3-Move, Radar ESR LMS151 montado frontal Observaciónes 14 12 velocidad [m/s] 10 8 6 4 2 0 0 20 40 60 80 segundos [s] 100 120 140 160 109 B. ROSBAGs Archivo Fecha Hora Duración Distancia Información 2014-01-16-10-27-42.bag 16 de Enero de 2014 10:27:42 100 [s] 780 [m] GPS, Gateway, PS3-Eye, LDMRS, LMS151, LMS291 IMU Nav440, PS3-Move, Radar ESR LMS151 montado frontal Observaciónes 16 14 velocidad [m/s] 12 10 8 6 4 2 0 0 20 40 60 segundos [s] 80 100 120 110 B. ROSBAGs Archivo Fecha Hora Duración Distancia Información 2013-12-26-12-25-57.bag 26 de Diciembre de 2013 12:25:57 313 [s] 833 [m] GPS, Gateway, PS3-Eye, LDMRS, LMS151, LMS291 IMU Nav440, PS3-Move, Radar ESR LMS151 montado frontal Observaciónes 5 velocidad [m/s] 4 3 2 1 0 0 50 100 150 200 250 300 350 segundos [s] 111 B. ROSBAGs Archivo Fecha Hora Duración Distancia Información 2013-12-26-12-31-43.bag 26 de Diciembre de 2013 12:31:47 260 [s] 791 [m] GPS, Gateway, PS3-Eye, LDMRS, LMS151, LMS291 IMU Nav440, PS3-Move, Radar ESR LMS151 montado frontal Observaciónes 6 velocidad [m/s] 5 4 3 2 1 0 0 50 100 150 segundos [s] 200 250 300 112 B. ROSBAGs Archivo Fecha Hora Duración Distancia Información Observaciónes 2013-11-07-11-32-06.bag 07 de Noviembre de 2013 11:32:06 202 [s] 1028.2 [m] GPS, Gateway, PS3-Eye, LDMRS, LMS151, LMS291 IMU Nav440, PS3-Move, Radar ESR LMS151 montado en parrilla 8 velocidad [m/s] 6 4 2 0 0 50 100 150 200 250 segundos [s] 113 B. ROSBAGs Archivo Fecha Hora Duración Distancia Información 2013-11-07-11-35-46.bag 07 de Noviembre de 2013 11:35:46 169 [s] 1233.8 [m] GPS, Gateway, PS3-Eye, LDMRS, LMS151, LMS291 IMU Nav440, PS3-Move, Radar ESR LMS151 montado en parrilla Observaciónes 12 velocidad [m/s] 10 8 6 4 2 0 0 20 40 60 80 100 120 140 160 180 segundos [s] 114 B. ROSBAGs Archivo Fecha Hora Duración Distancia Información Observaciónes 2013-11-07-11-42-30.bag 07 de Noviembre de 2013 11:42:30 245 [s] 953.8 [m] GPS, Gateway, PS3-Eye, LDMRS, LMS151, LMS291 IMU Nav440, PS3-Move, Radar ESR LMS151 montado en parrilla 7 velocidad [m/s] 6 5 4 3 2 1 0 0 50 100 150 200 250 segundos [s] 115 Apéndice C Paper J Intell Robot Syst DOI 10.1007/s10846-014-0087-9 A Kalman-filtering-based Approach for Improving Terrain Mapping in off-road Autonomous Vehicles Isao Parra-Tsunekawa · Javier Ruiz-del-Solar · Paul Vallejos Received: 4 February 2014 / Accepted: 15 July 2014 © Springer Science+Business Media Dordrecht 2014 Abstract The generation of accurate terrain maps while navigating over off-road, irregular terrains is a complex challenge, due to the difficulties in the estimation of the pose of the laser rangefinders, which is required for the proper registration of the range measurements. This paper addresses this problem. The proposed methodology uses an Extended Kalman filter to estimate in real-time the instantaneous pose of the vehicle and the laser rangefinders by considering measurements acquired from an inertial measurement unit, internal sensorial data of the vehicle and the estimated heights of the four wheels, which are obtained from the terrain map and allow determination of the vehicle’s inclination. The estimated 6D pose of the laser rangefinders is used to correctly project the laser measurements onto the terrain map. The terrain map is a 2.5D map that stores in each cell the mean value and variance of the terrain height. In each map’s cell position, new laser observations are fused with existing I. Parra-Tsunekawa · J. Ruiz-del-Solar () Department of Electrical Engineering, Universidad de Chile, Santiago, Chile e-mail: [email protected] I. Parra-Tsunekawa e-mail: [email protected] I. Parra-Tsunekawa · J. Ruiz-del-Solar · P. Vallejos Advanced Mining Technology Center, Universidad de Chile, Santiago, Chile e-mail: [email protected] height estimations using a Kalman filter. The proposed methodology is validated in the real world using an autonomous vehicle. Field trials show that the use of the proposed state estimation methodology produces maps with much higher accuracy than the standard approaches. Keywords Terrain mapping · Off-road autonomous vehicles · Kalman Filter · Information fusion · Laser rangefinder pose estimation 1 Introduction Terrain mapping is a relevant problem in autonomous robot navigation; the accurate modeling of the terrain is required for the robot in order to decide a safe path to follow. In off-road applications, the generation of accurate terrain maps while navigating is a difficult challenge due to the difficulties in estimating the pose of the laser rangefinders, which is required for the proper registration of the range measurements. Even small pose errors could be magnified onto large errors in the projected positions of laser points, because the laser rangefinders are aimed at the road up to several meters in front of the vehicle [13]. We address the problem of real-time terrain mapping for autonomous vehicles such as cars and trucks that move at low (<10[m/s]) and medium speeds (<20[m/s]) for off-road terrain applications, as in the case of the autonomous truck operation in open pit J Intell Robot Syst mines, where typical speeds are in the range of 5-14 [m/s]. We address the specific problem of building coherent semi-local terrain maps with laser range finders whose 6D pose changes due to the irregular surface that the vehicle is traversing and the non-rigid characteristics of the vehicle (vehicle suspension system). We use the term semi-local map to denote a map that: (1) is built without using GPS information, (2) uses a global reference system that is defined at the beginning of the map estimation, (3) has an extension of several hundred meters, and (4) can be integrated onto the global map using the GPS and inertial data. We use semi-local maps because we are interested in achieving a very accurate 6D pose estimation of the laser range finders; the use of standard GPS (no differential) in this estimation process would produce inaccuracies that would be reflected in the generated map. The semi-local map can be used for taking local decision (obstacle avoidance, decision about which path to follow) and/or for building the global map. The proposed methodology uses an Extended Kalman filter for estimating in real-time the instantaneous pose of the vehicle and the laser rangefinders by considering measurements (observations in the Kalman filtering terminology) acquired from an inertial measurement unit (3D angular pose and speed, and 3D linear acceleration), internal sensorial data of the vehicle (vehicle speed and angle of the steering wheel) and the estimated heights of each wheel, which are obtained from the terrain map and allow determining the vehicle’s inclination. The estimated 6D pose of the laser rangefinders is used to correctly project the laser measurements onto the terrain map. The terrain map is a 2.5D map that stores the mean value and variance of the terrain height. In each map’s cell position, new laser observations are fused with existing height estimations using a Kalman filter. The main contribution of this work is the proposal of an integrated sensor-map estimation methodology in which: (i) Kalman filters estimate the laser range finder 6D pose and fuse past and new observations in each cell of the terrain map and (ii) the estimated terrain map is fed back and used for improving the 6D pose estimation of the laser range finders (past estimations of the terrain heights are used for determining the current heights of the wheels and therefore the inclination of the vehicle). The methodology is validated in the real world (O’Higgins Public Park, located near downtown area in Santiago de Chile, Chile), using the AMTC’s autonomous vehicle. Field trials show that the use of the proposed state estimation methodology produces maps with higher accuracy than approaches that use the inertial data directly (without any state estimator) for correcting the pose of the laser range finders. The paper is organized as follows: Related work is described in Section 2; The proposed Kalman-filtering based methodology for terrain mapping is explained in Section 3; Descriptions of experiments and results are presented in Section 4 and Conclusions of this work are given in Section 5. 2 Related Work Terrain map estimation is an important component in outdoor mobile robot navigation, and several authors have addressed it ([2–13]). Some of them have concentrated their effort on the fusion problem [12] while others have addressed the representation of the terrain data within the map [5] or the use of elevation functions over a 2D domain to represent the map [3]. Other authors have tackled the filtering of the laser range finder data to improve map quality [8], the assessment of the traversability of the terrain [9], the accurate registration of the laser range finder data [10–13] or the loop-closing problem when building a global map [5]. Some of these works use small rovers in the experiments or cars moving at low speeds (<10 [m/s]) while in some cases the map is built offline [5]. Different types of representations have been used to map terrains (e.g., 2D occupancy grid, 3D occupancy voxel), being the elevation or 2.5D height map one of the preferred options in ground robot mapping applications (for example [10–12]) due to their compactness, lower computation and insensitivity to height discretization errors [12]. Elevation maps “store in each cell of a discrete grid the height of the surface at the corresponding place in the environment” [5]. In some mapping systems the height’s variance is also stored in each cell [10, 11]. The estimation of the terrain height in each cell in a 2.5D map requires the correct fusion of measurements obtained at multiple times while moving. The uncertainty of the measurements and the uncertainty of the sensor pose must be considered during the fusion process. This is addressed in [10] by proposing a mixture-model terrain estimation framework J Intell Robot Syst that incorporates both uncertainties, together with the measurement-map association and the in-cell measurement fusion into the map. The terrain mapping and estimation algorithm uses a probabilistic analysis of the errors, assuming their Gaussian distribution. The system projects the sensors’s detections onto the global coordinate frame using a tightly coupled model of the sensors position, making the respective formal error propagation. The vehicle localization is obtained from a GPS, without the use of any state estimation algorithm In [11], three enhancements were proposed for improving the real-time performance of the system proposed in [10]: a selection window was used to limit the probability distribution area of each measurement, a clustering algorithm was used to simplify the object detection tasks and a virtual point vector was introduced to reduce the computational cost of the algorithm. Despite these enhancements, no fundamental changes were made to the terrain estimation framework proposed in [10]. In [12], a Markov Random Field (MRF) representation of a sensor and terrain fusion model was proposed. The MRF represents the model of 2.5D map sensor uncertainties, enabling a probabilistic fusion between the sensor and terrain information. This approach is also based on [10], but it does not make the assumption of independency among cells in the map. In Thrun [13], a first-order Markov model is proposed for modeling the drift of the pose estimation error over time. The heights of the map points are assumed Gaussian with a variance that scales linearly with the time difference of the points. Then, a probabilistic test is used to detect the presence of an obstacle. Thus, that work focuses on the detection of obstacles rather than on providing an accurate map. The methodology proposed in this publication addresses both problems; it is able to compute an accurate semi-local map in real-time, which can be then used for obstacle avoidance. The main difference of the current methodology compared with [10–13] is that in the methodology proposed in this paper, a non-rigid sensor location and vehicle suspension is assumed. Therefore, the noise in the sensor pose associated with the sensor and vehicle vibration is explicitly considered. This vibration is estimated in real-time using the Inertial Measurement Unit (IMU) measurements. Furthermore, the vehicle pose is estimated using an Extended Kalman filter, avoiding the extreme dependency upon the GPS that most terrain map estimation systems have. In [5], an approach that allows a mobile robot to deal with vertical and overhanging objects in elevation maps is presented. The approach uses four classes (traversable cells, vertical gaps, vertical structures and locations sensed from above) for classifying locations in the environment and dealing with overhanging structures. The map of elevations is updated using a Kalman filtering fusion approach (in each cell new data is fused with existing estimations by considering their variances). In that work the loop closing in the map is solved offline and the vehicle moves on paved roads at low speeds. In [6], a near real-time ground segmentation system based on Gaussian Process for autonomous land vehicle is proposed. Terrain is segmented into ground and non-ground, and the average processing time is 74.93 [ms], being near real-time. Terrain mapping systems built using the methodology proposed in this paper are able to process the data in real-time, having a processing time of ∼3 [ms] (see Section 4.3). In summary, one of the main contributions of this work is the proposal of a real-time terrain map estimation system enhanced by the estimation of the noise produced by the sensors and vehicle vibration, its use in the measurement fusion process, and the estimation of the vehicle and sensors pose without the GPS dependency. 3 A Kalman-Filtering Based Methodology for Terrain Mapping 3.1 System Overview The proposed methodology for terrain mapping has three main stages: Vehicle State Estimation, Laser Projection and Terrain Map Update (see block diagram in Fig. 1). The first stage estimates the full 6D pose of the vehicle using an Extended Kalman filter. For correcting the predicted pose, it uses: (i) observations acquired from the IMU, (ii) vehicle internal sensors whose measurements are available in the CAN bus (Controller Area Network), and (iii) virtual observations obtained from the terrain map. The second stage generates a projection of the laser rangefinders measurements onto a global reference system using the 6D pose of the laser rangefinders, which is J Intell Robot Syst Fig. 1 Block diagram of the proposed estimation system computed from the vehicle’s pose. Finally, the Terrain Map Update stage accumulates the laser observations in the terrain map. The terrain map stores, in each cell, the mean value and variance of the terrain height. A Kalman filter is used in each cell for fusing new laser observations with existing height estimations. 3.2 Vehicle Model A simplified diagram of the vehicle model is shown in Fig. 2. The vehicle model corresponds to a standard four-wheel front-steering vehicle with laser rangefinders and an IMU mounted on a roof rack. The distance between the front and rear axes is called the wheelbase, while the distance between the steerable wheels is known as the track. The vehicle kinematics is given by the following variables (see reference sys tems in Fig. 2): global position p t , 3D angular pose q t , speed vt , instantaneous rotation radius rt , angular speed ωt , and steer angle αt . The angle αt is defined as the equivalent steer angle of a bicycle with both the same wheelbase and rt as the actual vehicle. This angle is related to the steer angles of the inner and outer wheels, αti and αto respectively, as shown in Eq. (1) [1], cot αt = cot αto + cot αti 2 (1) sensors data (e.g., speed) that is measured by the vehicle itself and that is available in the CAN bus. The IMU provides the following data: angular imu pose ϑ t The variables p t and q t are measured in the global reference system SG , with the x axis pointing towards the east, the y axis point towards the north and the z axis pointing upwards. θ, φ, and ψ denote rotation angles around the x, y and z axes, respectively. 3.3 Sensor Models and Variables The following information sources are used in the vehicle: an IMU, laser rangefinders and internal imu ∈ R3 and linear acceleration a t ∈ R3 By considering a laser reference system Slaser (see Fig. 2b), a laser rangefinder provides a sequence laser = of measurements in polar coordinates ρ t,i T dt,i θt,i ; i ∈ 1, ..., Nsamples , where: dt,i is the measured distance, θt,i the measured angle and Nsamples the number of samples at time step t. In case that more than one laser rangefinder is used, the index j will be used to identify laser rangefinder number j, j as in dt,i The data provided by the internal sensors of the vehicle through the CAN bus interface are the angle of the steering wheel αtvehicle and the linear speed of the vehicle ∈ R4 . This vector contains the speed wheels v t of the front-left, front-right, rear-left and rear-right wheels. 3.4 Vehicle State Estimation The state vector x t includes all relevant variables that define the state of the vehicle: T x t = p t q t vt αtwheel ηt imu ∈ R3 , angular speed ωt (2) with p t a 3D-vector representing the position of SL relative to SG , q t a quaternion representing the orientation of SL relative to SG , vt a scalar representing the speed, αtwheel a scalar representing the angle of the steering wheel, and ηt the variance of the vehicle’s vibration in the z axis. The problem of state estimation is solved in this case through the implementation of a Kalman filter. J Intell Robot Syst Fig. 2 Geometry, reference systems, and relevant variables (see main text for details): a Top and b lateral views (a) (b) In our model u t is supposed unknown1 and f is given by: 3.4.1 Extended Kalman Filter: Prediction Step For the prediction step of the Extended Kalman filter, the following standard equations are used: x t = f x t−1 , u t , 0 − Pt− = At · Pt−1 · ATt + Q (3) with At the Jacobian matrix of partial derivatives of f with respect to x t , Q the process noise covariance and u t the actuation order. The process noise is characterized and Q is estimated by means of field trial experiments. − − ∗ p t = p t−1 + q t−1 · p t · q t−1 q t = q t−1 ◦ q t vt− = vt−1 wheel αtwheel − = αt−1 − ηt = ηt−1 1 Even (4) though, u t is known when the vehicle operates autonomously, we decided to estimate the pose change in order to have a more general model and a more robust system; in many situations, such as, vehicle slippage, there is a significant difference between the given and executed orders. J Intell Robot Syst with p t and q t the 3D position and orientation change, respectively; q t is a quaternion. The change of the vehicle’s position, in the local/vehicle reference system SL , is computed as: ⎞ ⎛ sin(ω · t) r t t ⎝ rt (1 − cos(ωt · t)) ⎠ if αtwheel = 0 ⎛ 0 ⎞ p t = vt · t ⎝ 0 ⎠ if αtwheel = 0 0 −1 − T Kt = Pt− HtT H P H + R t t t t − − x t = x t + Kt zt − h( x t ) with rt and ωt the estimated rotation radius and speed and t the time interval. The trajectory of the vehicle in t is approximated as circular, and ωt and rt are approximated using the estimated steering wheel angle and linear speed (see derivation in Appendix 1) as: αt (6) ·γ with γ an adjusting factor that depends of the vehicle. As mentioned, in case when αtwheel = 0, ωt = 0 and rt = ∞, and the trajectory is approximated as a straight line. The angular pose difference is computed as: q t = qY P R (ωt · t, 0, 0) 3.4.2 Extended Kalman Filter: Correction Step For the correction step of the Extended Kalman filter, the following standard equations are used: (5) ωt vt · αtwheel · γ 1 rt = ωvtt wheel (iii) a proper error projection of the angular errors to the quaternion space. (7) with qY P R given by: qY P R (ψ, ϕ, θ ) ⎡ ⎤ cos θ2 ·cos ϕ2 ·cos ψ2 +sin θ2 ·sin ϕ2 ·sin ψ2 ⎢ ⎥ ϕ ϕ θ ⎢ ψ ψ ⎥ θ ⎢sin 2 ·cos 2 ·cos 2 −cos 2 ·sin 2 ·sin 2 ⎥ ⎢ ⎥ =⎢ θ ϕ ϕ ψ ψ ⎥ ⎢cos 2 ·sin 2 ·cos 2 +sin θ2 ·cos 2 ·sin 2 ⎥ ⎣ ⎦ cos θ2 ·cos ϕ2 ·sin ψ2 −sin θ2 ·sin ϕ2 ·cos ψ2 (8) Pt = (I (9) − Kt Ht )Pt− with Ht the Jacobian matrix of partial derivatives − of h with respect to x t , Rt the measurement noise covariance matrix and Kt the Kalman gain. The corrections are done sequentially using the perceptual data obtained from the IMU and the vehicle internal sensors as well as using virtual observations obtained from the map of elevations, which is considered as a soft sensor. In our modeling, we choose to transform the different measured variables (e.g., angular speed around the zaxis) from the sensor measurement space onto the filter state space by means of its exact linearization. In this way, the resultant h is the identity function and Ht is an identity matrix. This transformation preserves the higher order statistical effects, improving the Kalman filter performance [10]. Naturally, this means that the Rt matrices corresponding to each information sources must be estimated very accurately in order to have a proper Kalman-filtering-based fusion. The measurement noise covariance matrices corresponding to the IMU and the vehicle measurements are time invariant and are denoted as R I MU and R vehicle , respectively. The noise covariance matrix associated with the virtual measurement, provided by the map of map elevations, is denoted as Rt and is time variant. The IMU provides observations that allow updating the pose, steer angle and vibration’s variance I MU The estimation of the noise covariance matrix Q considers the following elements: (i) it is assumed that the noise components are not correlated and therefore that Q is diagonal, (ii) the variance of the different components is estimated using the technical specifications of the sensors (IMU’s accelerometers and gyroscopes, internal sensors of the vehicle) and the vehicle’s speed range given by the application, and . The components of the observational vector z t orientation measurements θtI MU , φtI MU , and ψtI MU I MU are used directly to update q t I MU qt : = qYP R ψtI MU , φtI MU , θtI MU with qYP R given by Eq. (8) (10) J Intell Robot Syst Fig. 3 Rotation angles around the x and y axes By using Eq. (6), the observation of the steering wheel angle is obtained from the IMU angular speed around the z axis, ωtz , as: ωtz (11) vt · γ The quantification of the vehicle vibration in the z axis is estimated as the variance of the IMU’s acceleration in the z axis: αtI MU = N f −1 ηtI MU = i=0 z at−i − ātz 2 (12) Nf with Nf the number of samples and ātz the mean value of the acceleration in the z axis in the same period. I MU Finally, z t ⎛ I MU zt is given by2 : ⎞ ∗ ⎜ I MU ⎜ qt ⎜ =⎜ ∗ ⎜ I MU ⎝ αt ηtI MU ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ (13) The vehicle provides measurements that allow updating the speed and steering wheel angle com- with vtvehicle,rl /vtvehicle,rr the speed of the rear-left /rear-right wheel. The map of elevations provides virtual observations that allow updating the vehicle pose components of map fl rr the observational vector z t . Let hrl t , ht , ht and fr ht be the heights of the rear-left, rear-right, front-left and front-right wheels, respectively. These heights are obtained by evaluating the terrain map (mapheight [·][·] array defined in Eq. (22)), with the normalized x and y coordinates of the contact point of the wheels on the ground (see details in Section 3.6). Then, the rotation angles around the x and y axes are given by (see Fig. 3 for details): f ront h̄rear − h̄ map t t φt = asin wheelbase lef t (15) right h̄t − h̄t map = asin θt track rl f ront rear ht + hrr t with h̄ = = t 2, h̄t fl fr f l lef t ht + hrl ht + ht t , h̄t = 2 2 and fr rr right h̄t = ht + ht 2. vehicle ponents of the observational vector z t . Given that the vehicle’s internal sensors directly provide the speed of the four wheels and the angle of the steering vehicle wheel z t vehicle zt has the following form: ⎞ ∗ ⎟ ⎜ ⎜ vehicle,rl∗ vehicle,rr ⎟ 1 ⎜ = ⎜ 2(vt + vt )⎟ ⎟ vehicle ⎠ ⎝ αt ∗ ⎛ (14) 2 We use “*” to indicate that this component of the observation vector does not exists and, therefore, it is not used in the corrective stage. Fig. 4 AMTC’s Autonomous Vehicle J Intell Robot Syst Table 1 Vehicle model parameters (Volkswagen®Tiguan) E M Izz lf lr Cf Cr ρ ε A Petrol Engine 4-cylinders 2.0L 125KW (16V) Turbo FSI Mass Moment of Inertia with respect to z-axis Distance from front axle to CoG position (wrt. x-axis) Distance from rear axle to CoG position (wrt. x-axis) Characteristic curves of the front tires Characteristic curves of the rear tires Atmospheric density Aerodynamics coefficient Frontal area Spin rate steering wheel–tire Acceleration 0-100 [km/h] Dry pavement friction coefficient µ map Finally, z t ⎛ map zt ⎡ is given by: map with Rt,q ⎞ ∗ ⎜ qY P R ψt , φtmap , θtmap ⎟ ⎜ ⎟ ⎟ ∗ =⎜ ⎜ ⎟ ⎝ ⎠ ∗ ∗ map Rt 0 0 map ⎢ 0 Rt,q ⎢ =⎢ ⎢0 0 ⎣0 0 0 0 0 0 0 0 0 0 0 0 0 0 ⎤ 0 0⎥ ⎥ 0⎥ ⎥ 0⎦ 0 1 0 0 0 0 1 0 ⎤ 0 0⎥ fl fr · max χt , χt , χtrl , χtrr 0⎦ 1 (18) (16) fl with qY P R given by Eq. (8), and ψt the current estimation of the rotation angle around z. The noise covariance matrix associated to the virtual measurement provide by the map of elevations map Rt , is computed as: ⎡ 1 ⎢0 =⎣ 0 0 1590[Kg] 2695[Kg·m2 ] 1.302[m] 1.302[m] 7791[Kg· m/s(rad)] 7791[Kg· m/s(rad)] 1.225[Kg/m3 ] 0.33 3.049974[m2 ] 1/14.7 10.4[s] 0.8 fr where χt , χt , χtrl and χtrr are the variances associated to the heights of the rear-left, rear-right, front-left and front-right wheels, respectively. These values are (17) 0 Table 2 AMTC’s Autonomous Vehicle sensors Sensor Type Model LIDAR LIDAR LIDAR IMU CAMERA CAMERA RADAR CAN Interface SICK, LMS291-S05 SICK, LMS151 SICK, LD-MRS HD Crossbow, NAV440 AVT, Manta G046C Sony, PlayStation®Eye Camera Delphi, ESR Kvaser, Leaf Light HS Fig. 5 Example of measurements obtained by the LMS151 (green), LMS291 (red) and LD-MRS (blue) laser rangefinders J Intell Robot Syst (a) (b) (c) Fig. 6 a Satellite view of the unpaved road, b Example of pictures of the road and c laser rangefinder data used as ground truth. Source: Google Maps satellite image obtained by evaluating the variances of the terrain map (mapvar [·][·] array defined in Eq. (23)), with the normalized x and y coordinates of the contact point of the wheels on the floor (see details in Section 3.6). The noise covariance matrices R I MU and R vehicle are estimated in a standard sensor calibration process. 3.5 Laser Projection The laser measurements are acquired in polar coordinates, relative to the laser rangefinder device (see Subsection 3.3). In order to integrate laser measurements acquired at different times, by one or more different laser rangefinders, measurements are first transformed into Cartesian coordinates, then projected onto the local reference system SL , and finally onto the global reference system SG . For the first projection, it is necessary to know the laser pose in SL , whichis given SL SL by the 3D vector p laser and the quaternion q laser . The vehicle’s pose is used for the second projection. SG Thus, the laser measurements ρ t,i ∈ R3 are obtained as: T laser ρ t,i = dt,i · cos θt,i dt,i · sin θt,i 0 ; (19) i ∈ 1, ..., Nsamples S T L SG laser SG SG SG ρ t,i = xt,i = q t · q laser · ρ t,i yt,i zt,i SL SL ·(q laser )∗ + plaser · (q t )∗ +pt ; i ∈ 1, ..., Nsamples (20) For each laser measurement, the variance of the measurement, χt,i , is computed. The two main factors affecting this value are: the measured distance dt,i and the variance of the vehicle’s vibration in the z axis. Then, χt,i is given by: 2 + κη · ηt + κbase χt,i = κd · dt,i (21) where: κd , κη , and κbase are adjusting factors empirically set to 0.04, 0.5 and 0.1, respectively. 3.6 Terrain Map Update Table 3 Recording’s characteristics Recording ID Ground Class Speed Range Weather Condition 1-2 3-6 Unpaved Unpaved Low Medium sunny/dry sunny/dry The terrain map is organized as a 2.5D height map, composed by cells of size Mx · My [m2 ]. The laser SG measurements ρ t,i ; i ∈ 1, ..., Nsamples are stored in the map. Since more than one laser measurement J Intell Robot Syst can be mapped onto the same cell and that laser measurements corresponding to different time instants can also be mapped onto the same cell, the variance of the laser measurement is considered in the fusion process. Hence, the map stores two values in each cell position: the measured height, mapheight , and the variance mapheight [Xt,i ][Yt,i ] = of the measurement, mapvar . By assuming that laser measurements and map height estimation have Gaussian distributions, they can be optimally fused using a Kalman filtering approach [14]. Thus, in each map cell position(Xt,i , Yt,i ), a 1D Kalman filter estimates the state variable (map height) and its variance as: SG χt,i · mapheight [Xt,i ][Yt,i ] + mapvar [Xt,i ][Yt,i ] · zt,i mapvar [Xt,i ][Yt,i ] + χt,i ; i ∈ 1, ..., Nsamples (22) mapvar [Xt,i ][Yt,i ] = mapvar [Xt,i ][Yt,i ] · χt,i ; i ∈ 1, ..., Nsamples mapvar [Xt,i ][Yt,i ] + χt,i SG SG where Xt,i = xt,i /Mx and Yt,i = yt,i /My are normalized cell coordinates. 4 Experimental Results 4.1 AMTC Autonomous Vehicle The Advanced Mining Technology Center (AMTC) of University of Chile developed an autonomous vehicle whose final goal is autonomous navigation inside open pit mines. For this application typical truck speeds are in the range of 5-14 [m/s] and navigation based on pure GPS is not reliable, because insome deep sections of the pit GPS signal is not always available. Therefore, robust terrain mapping systems are of high interest. The AMTC autonomous vehicle corresponds to a standard Volkswagen Tiguan 2010 (see picture in Fig. 4). The roof rack has aluminum-extruded profiles installed for mounting sensors. The vehicle parameters are presented in Table 1. A list of installed sensors is presented in Table 2. The original Tiguan vehicle was mechanically and electronically modified in order to make it autonomous. The modifications can be outlined as follow: the steering wheel is actuated by a brushless motor connected by a chain to the steering column therefore both rotate synchronously. The brake pedal is pulled by a steel rope, which is moved by a linear actuator, placed on the co-pilot’s footrest. The control hardware of the accelerator pedal (23) and handbrake were modified, therefore both devices are electronically controlled. The vehicle’s internal sensors data is directly acquired from the CAN bus interface. A rack with electronic controllers and computers was installed in the vehicle’s trunk. The data acquisition and control routines run on an automotive standard Intel i7 610E @2.53GHz (4GB RAM) computer running ROS-Fuerte on Ubuntu 12.04. More details on the control modules used in this vehicle can be found in [15, 16]. 4.2 Evaluation Dataset Evaluation data was recorded inside O’Higgins Public Park, located near downtown area in Santiago de Chile, Chile. The aforementioned data were captured while the vehicle was driven on unpaved, rough terrain at low (<10 [m/s]) and medium speeds (<20[m/s]). Each recording have measurements from three laser rangefinders, one IMU, one radar, two cameras, one GPS and the vehicle’s CAN bus data (see device’s models in Table 2). As explained previously, the terrain map is built using the laser measurements. The SICK LMS291 and LMS151 rangefinders have one scanning plane while the SICK LD-MRS HD has four scanning planes. The three laser rangefinders are placed with different and fixed pitch angles, thus are capable of taking measurements at different distances in front of the vehicle. The SICK LMS291’s scanning plane touches the floor at 16 [m] in front of the vehicle, while the SICK J Intell Robot Syst Fig. 7 Percentage of the total traveled distance versus the vehicle’s speed for recordings 1-2 and 3-6 LD-MRS’s inferior scanning plane touches the floor at 19[m] in front of the vehicle. The SICK LMS151 is mounted vertically pointing to the floor. This sensor is used as ground truth for the map’s integration. An example of the laser measurements is shown on Fig. 5. The unpaved area is formed by a very irregular road having a length of about 800 [m] with positive and negative slopes (see Fig. 6a). The road is a track made of ground surrounded with grass and some trees. The height difference between the lowest and the highest point of the track is about 4 meters. In this area six recordings with different speed ranges and driving directions were taken as shown in Table 3. Figure 7 shows the speed distribution of those recordings. The average speed for recordings 1-2 is 2.91 [m/s] while the average speed for recordings 3-6 is 5.40 [m/s]. 4.3 Experiments The proposed Kalman-based terrain estimation methodology is compared against a baseline methodology, which does not use any state estimator but the IMU and speed information. In addition, the use of the terrain map as virtual observations in the state estimator is analyzed. Thus, the following systems are compared: – – – S1 “baseline”. The IMU measurements and the vehicle’s speed information sources are used in order to obtain the displacement of the vehicle and the pose’s change of the laser rangefinders. No Kalman filter is used for estimating the pose of the laser rangefinders or for data fusion in the terrain map. S2 “full state estimator”. The S2 system is built using the here-proposed methodology, using all information sources. S3 “full without map feedback”. Same as S2, but without using the feedback of the map as virtual observations in the Kalman filter. As already mentioned, the measurements obtained by a laser rangefinder mounted vertically on the front of the vehicle are used to build the ground truth. The measurements of this sensor are compared with the corresponding values of mapheight . Naturally these values are compared using the terrain coordinates. In order to quantify the map estimation errors, the root square error is measured in each map cell. Then, two quality measures are computed: (i) the Root Mean Table 4 Experiment results for recordings 1-2 (low speed), normalized by the number of samples (11,602) RMSEsample % Cases better than baseline system S1 S2 S3 41.5877 10−3 [m] – 14.7799 10−3 [m] 81.21% 14.8113 10−3 [m] 80.26% J Intell Robot Syst Fig. 8 ROC curves for recording 1-2. % of cells whose root mean square error is lower than a given threshold Square Error (RMSE) over the whole map, normalized by the number of samples (RMSEsample ) and (ii) the percentage of map cells which root square error is lower than a given threshold value. Using several different threshold values, Receiver Operating Curves (ROCs) are built. In addition, the percentage of cases in which the proposed system (S2) or a variant (S3) has a lower RMSEsample, than the baseline system (S1) is calculated. In the first experiment, the systems were compared using recording 1 and 2 (low speed). Table 4 shows the obtained RMSEsample and Fig. 8 shows the ROC curves of the error. It can be observed that the systems that use the state estimators (S2 and S3) obtained a much lower error in the map compared to the baseline system (S1); the RMSEsample of systems S2 and S3 is 35 % of the one of S1. Table 4 also shows that in approximately 80 % of the map cells (81.21 % for S2 and 80.26 % for S3), the height estimations of the systems that use the state estimators (S2 and S3) have a lower error than the ones of the baseline system. Furthermore, in Table 4 it can be observed that best results are obtained when all information sources are used in the state estimator (S2); a slightly higher RMSEsample is obtained when the terrain map data is not used in the state estimation. In the second experiment, the systems were compared using recordings 3-6 (medium speed). Table 5 shows the obtained RMSEsample and Fig. 9 displays the ROC curves of the error. As in the first experiment, it can be observed that the systems that use the state estimators (S2 and S3) obtained a much lower RMSE in the map compared to the baseline system (S1). In fact, the RMSE is reduced by approximately one third Table 5 shows that in about 60 % of the map cells (63.18 % for S2 and 59.95 % for S3), the height estimations of the systems that use the state estimators (S2 and S3) have a lower error that the ones of the baseline system. As in experiment 1, in Table 5 it can be observed that the best results are obtained when all information sources are used in the state estimator (S2); a 10 % higher RMSEsample is obtained when the terrain map data is not used in the state estimation. It is worth to mention that in addition to the reported experiments in unpaved, rough terrain, several experiments were carried out in paved roads at different speeds, in order to estimate the minimal error that the terrain map estimation system can have. The minimal RMSE is 10.1 10−3 [m], which is of the same order of the RMSE obtained in recordings 1-2. This value is also very close to the theoretical minimum RMSE that can be obtained by such a system, which is given by the angular projections of the laser range finder variance: " N ! 2 N (24) E [RMSE] = cos(αi )2 · σsensor i=1 with αi the sweep angle of the sensor and N the number of measurements. Table 5 Experiment results for recordings 3-6 (medium speed) normalized by the number of samples (11,904) RMSEsample % Cases better than baseline system S1 S2 S3 78.990 10−3 [m] – 52.4298 10−3 [m] 63.18% 57.8229 10−3 [m] 59.95% J Intell Robot Syst Fig. 9 ROC curves for recording 3-6. % of cells whose root square error is lower than a given threshold Finally, it is important to stress that the two estimation systems derived from the application of the proposed methodology (S2 and S3) work on-line and in real-time. Table 6 shows the processing time of each stage, when it is executed. These processing times were measured using the main computer of the AMTC autonomous vehicle (See Section 4.1). The prediction step of the Vehicle Estimation Stage is executed at a framerate of 200 [Hz]. The correction step is executed asynchronously everytime the IMU the internal sensors of the vehicle or the map updating process generate new data. The IMU and the internal sensors generate data at the following rates: IMU at 100 [Hz], angle of the steering wheel at 50 [Hz], and linear speed of the wheels at 50 [Hz]. The map updating process generates data at a framerate of 10 [Hz]. The Laser Projection Stage and the Terrain Map Update are also executed asynchronously everytime the laser range finders generate new data. These sensors generate data at the following rates: LMS 291 laser range finder at 75 [Hz] and LD-MRS laser range finder at 50 [Hz]. Table 6 Processing time of the estimation process Processing Time Number of times that the module is [10−6 s] called in a second Vehicle State Estimation 0.5 (Prediction Step) Vehicle State Estimation 122.6 (Correction Step) Laser Projection 87.1 Terrain Map Update 104.0 200 210 125 125 5 Conclusions The accurate and real-time generation of terrain maps in off-road, irregular terrains is addressed in this work. The proposed methodology is based on the use of an Extended Kalman filter for estimating in real-time the instantaneous pose of the vehicle and the laser rangefinders by considering measurements taken from an inertial measurement unit, internal sensorial data of the vehicle and the estimated heights of the four wheels, which are obtained from the terrain map and allow determining the vehicle’s inclination. The estimated 6D pose of the laser rangefinders is used to correctly project the laser measurements onto the terrain map. The terrain map is a 2.5D map that stores the mean value and variance of the terrain height. In each map’s cell position, new laser observations are fused with existing height estimations using a Kalman filter. The methodology is validated in the real world (O’Higgins Public Park, located near downtown area in Santiago de Chile, Chile), using an autonomous vehicle. The evaluation dataset was captured while the vehicle was moving on unpaved, rough terrain at low and medium speeds, for 4.8 [km]. Experiments show that the use of the proposed methodology allow to increase the quality of the obtained maps; the RMSE is reduced to one third in the case that the vehicle is moving at low speeds, and reduced to two thirds when the vehicle is moving at medium speeds. Furthermore, it can be observed that in most of the map’s cells (80 %/60 % in case the vehicle is moving at low/medium speeds), the height estimations are more accurate when the Kalman-filterbased methodology is used. In addition, experiments show that the use of the map heights for the estimation of the pose of the laser rangefinders allow obtaining more accurate J Intell Robot Syst maps. When the map heights are not used, the RMSE increases by approximately 10 %, when the vehicle is moving at medium speeds. The following linear approximation between the steer angle αt and the angle of the steering wheel αtwheel is used: Acknowledgments This research was partially supported by FONDECYT (Chile) under Project Number 1130153. αt β · αtwheel Appendix 1: From Fig. 2a, it can be observed that: wheelbase sin (αt ) = (25) rt Then, given that vt = ωt · rt , the following expression for wt is obtained: vt sin (αt ) (26) wt = wheelbase Fig. 10 Relationship between the steer angle and the angle of the steering wheel, for the Volkswagen Tiguan vehicle (27) with β a real number. Figure 10 shows the linear relationship obtained for the Volkswagen Tiguan used in this work. Finally, from Eqs. (26) and (27), and considering that αt is small, the final expression for wt is defined as: wt vt · β · αtwheel vt · αtwheel · γ wheelbase (28) with γ a real number. For the Volkswagen Tiguan, 1 γ = 0.02359 m is obtained by a linear regression. J Intell Robot Syst References 1. Jazar, R.N.: Vehicle Dynamics: Theory and Application, p. 1015. Springer (2008) 2. Stavens, D., Thrun, S.: A self-supervised terrain roughness estimator for off-road autonomous driving. In: Proceedings of Conference on Uncertainty in AI, pp. 13–16 (2006) 3. Hadsell, R., Bagnell, J.A., Huber, D., Hebert, M.: Accurate rough terrain estimation with space-carving kernels. In: Proceedings of the 2009 Robotics: Science and Systems Conference - RSS 2009, Washington (2009) 4. Hebert, M., Caillas C., Krotkov, E., Kweon, I.S., Kanade, T.: Terrain mapping for a roving planetary explorer. In: Proceedings of International Conference on Robotics and Automation (ICRA), vol. 2, pp. 997–1002 (1989) 5. Pfaff, P., Triebel, R., Burgard, W.: An efficient extension to elevation maps for outdoor terrain mapping and loop closing. Int. J. Robot. Res. 26(2), 217–230 (2007) 6. Chen, T., Dai, B., Wang, R., Liu, D.: Gaussian-processbased ground segmentation for autonomous land vehicles. J. Intell. Robot. Syst. (In press) 7. Shin, Y., Jung, Ch., Chung, W.: Drivable road region detection using a single laser range finder for outdoor patrol robots. In: Proceedings of the 2010 IEEE Intelligent Vehicles Symposium, University of California, San Diego, pp. 21–24 (2010) 8. Ye, C., Borenstein, J.: A new terrain mapping method for mobile robots obstacle negotiation. In: Proceedings of the UGV Technology Conference at the 2002 SPIE AeroSense Symposium. pp. 21–25 (2003) 9. Gu, J., Cao, Q., Huang, Y.: Rapid traversability assessment in 2.5D grid-based map on rough terrain. Int. J. Adv. Rob. Syst. 5(4), 389–394 (2008) 10. Miller, I., Campbell, M.: A mixture-model based algorithm for real-time terrain estimation. J. Field Robot. 23(9), 755– 775 (2006) 11. Qiu, Q., Yang, T., Han, J.: A new real-time algorithm for off-road terrain estimation using laser data. Sci. China Ser. F: Inf Sci. 52(9), 1658–1667 (2009) 12. Tse, R., Ahmed, N., Campbell, M.: Unified mixture-model based terrain estimation with Markov Random Fields. In: Proceedings of the 2012 IEEE International Conference On Multisensor Fusion and Integration for Intelligent Systems. Germany (2012) 13. Thrun, S., Montemerlo, M., Dahlkamp, H., Stavens, D., Aron, A., Diebel, J., Fong, P., Gale, J., Halpenny, M., Hoffmann, G., Lau, K., Oakley, C., Palatucci, M., Pratt, V., Stang, P., Strohband, S., Dupont, C., Jendrossek, L.E., Koelen, C., Markey, C., Rummel, C., van Niekerk, J., Jensen, E., Alessandrini, P., Davies, B., Ettinger, S., Kaehler, A., Nefian, A., Mahoney, P.: Stanley: The robot that won the DARPA grand challenge. J. Field Robot. 23, 661–692 (2006) 14. Welch, G., Bishop, G.: An Introduction to the Kalman Filter. University of North Carolina at Chapel Hill, NC (1995) 15. Bernuy, F., Ruiz-del-Solar, J., Parra-Tsunekawa, I., Vallejos, P.A.: Adaptive and real-time unpaved road segmentation using color histograms and RANSAC. In: 9th IEEE International Conference on Control & Automation - ICCA 2011, pp. 136–141. Santiago (2011) 16. Cabello, F., Acuna, A., Vallejos, P.A., Orchard, M.E., Ruizdel-Solar, J.: Design and validation of a fuzzy longitudinal controller based on a vehicle dynamic simulator. In: 9th IEEE International Conference on Control Automation ICCA 2011, pp. 997–1002. Santiago (2011)