• Unidade 1
  • Capítulo 3 - Controlando o Robô
  • Atividades
  • 2 - Estrutura Básica de um Nó
  • 2 - Estrutura Básica de um Nó

Estrutura Básica de um Nó

Para facilitar o desenvolvimento de um nó, a fornecemos uma estrutura básica de um nó da ROS 2 em python. Também fornecemos uma estrutura básica de um nó que controla o robô, incluindo a definição da maquina de estados, a função de controle e o publisher do cmd_vel.

Baixe os arquivos e coloque-os na em uma pasta de fácil acesso.

Agora vamos entender o que cada parte do código faz.

Nó Base

Este script, não existe novidade em relação ao que já vimos anteriormente. Quando executado, ele chama a função control() a cada 0,25 segundos. Este script é útil para criar um nó que se inscreve em um tópico e executa uma função a cada nova mensagem recebida, publicando uma mensagem em outro tópico.

Dica 1

Nó Base é útil para desenvolver módulos que se inscrevem em um tópico e publica o resultado em outro tópico, como por exemplo, um nó de visão computacional.

Nó Base de Controle

Neste script, definimos a máquina de estados do robô (no dicionário self.state_machine), o estado inicial (no atributo self.robot_state) e a função de controle (no método self.control()), que a cada 0,25 segundos, executa a função self.state_machine[self.robot_state]() e publica a ação de controle no tópico cmd_vel (self.cmd_vel_pub.publish(self.twist)).

Importante

A função de controle é a única função que publica no tópico cmd_vel. Isso é importante para garantir que o robô não receba comandos conflitantes.

Portanto, a função de controle não precisa ser alterada.