Projeto Webots

Esta página contém os detalhes de um projeto de redação 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 o Webots (integração com o 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 com o Webots da melhor forma possível e fornecerá aos espectadores soluções passo a passo claras para realizar simulações específicas.

Objetivo:

Ao final desta série, os espectadores poderão criar nós ROS2 básicos e interagir com Webots, além de ganhar a confiança para trabalhar em projetos avançados em robôs móveis. Esta série de vídeos também fornecerá 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 seu funcionamento. Depois, 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 utilizados 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 a ROS2 e o Webots.

  3. Uso de serviços ROS2 para interagir com Webots. Ensino sobre o serviço ROS, explicando a diferença entre serviços ROS e ROS2. Em segundo lugar, mostramos tutoriais passo a passo para chamar serviços e ativar o tópico do sensor para leituras e atuadores de movimento.

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

  5. Obtenha feedback do robô com o assinante ROS2. Neste vídeo, vamos fazer a inscrição para as leituras dos sensores de distância e interromper o robô se ele estiver prestes a colidir. Basicamente, este será um nó para evitar obstáculos com mensagens interativas sendo publicadas.

  6. Robôs Master(Publisher) Slave(Subscriber) 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 ladrão e policiais :) [Será uma continuação de 3,4,5 vídeos]. Isso permitirá que os espectadores testem a comunicação e terão falhas na simulação se houver um problema no ROS.

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

  8. Vídeo de depuração (Rostopic echo, Rostopic info, RQT_graph). Este vídeo vai incluir funcionalidades incorretas deliberadas de 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 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 do tópico para descobrir o problema. Resolva o problema e tenha funcionalidade normal.

  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 o uso do rqt_console será explorado. Este vídeo também será estendido para usar rqt_gui e publicar mensagens fictícias para ter 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 de conceitos aprendidos acima para entender o cerne do projeto. Por fim, vamos gerar os nós necessários pelo terminal e ver 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ça com o que são as tags de RA e o significado delas na localização usando a visão computacional. Depois, vamos conferir 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 ativar um stream de quadros 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á uma continuação do 12o vídeo, em que o fluxo de imagem acima será usado pelo pacote, e um tópico de transformação entre o robô e a tag RA será publicado e poderá ser visualizado no Rviz. Finalmente, conforme movimentamos o robô, veremos diferentes tags sendo localizadas e sua posição mudando em mensagens Rviz e rostopic.

Conclusão:

Este projeto GSOD é um pacote autossuficiente para permitir uma compreensão básica da integração do ROS2 com o Webots. Esse pacote também inclui a implementação prática dos conceitos do ROS2, como tópicos, serviços, nós, arquivos de lançamento, editor, assinante, diferentes ferramentas de depuração e o uso do VS Code. Isso também envolverá projetos de tópicos avançados, como SLAM e OpenCV. Isso dará aos espectadores um paradigma de um trabalho completo usando ROS2 e Webots.