Blue is an end-to-end ROS 2 pipeline designed to support development, testing, and deployment of underwater robots.
The main features of Blue include:
- A set of interfaces designed to enable development of custom localization, planning, and control algorithms alongside the existing implemented algorithms (e.g., integral sliding mode control)
- A collection of commonly-used underwater vehicle models (both visual and hydrodynamic) like the Blue Robotics BlueROV2 and the BlueROV2 Heavy with support for developing your own custom models
- ArduSub + Gazebo SITL integration for evaluating the performance of your algorithms in a simulation environment
- Docker integration to support deployment of your algorithms to hardware
Blue is currently supported on Linux, and is available for the ROS
distributions Humble, Iron, and Rolling. To install Blue, first clone this
project to the src
directory of your ROS workspace, replacing $ROS_DISTRO
with the desired ROS distribution or main
for Rolling:
git clone -b $ROS_DISTRO git@github.com:Robotic-Decision-Making-Lab/blue.git
After cloning the project, install all external dependencies using vcs
:
vcs import src < src/blue/blue.repos
Finally, install the ROS dependencies using rosdep
, again, replacing
$ROS_DISTRO
with the desired ROS distribution:
rosdep update && \
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
ROS 2 launch files have been provided to start Blue. To launch the simulation environment for the BlueROV2 Heavy, run
ros2 launch blue_bringup bluerov2_heavy.launch.py use_sim:=true
A full description of the launch arguments and their respective default values can be obtained by running the following command:
ros2 launch blue_bringup bluerov2_heavy.launch.py --show-args
If you have questions regarding usage of Blue or regarding contributing to this project, please ask a question on our Discussions board!
Blue is released under the MIT license.