mobi1019 / bluerov2-ROS2

BlueROV2 for ROS2 + ignition

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BlueROV2 ROS 2

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.

Requirements

For the description

  • Xacro , installable through apt install ros-${ROS_DISTRO}-xacro
  • simple_launch, installable through apt install ros-${ROS_DISTRO}-simple-launch

Gazebo

For the control part

Installation

Clone the package and its dependencies (if from source) in your ROS 2 workspace src and compile with colcon

Running

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

Input / output

Gazebo will:

  • Subscribe to /bluerov2/cmd_thruster[1..6] and expect std_msgs/Float64 messages, being the thrust in Newton
  • Publish sensor data to various topics (image, mpu+lsm for IMU, cloud for the sonar, odom)
  • Publish the ground truth on /bluerov2/pose_gt. This pose is forwarded to /tf if pose_to_tf is used.

High-level control

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

License

BlueROV2 package is open-sourced under the Apache-2.0 license. See the LICENSE file for details.

About

BlueROV2 for ROS2 + ignition

License:Apache License 2.0


Languages

Language:Python 96.2%Language:CMake 3.8%