Desenvolvimento

21 set, 2017

Plataforma de visualização de veículos de auto condução da engenharia da Uber para a Web

Publicidade

O ATG (Advanced Technologies Group/Grupo de Tecnologias Avançadas) da Uber está moldando o futuro do transporte sem condutor. No início deste ano, o time de visualização de dados, que usa a visualização para exploração, inspeção, depuração e exposição de dados, associou-se com o ATG para melhorar a forma como seus veículos auto conduzidos (carros e caminhões) interpretam e percebem o mundo ao seu redor.

Usando algumas das mais recentes tecnologias de visualização baseadas na web, a equipe de Visualização ATG construiu uma plataforma que permite que engenheiros e operadores em toda a ATG inspecionem, depurem e explorem informações rapidamente, coletadas de testes off-line e online. Isso é fundamental para garantir que os usuários desta tecnologia entendam os problemas, iterem rapidamente e aumentem a produtividade em uma ampla gama de casos de uso em constante evolução. Também havia uma necessidade de uma linguagem visual mais simples e design UX para transmitir todas as informações técnicas detalhadas para operadores e engenheiros.

Neste artigo, descrevemos como nossa equipe de Visualização de Dados construiu esta plataforma e explora os desafios de combinar conjuntos de dados complexos e diversos em um componente web reutilizável e performante.

Escolhendo a web

Há muitas discussões interessantes sobre por que a Web pode ser a plataforma certa para construir nossa plataforma de visualização de carro auto conduzido. Nós nos voltamos para a Web pelas seguintes razões:

  1. Ciclo rápido de iteração. Na Web, é rápido e fácil desenvolver e implantar recursos de forma incremental. Se um usuário quiser a versão mais recente de um produto, eles só precisam atualizar a página do navegador no lugar de baixar e instalar um novo aplicativo.
  2. Flexibilidade e capacidade de compartilhamento. Uma vez que a Web é agnóstica de hardware, qualquer pessoa, em qualquer lugar, pode trabalhar na plataforma usando qualquer sistema operacional – de fato, o navegador se torna o sistema operacional. Mover este sistema para a web ligou as clivagens do sistema operacional de toda a equipe e abriu a possibilidade de dimensionar a equipe para além da sede da ATG em Pittsburgh. Na Web, informar e diagnosticar um incidente está apenas a um clique de URL de distância.
  3. Colaboração e personalização. Como uma tecnologia em rápida evolução, os veículos auto conduzidos nunca deixam de produzir novos conjuntos de dados, métricas ou casos de uso. Novos serviços e endpoints são adicionados o tempo todo. Cada equipe da ATG possui necessidades únicas de visualização e geração de dados. Como tal, elas precisam ser capazes de personalizar suas experiências. HTML5 e JavaScript são ferramentas testadas e confiáveis ​​para criar UI personalizada rapidamente, e são facilmente integradas em outros sistemas de gerenciamento de tarefas e infraestrutura.

Unindo diversas fontes de dados

Para entender as decisões tomadas por um veículo autônomo, é necessário uma grande quantidade de dados para recriar o contexto em torno de uma viagem. Isso inclui mapas pré-processados e registros de veículos que são gerados em tempo de execução.

Os mapas descrevem a conectividade e as restrições das estradas em uma cidade. Além do que está disponível através do mapa baseado na web exclusivo da Uber, os mapas para veículos auto conduzidos contêm muito mais detalhes. Por exemplo, varreduras de alta resolução da superfície do solo, limites e tipos de pistas, limites de velocidade e de curva e faixas de pedestre – basicamente qualquer outra informação de mapa relevante.

Os times de mapas usam a plataforma para inspecionar detalhes do mapa em 3D em uma determinada intersecção

Registros de veículos descrevem o que o veículo está fazendo, o que ele vê e como ele age. Três estágios críticos dos algoritmos são executados com base nos dados do sensor: percepção (medição), previsão (prospectiva) e planejamento do movimento (atuação). Para operar com êxito, um veículo precisa ser capaz de perceber a atividade ao seu redor através de seus sensores. Com base nessa informação, ele pode prever onde esses objetos estarão no futuro próximo, o que fornecerá informações suficientes para planejar adequadamente seu próximo movimento (pense: mudar de faixa ou parar em um sinal de parada).

