Final Report

Created in July 27, 2025

2025


Robotics-Academy: Migration to Gazebo Harmonic


Organization: JdeRobot
Student: Nikhil Gupta (GitHub, LinkedIn)
Mentors: Pedro Arias Pérez, Miguel Fernández Cortizas, Prajyot Jadhav
Link to GSoC Project Page: Robotics Academy: improvement of Gazebo scenarios and robot models

Hello everyone,

This summer, I had the opportunity to contribute to Robotics-Academy through the Google Summer of Code 2025 program. My project focused on upgrading the Robotics-Academy’s Docker-based framework by migrating it to Gazebo Harmonic from Gazebo Classic, ensuring the platform’s long-term compatibility. My project proposal can be found here.

About me

I have a Bachelor’s degree in Chemical Engineering from Indian Institute of Technology Kanpur, India. My interests lie in robotics and control systems. Google Summer of Code 2025 marked my first substantial contribution to open source, and it was an amazing experience.

About the Project

JdeRobot’s Robotics-Academy stands out as a powerful educational tool that democratizes robotics learning. It masterfully abstracts away the often-daunting complexities of setting up simulation environments. Through its Docker-based framework (known as RADI) and user-friendly web templates, it provides a seamless, cross-platform experience. This innovative approach allows students and aspiring roboticists to dive directly into programming and testing their algorithms, rather than getting bogged down by intricate software installations and dependency management.

The academy has historically relied on Gazebo Classic (specifically Gazebo11), a robust but aging simulator. With Gazebo Classic approaching its end-of-life, a migration to its successor, Gazebo (formerly Ignition), is essential for the platform's sustainability. My project focused on spearheading this transition by migrating several key automotive exercises to the latest Long-Term Support (LTS) release, Gazebo Harmonic. The goal was not merely to ensure functionality but to guarantee that the exercises would benefit from Harmonic's improved performance, modular architecture, and advanced physics engine, all while maintaining the seamless user experience Robotics-Academy is known for.

Contribution Summary


Stage 1: Migrating Ackermann Car and F1 Obstacle Avoidance Exercise

The first phase involved migrating the Ackermann car model and the F1 circuit obstacle avoidance exercise to Gazebo Harmonic. This required updating the vehicle's SDF files to comply with the new Gazebo format, modifying the physics parameters, ensuring proper sensor integration and adding ackermann plugin gz-sim-ackermann-steering-system. The F1 obstacle circuit world file was also updated to maintain compatibility with the new simulation environment while preserving the original exercise functionality. One of the major issues faced during the migration was to add the appropriate collisions to the obstacles in gazebo harmonic. To solve this issue, we created an enclosing cuboid with exact dimensions as the obstacles which perfectly simulated the required collisions.

Stage 2: Autoparking Exercise Migration with Prius Ackermann Model

In this stage, I focused on migrating the autoparking exercise, which features the Prius Ackermann car model. This involved comprehensive updates to the vehicle's SDF structure and config files as well as the SDF structure of the other parked cars in the exercise, including modifications to the steering and drive mechanisms to work with Gazebo Harmonic's updated plugin system. The parking lot environment was also migrated, ensuring that all static obstacles and parking spaces maintained their proper collision detection and visual representation.

Stage 3: Holonomic Drive Car and Autonomous Navigation Exercise

The third phase centered on migrating the autonomous navigation exercise along with the holonomic drive car model. This required updating the omnidirectional drive system to work with Gazebo Harmonic's new joint and plugin architecture using the plugin gz-sim-velocity-control-system. The navigation environment and the underlying world structure, was thoroughly updated to ensure compatibility while maintaining the exercise's educational objectives.

Stage 4: Integration and Testing

The final stage involved comprehensive testing of all migrated exercises, ensuring that the educational content remained intact while benefiting from Gazebo Harmonic's improved performance and features. I verified all the plugins, collisions and sensor data being publishedon the desired topics, ensuring the required functionality in all the newly migrated scenarios.

On GitHub

Over the summer, I submitted 7 pull requests, all of which have been merged. These pull requests addressed 7 issues, and my contributions will be incorporated into the upcoming releases of JdeRobot’s Robotics-Academy.

Robotics Infrastructure
Pull Request Solves Issue Description More
#526 #518 Added new f1_ackermann_harmonic car and simple_circuit_harmonic.sdf world in ackermann_cars Week-2 Blog, Week-3 Blog
#533 #519 Obstacle avoidance world for gazebo harmonic added, with relevant models migrated to gazebo harmonic. Week-4 Blog
#538 #520 Added autoparking world (batteria_prius_3laser_harmonic.sdf) and relevant textured Week-4 Blog, Week-5 Blog
#539 #532 Added textures to the f1_ackermann cars and corrected the collision geometry of f1_dummy_harmonic Week-6 Blog
#540 #521 Autoparking car added autoparking world collision geometry corrected Week-5 Blog , Week-6 Blog
#540 #521 Migrated taxi_navigation_city_large world to gazebo harmonic Week-7 Blog
#540 #521 Migrated taxi_holo to gazebo harmonic Week-7 Blog

Video

Future Work

While this project successfully laid the groundwork for the academy's transition to Gazebo Harmonic, the work done opens up several avenues for future contributions:

  1. Expand Migration to Other Exercises: The primary focus was on automotive exercises. The next logical step is to apply the lessons learned and the methodologies developed during this project to migrate other categories of exercises, such as those involving robotic arms or other mobile robot platforms, from Gazebo Classic to Gazebo Harmonic.

  2. Performance Benchmarking and Optimization: A systematic performance analysis comparing the migrated exercises against their Gazebo Classic originals would be highly valuable. This would help quantify the performance gains, identify potential bottlenecks, and guide optimization efforts to ensure the exercises run efficiently across a wide range of hardware.

  3. Develop a Public Migration Guide: To accelerate the migration of remaining exercises and to empower other open-source contributors, a detailed guide should be created. This document would outline the step-by-step process for converting a Robotics-Academy exercise, covering SDF conversion, plugin replacement, ROS 2 bridge configuration, and validation techniques.

Conclusion

My participation in Google Summer of Code 2025 with JdeRobot has been an invaluable and transformative experience. This project was a deep dive into the world of modern robotics simulation, pushing me to master the intricacies of the SDF format, the Gazebo plugin architecture, and the critical interface between simulation environments and ROS 2. It has significantly sharpened my technical skills in software engineering, version control, and collaborative development within a distributed team.

Beyond the technical growth, GSoC introduced me to the vibrant, welcoming, and incredibly supportive open-source community at JdeRobot. The opportunity to contribute to a platform that makes robotics education more accessible has been immensely gratifying. I would like to extend my deepest gratitude to Prof. José María Cañas and the JdeRobot administrators for making this possible. A special thanks goes to my exceptional mentors—Pedro Arias Pérez, Miguel Fernández Cortizas, and Prajot Jadhav constant guidance, insightful feedback, and unwavering support were instrumental to the success of this project.