Apresentando: Pacote de visualizações de robótica da Unity

AMANDA TRANG Software Engineer
Oct 4, 2021|16 Min
Apresentando: Pacote de visualizações de robótica da Unity
Esta página da Web foi automaticamente traduzida para sua conveniência. Não podemos garantir a precisão ou a confiabilidade do conteúdo traduzido. Se tiver dúvidas sobre a precisão do conteúdo traduzido, consulte a versão oficial em inglês da página da Web.

Com este kit de ferramentas para visualizar e depurar o estado interno de simulações de robótica, o Unity pode ser usado como uma ferramenta completa de simulação e visualização de ROS.

Um dos desafios enfrentados pelos roboticistas é a necessidade de entender o que está acontecendo em seu sistema. Em uma rede complexa e interconectada de componentes, quando algo não está funcionando, como você descobre qual parte está errada? O componente A está gerando dados ruins ou o componente B está processando-os incorretamente? É fundamental conseguir visualizar os dados que circulam pelo sistema.

Com isso em mente, hoje temos o prazer de anunciar o próximo lançamento da Unity Robotics: o Robotics Visualizations Package, um novo pacote para exibir e personalizar visualizações de mensagens ROS.

A equipe de Robótica da Unity tem trabalhado duro, lançando vários projetos de exemplo de Robótica, como Pick-and-Place e Estimativa de Pose de Objeto. Mais recentemente, lançamos nosso exemplo Nav2-SLAM, demonstrando um robô autônomo navegando e mapeando um espaço desconhecido, tudo simulado no Unity.

O Robotics Visualizations Package se baseia e oferece suporte a esses pacotes, oferecendo uma biblioteca de visualizações personalizáveis para todos os tipos comuns de mensagens ROS: formas, poses, nuvens de pontos, imagens, sensores de todos os tipos e muito mais. Ele oferece suporte nativo à árvore de transformação ROS e permite que você habilite, desabilite e personalize visualizações para qualquer tópico ROS em tempo de execução.

Fluxo de trabalho

Veja como é fácil usar o Robotics Visualizations Package para adicionar visualizações a um projeto de robótica existente:

Importe o pacote Robotics Visualizations para o Unity usando o Gerenciador de Pacotes.

Arraste o prefab DefaultVisualizationSuite para sua cena do Unity.

Pressione Play e você verá alguns novos botões no Heads-Up Display (HUD). Clique no botão Tópicos para ver a lista de todos os tópicos que o ROS conhece.

Clique nos tópicos para os quais você deseja ver visualizações!

 O menu Tópicos opera de forma semelhante ao rviz: clicar no botão de opção ativa a visualização na cena do Unity.
Depure seus aplicativos de robô com todos os seus tipos de visualização favoritos
Transformações

Transformações representam as relações entre quadros de coordenadas em um sistema robótico. Todos os seus dados são gerados em diferentes quadros de coordenadas. Os dados do lidar estão no quadro do lidar, os dados da câmera estão no quadro da câmera e os dados do mapa estão no quadro do mapa. Para dar sentido a todas essas fontes de dados díspares, precisamos ter um quadro de referência comum. As transformações nos ajudam a fazer isso monitorando as relações entre esses quadros. Depurar robôs sem colocar os sensores e algoritmos neste contexto 3D é quase impossível. Com o Robotics Visualizations Package, agora você pode visualizar dados em tempo real junto com cenas e ativos do Unity e alternar facilmente entre dados simulados e reais.

robô na fábrica
Mapas de robôs

O mapeamento de robôs é complicado. Mapas podem se fragmentar, robôs podem se desviar. Sua odometria está ajustada corretamente ou o mapa simplesmente quebrou ao meio porque um algoritmo SLAM baseado em otimização quebrou? O Unity Robotics Visualizations Package permite que você visualize a grade de ocupação, transformações, localização e nuvem de pontos lidar, tudo em cima do outro, permitindo que você veja visualmente onde os algoritmos falham.

O Robotics Visualizations Package oferece suporte aos tipos de mensagens ROS mais comuns, incluindo transformações, grades de ocupação, nuvens de pontos 3D, marcadores, varreduras a laser, imagens (jpeg, png e descompactadas) e muito mais. E tem oportunidades de personalização caso você tenha um tipo de dado exclusivo que precisa visualizar!

Aqui, as visualizações de transformação do robô foram ativadas, permitindo que você sobreponha dados e depure em tempo real.
Personalização

O Robotics Visualizations Package também oferece suporte a visualizações criadas pelo usuário: ele inclui um poderoso conjunto de ferramentas para desenhar o que você precisar e/ou desenvolver e personalizar as visualizações integradas. Aqui estão alguns destaques:

Drawing3d é uma classe utilitária fácil de usar para desenhar linhas, formas, malhas e rótulos texturizados/coloridos arbitrários no espaço 3D. Por exemplo, você pode usá-lo para desenhar o fantasma de um objeto na posição onde você prevê que ele estará, uma linha mostrando a trajetória que ele seguirá para chegar lá e mais linhas ao redor dele para indicar barras de erro.

PointCloudDrawing é um renderizador de nuvem de pontos otimizado para GPU, que pode exibir até 10 milhões de pontos em outdoors, cada um com seu próprio tamanho e cor, em velocidades interativas. Você pode usá-lo para exibir dados volumétricos, como varreduras 3D ou imagens de profundidade.

Exiba tendências de dados históricos, rastros de movimento em 3D e muito mais com o modelo HistoryDrawingVisualizer , que mantém um histórico de tamanho configurável das mensagens enviadas sobre um tópico. Você pode analisar e exibir esse histórico como quiser.

E, claro, tudo isso é apoiado pelo poder e facilidade de uso do Unity Engine, que oferece recursos como suporte a RA e RV; shaders personalizados com Unity Shader Graph; shaders de computação, simulação de nuvem e muito mais.

O que vem depois?

Estamos ansiosos para ver o que vocês farão com o Pacote de Visualizações de Robótica!

Para começar a usar o Robotics Visualizations Package, confira esta nova extensão do tutorial Nav2-SLAM que demonstra como usar o novo pacote.

O pacote de visualizações de robótica Unity permite que você visualize dados de robôs junto com ambientes Unity, combinando dados reais e simulados em um só lugar.

Nosso pacote de visualizações de robótica é apenas uma parte do nosso crescente ecossistema de pacotes e recursos de robótica que permitem a robótica no Unity. Para mais projetos de robótica, visite o Unity Robotics Hub no GitHub.

Não deixe de nos visitar no Fórum de Robóticaou envie um e-mail para unity-robotics@unity3d.com com seu feedback e sugestões!