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
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:
- An external barometer provides depth
- An IMU provides attitude
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.
Navigation
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:
- ROS2 Humble
- Gazebo Harmonic
- ros_gz for Humble + Harmonic (ros-humble-gzharmonic)
- ardupilot_gazebo for Harmonic
- ArduSub
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.
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