Os operadores usam a plataforma para inspecionar dados de percepção e previsão de um veículo autônomo

Trabalhando com nossos engenheiros de auto condução, experimentamos e formalizamos um sistema de metáforas visuais para representar dados complexos. O sistema oferece representação realista de elementos ambientais, como carros, imagens do solo, marcadores de pistas e sinais/placas que permitem aos operadores e engenheiros ancorar a sua compreensão dos arredores do veículo.

Para ajudar os engenheiros a examinar decisões alternativas ou fatias de tempo do futuro, o sistema também oferece representação abstrata para informações geradas algoritmicamente, tais como classificação de objetos, previsão, planejamento e lookaheads por meio de cor e codificação geométrica.

Um dos maiores desafios de reunir essas fontes de dados em uma visão unificada é lidar com coordenadas geoespaciais díspares. Os diferentes serviços oferecem modelos para o uso de diferentes sistemas de coordenadas: alguns em latitude/longitude, alguns no sistema de coordenadas Universal Transverse Mercator (UTM), alguns relativos a uma posição mundial absoluta e outros ainda relativos à posição e orientação do veículo. Além disso, todas as posições são atualizadas em alta frequência durante a reprodução sendo amostradas várias vezes por segundo. Para converter essas coordenadas de forma eficiente e projetá-las com precisão, delegamos o levantamento pesado para nossa GPU.

Renderização de ceqnas 3D performantes com WebGL

A equipe de visualização da Uber mantém um conjunto de frameworks para a visualização de dados em grande escala baseada na Web, incluindo react-map-gl e deck.gl. Esses frameworks alavancam as capacidades da GPU no navegador para exibir milhões de geometrias com uma alta taxa de frame. Se a visualização é interpretada como mapeamento do “bit” (estrutura de dados) para o “pixel” (gráficos) – essencialmente aplicando a mesma transformação em milhões de entradas – o GPU é naturalmente o local ideal, pois é projetado para executar a mesma tarefa repetidamente em paralelo.

As camadas deck.gl reproduzem GeoJSON, nuvem de pontos e visualizações de grade

Em última análise, o desempenho é o fator de sucesso determinante para essa colaboração. Os engenheiros ATG e operadores de veículos precisam de registros do veículo para usar em tempo real e manipular a câmera com facilidade e selecionar objetos em uma cena. É aqui que entra o nosso framework avançado de visualização de dados deck.gl.

A última versão do deck.gl apresenta inúmeras otimizações de desempenho e recursos gráficos que são conduzidos por casos de uso originários do nosso trabalho com ATG. Cada camada no contexto deck.gl torna uma fonte de dados em um determinado aspecto, seja malha/rede (superfícies de solo e carros), caminhos (pistas e trajetórias), polígonos extrudidos (outros objetos na estrada) ou nuvens de ponto (objetos 3D sem significado semântico atual). Cada camada também pode especificar seu próprio sistema de coordenadas, enquanto compartilha a mesma visão da câmera. Um trecho típico de registro processa 60-100 camadas em 30-50 frames por segundo.

Os usuários podem alternar entre diferentes modos de câmera durante uma reprodução de log
Os engenheiros de autonomia usam a plataforma para comparar simulações geradas com duas versões de software

Próximos passos

Dado o ritmo acelerado do desenvolvimento da ATG, ter os produtos certos para os engenheiros de auto condução da Uber é fundamental para o nosso crescimento. Estamos ansiosos para arquitetar o futuro do transporte com veículos sem motorista; você está a bordo?

Se o mapeamento de tecnologias de auto condução lhe interessar, considere candidatar-se a um cargo na Equipe de Visualização de Dados da Uber.

***

Este artigo é do Uber Engineering. Ele foi escrito por Xiaoji Chen. A tradução foi feita pela Redação iMasters com autorização. Você pode conferir o original em: https://eng.uber.com/atg-dataviz/