Apresentações do segundo Meetup ROS sobre os tópicos: Gazebo e ferramentas para robôs


Em 18 de abril, o próximo ROS Meetup on-line ocorrerá e continuamos a publicar gravações de relatórios do ROS Meetup anterior, que ocorreu em 30 de novembro de 2019 em Moscou e reuniu mais de 200 amadores do ROS que compartilharam suas experiências e conhecimentos.

Nesta publicação, você pode se familiarizar com uma seleção de discursos sobre o simulador de robótica
Gazebo , comportamento do robô e conjuntos de dados.

Então vamos!

Usando o simulador de gazebo em robótica


Autor do relatório: Alexander Bogoslovsky


Slides da apresentação Às vezes, não é possível interagir com o robô "ao vivo"; nesse caso, você precisa recorrer a simuladores. E se se trata de ROS, antes de tudo, para o simulador Gazebo, pois foi originalmente criado para uso com ROS. O Gazebo realiza muitas competições robóticas, inclusive em organizações eminentes como DARPA e NASA. Este simulador ajudará a implementar praticamente qualquer robô de estado sólido, como um humanóide, um robô de rodas, um helicóptero, um robô subaquático etc.

Os robôs para o Gazebo são criados no formato URDF (formato de descrição robótica unificada) - marcação XML que descreve os links do robô e os nós de comunicação entre eles. Como esse é um formato universal, também necessário para posicionar robôs reais no ROS (por exemplo, pacotes robot_state_publisher e joint_state_publisher), ele não foi originalmente concebido para descrever o robô inteiro. Portanto, ao importar um modelo para o Gazebo, o formato URDF é convertido em SDF (Simulation Description Format), que já pode conter todas as informações necessárias para modelagem, incluindo materiais de superfície, cores, sensores e assim por diante. O mundo da simulação, no qual colocamos o robô ainda mais, tem essencialmente o mesmo formato SDF. E as extensões dos nomes desses arquivos para descrever o mundo têm a forma ".world".

O Gazebo deve sua versatilidade a uma ampla variedade de plugins criados pela comunidade, bem como a um código totalmente aberto. Quando as tarefas se tornam muito específicas, você pode escrever seu próprio plug-in com base na API fornecida para concluí-las. Uma grande comunidade de usuários ajudará por escrito, bem como um grande número de artigos educacionais no Gazebo no site oficial do simulador. Mas nem sempre é necessário escrever seu próprio plugin - a funcionalidade básica do simulador é muito extensa.

Este relatório analisa a funcionalidade e os recursos do Gazebo, bem como seus pontos fortes e fracos, que podem ajudar a decidir sobre o uso desse simulador em seu projeto.

Árvore de comportamento como uma maneira de definir um script de ação do robô


Autor do relatório: Evgeny Safronov

Slides da apresentação
Em muitos casos, o comportamento do robô deve ser não apenas complexo e diversificado, mas também o mais previsível possível (de preferência 100%). Modelos de comportamento estatístico baseados nos métodos de ML permitem simular ações muito complexas, mas ainda é difícil garantir a segurança e a transparência do comportamento do robô. Nesses casos, os engenheiros recorrem a várias máquinas de estado. Uma alternativa a eles é o Behavior Trees / BT trees, que chegou à robótica da indústria de jogos.

Neste vídeo, começaremos com o básico da Árvore do comportamento - considere os tipos de nós e folhas, as regras de passagem (execução) da árvore, analise os dois estilos principais de criação da BT - imperativos e reativos, e certifique-se de que eles raramente sejam usados ​​em sua forma pura. Discutiremos o que o BT pode ser do ponto de vista do aprendizado de máquina e como os métodos de ML podem ser integrados a uma estrutura em árvore criada manualmente, veremos que os modelos de nó, como classes no OOP, ajudam a encapsular o comportamento, aumentar a legibilidade da lógica da árvore e criar bibliotecas separadas. Finalmente - uma breve visão geral das estruturas prontas para trabalhar com o ROS. Não há um líder claro, todos têm abordagens diferentes para muitos aspectos importantes, desde a semântica básica até a interação com o ROS. No entanto, agora você pode baixar e tentar conectar o BT ao seu robô / simulador!

O que tem na sua bolsa? Como trabalhar com arquivos de saco e não se afogar em dados


