Desenvolvimento

27 mar, 2019

Apresentando o AVS, um padrão aberto para visualização de veículos autônomos da Uber

100 visualizações
Publicidade

Entender o que os veículos autônomos percebem enquanto navegam nos ambientes urbanos é essencial para desenvolver os sistemas que os farão operar com segurança.

E, assim como temos padrões para sinais de trânsito e infraestrutura de tráfego para ajudar os motoristas humanos, os desenvolvedores de veículos autônomos estariam bem servidos por uma plataforma de visualização padrão para representar a entrada de sensores, classificação de imagem, inferência de movimento e todas as outras técnicas usadas para construir uma imagem precisa do ambiente imediato.

Como já escrevemos anteriormente, as equipes do Advanced Technologies Group (ATG) e Visualization/Grupo de Tecnologias Avançadas (ATG) e Visualização da Uber utilizam tecnologias de visualização baseadas na Web para interpretar esses mundos derivados de algoritmos e sensores, a fim de dar suporte a um crescente conjunto de casos de uso autônomos.

Hoje, estamos empolgados em abrir o código do Sistema de Visualização Autônomo (AVS) reprojetado e expandido, uma nova maneira de o setor entender e compartilhar seus dados.

O AVS pode exibir o desempenho de um veículo autônomo no mundo real.

O AVS é um novo padrão para descrever e visualizar dados de planejamento, percepção e movimento de veículos autônomos, oferecendo um poderoso kit de ferramentas baseado na Web para criar aplicativos para explorar, interagir e, mais importante, tomar importantes decisões de desenvolvimento com esses dados.

Como uma camada de visualização padronizada e independente, o AVS libera os desenvolvedores da necessidade de criar softwares de visualização personalizados para seus veículos autônomos. Com a visualização abstrata de AVS, os desenvolvedores podem se concentrar nos recursos de autonomia central para sistemas de acionamento, assistência remota, mapeamento e simulação.

A necessidade de visualização unificada

Uma ampla variedade de organizações, incluindo empresas de tecnologia, fundações, instituições de pesquisa, fabricantes de equipamentos originais (OEMs) e start-ups, estão enfrentando os desafios da condução autônoma.

As ferramentas de visualização, que exibem o que os veículos autônomos percebem em seus ambientes, são cruciais para o desenvolvimento de sistemas de direção seguros.

Os requisitos para essas ferramentas geralmente se originam perto do hardware e da pilha de sensores e giram em torno da reprodução online ou offline dos dados de log do sistema de autonomia.

À medida que as plataformas amadurecem, surgem novos casos de uso em torno da triagem, simulação, mapeamento, segurança e coleta de imagens e rotulagem.

O caminho para a produção requer toda uma nova camada de ferramentas e infraestrutura em torno de monitoramento, assistência remota e suporte.

Além dos requisitos de rápida evolução, os engenheiros de autonomia são frequentemente obrigados a aprender técnicas complexas de computação gráfica e visualização de dados para fornecer soluções de ferramentas eficazes.

A falta de um padrão de visualização resultou em engenheiros que montam ferramentas personalizadas em torno de tecnologias e estruturas prontas para fornecer soluções rapidamente.

No entanto, em nossa experiência, essas tentativas de desenvolver ferramentas em torno de componentes diferentes e prontos para uso levam a sistemas que são difíceis de manter, inflexíveis e geralmente não coesivos o suficiente para formar uma base sólida para uma plataforma.

Estamos compartilhando o AVS com a comunidade autônoma mais ampla na esperança de que a colaboração em todo o setor liberte mais avanços, defina um novo padrão e leve a soluções de transporte mais seguras e eficientes para todos.

Visualizando um mundo em movimento

Neste exemplo de AVS na aplicação de comparação de antes e depois baseada na web da Uber ATG, podemos ver uma melhor detecção do veículo.

O desenvolvimento de veículos autônomos é uma área em rápida evolução com novos serviços, conjuntos de dados (especialmente via LiDAR) e muitos casos de uso que exigem novas soluções.

Na Uber, havia várias equipes de engenharia com requisitos exclusivos que nossa solução precisava resolver. A utilização de um aplicativo de visualização baseado na Web foi uma escolha óbvia, pois criou oportunidades para uma interação rápida entre equipes, aplicativos específicos de caso de uso, compartilhamento simplificado de informações, personalização e integração com serviços existentes.

Embora os benefícios fossem claros, havia desafios em como gerenciar os dados com eficiência, mantendo o desempenho comparável aos sistemas baseados em desktop.

Resolver esses desafios exigiu uma nova abstração para gerenciar e descrever os dados gerados que são usados ​​pelos aplicativos da web.

