Open Source Robotics

Una colección curada de proyectos, herramientas y software de robótica de código abierto de alta calidad.

Pylot: A Modular Platform for Exploring Latency-Accuracy Tradeoffs in Autonomous Vehicles

Autores: Ionel Gog, Sukrit Kalra, Peter Schafhalter, Matthew A. Wright, Joseph E. Gonzalez, Ion Stoica · ICRA 2021

Licencias

  • Acceso abierto
  • Artículo: CC BY 4.0

Todo lo que sigue se basa en el artículo completo bajo su licencia CC BY 4.0; su figura se muestra con crédito a los autores.

En resumen

Cadena de AV modular y determinista sobre un entorno de ejecución de flujo de datos: cambie detectores, rastreadores, predictores o planificadores y vea cómo su tiempo de ejecución afecta a la conducción de extremo a extremo en CARLA o en un coche real.

Por qué importa

Los equipos que construyen pilas de conducción o de robots móviles pueden probar un nuevo detector o planificador dentro de una cadena completa y medir colisiones y confort de marcha en lugar de solo la precisión fuera de línea. El artículo muestra que la mejor elección de componente cambia con la velocidad de conducción y el escenario, lo que aboga por evaluar los componentes en contexto.

Problema

Los componentes de los vehículos autónomos se suelen juzgar con métricas fuera de línea como la precisión media, que ignoran el tiempo de ejecución, aunque un modelo lento pero preciso puede hacer que el vehículo sea menos seguro. Las pilas abiertas existentes como Autoware y Apollo ofrecen interfaces de simulador limitadas, sin cámaras fotorrealistas, y su diseño publicador-suscriptor dificulta la reproducción determinista de escenarios de conducción.

Solución propuesta

Pylot estructura toda la cadena (detección, seguimiento, predicción, planificación, control) como un grafo de flujo de datos de operadores que intercambian mensajes con marca de tiempo y marcas de agua, ejecutándose sobre el sistema ERDOS de los autores, lo que hace que la ejecución sea determinista y permite intercambiar componentes con distintos tiempos de ejecución sin reajustarlos. Incluye varias implementaciones de referencia por componente más versiones 'perfectas' con datos reales de CARLA, y un modo pseudoasíncrono que ejecuta CARLA de forma síncrona a más de 200 Hz mientras retrasa cada orden de control el tiempo de ejecución medido de la cadena. Una capa de adaptación a ROS permite que la misma cadena conduzca un vehículo real.

Ideas clave

  • La precisión oportuna (timely accuracy), que puntúa la salida de un módulo frente al mundo en el momento en que la salida está lista y no cuando se capturó la entrada, pone de manifiesto cómo el tiempo de ejecución erosiona la precisión en una escena en movimiento.
  • El mejor detector o rastreador depende del contexto: los detectores rápidos y de menor precisión superan a los lentos y de alta precisión a velocidades altas, y SORT, DeepSORT y DaSiamRPN se adaptan cada uno a situaciones distintas.
  • En un escenario de volantazo de emergencia, las configuraciones de planificador con menor tiempo de ejecución evitaron colisiones con más frecuencia, mientras que el planificador Frenet Optimal Trajectory dio una marcha más suave que RRT* a costa de evitar menos colisiones.
  • Un modelo de flujo de datos con marcas de agua (watermarks) reduce la cadena a una Kahn Process Network, lo que proporciona una reproducción determinista para la depuración de la que carecen los sistemas publicador-suscriptor.

Resultados principales

  • Un tiempo de ejecución de 10 ms reduce el mIoU oportuno medio de un componente perfecto de segmentación semántica a alrededor de 0,75, por debajo del mIoU de los tres mejores envíos de Cityscapes.
  • El AP50 oportuno medio de un detector de peatones perfecto se reduce a la mitad con un tiempo de ejecución de 35 ms.
  • Con un tiempo de ejecución de 20 ms, el mIoU oportuno mediano es un 28 % más bajo a 40 m/s que a 10 m/s, y el AP50 oportuno mediano cae de 1,0 a 10 m/s a 0 a 40 m/s.
  • En el escenario del peatón ocluido (tabla I), las configuraciones lentas de FOT (P99 550 ms), RRT (P99 76 ms) e Hybrid A (P99 760 ms) fallaron en todas las velocidades objetivo de 16 a 22 m/s, mientras que la configuración rápida de cada planificador evitó la colisión a 16 m/s.
  • Portar la cadena de CARLA a un vehículo de pruebas Lincoln MKZ llevó 434 líneas de código Python; Pylot en sí tiene unas 28 000 líneas de Python.
  • Se informa de que el sistema de flujo de datos subyacente supera a ROS en un 30 % en latencia de comunicación, y Pylot se describe como el mejor envío en la categoría de mapa HD del CARLA Autonomous Driving Challenge.

Limitaciones

  • Los enfoques de conducción basados en aprendizaje por refuerzo todavía no son compatibles; una interfaz de OpenAI Gym se menciona como trabajo futuro.
  • La comparación de extremo a extremo de los planificadores usa percepción con datos reales en lugar de los modelos de percepción, y un único escenario de emergencia.
  • Los estudios de precisión oportuna usan componentes de percepción perfectos con tiempos de ejecución emulados, no los tiempos de ejecución de modelos reales funcionando en el bucle.
  • El despliegue en el vehículo real se describe como un portado con modelos estándar, sin métricas de conducción comunicadas en el coche real.

Impacto en el campo

El artículo fue finalista del IEEE ICRA 2021 Best Paper Award on Unmanned Aerial Vehicles y tiene 107 citas. Pylot se publica como código abierto, con implementaciones de referencia y con datos reales de los componentes y un conjunto de escenarios de prueba para CARLA basados en la NHTSA.

Resumen

Presentamos Pylot, una plataforma para la investigación y el desarrollo de vehículos autónomos (AV), construida con el objetivo de permitir a los investigadores estudiar los efectos de la latencia y la precisión de sus modelos y algoritmos sobre el comportamiento de conducción de extremo a extremo de un AV. Esto se logra mediante una estructura modular, posibilitada por nuestro sistema de flujo de datos de alto rendimiento, que representa los componentes de la cadena de software del AV (detectores de objetos, planificadores de movimiento, etc.) como un grafo de flujo de datos de operadores que se comunican sobre flujos de datos mediante mensajes con marca de tiempo. Pylot se conecta fácilmente con simuladores de AV populares como CARLA y se puede desplegar con facilidad en vehículos reales con cambios mínimos en el código. Para reducir la carga de desarrollar una cadena completa a fin de evaluar un único componente, Pylot proporciona varias implementaciones de referencia del estado del arte para los distintos componentes de una cadena de AV. Usando estas implementaciones de referencia, una cadena de AV basada en Pylot es capaz de conducir un vehículo real y obtiene una puntuación alta en el CARLA Autonomous Driving Challenge. También presentamos varios estudios de caso posibilitados por Pylot, incluidas pruebas de la necesidad de componentes dependientes del contexto y de la asignación de tiempo por componente. Pylot es de código abierto, con el código disponible en https://github.com/erdos-project/pylot.

Enlaces

  • arXiv 2104.07830: https://arxiv.org/abs/2104.07830
  • DOI 10.1109/ICRA48506.2021.9561747: https://doi.org/10.1109/ICRA48506.2021.9561747
  • PDF: https://arxiv.org/pdf/2104.07830v1
  • Código: https://github.com/erdos-project/pylot

Este sitio web requiere JavaScript. Por favor, habilite JavaScript para explorar nuestros proyectos de robótica.