Robotic-Decision-Making-Lab / blue

ROS 2 platform for underwater robotics research and development.
https://robotic-decision-making-lab.github.io/blue/
MIT License
50 stars 14 forks source link

[FEATURE]: Upgrade Gazebo from Garden to Harmonic #170

Closed evan-palmer closed 2 months ago

evan-palmer commented 6 months ago

Feature Type

Changing existing functionality in the BlueROV2 driver

Problem Description

The current LTS (Jazzy) and Rolling use Gazebo Harmonic instead of Gazebo Garden.

Feature Description

Upgrade the main and jazzy branches to use this version of Gazebo.

Alternative Solutions

N/A

Additional Context

No response

evan-palmer commented 6 months ago

This is currently being blocked by https://github.com/mavlink/mavros/issues/1958. Once merged, we can resolve this issue.

evan-palmer commented 4 months ago

~Harmonic is now the recommended version for Humble and Iron. Might be good to upgrade those first while waiting for Jazzy support~

amarburg commented 4 months ago

220 upgrades Rolling to Harmonic. I could break just the upgrade to Harmonic into a separate PR which you could propagate to Humble and Iron (leaving the Rolling / Noble - specific changes in the existing PR)

evan-palmer commented 4 months ago

I just double-checked this, and I was wrong. Hypothetically, the backport should still work (ros_gz is already being built from source to support Garden), but I'm contemplating discontinuing the ros_gz source build in future releases to reduce some of the maintenance and build times (and also make things more stable). If we move to using the ros_gz binaries in #220, then we will probably want to keep separate PRs.

amarburg commented 4 months ago

So here's a merge of the ROS-Gazebo compatibility matrix and the ROS-Gazebo-ros_gz matrix:

ROS2 Version Gazebo Version ROS2-Gazebo Compat ros_gz binaries?
Humble Fortress Recommended https://packages.ros.org/
Humble Garden Possible gazebo packages
Humble Harmonic Possible gazebo packages
Iron Fortress Recommended https://packages.ros.org/
Iron Garden Possible From source
Iron Harmonic Possible From source
Jazzy Garden Possible From source
Jazzy Harmonic Recommended https://packages.ros.org/
Rolling Fortress Recommended https://packages.ros.org/
Rolling Garden Possible From source
Rolling Harmonic Possible From source

Based on the spotty availability of binaries, what's the desirable endpoint for blue?

Here's where we are now:

ROS2 Version Gazebo Version ros_gz
Humble Garden From source
Iron Garden From source
Jazzy Harmonic (PR work-in-progress here) From source (but packages are available)
Rolling Garden (or Harmonic via PR #220) From source (packages available for Harmonic)

I assume Rolling is converging with Jazzy (i.e. Harmonic will soon be the preferred version)?

evan-palmer commented 4 months ago

Here is what I'm thinking:

ROS 2 Version Gazebo Version ros_gz binaries
Humble Harmonic packages.osrfoundation.org
Iron Harmonic packages.osrfoundation.org
Jazzy Harmonic packages.ros.org
Rolling Harmonic Open to discuss

The reason that I am undecided on Rolling is because it may be nice to switch to new versions of Gazebo as they come out, but I am open to discuss that. Here are the docs on the Iron/Humble/Jazzy Harmonic installation.

amarburg commented 4 months ago

Hm. So I'm stuck on how to implement the switching between ros_gz sources from a git-mergify point of view. How about:

  1. This PR switches the default to harmonic. Apply it to main (aka rolling) and propagate to jazzy iron and humble.
  2. Targeted commit to jazzy which removes the source build for ros_gz and instead installs from packages.ros.org
  3. Targeted commit to iron which removes the source build and instead installs from osrffoundation.org

This should work for iron and humble at least. Jazzy is still broken per #168 , and Rolling still broken per #220