Intro

Update to Software Setup v1

Setup

Install Dependencies

  • Install pip dependencies
pip3 install "ultralytics==8.3.176" "numpy<2.0" pandas --break-system-packages 
sudo apt install ros-jazzy-robot-localization ros-jazzy-tf-transformations

Pontus Installation

  • Install Pontus
cd mrg_ws/src
git clone https://github.com/gt-marine-robotics-group/Pontus.git

Simulation

  • Launch odom simulation
ros2 launch pontus_bringup odom_simulation.launch.py 
description

Example of Gazebo configured for Sonar Data Visualization

Sensor Visualization & Debugging

Gazebo

  • Visualize simulated sonar hit locations
description

RViz

  • Run RViz
rviz2
description

Perception

ros2 launch pontus_perception perception.launch.py 
ros2 launch pontus_perception detection_services.launch.py auv:=sim

Mapping/Localization

Uses perception outputs + robot state (DVL + EKF) to maintain a global estimate of the environment.

ros2 launch pontus_mapping mapping.launch.py 

Controls

Command Mode

The command mode is set by publishing to the command_mode topic

E-Stop

  • Mode 0

Direct Control

  • Mode 1- Control vehicle by publishing to cmd_vel

Velocity Controller

  • Mode 2: Matches cmd_vel

Position Controller

  • Mode 6: Position Face Travel- Listens on cmd_pos to move to correct depth, orient towards target, move to target, then turn to match commanded orientation
  • Mode 7: Position with Strafe- Move to directly to commanded pose on the cmd_pos topic

RQT

  • Run rqt (To display topics: Click plugins topics message publisher)
rqt

Position Controller

  • In RQT, select command_mode and click the + icon to add the topic
  • Set the mode by modifying the expression field to 6 or 7
  • Add cmd_pos to test the position controller (Ex: set pos x to 2)
description

Plotjuggler

  • Install plotjuggler
sudo apt install ros-humble-plotjuggler-ros
  • Run plotjuggler
ros2 run plotjuggler plotjuggler
  • When the window loads, click start, and select topics, then drag variables (e.g. /cmd/linear/x) onto the main plot area

  • Testing position controller

picture 33

  • depth controller: linear z

    • going against buoyancy
    • looks at position moving away from where it should be and makes adjustment to push it down
  • not running SLAM

    • Get position from DVL and robot_localization runs extended kalman filter

Autonomy

  • Run autonomy nodes