Open Source Robotics

Une collection organisée de projets, outils et logiciels robotiques open source de haute qualité.

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

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

Licences

  • Accès libre
  • Article: CC BY 4.0

Tout ce qui suit s'appuie sur l'article complet sous sa licence CC BY 4.0 ; sa figure est montrée en citant les auteurs.

En bref

Pipeline d'AV modulaire et déterministe sur un environnement d'exécution en flot de données : remplacer détecteurs, trackers, prédicteurs ou planificateurs et voir comment leur temps d'exécution affecte la conduite de bout en bout dans CARLA ou dans une vraie voiture.

Pourquoi c'est important

Les équipes qui construisent des piles de conduite ou de robots mobiles peuvent tester un nouveau détecteur ou planificateur au sein d'un pipeline complet et mesurer les collisions et le confort de conduite plutôt que la seule précision hors ligne. L'article montre que le meilleur choix de composant change selon la vitesse et le scénario, ce qui plaide pour évaluer les composants en contexte.

Problème

Les composants de véhicules autonomes sont généralement jugés avec des métriques hors ligne comme la précision moyenne, qui ignorent le temps d'exécution, alors qu'un modèle lent mais précis peut rendre le véhicule moins sûr. Les piles ouvertes existantes comme Autoware et Apollo offrent des interfaces de simulateur limitées sans caméras photoréalistes, et leur conception éditeur-abonné rend difficile la relecture déterministe de scénarios de conduite.

Solution proposée

Pylot structure l'ensemble du pipeline (détection, suivi, prédiction, planification, commande) comme un graphe de flot de données d'opérateurs échangeant des messages horodatés avec watermarks, exécuté sur le système ERDOS des auteurs, ce qui rend l'exécution déterministe et permet de remplacer des composants aux temps d'exécution différents sans réajustement. Il fournit plusieurs implémentations de référence par composant ainsi que des versions « parfaites » fondées sur la vérité terrain de CARLA, et un mode pseudo-asynchrone qui exécute CARLA de manière synchrone à plus de 200 Hz tout en retardant chaque commande du temps d'exécution mesuré du pipeline. Une couche d'adaptation ROS permet au même pipeline de conduire un véhicule réel.

Idées clés

  • La précision à temps (timely accuracy), qui évalue la sortie d'un module par rapport au monde au moment où elle est prête plutôt qu'au moment où l'entrée a été capturée, révèle comment le temps d'exécution érode la précision dans une scène en mouvement.
  • Le meilleur détecteur ou tracker dépend du contexte : à haute vitesse, des détecteurs rapides et moins précis battent des détecteurs lents et très précis, et SORT, DeepSORT et DaSiamRPN conviennent chacun à des situations différentes.
  • Dans un scénario d'évitement d'urgence, les configurations de planificateur à temps d'exécution plus court ont évité les collisions plus souvent, tandis que le planificateur Frenet Optimal Trajectory donnait une conduite plus souple que RRT*, au prix de moins de collisions évitées.
  • Un modèle de flot de données avec watermarks ramène le pipeline à un Kahn Process Network, ce qui permet une relecture déterministe pour le débogage, absente des systèmes éditeur-abonné.

Principaux résultats

  • Un temps d'exécution de 10 ms réduit la mIoU moyenne à temps d'un composant parfait de segmentation sémantique à environ 0,75, en dessous de la mIoU des trois meilleures soumissions Cityscapes.
  • L'AP50 moyenne à temps d'un détecteur de piétons parfait est divisée par deux avec un temps d'exécution de 35 ms.
  • Avec un temps d'exécution de 20 ms, la mIoU médiane à temps est inférieure de 28 % à 40 m/s par rapport à 10 m/s, et l'AP50 médiane à temps chute de 1,0 à 10 m/s à 0 à 40 m/s.
  • Dans le scénario du piéton occulté (Table I), les configurations lentes de FOT (P99 550 ms), RRT (P99 76 ms) et Hybrid A (P99 760 ms) ont échoué à toutes les vitesses cibles de 16 à 22 m/s, tandis que la configuration rapide de chaque planificateur a évité la collision à 16 m/s.
  • Le portage du pipeline de CARLA vers un véhicule d'essai Lincoln MKZ a demandé 434 lignes de code Python ; Pylot lui-même compte environ 28 000 lignes de Python.
  • Le système de flot de données sous-jacent battrait ROS de 30 % en latence de communication, et Pylot est décrit comme la meilleure soumission sur la piste HD map du CARLA Autonomous Driving Challenge.

Limites

  • Les approches de conduite par apprentissage par renforcement ne sont pas encore prises en charge ; une interface OpenAI Gym est citée comme travail futur.
  • La comparaison de bout en bout des planificateurs utilise une perception de vérité terrain plutôt que les modèles de perception, et un seul scénario d'urgence.
  • Les études de précision à temps utilisent des composants de perception parfaits avec des temps d'exécution émulés, et non les temps d'exécution de modèles réels tournant dans la boucle.
  • Le déploiement sur véhicule réel est décrit comme un portage avec des modèles prêts à l'emploi, sans métriques de conduite rapportées sur la vraie voiture.

Impact sur le domaine

L'article a été finaliste du IEEE ICRA 2021 Best Paper Award on Unmanned Aerial Vehicles et compte 107 citations. Pylot est publié en code open source, avec des implémentations de référence et de vérité terrain des composants et une suite de scénarios de test fondés sur la NHTSA pour CARLA.

Résumé

Nous présentons Pylot, une plateforme de recherche et développement pour les véhicules autonomes (AV), construite dans le but de permettre aux chercheurs d'étudier les effets de la latence et de la précision de leurs modèles et algorithmes sur le comportement de conduite de bout en bout d'un AV. Cela est obtenu grâce à une structure modulaire rendue possible par notre système de flot de données haute performance, qui représente les composants du pipeline logiciel d'un AV (détecteurs d'objets, planificateurs de mouvement, etc.) comme un graphe de flot de données d'opérateurs communiquant sur des flux de données au moyen de messages horodatés. Pylot s'interface facilement avec des simulateurs d'AV répandus comme CARLA et se déploie aisément sur des véhicules réels avec un minimum de modifications du code. Pour réduire la charge de développer un pipeline entier afin d'évaluer un seul composant, Pylot fournit plusieurs implémentations de référence à l'état de l'art pour les différents composants d'un pipeline d'AV. Grâce à ces implémentations de référence, un pipeline d'AV fondé sur Pylot est capable de conduire un véhicule réel et obtient un score élevé au CARLA Autonomous Driving Challenge. Nous présentons également plusieurs études de cas rendues possibles par Pylot, notamment des éléments montrant le besoin de composants dépendants du contexte et d'une allocation du temps par composant. Pylot est open source, et le code est disponible à l'adresse https://github.com/erdos-project/pylot.

Liens

  • 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
  • Code: https://github.com/erdos-project/pylot

Ce site nécessite JavaScript. Veuillez activer JavaScript pour explorer nos projets de robotique open source.