Como você constrói um robô ROS?
Para que o sistema funcione bem e para que você possa seguir o que o dispositivo fará em determinadas situações, você precisa de definições padrão para cada parte. Na ERO, esses componentes são nós, serviços e tópicos. Em suma, você cria um nó para cada grande necessidade. Por exemplo, o movimento é um nó, a visão é outro nó e o planejamento é um terceiro nó. Os nós contêm serviços que podem enviar informações para outros nós, e os serviços também podem lidar com solicitações e respostas. Um tópico pode transmitir valores para muitos outros nós. Derrubar esses termos e como você deve usá -los é a primeira chave para dominar o desenvolvimento do ROS2.
Emular navegação com turtlesim
Ao começar em ROS, você provavelmente comprará um robô que caminha ou rola em sua casa. Para fazer isso, o robô precisa ter uma visão da área onde está navegando. Para fazer isso, você pode usar um aplicativo semelhante ao mapa para testar o comportamento do seu robô. Os designers por trás da tartaruga criaram um aplicativo, chamado Turtlesim, que pode fazer isso por você. Como em todas as outras partes do ROS2, você pode iniciar essas ferramentas com um subcomando da linha de comando. Você então tem atividades para diferentes funções. A primeira parte é iniciar a janela onde você pode ver a simulação, e isso é chamado de nó.
$ Ros2 Run Turtlesim Turtlesimnode
Uma janela aparecerá com uma tartaruga no centro. Para controlar a tartaruga com o teclado, você deve executar um segundo comando que permanece aberto e continue pressionando certas chaves. Este é um segundo nó que se comunica com o primeiro.
$ Ros2 Run Turtlesim TurtleteleopKey
Agora, você pode mover a tartaruga e ver como ela se move. Você também pode obter erros, como bater na parede. Esses erros aparecem no terminal onde o Turtlesimnode está funcionando. Este é o uso mais simples do módulo de simulação. Você também pode executar formas dadas, um quadrado é fornecido e adicionar mais tartarugas. Para adicionar mais tartarugas, você pode usar o comando rqt.
Defina serviços com RQT
O programa RQT fornece serviços para a simulação. O Q significa Qt, que é para lidar com a interface. Neste exemplo, você gera uma nova tartaruga.
$ rqt
A interface RQT é uma longa lista de serviços para a simulação que você está executando. Para criar uma nova tartaruga, escolha o menu suspenso 'Spawn', dê um novo nome à tartaruga e clique em 'Ligue.'Você verá imediatamente uma nova tartaruga ao lado do primeiro. Se você clicar no menu suspenso 'Spawn', também verá um novo monte de entradas relacionadas à tartaruga recém-desova.
Você também pode remapar os comandos para executar a nova tartaruga. O comando a fazer isso é o seguinte:
$ ROS2 RUN TURTLESIM TURTLETELEOPKEY -ROS -ARGS -REMAP TURTLE1/CMDVEL: = TURTLE2/CMDVEL
Defina o nome 'Turtle2', de acordo com sua escolha anterior.
Visualização avançada com RVIZ
Para uma visualização mais avançada e 3D, use o RVIZ. Este pacote simula todos os nós em seu design.
$ ROS2 RUN RVIZ2 RVIZ2
Na interface gráfica, você tem três painéis, com a vista no centro. Você pode construir ambientes usando o painel 'Displays'. Você pode adicionar paredes, forças eólicas e outras propriedades físicas. É também onde você adiciona seus robôs.
Esteja ciente de que, antes de chegar a esse ponto, você precisará entender como usar o formato URDF. O formato URDF define um robô, permitindo que você defina o corpo, os braços, as pernas e, acima de tudo, zonas de colisão. As zonas de colisão estão lá para que a simulação possa decidir se o robô colidiu.
Aprender sobre a criação de um robô no formato URDF é um grande projeto; portanto, use um código de código aberto existente para experimentar os emuladores.
Simular física com gazebo
Em Gazebo, você pode simular a física do meio ambiente em torno do seu robô. Gazebo é um programa de complemento que funciona bem junto com o RVIZ. Com o Gazebo, você pode ver o que está realmente acontecendo; Com o RVIZ, você acompanha o que o robô detecta. Quando seu software detecta uma parede que não está lá, o gazebo mostrará vazio e o RVIZ mostrará onde em seu código o muro foi criado.
Conclusão
É necessário simular seu robô e seus ambientes para encontrar bugs e fornecer as melhorias necessárias na operação do seu robô antes de colocá -lo na natureza. Este é um processo tedioso que continua muito depois de você começar a testar o bot, em ambientes controlados e na vida real. Com conhecimento adequado da infraestrutura dos sistemas internos do seu robô, você pode entender o que fez certo e errado. Aprenda rapidamente a apreciar todas as falhas que você encontra, pois elas podem tornar seu sistema mais robusto a longo prazo.