RQT Graph - Weber-State-Submarine-Project/Submarine GitHub Wiki

Introduction

The autonomous boat project is designed to navigate and map a swimming pool environment autonomously, leveraging ROS2 for communication and control. The system integrates multiple hardware components, including sonar sensors, ESC motors, and an orientation sensor, with software modules for navigation, mapping, and behavior control.

This document provides an overview of the system's architecture, with a focus on how the various nodes and topics interact to achieve the project's goals.


RQT Graph

The following RQT graph provides a visual representation of the ROS2 nodes and topics used in the system. Each node performs a specific function, such as processing sensor data, controlling motors, or managing the behavior tree. The topics illustrate the flow of information between nodes.

RQT Graph

Key Nodes:

  • Sonar Nodes: Publishes distance measurements for mapping and obstacle avoidance.
  • motor_control: Subscribes to navigation commands and controls ESC motors.
  • EKF Node: Combines sensor data to estimate the robot's position.
  • Exec Node: Manages decision-making and task execution. This is the behavior tree
  • octomap_server: Creates the 3D map
  • orientation: Grabs data from the BNO085 and publishes to /orientation_topic
  • speed_sensor: Calculates velocity and publishes it to /odom
  • joy_to_esc: Takes the controller inputs and allows the user to control the motors manually.

Key Topics:

  • /sonar_data: Publishes processed sonar readings for mapping.
  • /odom: Provides localization data for navigation and behavior control.
  • /imu: The topic is used to grab data from /orientation_topic and to be used in the ekf.
  • /joy: A topic used to listen into a controller and publish their button outputs onto.
  • /esc_topic: A topic used to control the motors
  • /turning: A Topic simply used to let other nodes know that we are turning and we should act differently

The RQT graph visually emphasizes the modularity and interconnected nature of the ROS2 system, demonstrating the logical flow of data and control signals throughout the project.