This repository contains the robot description and necessary launch files to describe and simulate the BlueROV2 (unmanned underwater vehicle) with Gazebo and its hydrodynamics plugins under ROS 2.
apt install ros-${ROS_DISTRO}-xacro
apt install ros-${ROS_DISTRO}-simple-launch
ros_gz_bridge
apt install ros-${ROS_DISTRO}-slider-publisher
Clone the package and its dependencies (if from source) in your ROS 2 workspace src
and compile with colcon
To run a demonstration with the vehicle, you can run a Gazebo scenario, such as an empty world with buoyancy and sensors setup:
ros2 launch bluerov2_description world_launch.py
and then spawn the robot with a GUI to control the thrusters:
ros2 launch bluerov2_description upload_bluerov2_launch.py sliders:=true
Gazebo will:
/bluerov2/cmd_thruster[1..6]
and expect std_msgs/Float64
messages, being the thrust in Newton/bluerov2/pose_gt
. This pose is forwarded to /tf
if pose_to_tf
is used.Basic control is available in the auv_control package
In this case spawn the robot without manual sliders and run e.g. a cascaded PID controller:
ros2 launch bluerov2_description upload_bluerov2_launch.py
ros2 launch bluerov2_control cascaded_pids_launch.py sliders:=true
BlueROV2 package is open-sourced under the Apache-2.0 license. See the LICENSE file for details.