Ayuda
Ir al contenido

Dialnet


Software architecture for self-driving navigation

  • Autores: Pablo Marín Plaza
  • Directores de la Tesis: Arturo de la Escalera Hueso (dir. tes.), David Martín Gómez (codir. tes.)
  • Lectura: En la Universidad Carlos III de Madrid ( España ) en 2018
  • Idioma: español
  • Tribunal Calificador de la Tesis: Felipe Jiménez Alonso (presid.), Agapito Ismael Ledezma Espino (secret.), Alessio Malizia (voc.)
  • Programa de doctorado: Programa de Doctorado en Ingeniería Eléctrica, Electrónica y Automática por la Universidad Carlos III de Madrid
  • Materias:
  • Enlaces
  • Resumen
    • Este documento es el resultado de cinco años de trabajo en el campo de los vehículos sin conductor donde, en él, se recoge el desarrollo de una arquitectura software de control para la navegación de este tipo de vehículos. El objetivo es muy ambicioso ya que para su desarrollo ha sido necesario el conocimiento de múltiples disciplinas como ingeniería electrónica, ingeniería informática, ingeniería de control, procesamiento de señales, mecánica y visión por computador. A pesar del basto conocimiento necesario para lograr un vehículo funcional, se han alcanzado soluciones para cada uno de los problemas en que consiste la navegación autónoma, generando un vehículo autogobernado que toma decisiones por sí mismo para evitar obstáculos y alcanzar los puntos de destino deseados.

      Los problemas principales que los vehículos autónomos tienen que hacer frente, están basados en tres preguntas principales: dónde estoy, dónde tengo que ir y cómo voy. Para responder a estas tres preguntas se ha dividido la arquitectura en los módulos siguientes: localización, generación de mapas del entorno, planificación de trayectorias y control longitudinal y lateral junto con módulos extra para dotar al sistema de más aptitudes y mejor funcionamiento como por ejemplo la comunicación entre vehículos, peatones e infraestructuras, la interación humano máquina, la gestión de tareas con múltiples vehículos o la propia consciencia del vehículo en cuanto a su estado de baterías, mantenimiento, sensores conectados o desconectados, etc.

      La localización es crítica para la arquitectura de control ya que translada el movimiento real del robot al mundo digital donde se recogen todos los datos de navegación para tomar decisiones. La localización está dividida en: localización inicial, odometría global y odometría local. La localización inicial consiste en situar al vehículo en el mapa con una posición X, una posición Y y la orientación específica en ese momento. Este problema no es nada sencillo ya que un ligero error en cualquiera de estos tres grados de libertad y la odometría estimada por los sensores nunca coincidiría en el mapa. Para solucionar este problema, se ha optado por utilizar un algoritmo de filtro de partículas llamado Adaptative Monte Carlo Localization que necesita una localización inicial aproximada proporcionada por el GPS, los datos recogido con el sensor láser y hacer un matching con los obstáculos del mapa. Cada partícula que no coincida en los datos del laser desde ese punto con los obstáculos del mapa, se la penaliza y cada partícula que coincida con estos datos en mayor o menor medida, se la premia. En cada iteración se eliminan las partículas que tengan peor puntuación y se mantienten las de mejor puntuación, dando lugar a una localización inicial muy aproximada en relación con el sensor y el mapa global. A medida que el vehículo se mueve, tanto la posición X, la posición Y, como el ángulo de orientación, se van corrigiendo para que cuadre la posición del vehículo en el mapa en base al laser y los obstáculos. Esta técnica es muy beneficiosa debido a que es capaz de trabajar con mapas que no sean exactos o con odometrías imprecisas.

      Después de la localización inicial, el mayor problema es saber con certeza cuánto se ha desplazado el vehículo y trasladar ese desplazamiento al mundo digital para poder tomar decisiones más precisas. Para ello, se genera la estimación de la odometría local que en esta tesis se hace mediante un sistema de encoders situados en las ruedas de dirección para saber el ángulo de giro y un encoder en las ruedas traseras de tracción para saber el desplazamiento longitudinal. Analíticamente, mediante las ecuaciones cinemáticas de Ackermann, se estima la posición en X y en Y desde el punto de partida y se calcula el ángulo de giro que da lugar a la orientación con respecto del sistema de referencia inicial. Aparte de la estimación de la odometría con los encoders, se ha generado odometría utilizando la cámara estéreo. Su funcionamiento es similar a la odometría generada por una cámara monocular utilizando optical flow pero, en el caso de la cámara estéreo, primero se obtiene el espacio libre de obstáculos. Esto se consigue analizando el mapa de disparidad vertical y horizontal. Todos los elementos con una altura superior al plano, se eliminan y se obtiene una máscara que contiene sólo el plano de navegación libre de obstáculos. Posteriormente se buscan características en ese plano en imágenes consecutivas, se filtran los vectores obtenidos por orientación y longitud y se obtiene el desplazamiento y la orientación del vehículo. Esta estimación es muy sensible a cambios de iluminación o a terrenos sin texturas. El siguiente método probado en el vehículo es la estimación local de odometría basado en el GPS+brújula, el cual, estima la posición utilizando la información proporcionada en latitud y longitud, para ser transformada a coordenadas UTM y posteriormente a coordenadas locales. Además de los métodos descritos anteriormente, se ha utilizado el sensor lidar para obtener una nube de puntos del entorno y utilizar LOAM (Laser Odometry And Mapping), una herramienta disponible en los repositorios de ROS. Los puntos 3D del terreno se comparan en capturas consecutivas mediante ICP (Iterative Closest Point) obteniendo el desplazamiento y la orientación. Mediante el sensor inercial IMU (Inertial Measurement Unit) instalado en el vehículo, también se ha estimado la orientación y el desplazamiento. Una vez estimada la odometría local, se debe trasladar ese movimiento al mapa desde el punto inicial, por ello, se transforma la odometría local en coordenadas globales añadiendo el punto inicial a la odometría local. Aquí se hace referencia una vez más a la importancia de tener un punto inicial preciso para que la odometría global coincida con el mapa global.

      El módulo de la generación de mapas se ha dividido en dos atendiendo a las necesidades del vehículo: mapa global y mapa local. El mapa global describe todo el campus de Leganés de la Universidad Carlos III de Madrid mediante un mapa de rejillas. Este mapa tiene un tamaño de 2651x2052 celdas, lo que da un total de 5.439.852 celdas para una distancia de 1325.5x1026m con una resolución de celda de 0.5m. Este mapa de rejillas contiene obstáculos definidos por un valor entre 1 y 100 para la probabilidad que exista obstáculo en esa celda, 0 para determinar el espacio libre y -1 para elementos indeterminados donde no se ha obtenido información, como por ejemplo el interior de los edificios o zonas ocluidas. La obtención de este mapa se ha hecho mediante dos técnicas combinadas. La primera ha sido utilizando una herramienta llamada gmapping de ROS la cual mediante el uso de la odometría y el sensor laser frontal de un solo plano, genera el mapa a medida que el vehículo se mueve. La segunda técnica ha sido empleando el lidar 360º instalado en la parte superior del vehículo, el cual, mediante odometría, se han ido guardando los puntos obtenidos en 3D del entorno, se han filtrado y agrupado para reducir el tamaño de la nube de puntos y se ha sustraído el suelo. Una vez finalizado este proceso, se ha proyectado la nube de puntos en el plano 2D del vehículo y se ha obtenido el mapa del campus para la navegación global. El mapa local se obtiene mediante la herramienta costmap2D de ROS, la cual como entrada, utiliza el laser frontal de un solo plano para detectar los obstáculos en frente del vehículo y así poder detectar amenazas, como peatones, coches, etc. Tanto para el mapa local como para el mapa global, se ha utilizado una capa extra donde se incorpora nueva información al mapa de rejillas. Esta información incorporada se corresponde con una zona de seguridad relativa a la geometría del vehículo, así, cuando se determinan las trayectorias, siempre se evita entrar en estas zonas donde el vehículo podría colisionar con un obstáculo detectado en el mapa.

      El módulo de planificación desarrollado en la arquitectura, se basa en una herramienta llamada move base de ROS, la cual está preparada para trabajar con robots móviles. Esta herramienta se divide en la generación de trayectorias globales, generación de trayectorias locales y control de alto nivel. Este control es el resultado de comprobar si ya se ha llegado al objetivo, si no se ha llegado y porqué no se ha llegado, dando incluso opciones de recuperación en caso de que el robot móvil quede atrapado en una zona sin poder avanzar. Debido a que los robots móviles tienen una configuración de movimiento en base al tipo de ruedas, esta herramienta está optimizada para robots de configuración diferencial u omnidireccional ya sea holonómico o no holonómico pero no está optimizado para trabajar con vehículos cuya configuración es Ackermann. Como se ha expresado previamente, la generación de trayectorias se divide en global y local. La generación de trayectorias global es el resultado de utilizar el mapa global de todo el campus, el punto actual del vehículo situado en ese mapa gracias a la odometría global y el punto de destino al que se quiere llegar. Gracias a que el mapa global tiene el formato de mapa de rejilla, se puede acceder a cada punto para comprobar si hay obstáculo o no o si no hay información y una vez analizado, se elije el camino más corto utilizando el costmap2D del mapa global para evitar acercarse demasiado a los obstáculos. Las trayectorias globales se generan con el algoritmo Dijkstra que se actualiza cada segundo desde la posición actual del vehículo. Este método se ha elegido por su rapidez a la hora de generar trayectorias y su precisión. Una vez generada la trayectoria global, es el turno de generar la trayectoria local y para este fin se ha utilizado el algoritmo basado en bandas elásticas temporales, Time Elastic Bands, o más conocido como TEB. Este planificador local es además un generador de comandos de control lateral y longitudinal. Este controlador necesita el mapa de rejilla local creado por el sensor laser frontal más la información incorporada por costmap2D para poder crear las trayectorias en base a fuerzas de repulsión o atracciónde obstáculos y objetivo final respectivamente. Además del mapa de rejilla con la información del costmap2D, es necesario la ubicación actual del vehículo, es decir, la odometría global y la trayectoria global, ya que contiene un parámetro para calcular la trayectorial local sólo hasta cierta distancia del vehículo, para aligerar el coste computacional y poder recalcular mucho más rápido trajectorias por si fuera necesario.

      El módulo de control se ha dividido en dos, control de alto nivel donde se determina la velocidad y el ángulo de giro que debe llevar el vehículo para poder seguir las trayectorias propuestas por el planificador local, y el control de bajo nivel que acelera o decelera del vehículo para poder mantener esa velocidad o hace girar el vehículo. El control de alto nivel se genera a la vez que las trayectorias locales utilizando los comandos de control proporcionados por TEB local planner. Se ha desarrollado en paralelo un controlador basado en LQR (Linear Quadratic Regulator) tomando en consideración la velocidad actual del vehículo, el ángulo de giro de las ruedas, la odometría actual del vehículo y la tayectoria local a seguir. Este regulador corrije el ángulo de giro de vehículo para que se mantenga en la ruta establecida por el planificador, ya sea global o local que proporcione puntos del camino. Los comandos de control se generan a partir del error que existe entre la posición actual del vehículo con respecto a la trayectoria a seguir. En el análisis, también se toma en cuenta el ratio de cambio de este error y se predice la posición del vehículo futura con los comandos de control generados. Para el control de bajo nivel en velocidad, se necesita proporcionar un PWM al microcontrolador que se encarga de acelerar al vehículo. Este PWM se genera gracias a un PID simple con un filtro de paso bajo para evitar las altas frecuencias y que la acción derivativa sea más suave y una limitación en la parte integral para evitar la saturación de la aceleración del vehículo. Para el control de bajo nivel de ángulo de giro de las ruedas delanteras, debe proporcionarse directamente el ángulo de giro deseado al microcontrolador y las ruedas se posicionan en el ángulo especificado. Este microcontrolador es capaz de trabajar a una frecuencia de 100 Hz. de lazo de control, leyendo los datos del encoder y mandando la señal PWM al motor de dirección. El control de bajo nivel del microcontrolador se basa en el error existente entre el ángulo actual de las ruedas de dirección y el ángulo de referencia recibido. Con una parte proporcional y una parte integral, el motor posiciona las ruedas en el ángulo deseado. Se ha dejado un pequeño error en posición de ±0.3º donde el motor se bloquea por motivos de ahorro de energía ya que, dependiendo del terreno, el motor no es capaz de girar las ruedas con el poco PWM proporcionado por ese pequeño error. Se ha desarrollado en una capa en paralelo, un sistema reactivo para evitar colisiones que frena el vehículo en caso de emergencia. Si cualquier obstáculo, ya sea dinámico o estático entrara en una zona de peligro situada en la parte frontal del vehículo (con un parámetro se selecciona la distancia de peligro), éste, automáticamente activa el frenado de emergencia hasta que el obstáculo sale de rango.

      Aparte de las principales soluciones propuestas, se ha desarrollado una interfaz gráfica (GUI) que se muestra en una pantalla situada en frente de los pasajeros. En esta pantalla aparece el mapa del campus, la posición del vehículo y se puede elegir el tipo de comportamiento del vehículo, ya sea manual, seguimiento de fronteras, conducción entre fronteras, convoy o seguimiento de trayectorias. Adicionalmente, se han incorporado pestañas selecionables para mostrar elementos para desarrolladores como por ejemplo todas las odometrías generadas, el mapa local y global y elementos de control de los motores. Se ha incorporado también un sistema de sonido de interacción con el pasajero, el cual avisa del módo de funcionamiento del vehículo seleccionado y si existiera algún obstáculo delante del vehículo que impidiera el movimiento. Además de estos módulos, se ha implementado un sistema de comunicación entre vehículos, peatones e infraestructura para dotar al sistema de cooperación. La comunicación entre vehículos se realiza mediante una herramienta llamada fkie multimaster, el cual descubre otros cores de ROS para poder enviar y recibir mensajes. Para poder controlar mejor la red y la comunicación, ya sea mediante WiFi o 4G, se ha creado una red privada virtual (VPN).

      A través de este documento, la solución proporcionada a cada uno de los módulos involucrados refleja la importancia de las conexiones de software y la comunicación entre procesos dentro de la arquitectura ya sea para la generación de trayectorias, la creación de los mapas a tiempo, la localización precisa en el entorno, o los comandos generados para gobernar el vehículo. Así mismo, en el apartado de resultados se pone de manifiesto la importancia de cumplir los plazos de compartición de mensajes y optimizar el sistema para no sobrecargar la CPU. Estos resultados se han obtenido mediante diferentes experimentos para corroborar la carga de la CPU y la frecuencia de muestreo de los mensajes publicados.

      Como conclusión global, esta tesis aporta el conocimiento avanzado necesario para crear un sistema de vehículo que toma decisiones por sí mismo basado en información recogida del entorno mediante sensores. Esta información es tratada y procesada para evitar colisiones y realizar una navegación segura dentro del campus.


Fundación Dialnet

Dialnet Plus

  • Más información sobre Dialnet Plus

Opciones de compartir

Opciones de entorno