[GSoC 2024] Migration of project DAVE to ROS 2 and Harmonic: Worlds, Models and Plugins

[GSoC 2024] Migration of project DAVE to ROS 2 and Harmonic: Worlds, Models and Plugins

Organization: Open Robotics

Mentors: Woen-Sug Choi, Mabel Zhang

Student: Helena Bianchi Moyen (Github, LinkedIn)

Link to GSoC project: https://summerofcode.withgoogle.com/programs/2024/projects/agiVoKmm

Hello everyone,

This summer, Rakesh Vivekanandan, Gaurav Kumar, and I were selected to work on migrating Project DAVE to the new Gazebo Harmonic and ROS 2 Jazzy, with guidance from mentors Woen-Sug Choi and Mabel Zhang and assistance of community volunteer Abhimanyu Bhowmik. Over the past four months, we developed a new branch for the project, documented our work, and created demos that include most of the old DAVE plugins, such as the DVL, USBL, and Sea Pressure sensor. Currently, we are focused on migrating the Multibeam Sonar Plugin and wrapping up the project.

My role included working on DAVE worlds and models, uploading them to Fuel, and migrating the USBL, Spherical Coordinates, and Multibeam Sonar plugins, which I will elaborate on below. The project documentation is available in Notion and includes details on Native and Docker installations for Ubuntu Noble, Windows WSL, and Mac OS X.

Documentation: GSoC 2024 - Open Robotics - Dave/Multibeam Sonar

Native installation: Installation Manual (Local)

Docker installation: Installation Manual (Docker)

About me

I’m a third-year Computer Engineering student at the University of São Paulo, Brazil. Currently, I am enrolled in software development for autonomous drones with the student team Skyrats. That’s how I got to learn ROS and Gazebo and began my passion for robotics. Through some exposure to Naval Engineering in my university labs, I developed a new interest in maritime robotics, which has grown throughout the project and makes me very excited to contribute more to open-source projects like DAVE in the future.

About the project

DAVE (Aquatic Virtual Environment - Home | Project DAVE) is a simulation platform designed for the rapid testing and evaluation of underwater robotic solutions, specifically autonomous underwater vehicles (AUVs/UUVs) that perform missions involving autonomous manipulation. Originally built on ROS 1 Noetic and Gazebo Classic, which are set to reach their end of life in 2025, the project aims to migrate DAVE and its Multibeam Sonar plugin to the new ROS 2 and the Harmonic framework. This transition will ensure continued support and development for the simulation environment.

Worlds and Models migration

The first part of the project was stripping all the models down and removing the plugins. Also, as described in the instructions of migration from Gazebo Classic to Harmonic, some changes had to be made especially to the texture of some of the models, which used material script. The bare models were all uploaded to the following collections:

This made the DAVE repository much cleaner, since all the models are called directly from Fuel and don’t need to actually be in the local repo.

You can check some progress documentation here:

Migrate Worlds

Fuel Upload Research and Manual

Upload Multibeam Sonar Models to Fuel

PR: [GSOC-51] DAVE worlds and respective launch files by hmoyen · Pull Request #4 · IOES-Lab/dave · GitHub

Plugins Migration

During GSoC, I was responsible to migrate three main DAVE plugins:

  • USBL
  • Spherical Coordinates
  • Multibeam Sonar

USBL Plugin

USBL (ultra-short baseline) facilitates underwater navigation and positioning by utilizing a transceiver and one or more transponders (or beacons). The transceiver is usually mounted on a stationary structure or a mobile central node, while the transponders are attached to the objects being tracked. The USBL DAVE plugin simulates a demo of the USBL system by enabling users to obtain the locations of transponders at a specified data frequency, which is also influenced by factors such as sound speed, temperature, depth, and the distance between the transceiver and transponder. This plugin was migrated and now works in the ROS 2 and Harmonic environment.

USBL Demo

Documentation on how to use it: Usbl Migration

PR: [GSOC-67] Migration of USBL plugins by hmoyen · Pull Request #11 · IOES-Lab/dave · GitHub

Spherical Coordinates Plugin

The SphericalCoords plugin for Gazebo integrates spherical coordinate manipulation capabilities into the Gazebo simulation environment. It allows users to get, set, and transform spherical coordinates within the simulation and, for example, change the world’s origin. The plugin was designed to interface with ROS 2, providing services to interact with the Gazebo spherical coordinates system.

Spherical Coordinates Plugin Demo

Documentation on how to use it: Spherical Coordinates Plugin Migration

PR: [GSOC-72] Migration of Spherical Coordinates Plugin by hmoyen · Pull Request #12 · IOES-Lab/dave · GitHub

Multibeam Sonar Plugin

(in progress)

The Multibeam Sonar plugin provides an advanced simulation of sonar sensors using a ray-based approach instead of traditional image processing. It models acoustic signal behavior, including phase, reverberation, and raw intensity-range data. Currently, we are developing a custom sensor based on the Gazebo GPU-Lidar and DVL sensor and accessing its point cloud in RViz.

Some documentation of the work in progress:

Multibeam Sonar: Native Installation

Multibeam Sonar Plugin Migration Memo

PR: Multibeam Sonar Migration Template by woensug-choi · Pull Request #15 · IOES-Lab/dave · GitHub

Challenges and implementation

The project is still in progress, so there is much to be improved and migrated. Here are some of the migration challenges we’ve encountered:

You can also check out some issues to be resolved in our Notion page (Issues).

Conclusion

Overall, the project was successful and provided a strong basis for future development, including the migration of additional plugins and the implementation of manipulators in robots.

A big thank you to mentors Woen-Sug Choi and Mabel Zhang for their guidance, and to colleagues Rakesh, Gaurav, and Abhi for the collaboration and shared learning over the past few months. Also, many thanks to Open Robotics for their reception and support throughout this experience.

7 Likes

This is cool! TDIL of a nice template to share with beginners.

2 Likes