Skip to content

Feat/jazzy/simulator compatibility#98

Open
jlgalanRB wants to merge 6 commits into
RobotnikAutomation:feat/jazzy-sim-compatibilityfrom
jlgalanRB:feat/jazzy/simulator-compatibility
Open

Feat/jazzy/simulator compatibility#98
jlgalanRB wants to merge 6 commits into
RobotnikAutomation:feat/jazzy-sim-compatibilityfrom
jlgalanRB:feat/jazzy/simulator-compatibility

Conversation

@jlgalanRB

Copy link
Copy Markdown
Contributor

Summary

This PR refactors the Gazebo simulation-related pieces in robotnik_description to keep this repository focused on the robot description itself.

The main goal is to decouple the robot URDF/Xacro description from simulator-specific control configuration, moving the responsibility for composing the final Gazebo simulation model to the simulation layer.

Motivation

Until now, several robot descriptions in robotnik_description directly included Gazebo-specific control macros and controller parameter references. This created a tight coupling between:

  • The robot description package
  • Gazebo simulation integration
  • ros2_control configuration files

That coupling made the description package less reusable and pushed simulation concerns into a repository whose responsibility should be the robot model definition.

With this change, robotnik_description provides the physical robot description and the Gazebo adapter macros, but the final composition of the simulated robot and its controller configuration is expected to be handled from robotnik_simulation.

What changes

1. Remove embedded Gazebo control composition from robot/base descriptions

Several robot/base xacros no longer instantiate Gazebo control macros internally when gazebo_ignition is enabled.

This means robot description files stop directly adding gz_ros2_control as part of the base/body definition.

2. Generalize Gazebo control adapter macros

The Gazebo control xacros under simulators/gazebo_ignition/... are updated so they can be composed externally through a common interface.

In particular, they now receive the controller config file as an argument instead of resolving it internally from robotnik_description.

3. Add a generic Gazebo composition xacro

A new wrapper xacro is introduced:

  • simulators/gazebo_ignition/robot.urdf.xacro

This file composes:

  • A simulator-independent robot xacro
  • The corresponding Gazebo control adapter

This provides a clean entry point for simulation packages that need the full Gazebo-ready robot description.

4. Remove controller YAML ownership from this repository

Controller parameter YAML files previously stored under robotnik_description/simulators/gazebo_ignition/... are removed.

These configs are intended to live in the simulation layer, where they belong conceptually.

5. Documentation updates

Documentation is updated to reflect that simulator control is no longer part of the robot description itself and must be composed externally.

Intended architecture after this PR

After this change:

  • robotnik_description owns robot geometry, links, joints, sensors, and reusable Gazebo adapter macros
  • robotnik_simulation owns simulator launch logic and controller configuration
  • The full Gazebo robot is composed from the simulation package, not directly from the base robot description

Impact

This change is mainly architectural, but it is important because it:

  • Improves separation of responsibilities
  • Makes robot descriptions more reusable outside Gazebo
  • Avoids storing simulator controller config in the description package
  • Simplifies future maintenance of simulation profiles and control configs

Notes

This PR is intended to be used together with the corresponding changes in robotnik_simulation, where:

  • ros2_control YAMLs are relocated
  • The spawn/launch flow composes the final Gazebo robot description using the new wrapper xacro

@jlgalanRB

Copy link
Copy Markdown
Contributor Author

@jlgalanRB
jlgalanRB marked this pull request as ready for review July 7, 2026 12:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant