ROS2 Bridge for the HoloOcean Underwater Robotics Simulator

Access HoloOcean Thruster Control and ImagingSonar data from ROS2

Migeran

4 min read

Introduction

We have been working with robotics simulation for over 5 years. We have used all the major robotics simulation solutions that are available for ROS: Gazebo, Webots and NVIDIA Isaac Sim. We also built custom vehicle simulators for WayRay's Holographic AR Display system based on Carla, Unreal and the Godot Engine.

But we never did look at simulation for Maritime Robotics, specifically simulation for Autonomous Underwater Vehicles (AUVs).

Until now.

Research Project

A discussion with a client prospect prompted us to do some research into Maritime Robotics simulation. While Gazebo also has maritime robotics simulation capabilities, we found another interesting open-source simulator named HoloOcean . It was developed by BYU FrostLab  and has a number of nice features:

  • Built on Holodeck  (and by proxy on Unreal Engine 4)
  • Supports multi-agent missions and various underwater sensors including imaging sonar.
  • Provides an easy to use Python API

We decided to create a ROS2 Bridge for HoloOcean while we explore its capabilities.

The Result

We have just released the initial version of our ROS2 Bridge.

Check out our demo video on Youtube .

The main features are:

  • ROS2 bridge using rclpy and the HoloOcean Python API
  • Thruster control using ROS2 messages
  • Basic URDF file for the HoveringAUV vehicle based on the Unreal Engine simulation
  • Converts ImagingSonar data to PointCloud messages
    • Uses a PyBind-based C++ module to handle the conversion
    • Runs the conversion on a background thread to reduce simulation delays
  • Docker and Virtualenv based development environment (see holoocean_tools )
  • Demo application with Rviz visualization

The source code is available on Github .

Future Work

While it is already possible to control the AUV from ROS and to receive ImagingSonar data as standard PointCloud messages, there is still more work left for the future:

  • Implement ROS2 Control Hardware Interface
  • Implement more sensors
  • Allow handling more agents at the same time

Happy to Connect & Collaborate

We are always happy to answer any questions that you may have. Do not hesitate to reach out to us on our website . We also would be delighted to review (and hopefully merge!) any Pull Requests with more features added to the ROS2 Bridge.

We would be also more than happy to work on similar (or completely different!) robotics simulation projects.

Do reach out to us , if you need a capable team of robotics engineers to take your project to the next level.

About Migeran

Migeran is a full-service software engineering and consulting company. In the past 16 years, we have been delivering software projects for our clients in a large variety of markets using a broad set of technologies, including:

  • Robotics solutions based on ROS1 and ROS2
  • AR / VR solutions based on Godot Engine and Unreal Engine
  • Native and cross-platform mobile apps built in Java / Kotlin, Swift / Objective-C and JavaScript / TypeScript with React Native.
  • Business applications based on Web and Mobile frontends and Java, Python, Ruby and PHP backend

Our first own product, Migeran for iOS was acquired by Intel in 2015 and released as the Multi-OS Engine.

We are available for new projects, you may contact us if you would like to learn more or have a project that you would like to discuss with us.

Share this post on Twitter.