Open Source Robotics

Una raccolta curata di progetti, strumenti e software di robotica open source di alta qualità per la comunità della robotica.

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

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

Licenze

  • Open access
  • Articolo: CC BY 4.0

Tutto ciò che segue si basa sull'articolo completo secondo la sua licenza CC BY 4.0; la figura è riportata citando gli autori.

In breve

Pipeline AV modulare e deterministica su un runtime dataflow: si sostituiscono rilevatori, tracker, predittori o pianificatori e si vede come il loro tempo di esecuzione influisce sulla guida end-to-end in CARLA o su un'auto reale.

Perché è importante

I team che costruiscono stack di guida o di robot mobili possono provare un nuovo rilevatore o pianificatore all'interno di una pipeline completa e misurare collisioni e comfort di marcia anziché solo l'accuratezza offline. L'articolo mostra che la scelta migliore del componente cambia con la velocità di guida e lo scenario, il che depone a favore della valutazione dei componenti nel loro contesto.

Problema

I componenti dei veicoli autonomi sono di solito giudicati con metriche offline come la precisione media, che ignorano il tempo di esecuzione, anche se un modello lento ma accurato può rendere il veicolo meno sicuro. Gli stack aperti esistenti come Autoware e Apollo offrono interfacce di simulazione limitate, senza telecamere fotorealistiche, e il loro design publisher-subscriber rende difficile la riproduzione deterministica degli scenari di guida.

Soluzione proposta

Pylot struttura l'intera pipeline (rilevamento, tracciamento, predizione, pianificazione, controllo) come un grafo dataflow di operatori che si scambiano messaggi con marca temporale e watermark, in esecuzione sul sistema ERDOS degli autori, il che rende l'esecuzione deterministica e consente di sostituire componenti con tempi di esecuzione diversi senza doverli ritarare. Fornisce diverse implementazioni di riferimento per componente più versioni 'perfette' basate sui dati reali di CARLA, e una modalità pseudo-asincrona che esegue CARLA in modo sincrono a oltre 200 Hz ritardando ogni comando di controllo del tempo di esecuzione misurato della pipeline. Uno strato di adattamento a ROS consente alla stessa pipeline di guidare un veicolo reale.

Idee chiave

  • L'accuratezza tempestiva (timely accuracy), che valuta l'uscita di un modulo rispetto al mondo nel momento in cui l'uscita è pronta e non quando l'ingresso è stato acquisito, rivela come il tempo di esecuzione eroda l'accuratezza in una scena in movimento.
  • Il rilevatore o tracker migliore dipende dal contesto: i rilevatori veloci e meno accurati battono quelli lenti e molto accurati ad alte velocità, e SORT, DeepSORT e DaSiamRPN si adattano ciascuno a situazioni diverse.
  • In uno scenario di sterzata d'emergenza, le configurazioni di pianificatore con tempo di esecuzione minore hanno evitato le collisioni più spesso, mentre il pianificatore Frenet Optimal Trajectory ha dato una marcia più fluida di RRT* al prezzo di meno collisioni evitate.
  • Un modello dataflow con watermark riduce la pipeline a una Kahn Process Network, il che fornisce una riproduzione deterministica per il debug che manca ai sistemi publisher-subscriber.

Risultati principali

  • Un tempo di esecuzione di 10 ms riduce il mIoU tempestivo medio di un componente perfetto di segmentazione semantica a circa 0,75, al di sotto del mIoU delle prime tre sottomissioni di Cityscapes.
  • L'AP50 tempestivo medio di un rilevatore di pedoni perfetto si dimezza con un tempo di esecuzione di 35 ms.
  • Con un tempo di esecuzione di 20 ms, il mIoU tempestivo mediano è inferiore del 28% a 40 m/s rispetto a 10 m/s, e l'AP50 tempestivo mediano scende da 1,0 a 10 m/s a 0 a 40 m/s.
  • Nello scenario del pedone occluso (Tabella I), le configurazioni lente di FOT (P99 550 ms), RRT (P99 76 ms) e Hybrid A (P99 760 ms) hanno fallito a ogni velocità obiettivo da 16 a 22 m/s, mentre la configurazione veloce di ciascun pianificatore ha evitato la collisione a 16 m/s.
  • Portare la pipeline da CARLA a un veicolo di prova Lincoln MKZ ha richiesto 434 righe di codice Python; Pylot stesso conta circa 28.000 righe di Python.
  • Si riporta che il sistema dataflow sottostante batte ROS del 30% nella latenza di comunicazione, e Pylot è descritto come la migliore sottomissione nella categoria con mappa HD del CARLA Autonomous Driving Challenge.

Limiti

  • Gli approcci alla guida basati sull'apprendimento per rinforzo non sono ancora supportati; un'interfaccia OpenAI Gym è indicata come lavoro futuro.
  • Il confronto end-to-end dei pianificatori usa una percezione basata sui dati reali anziché i modelli di percezione, e un solo scenario di emergenza.
  • Gli studi sull'accuratezza tempestiva usano componenti di percezione perfetti con tempi di esecuzione emulati, non i tempi di esecuzione di modelli reali in esecuzione nel ciclo.
  • Il dispiegamento sul veicolo reale è descritto come un porting con modelli pronti all'uso, senza metriche di guida riportate sull'auto reale.

Impatto sul settore

L'articolo è stato finalista dell'IEEE ICRA 2021 Best Paper Award on Unmanned Aerial Vehicles e ha 107 citazioni. Pylot è rilasciato come codice open source, con implementazioni di riferimento e basate sui dati reali dei componenti e una serie di scenari di prova per CARLA basati sulla NHTSA.

Abstract

Presentiamo Pylot, una piattaforma per la ricerca e lo sviluppo di veicoli autonomi (AV), costruita con l'obiettivo di consentire ai ricercatori di studiare gli effetti della latenza e dell'accuratezza dei loro modelli e algoritmi sul comportamento di guida end-to-end di un AV. Ciò si ottiene tramite una struttura modulare, resa possibile dal nostro sistema dataflow ad alte prestazioni, che rappresenta i componenti della pipeline software dell'AV (rilevatori di oggetti, pianificatori del movimento, ecc.) come un grafo dataflow di operatori che comunicano su flussi di dati usando messaggi con marca temporale. Pylot si interfaccia facilmente con simulatori AV diffusi come CARLA ed è facilmente distribuibile su veicoli reali con modifiche minime al codice. Per ridurre l'onere di sviluppare un'intera pipeline per valutare un singolo componente, Pylot fornisce diverse implementazioni di riferimento allo stato dell'arte per i vari componenti di una pipeline AV. Usando queste implementazioni di riferimento, una pipeline AV basata su Pylot è in grado di guidare un veicolo reale e ottiene un punteggio elevato nel CARLA Autonomous Driving Challenge. Presentiamo inoltre diversi casi di studio resi possibili da Pylot, tra cui prove della necessità di componenti dipendenti dal contesto e dell'allocazione del tempo per componente. Pylot è open source, con il codice disponibile su https://github.com/erdos-project/pylot.

Link

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

Questo sito richiede JavaScript. Attiva JavaScript per esplorare i nostri progetti di robotica open source.