Repo symbol

orca4 repository

Repo symbol

orca4 repository

Repo symbol

orca4 repository

Repo symbol

orca4 repository

Repository Summary

Description ROS2 AUV based on the BlueROV2, ArduSub and Navigation2
Checkout URI https://github.com/clydemcqueen/orca4.git
VCS Type git
VCS Version main
Last Updated 2025-06-16
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
orca_base 0.5.0
orca_bringup 0.5.0
orca_description 0.5.0
orca_msgs 0.5.0
orca_nav2 0.5.0
orca_shared 0.5.0

README

Orca4 ROS2 CI

Orca4 is a set of ROS2 packages that provide basic AUV (Autonomous Underwater Vehicle) functionality for the BlueRobotics BlueROV2.

Orca4 uses ArduSub as the flight controller and mavros as the GCS.

Orca4 runs in Gazebo Harmonic using the standard buoyancy, hydrodynamics and thruster plugins. The connection between ArduSub and Gazebo is provided by ardupilot_gazebo.

Sensors

The BlueROV2 provides the following interesting sensors:

Orca4 adds a simulated down-facing stereo camera and ORB_SLAM2 to generate a 3D pose as long as the camera has a good view of the seafloor. The pose is sent to ArduSub and fused with the other sensor information.

If there is no view of the seafloor a synthetic pose is generated based on the last good pose and a simple motion model.

See orca_base for details.

Orca4 uses the Navigation2 framework for mission planning and navigation. Several simple Nav2 plugins are provided to work in a 3D environment:

  • straight_line_planner_3d
  • pure_pursuit_3d
  • progress_checker_3d
  • goal_checker_3d

See orca_nav2 for details.

Installation

See the Dockerfile for installation details.

Install these packages:

Build ArduSub for SITL:

cd ~/ardupilot
./waf configure --board sitl
./waf sub

Populate the workspace:

mkdir -p ~/colcon_ws/src
cd colcon_ws/src
git clone https://github.com/clydemcqueen/orca4
vcs import < orca4/workspace.repos

Get dependencies:

rosdep update
rosdep install -y --from-paths . --ignore-src

MAVROS depends on GeographicLib, and GeographicLib needs some datasets:

wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
chmod a+x install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh

Build the workspace:

cd ~/colcon_ws
colcon build

Simulation

In a terminal run:

source src/orca4/setup.bash
ros2 launch orca_bringup sim_launch.py

This will bring up all of the components, including the Gazebo UI. The surface of the water is at Z=0 and the sub will be sitting at the surface. The world contains a sandy seafloor 10 meters below the surface.

GAZEBO GUI

You should see ArduSub establish a connection to the ardupilot_gazebo plugin: ~~~ [ardusub-2] JSON received: [ardusub-2] timestamp

File truncated at 100 lines see the full file

Repo symbol

orca4 repository

Repo symbol

orca4 repository

Repo symbol

orca4 repository

Repo symbol

orca4 repository