Autor do relatório: Oleg Shipitko

Slides da apresentação
Não é segredo que os arquivos de mala são o principal formato de registro de dados no ROS. A maioria dos desenvolvedores que encontraram pelo menos uma vez o ROS sabe o que são arquivos de malas e como trabalhar com eles. No entanto, nem todo mundo pensou em questões como:
  • Como está o arquivo do saco?
  • como reduzir seu volume?
  • O que mais posso fazer com os arquivos de bagagem além da gravação e reprodução?
  • O que devo fazer se o tipo de uma das mensagens foi alterado, mas não quero ejetar todos os arquivos gravados anteriormente?

As respostas para essas e outras perguntas são dedicadas à nossa apresentação.

Em nosso discurso, tentamos responder a cada um deles.
O relatório está dividido em várias partes. No começo, é considerado o formato para armazenar arquivos de bagagem e sua estrutura interna.

A segunda parte do relatório discute os recursos dos arquivos de gravação. Os argumentos não óbvios e raramente usados ​​do comando rosbag record estão destacados. Os recursos de gravação em um arquivo de imagem em saco são considerados. Os algoritmos usados ​​para compactar arquivos de bagagem são descritos.

Na parte dedicada à simplicidade e à inspeção dos arquivos gravados, consideram-se comandos que permitem exibir o conteúdo de um arquivo bag, além de descobrir quais tópicos ele contém. É dada atenção especial à ferramenta de inspeção de arquivos rqt_bag e seus principais recursos.

Os dados gravados em arquivos de bagagem podem ser usados ​​para testar vários algoritmos de classificação. Nesse caso, surge a tarefa de marcar os dados - correspondendo ao conjunto de dados com uma determinada tag que define a classe que está correta para o conjunto de dados fornecido. Como exemplo de uma ferramenta para solucionar esse problema, o relatório considera o pacote rosbag-slide-windows-annotator, que permite usar dados de tópicos visuais como base para anotar dados numéricos. Ao mesmo tempo, as classes necessárias para marcação são carregadas do arquivo json do usuário, o que torna o pacote configurável para muitas tarefas de marcação.

Ao armazenar um grande número de arquivos de bagagem, surge a tarefa de encontrar rapidamente um arquivo que atenda a alguns critérios. Para um robô móvel, esses critérios podem ser, por exemplo, um clima específico, uma rota de movimento, a presença / ausência de um evento específico em um arquivo (por exemplo, uma pessoa bloqueando o caminho de um robô), etc. Para procurar rapidamente um arquivo que atenda ao conjunto de critérios necessário, os arquivos podem ser anotados - mapeie cada arquivo com uma certa quantidade compactada de informações que contém os dados necessários para uma pesquisa rápida. O relatório discute a abordagem da anotação de arquivos de bagagem, usada na empresa "Visilelect Service", - mapeando cada imagem de arquivo de bagagem, permitindo visualizar e comparar rapidamente informações sobre muitos arquivos.

A última parte do relatório é dedicada a uma visão geral das ferramentas padrão para a migração de arquivos bag para o ROS. A migração é necessária se uma ou mais mensagens no arquivo foram alteradas, mas você deseja salvar e usar arquivos de bagagem gravados anteriormente. Nesse caso, você pode substituir os arquivos antigos adicionando novos campos à mensagem antiga (ou removendo os existentes). Para simplificar esse processo, o ROS fornece ferramentas prontas para uso que são abordadas brevemente no relatório.

Conclusão


Em breve, no dia 18 de abril, o próximo ROS MeetUp ocorrerá, só que agora o realizaremos no formato de um seminário on-line na Web. Convidamos todos os colegas a participar como ouvintes e como oradores. A participação é gratuita, o número de vagas é limitado, cadastre-se aqui .
E também organizaremos um concurso de pacotes de código aberto no ROS!
Lembramos que você pode encontrar desenvolvedores de ROS com ideias semelhantes na Rússia, descobrir as últimas notícias de ROS em nossa comunidade de ROS Rússia no canal de telegrama .

Se você estiver interessado em desenvolver robôs, módulos robóticos ou componentes de software, se quiser mostrar seus desenvolvimentos ou apenas conversar com pessoas afins, seja bem-vindo ao nosso próximo ROS Meetup, que será realizado no dia 18 de abril em formato online !

All Articles