The first week of the official coding period for GSoC 2025 is here! This week marked the transition from community bonding to hands-on development work. Our focus shifted to practical implementation tasks, specifically migration work and setting up the development environment for Gazebo scenarios. The mentors provided clear objectives to get us started with the technical aspects of the project.

This week brought both exciting progress and technical challenges as I dove into the migration tasks and explored the existing codebase structure. Let me walk you through what we accomplished and the obstacles encountered!

Preliminaries

The start of the official coding period brought a structured approach to tackling the migration tasks. In our Monday meeting, we reviewed the project roadmap and identified the immediate priorities for Week 1. The mentors emphasized the importance of understanding the migration process thoroughly before implementing major changes to ensure compatibility across different Gazebo versions.

Our approach focuses on systematic migration from Gazebo Classic to Gazebo Harmonic, starting with simpler scenarios and gradually working towards more complex implementations. The FollowLine exercise serves as our primary test case due to its relative simplicity and existing migration work.

Objectives

  • Get familiar with migration links and resources
  • Verify marker_visual_loc exercise already working in Gz Harmonic
  • Set up local environment: world launcher for gz-classic and gz-harmonic
  • Study FollowLine migration progress (https://github.com/pariaspe/ros_follow_line)
  • Complete Ackermann car model migration
  • Study file structure in Robotics Infrastructure repository

Execution

Migration Resources Study

I began the week by thoroughly studying the migration documentation and resources provided by the mentors. The transition from Gazebo Classic to Gazebo Harmonic involves significant changes in file formats, API calls, and plugin architecture. Key resources included the official Gazebo migration guide, SDF format specifications, and existing migration examples within the JdeRobot ecosystem.

The marker_visual_loc exercise, which was already successfully migrated to Gz Harmonic, served as an excellent reference point for understanding the migration patterns and best practices. I analyzed its structure to identify common migration patterns that could be applied to other exercises.

Development Environment Setup

Setting up the local development environment proved to be more complex than initially anticipated. I configured both gz-classic and gz-harmonic installations to enable testing across both platforms. The world launcher setup required careful attention to ensure compatibility with both versions while maintaining the ability to switch between them seamlessly.

Key components of the setup included:

  • Gazebo Classic (version 11) for legacy support
  • Gazebo Harmonic for target migration
  • ROS2 Humble integration with both versions
  • Proper environment variable configuration for version switching

FollowLine Migration Analysis

I examined the ongoing FollowLine migration work in the repository at https://github.com/pariaspe/ros_follow_line. This analysis revealed the current state of the migration and highlighted areas that needed attention. The existing work provided valuable insights into the challenges and solutions for migrating ROS-based robotics exercises.

F1 Model SDF Migration

The most significant technical work this week involved migrating the F1 (Formula 1) car model from the old format to the new SDF format compatible with Gazebo Harmonic. This process required:

  • Converting URDF elements to SDF format
  • Updating plugin references and configurations
  • Modifying sensor specifications for Harmonic compatibility
  • Adjusting physics parameters and collision models

ROS Package for Testing

To properly test the migrated F1 model, I created a dedicated ROS package with the necessary launch files and configuration. This package was designed to support both Gazebo Classic and Harmonic environments, allowing for comparative testing during the migration process.

Challenges and Issues

The week wasn't without its obstacles. The most significant challenge emerged during the testing phase of the migrated F1 model. A compatibility error occurred that appears to be related to conflicts between the two Gazebo versions installed on the system. This error prevented the complete validation of the migration work.

The specific error seems to stem from:

  • Plugin library conflicts between Classic and Harmonic
  • Shared library path issues
  • Potential environment variable conflicts

This issue has highlighted the importance of proper environment isolation when working with multiple Gazebo versions simultaneously.

Next Steps

Looking ahead to Week 2, the primary focus will be on resolving the Gazebo version conflict issue and completing the F1 model migration testing. Specific priorities include:

  • Debugging and resolving the Gazebo version compatibility errors
  • Completing the validation testing of the migrated F1 model
  • Finalizing the Ackermann car model migration
  • Beginning work on additional model migrations
  • Documenting the migration process and best practices discovered

Robotics Infrastructure Insights

My study of the Robotics Infrastructure repository revealed important structural patterns and organizational principles that will guide future migration work:

  • Modular Architecture: The repository follows a clear separation between worlds, models, and launch configurations
  • Version Management: Existing provisions for handling multiple Gazebo versions, though these need enhancement
  • Documentation Structure: Consistent documentation patterns that should be maintained during migration
  • Testing Framework: Basic testing infrastructure that can be expanded for migration validation

Reflection

This first week of coding has been both productive and educational. While we encountered technical challenges with the Gazebo version conflicts, these issues are typical of migration projects and provide valuable learning opportunities. The systematic approach to studying existing migration work and understanding the repository structure has established a solid foundation for the weeks ahead.

The migration from Gazebo Classic to Harmonic represents a significant undertaking, but the potential benefits for the Robotics Academy platform make it a worthwhile endeavor. The improved performance, enhanced features, and better ROS2 integration of Gazebo Harmonic will ultimately provide a superior learning experience for students.

I'm confident that resolving the current technical issues will lead to smoother progress in subsequent weeks, and I look forward to completing the F1 model migration and moving on to more complex scenarios.