Skip to content

brunocampos01/dissertacao

Repository files navigation

Steps

Concepts

ROS2 Graph

É uma rede de elementos do ROS2 que processa os dados. Ele engloba todos os executáveis ​​e as conexões entre eles se você mapear todos eles e visualizá-los.

Nodes

Cada node no ROS deve ser responsável por um único propósito. Exemplo: um nó para controlar os motores das rodas, um nó para controlar um laser.

Topics

Os topics são como um barramento para os nodes trocarem mensagens. São baseados em publisher-subscriber.


Um node pode publicar dados para qualquer número de topics e simultaneamente ter assinaturas para qualquer número de topics.

Services

Os services são outro método de comunicação entre os nodes. São baseados em call-and-response

A vantagem do service é que é uma comunicação bidirecional, pois cliente faz uma solicitação a um node, o service deste node processa a solicitação e envia a resposta para o cliente.

NOTE:
Para um serviço de chamadas contínua um topic é melhor.

Parameters

Um parâmetro é um valor de configuração de um node

Actions

As actions são um dos tipos de comunicação no ROS2 e destinam-se a tarefas de longa duração. Eles consistem em três partes: um objetivo, feedback e um resultado.
As actions são construídas em topics e services. Sua funcionalidade é semelhante aos services, exceto que as actions podem ser canceladas. Eles também fornecem feedback constante, ao contrário de serviços que retornam uma única resposta.


Um sistema de robô provavelmente usará actions para navegação. Um objetivo de ação poderia dizer a um robô para viajar para uma posição. Enquanto o robô navega para a posição, ele pode enviar atualizações ao longo do caminho (ou seja, feedback) e, em seguida, uma mensagem de resultado final quando chegar ao seu destino.

How Create ROS2 Package

Before creating your first node you need to:

  • Create a ROS2 workspace and source it.
  • Create a (Python/Cpp) package.


After writing the node, you compile it, and you re-source your environment in order to use it. Nodes are compiled (only for Cpp), and installed (for both Python and Cpp), inside the install/ folder of your ROS2 workspace. You can directly execute them from here, or by using the command line tool “ros2 run ”.

Usage

  • Turtle
ros2 run turtlesim turtlesim_node
  • Execute turtle commands
ros2 run turtlesim turtle_teleop_key
  • Show nodes
rqt_graph
  • Public command in topic
ros2 topic pub --once /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"
ros2 topic pub --rate 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"
  • Alterar a inicialização
ros2 launch turtlesim multisim.launch.py
  • Record data from topic
ros2 bag record <topic_name>
  • See details from data
ros2 bag info rosbag2_2022_01_13-06_06_12/

Files:             rosbag2_2022_01_13-06_06_12_0.db3
Bag size:          16.8 KiB
Storage id:        sqlite3
Duration:          12.122s
Start:             Jan 13 2022 06:06:34.766 (1642064794.766)
End:               Jan 13 2022 06:06:46.888 (1642064806.888)
Messages:          13
Topic information: Topic: /turtle1/cmd_vel | Type: geometry_msgs/msg/Twist | Count: 13 | Serialization Format: cdr
  • Create Python package
cd $HOME/ros2_ws/src/
ros2 pkg create <my_py_pkg> --build-type ament_python --dependencies rclpy

colcon build --packages-select <my_py_pkg> 
  • Test package
ros2 run <my_py_pkg> py_node

Referências



Gmail GitHub LinkedIn GitHub Website GitHub Creative Commons License

About

REFACTORING ...

Resources

License

Stars

Watchers

Forks

Languages