Open Source Robotics

Uma coleção selecionada de projetos, ferramentas e software de robótica de código aberto de alta qualidade.

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

Licenças

  • Acesso aberto
  • Artigo: CC BY 4.0

Tudo o que segue se baseia no artigo completo sob a licença CC BY 4.0; sua figura é mostrada com crédito aos autores.

Em resumo

Pipeline de AV modular e determinístico sobre um runtime de fluxo de dados: troque detectores, rastreadores, preditores ou planejadores e veja como seu tempo de execução afeta a direção de ponta a ponta no CARLA ou em um carro real.

Por que importa

Equipes que constroem pilhas de direção ou de robôs móveis podem testar um novo detector ou planejador dentro de um pipeline completo e medir colisões e conforto de rodagem, em vez de apenas a acurácia offline. O artigo mostra que a melhor escolha de componente muda com a velocidade de direção e o cenário, o que defende avaliar os componentes em contexto.

Problema

Componentes de veículos autônomos costumam ser julgados com métricas offline como a precisão média, que ignoram o tempo de execução, embora um modelo lento mas preciso possa tornar o veículo menos seguro. Pilhas abertas existentes como Autoware e Apollo oferecem interfaces de simulador limitadas, sem câmeras fotorrealistas, e seu projeto publicador-assinante dificulta a reprodução determinística de cenários de direção.

Solução proposta

O Pylot estrutura todo o pipeline (detecção, rastreamento, predição, planejamento, controle) como um grafo de fluxo de dados de operadores que trocam mensagens com carimbo de tempo e marcas d'água, rodando sobre o sistema ERDOS dos autores, o que torna a execução determinística e permite trocar componentes com tempos de execução diferentes sem reajuste. Ele traz várias implementações de referência por componente, além de versões 'perfeitas' com dados reais do CARLA, e um modo pseudoassíncrono que roda o CARLA de forma síncrona a mais de 200 Hz enquanto atrasa cada comando de controle pelo tempo de execução medido do pipeline. Uma camada de adaptação para ROS permite que o mesmo pipeline dirija um veículo real.

Principais ideias

  • A acurácia oportuna (timely accuracy), que pontua a saída de um módulo em relação ao mundo no momento em que a saída fica pronta, e não quando a entrada foi capturada, expõe como o tempo de execução corrói a acurácia em uma cena em movimento.
  • O melhor detector ou rastreador depende do contexto: detectores rápidos e de menor acurácia superam os lentos e de alta acurácia em velocidades altas, e SORT, DeepSORT e DaSiamRPN servem, cada um, a situações diferentes.
  • Em um cenário de desvio de emergência, as configurações de planejador com menor tempo de execução evitaram colisões com mais frequência, enquanto o planejador Frenet Optimal Trajectory deu uma rodagem mais suave que o RRT* ao custo de menos colisões evitadas.
  • Um modelo de fluxo de dados com marcas d'água (watermarks) reduz o pipeline a uma Kahn Process Network, o que dá uma reprodução determinística para depuração que falta aos sistemas publicador-assinante.

Principais resultados

  • Um tempo de execução de 10 ms reduz o mIoU oportuno médio de um componente perfeito de segmentação semântica para cerca de 0,75, abaixo do mIoU das três melhores submissões do Cityscapes.
  • O AP50 oportuno médio de um detector de pedestres perfeito cai pela metade com um tempo de execução de 35 ms.
  • Com um tempo de execução de 20 ms, o mIoU oportuno mediano é 28% menor a 40 m/s do que a 10 m/s, e o AP50 oportuno mediano cai de 1,0 a 10 m/s para 0 a 40 m/s.
  • No cenário do pedestre oculto (Tabela I), as configurações lentas de FOT (P99 550 ms), RRT (P99 76 ms) e Hybrid A (P99 760 ms) falharam em todas as velocidades-alvo de 16 a 22 m/s, enquanto a configuração rápida de cada planejador evitou a colisão a 16 m/s.
  • Portar o pipeline do CARLA para um veículo de testes Lincoln MKZ exigiu 434 linhas de código Python; o próprio Pylot tem cerca de 28.000 linhas de Python.
  • Relata-se que o sistema de fluxo de dados subjacente supera o ROS em 30% na latência de comunicação, e o Pylot é descrito como a melhor submissão na trilha de mapa HD do CARLA Autonomous Driving Challenge.

Limitações

  • Abordagens de direção baseadas em aprendizado por reforço ainda não são suportadas; uma interface com o OpenAI Gym é citada como trabalho futuro.
  • A comparação de ponta a ponta dos planejadores usa percepção com dados reais em vez dos modelos de percepção, e apenas um cenário de emergência.
  • Os estudos de acurácia oportuna usam componentes de percepção perfeitos com tempos de execução emulados, não os tempos de execução de modelos reais rodando no loop.
  • A implantação no veículo real é descrita como uma portabilidade com modelos prontos, sem métricas de direção relatadas no carro real.

Impacto na área

O artigo foi finalista do IEEE ICRA 2021 Best Paper Award on Unmanned Aerial Vehicles e tem 107 citações. O Pylot é disponibilizado como código aberto, com implementações de referência e com dados reais dos componentes e um conjunto de cenários de teste para o CARLA baseados na NHTSA.

Resumo

Apresentamos o Pylot, uma plataforma para pesquisa e desenvolvimento de veículos autônomos (AV), construída com o objetivo de permitir que pesquisadores estudem os efeitos da latência e da acurácia de seus modelos e algoritmos sobre o comportamento de direção de ponta a ponta de um AV. Isso é alcançado por meio de uma estrutura modular, viabilizada pelo nosso sistema de fluxo de dados de alto desempenho, que representa os componentes do pipeline de software do AV (detectores de objetos, planejadores de movimento etc.) como um grafo de fluxo de dados de operadores que se comunicam por fluxos de dados usando mensagens com carimbo de tempo. O Pylot se conecta facilmente a simuladores de AV populares como o CARLA e pode ser implantado com facilidade em veículos reais com alterações mínimas no código. Para reduzir o esforço de desenvolver um pipeline inteiro para avaliar um único componente, o Pylot oferece várias implementações de referência de última geração para os diversos componentes de um pipeline de AV. Usando essas implementações de referência, um pipeline de AV baseado no Pylot é capaz de dirigir um veículo real e obtém uma pontuação alta no CARLA Autonomous Driving Challenge. Também apresentamos vários estudos de caso viabilizados pelo Pylot, incluindo evidências da necessidade de componentes dependentes do contexto e de alocação de tempo por componente. O Pylot é de código aberto, com o código disponível em https://github.com/erdos-project/pylot.

Links

  • 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 site requer JavaScript. Por favor, habilite o JavaScript para explorar nossos projetos de robótica.