Dados os requisitos acima, construímos nosso sistema em torno de duas partes principais: o XVIZ fornece os dados (incluindo gerenciamento e especificação), enquanto o streetscape.gl é o kit de ferramentas de componentes para alimentar aplicativos da web.

XVIZ

Precisávamos de uma especificação formal e flexível para os dados gerados de sistemas autônomos, de modo que o formato de dados pudesse se integrar à infraestrutura em evolução, estar em conformidade com vários clientes e estar próximo o suficiente da fonte para definir os controles e ligações necessários para gerenciá-lo com eficiência.

O fluxo de dados de alto nível para o XVIZ incorpora um codificador e um construtor no lado do servidor, com um decodificador, buffer de dados e sincronizador no lado do cliente.

XVIZ fornece uma visão orientada por fluxo/stream de uma cena mudando ao longo do tempo e um sistema de exibição de interface de usuário declarativa. Como uma gravação de vídeo, você pode procurar aleatoriamente e entender o estado do mundo nesse ponto.

Como um documento HTML, sua apresentação é focada e estruturada de acordo com um esquema que permite a introspecção. No entanto, o XVIZ também permite fácil exploração e interrogação dos dados, unindo as atualizações de fluxo separadas em um único objeto.

Um fluxo XVIZ é uma série de atualizações discretas que ocorrem em um horário específico com tipos primitivos específicos.

Primitivos são objetos que permitem descrições de informações como nuvens de pontos LiDAR, imagens de câmeras, limites de objetos, trajetórias, velocidade do veículo ao longo do tempo e planos previstos.

Para simplificar a apresentação para usuários, esses objetos podem ser individualmente estilizados (inclusive no nível do fluxo/stream) ou atribuídos a uma classe de estilo.

O XVIZ organiza fluxos/streams por meio de nomeação hierárquica, com uma seção de metadados separada listando os fluxos, seus tipos, transformações relativas, painéis de interface do usuário declarativos e classes de estilo.

Em seguida, a interface do usuário agrupa painéis gráficos para os objetos com os dados, fornecendo ao usuário o controle via YAML para configurar uma série de componentes de layout e exibição.

A estrutura de dados do XVIZ nos permite alternar fluxos do conjunto de dados.

streetscape.gl

O streetscape.gl oferece uma variedade de componentes de interface do usuário, incluindo recursos de câmera, controle de reprodução, rótulo de objeto e plotagem.

O streetscape.gl é um kit de ferramentas para criar aplicativos da web que consomem dados no protocolo XVIZ. Ele oferece componentes prontos para a visualização de fluxos XVIZ em visores 3D, gráficos, tabelas, vídeos e muito mais.

Ele aborda pontos problemáticos comuns de visualização, como sincronização de tempo entre fluxos de dados, sistemas de coordenadas, câmeras, estilo dinâmico e interação com objetos 3D e componentes cruzados, para que os usuários possam investir mais tempo desenvolvendo o próprio software de veículo autônomo.

O desempenho de renderização é o principal objetivo do streetscape.gl. Construído em cima da plataforma de visualização madura da React e da Uber, com suporte para WebGL, somos capazes de dar suporte para a reprodução em tempo real e interação suave com cenas que suportam centenas de milhares de geometrias.

A composibilidade também está na frente e no centro do design de streetscape.gl. Aprendendo com nosso trabalho em nossa plataforma de visualização interna, que alimenta uma dúzia de diversos casos de uso, como triagem, rotulagem, depuração, assistência remota e edição de cenas, projetamos os componentes para serem altamente estilizáveis ​​e extensíveis, para que qualquer equipe possa construir um experiência adaptada ao seu fluxo de trabalho exclusivo.

Como o AVS é diferente

O AVS foi projetado para ser aberto e modular, recebendo contribuições de equipes internas desde o início de seu desenvolvimento para permitir o desacoplamento.

Arquitetonicamente, ele fornece uma abordagem em camadas onde o acoplamento entre os componentes da pilha autônoma é minimizado e oferece definições claras para a troca de dados.

Cada camada pode evoluir conforme necessário, sem exigir alterações em todo o sistema, e as camadas podem ser adaptadas para um contexto específico ou uma pasta de usuário.

Este princípio orientador ajuda a diferenciar o AVS das soluções atuais.

Especificamente, a arquitetura do AVS se distingue porque:

  • Ela foi projetada com uma separação intencional de dados de qualquer plataforma subjacente
  • Suas especificações pequenas e limitadas facilitam o desenvolvimento de ferramentas
  • Seus requisitos de formato de dados resultam em rápida transferência e processamento

Além disso, criamos o AVS para atender às necessidades de todos no ecossistema de autonomia, incluindo engenheiros, operadores de veículos, analistas e desenvolvedores especializados.

Engenheiros autônomos podem descrever seus sistemas com XVIZ facilmente e, em seguida, testar e visualizar suas expectativas com sobrecarga limitada.

