Intro

Topics

  • /nekton/pressure: Returns the result from the pressure sensor in Pascals

  • /nekton/imu: Returns the result from the IMU, including a quaternion for orientation and 3D vectors for linear and angular acceleration

  • /nekton/thrusters/id_<thruster_number>/input: Controls the power of the thruster; using a 0–100 range for now

  • /nekton/sonar_forward: Contains 3D points (same height) where the sonar received returns

  • /nekton/camera_forward/camera_info

  • /nekton/camera_forward/image_raw

  • /data: generated or fused data not coming directly from sensors (e.g., estimated position from sensor fusion or post-processed camera output)

Setup

  • Create workspace and clone repo into src
mkdir ~/vip_ws/src && cd ~/vip_ws/src
  • Install any missing system-level dependencies if needed
# Initialize rosdep if not done
sudo rosdep init
rosdep update
 
# Install all dependencies for the workspace
rosdep install --from-paths src --ignore-src -r -y
  • Build project
cd ~/vip_ws
colcon build --symlink-install
source install/setup.bash

Simulation

Full Underwater Simulation

Gazebo runs in the background, using the GPU? for physics simulation. The full underwater simulation utilizes the hydrodynamics-plugin

test.launch
   β”œβ”€β”€ topside.launch (UI / control)
   └── odom_simulation.py
          β”œβ”€β”€ Gazebo launch
          β”œβ”€β”€ world:=underwater.world (default)
          └── robot + sensors + controllers
description
  • Run full underwater simulation (with hydrodynamics enabled)
ros2 launch nekton_bringup test.launch

Lightweight sensor simulation

sensor.world provides a flat ground-plane simulation (easier to add obstacles), designed for lightweight testing by excluding hydrodynamics and other computationally expensive physics effects.

description
  • Run sensor test simulation using sensor.world
ros2 launch nekton_bringup odom_simulation.py world:=sensor.world

Bash aliases

  • Define aliases in ~/.bashrc (or added by the Docker setup)
alias src='cd ~/vip_ws; source ./install/setup.bash';
alias build='cd ~/vip_ws; colcon build; src;'
alias launch='src; ros2 launch nekton_bringup test.launch';
  • Usage
launch
  • Or
launch world:=sensor.world
  • List valid worlds (should show sensor.world and underwater.world)
find ~/vip_ws -iname "*.world"

Rviz

  • Visualize in RViz
rviz2 nekton.rviz
description

GUI

The current plan is to recreate similar functionality to the previous icefin software:

Nekton UI

  • Artificial Horizon
  • Buttons
  • Alerts
  • Camera feed
  • Sonar feed
  • Depth and altimeter visualization
  • Thruster visualization
  • Camera and Sonar Mosaicing

6 items under this folder.