ros-humble
ros-humble copied to clipboard
Package request: ros-humble-ros-gz
Package name
ros-humble-ros-gz
Operating System(s)
- [X] linux-64
- [X] linux-aarch64
- [X] osx-64
- [X] osx-arm64
- [X] win-64
Additional context (optional)
Hi, I'm sorry if this is not the correct way of requesting the addition of a package, it's the first time I do this.
I have to compile a ROS2 workspace that has as a dependency ros-humble-ros-gz (and also ros-humble-gazebo-ros2-control, but this I will request in another issue) and when running rosdep
, it cannot find the package.
Is it possible to add it to RoboStack?
Thanks!
Links and references (optional)
The repository of the ros-gz package can be found here
If you want to use gz-sim with robostack, pay attention that you may also hit the error: https://github.com/conda-forge/gz-sim-feedstock/issues/6 . The fix for that is available at https://github.com/gazebosim/gz-sim/pull/1968 . It is taking some time as it needs to be accepted upstream before being backported (as it introduces new ABI symbols), but hopefully we should be done with it soon(ish).
Thanks for pointing me to this issues! I will have them monitor and see if there is any progress.
Awesome to see progress on this front!
It looks like I have some spare time available. Does it make sense to take a stab at adding the ros-gz
package now before the gz-sim
PR is merged? Since the gz-sim*
things can be installed separately, relatively easy on mac with homebrew.
In general you can't mix homebrew and conda-forge packages, as they have different ABIs. Anyhow, even if https://github.com/conda-forge/gz-sim-feedstock/issues/6 is present, probably you can work around it by manually copying $CONDA_PREFIX/share/gz/gz-sim7/gui/gui.config
to ~/.gz/sim/7/gui.config
. Furthermore, as this problem is just at runtime, there should be no problem in already working on adding ros-humble-ros-gz
to robostack, see https://github.com/RoboStack/ros-humble/blob/main/CONTRIBUTING.md#adding-new-packages-via-pull-requests for docs on that.
A more tricky issue is that apparently the Humble version of ros-gz packages depend on Gazebo (Ignition) Fortress (see https://github.com/gazebosim/ros_gz). However, all relocatability work is going on Gazebo Garden. While it may be possible to have some simpler workaround/fix to solve https://github.com/conda-forge/gz-sim-feedstock/issues/6, I am not sure if Gazebo Fortress packages work at all on macOS. Probably the easiest way to check is to first build from source ros-gz packages to check if they work.
Is there an inherent requirement to support Fortress
release ( a side from it being an LTS version )? It seems at least initially we can focus on Garden
.
Fine for me (if it is ok for @@Tobias-Fischer) if you are able to do that, to be honest I tought it was difficult to override the metadata in the package.xml, but apparently there is an handy env variable to do so:https://github.com/gazebosim/ros_gz/blob/humble/ros_gz_bridge/package.xml#L30 . So probably you also need to add Garden packages to the rosdep keys in https://github.com/RoboStack/ros-humble/blob/main/robostack.yaml .
Sounds good to me :)
By the way, I can’t recall how exactly vinca parses the package.xml, and I’m not sure if it would respect the environment variables. In the past I’ve simply remapped within the robostack.yaml /conda.yaml to whichever gazebo version I want. Not nice but works.
Thanks for pointing me to this issues! I will have them monitor and see if there is any progress.
For anyone just monitoring this issue and not that one, the problems on gz-sim on Linux were solved some weeks ago, see https://github.com/conda-forge/gz-sim-feedstock/issues/6#issuecomment-1599464051 .
Hi @traversaro - I am a bit lost when it comes to Gazebo support for ROS2. I'm happy to look into it, but would appreciate a bit of guidance. What is the overall status of Classic-Gazebo and Ignition-Gazebo both standalone and in conjunction with RoboStack/ROS2? Which version of Classic-Gazebo / Ignition-Gazebo should we use?
We just got asked this in our Gitter: "z4ziad Ok, I am new to Robostack. So far, I like what I have read about it and would like to use it in the classroom in an engineering program. I wonder what route I should take to install ROS2 Humble and a basic Gazebo simulator (i.e., what packages should I install for Windows and MacOS)?"
Hi @traversaro - I am a bit lost when it comes to Gazebo support for ROS2. I'm happy to look into it, but would appreciate a bit of guidance. What is the overall status of Classic-Gazebo and Ignition-Gazebo both standalone and in conjunction with RoboStack/ROS2? Which version of Classic-Gazebo / Ignition-Gazebo should we use?
Ok, let's try to recap. Sorry for the complexity, hopefully it will go away in the long term. In the following I will refer to "Classic gazebo" to refer to the "old" Gazebo that has been developed from ~2004 and will be not be supported upstream anymore in 2025, and with "Modern gz-sim" for the modern simulator (that used to be called "Ignition Gazebo") that is being actively developed and it is recommended for new developments. Unfortunately, both are being called "Gazebo", so I prefer to avoid using just "Gazebo" as it is ambiguous. It is important to distinguish the two, as even if they share the possibilities of loading models in URDF and SDF formats, the API for their plugins is completely different, so effectively two different simulators.
First of all, historically each version of ROS/ROS2 is associated to a corresponding release of both "Gazebo classic" and "Modern gz-sim". Using a different version may be working, but it is typically not supported in binary packages. For ROS2 Humble, the corresponding releases are:
Gazebo version | Version supported by ROS Humble | Package providing integration between ROS and Gazebo | Documentation Link | OS supported |
---|---|---|---|---|
Gazebo Classic: | 11 | ros-humble-gazebo-ros-pkgs |
https://classic.gazebosim.org/tutorials?tut=ros2_overview | Linux, macOS and Windows. |
Modern gz-sim | Gazebo Fortress , gz-sim6 (that is available in conda-forge as libignition-gazebo6, as it was released before the Gazebo/Ignition renaming) . See https://github.com/gazebosim/ros_gz and https://github.com/gazebo-tooling/gazebodistro/blob/master/collection-fortress.yaml | ros-humble-ros-gz (it used to be called ros-ign, but it was retroactively renamed to ros-gz to simplify the life of users migrating to the future release of Modern gz-sim called "gz" instead of "ign"). |
https://docs.ros.org/en/humble/Tutorials/Advanced/Simulators/Gazebo/Gazebo.html | Linux should work, I am not sure about macOS. For sure Windows it is not working, see https://github.com/gazebosim/gz-sim/issues/2089 |
Regarding robostack, it seems that ros-humble-gazebo-ros-pkgs
was compiled recently, while in the latest rebuild, while ros-humble-ros-gz
is missing, I will open a PR to build it: https://github.com/RoboStack/ros-humble/pull/146 .
Many thanks @traversaro! I’ll reopen here to keep track of the Windows issue. I guess it would be resolved if we move to a newer ROS2 distribution (e.g. Iron) which supports a newer Modern go-sim?
I guess it would be resolved if we move to a newer ROS2 distribution (e.g. Iron) which supports a newer Modern go-sim?
Kind of. The packages for gz-sim on Windows on conda-forge are available and basic simulations are working, but the GUI still does not work, but that's an upstream issue (see https://github.com/gazebosim/gz-sim/issues/2089).