Desenvolvedores especializados podem criar rapidamente aplicativos independentes de fontes de dados com características de desempenho sólidas e integração simplificada usando streetscape.gl.

or último, as operadoras podem visualizar os dados em formatos visuais padrão, incluindo vídeos, em vários aplicativos, levando a uma colaboração mais fácil, compreensão do conhecimento, análise mais profunda e confiança geral na qualidade dos dados.

Ao abrir o código para o setor, incentivamos outros a contribuir e basear-se/construir neste conjunto inicial de ideias.

Aplicação no setor e além

Para empresas que constroem ou suportam veículos autônomos, como Voyage, Applied Intuition e Uber ATG, passar de testes simulados ou on-the-road para encontrar a causa raiz dos problemas pode ser um processo extremamente demorado.

De acordo com Drew Gray, CTO da Voyage, ser capaz de explorar visualmente dados de sensores autônomos, caminhos preditos, objetos rastreados e informações de estado como aceleração e velocidade é inestimável para o processo de triagem e pode impactar positivamente a eficiência do desenvolvedor.

As informações podem então ser usadas para definir prioridades de engenharia orientadas por dados.

O co-fundador da Voyage, Warren Ouyang, ecoa o sentimento de Gray sobre as possibilidades do AVS.

“Estamos entusiasmados em usar o sistema de visualização autônomo da Uber e colaborar na construção de melhores ferramentas para a comunidade daqui para frente”, afirma Ouyang.

O AVS fornece um rico contexto dentro de outros aplicativos, como este exemplo, onde aprimora o aplicativo de revisão de eventos do Spectacle da Uber ATG.

Além da análise de causa raiz, as equipes da Uber também aproveitaram o AVS para outros casos de uso, como a visualização de registros baseada na Web, os ambientes de desenvolvedores e a manutenção de mapeamento.

Também pretendemos que, ao abrir o código da tecnologia, os desenvolvedores de outras indústrias emergentes e adjacentes, como drones, robótica, caminhões, gerenciamento de frotas, realidade aumentada e virtual e varejo, encontrem aplicativos para esse kit de ferramentas.

O que vem por aí

Trazer o AVS para o setor mais amplo é apenas o começo. Temos a visão de democratizar o acesso para mais desenvolvedores e operadores que buscam contribuir para o espaço autônomo.

Em colaboração com parceiros como Voyage, Applied Intuition, colaboradores e fundações de software livre, planejamos aprimorar o produto com mais fontes de dados e especificações (especialmente suporte a ROS), otimizações de desempenho e recursos mais avançados, como comparações lado-a-lado.

“Na Applied Intuition, estamos trabalhando com as equipes de AV mais sofisticadas do mundo e elas exigem as ferramentas mais sofisticadas”, afirma Peter Ludwig, CTO da Applied Intuition.

“O AVS está alinhado com isso, e o que é notavelmente ótimo é que ele é baseado na web e preenche uma necessidade da comunidade de não reconstruir as mesmas ferramentas de visualização repetidas vezes. Esta é uma jogada incrível da Uber para o resto da comunidade AV.”

O aplicativo AV Log Viewer da Uber ATG, com tecnologia AVS, permite analisar a abordagem de um veículo em uma interseção.

A Uber está interessada em alcançar uma visão de longo prazo dos veículos autônomos: uma solução de transporte mais segura, limpa e eficiente para todos.

Infelizmente, as primeiras ferramentas de desenvolvimento em qualquer setor tendem a ser primitivas e adaptadas para resolver novos casos de uso que ampliam suas capacidades.

Dada a rapidez com que a tecnologia está transformando o transporte e as cidades em que vivemos, a necessidade de melhores ferramentas para agilizar essa mudança é tão urgente quanto antes.

Independentemente de serem produtos que melhorem os investimentos em planejamento urbano, análises geoespaciais mais ricas, mapeamento avançado ou novas tendências de mobilidade, descobrimos que uma estratégia de dados e ferramentas abertas pode ajudar governos, desenvolvedores, pesquisadores e o setor em geral a acelerar para um ecossistema de transporte mais inteligente no futuro.

Se você estiver interessado em desenvolver tecnologias para promover o futuro do transporte, considere a possibilidade de se candidatar a um cargo na Uber.

e você estiver interessado em contribuir com AVS ou outros projetos de código aberto da Uber, confira nossa página do programa de código aberto.

***

Este artigo é do Uber Engineering. Ele foi escrito por Xiaoji Chen, Joseph Lisee, Tim Wojtaszek e Abhishek Gupta. A tradução foi feita pela Redação iMasters com autorização. Você pode conferir o original em: https://eng.uber.com/avs-autonomous-vehicle-visualization/