Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Package request: ros-humble-ros-gz #68

Open
5 tasks done
icosac opened this issue May 23, 2023 · 14 comments · Fixed by #146
Open
5 tasks done

Package request: ros-humble-ros-gz #68

icosac opened this issue May 23, 2023 · 14 comments · Fixed by #146
Labels

Comments

@icosac
Copy link

icosac commented May 23, 2023

Package name

ros-humble-ros-gz

Operating System(s)

  • linux-64
  • linux-aarch64
  • osx-64
  • osx-arm64
  • 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

@traversaro
Copy link
Member

traversaro commented May 23, 2023

If you want to use gz-sim with robostack, pay attention that you may also hit the error: conda-forge/gz-sim-feedstock#6 . The fix for that is available at gazebosim/gz-sim#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).

@icosac
Copy link
Author

icosac commented May 23, 2023

Thanks for pointing me to this issues! I will have them monitor and see if there is any progress.

@mkarklins
Copy link

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.

@traversaro
Copy link
Member

In general you can't mix homebrew and conda-forge packages, as they have different ABIs. Anyhow, even if conda-forge/gz-sim-feedstock#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.

@traversaro
Copy link
Member

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 conda-forge/gz-sim-feedstock#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.

@mkarklins
Copy link

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.

@traversaro
Copy link
Member

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 .

@Tobias-Fischer
Copy link
Contributor

Sounds good to me :)

@Tobias-Fischer
Copy link
Contributor

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.

@traversaro
Copy link
Member

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 conda-forge/gz-sim-feedstock#6 (comment) .

@Tobias-Fischer
Copy link
Contributor

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)?"

@traversaro
Copy link
Member

traversaro commented Feb 19, 2024

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 gazebosim/gz-sim#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: #146 .

@Tobias-Fischer
Copy link
Contributor

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?

@traversaro
Copy link
Member

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 gazebosim/gz-sim#2089).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
4 participants