Skip to content

Port the lunar pole exploration rover plugins and model to Gazebo Harmonic (keeping Fortress) #47

Description

@asimonov

The lunar pole exploration rover is the one model in this repository with custom Gazebo system plugins — SolarPanelPlugin, RechargeableBatteryPlugin, SensorPowerSystemPlugin and RadioisotopeThermalGeneratorPlugin — and they only build for Ignition Fortress. Since #41 they are excluded from non-Humble builds, so on ROS 2 Jazzy the simulation package builds with no plugins and the rover has no power system. The rover's .gazebo xacro is also Ignition-only (ign_ros2_control/IgnitionSystem, ignition-gazebo-*-system plugin names), and its ros2_control configuration lives in the demos repository, referenced through $(find lunar_pole_exploration_rover).

This blocks moving the lunar_pole_exploration_rover demo off the Humble base image (space-ros/demos#164).

Proposal

  • Port the four plugins to the gz-sim 8 API (gz::sim, gz/ headers, GZ_ADD_PLUGIN, per-message includes for gz-msgs 10) while keeping them building on Fortress through a small compatibility header, since Fortress ships the gz/ redirect headers but not the GZ_-prefixed macros. Select the Ignition system packages on Humble and the ROS gz_*_vendor packages otherwise, so the plugins link against the same libraries as ros_gz and gz_ros2_control.
  • Make the rover model select ign_ros2_control / ignition-gazebo-* or gz_ros2_control / gz-sim-* names from ROS_DISTRO, and keep its controller configuration next to the model, as the curiosity rover does.
  • Set the GZ_SIM_* resource and plugin paths in the package's environment hook alongside the IGN_GAZEBO_* ones, so Harmonic finds the meshes and the plugins (this is the hook part of Update to Gazebo Harmonic/Jazzy #36).

Humble stays fully supported; several open PRs still target it.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions