Projeto Webots

Esta página contém os detalhes de um projeto de escrita técnica aceito para a temporada de documentos do Google.

Resumo do projeto

Organização de código aberto:
Webots
Redator técnico:
Canal de ilusão suave
Nome do projeto:
Série de tutoriais em vídeo para Webots (Integração com ROS2)
Duração do projeto:
Duração padrão (3 meses)

Project description

Aprendizados:

Esta série de tutoriais em vídeo permitirá que novos usuários comecem a usar o Webots da melhor forma possível e apresenta soluções claras passo a passo para os espectadores fazerem simulações específicas.

Meta:

Ao final desta série, os espectadores poderão criar nós ROS2 básicos e interagir com Webots, além de ganhar confiança para trabalhar em projetos avançados em robôs móveis. Esta série de vídeos também oferecerá boas explicações teóricas de vários conceitos vitais no campo da robótica.

Detalhes da série de vídeos:

  1. Instalação do ROS 2 e configuração de um repositório no Visual Studio Code. Isso inclui a instalação por comando do ROS2 e os fundamentos do funcionamento. Em segundo lugar, também vai incluir a configuração do espaço de trabalho ROS no VS Code e a funcionalidade das guias básicas no VS Code.

  2. Exemplo básico de ROS2 e Webots. Alguns exemplos do Webots ROS2 serão usados para envolver os espectadores na compreensão do que é possível fazer se usarmos o ROS2 com Webots para simulação. Isso também incluirá teorias básicas de comunicação entre ROS2 e Webots.

  3. Uso de serviços ROS2 para interagir com Webots. Fundamentos do ensino do serviço ROS explicando a diferença entre os serviços ROS e ROS2. O segundo é mostrar tutoriais passo a passo para chamar serviços e ativar o tópico do sensor para leituras e atuadores de movimento.

  4. Controle o robô personalizado com o ROS2 Publisher. Aprender a publicar mensagens usando editores ROS2 para Webots. Podemos implementar um exemplo de controle do movimento de um robô publicando a saída do teclado em um tópico que possa ser usado pelos serviços ROS para movimento no Webots.

  5. Obter feedback do robô com o assinante ROS2. Neste vídeo, vamos nos inscrever nas leituras dos sensores de distância e interromper o robô se ele estiver prestes a colidir. Basicamente, isso será um nó para evitar obstáculos, com mensagens interativas sendo publicadas.

  6. Robôs Mestre(Editor) Escravo(assinante) com ROS2. Neste vídeo, vamos controlar um robô com um teclado e fazer outro fugir do robô manual. Semelhante a um cenário de Thief e Cops :) [Esta será uma continuação de 3,4,5 vídeos]. Isso permite que os espectadores testem a comunicação e vão encontrar falhas na simulação se houver um problema no ROS.

  7. Configurando o Rviz (mostrando uma saída do sensor diferente). Neste vídeo, vamos adicionar outros sensores e publicar os dados no Rviz. Ao final deste vídeo, o usuário poderá configurar o Rviz (ou seja, adicionar sensores como Lidar, Câmera etc.para visualização), salvar a configuração e gerar uma configuração salva na próxima vez.

  8. Vídeo de depuração (Eco Rostopic, Informações do Rostopic, RQT_graph). Este vídeo inclui funcionalidades incorretas deliberadas em alguns tópicos para ajudar a entender a técnica de depuração. Vamos seguir um processo de visualização do gráfico RQT e de saber quais tópicos são responsáveis pelo problema. usar "rostopic echo" para verificar se o tópico está sendo publicado e, no final, verificar as informações dele para descobrir o problema Resolva o problema e volte a funcionar normalmente.

  9. Vídeo de depuração(rqt_console, rqt_gui) Neste vídeo, serão usadas mensagens Ros(info, debug, error etc.) no nó e exploramos o uso do rqt_console. Este vídeo também será estendido para usar rqt_gui na publicação de mensagens fictícias e obter a funcionalidade necessária. Essa pode ser uma abordagem alternativa para corrigir alguns bugs.

  10. Vídeos de tópicos avançados: sobre a integração da biblioteca SLAM em um ambiente desconhecido (caixa de ferramentas SLAM ou LaMa) [Parte 1] Este vídeo começará com a teoria básica dos problemas de SLAM. Depois disso, vamos usar a infraestrutura dos conceitos ensinados acima para entender a essência do projeto. Por fim, geraremos os nós necessários pelo terminal e veremos a saída do mapeamento no Rviz.

  11. Vídeos de tópicos avançados: sobre a integração da biblioteca SLAM em um ambiente desconhecido (caixa de ferramentas SLAM ou LaMa) [Parte 2] Como continuação do 10o vídeo, neste vídeo, ensinarei como criar um arquivo de lançamento para lançar todos os nós juntos e examinar o rqt_graph para uma compreensão adequada dos conceitos no framework ROS. No final, salvaremos o mapa gerado pelo pacote usando um servidor de mapas.

  12. Vídeos de tópicos avançados: sobre a integração do OpenCV (detecção de tags em RA, pacote Ar_track_alvar) [Parte 1] O vídeo começará com o que são as tags de RA e a importância delas na localização usando a visão computacional. Em seguida, vamos entender como o pacote Alvar da faixa de RA funciona. Isso ajudará a fornecer uma perspectiva geral do projeto. Por fim, o serviço será feito para permitir um stream de frames de vídeo do Webots para um tópico ROS.

  13. Vídeos de tópicos avançados: sobre a integração do OpenCV (detecção de tags em RA, pacote Ar_track_alvar) [Parte 2] Este vídeo será a continuação do 12o vídeo, em que o stream de imagem acima será usado pelo pacote, e será publicado um tópico de transformação entre o robô e a tag AR, que pode ser visualizado no Rviz. Por fim, quando movimentamos o robô, veremos a localização de diferentes tags e sua posição mudando em Rviz e em mensagens rostopic.

Conclusion:

Este projeto GSOD é um pacote autossuficiente que possibilita o entendimento básico da integração do ROS2 com o Webots. Este pacote também incluirá a implementação prática dos conceitos em ROS2, como tópicos, serviços, nós, arquivos de lançamento, editor, assinante, diferentes ferramentas de depuração e o uso de VS Code. Isso também envolverá projetos de tópicos avançados, como SLAM e OpenCV. Assim, os espectadores terão um paradigma de um trabalho completo usando ROS2 e Webots.