gazebo-tooling / release-tools

8 stars 9 forks source link

Support for releasing ros_gzgarden unofficial packages for Humble #895

Closed j-rivero closed 1 year ago

j-rivero commented 1 year ago

Motivation

Gz Garden is not currently supported by binaries in any ROS 2 distribution although the ros_gz bridge supports from source compilations using Gz Garden for different ROS 2 distributions. Building from source is the recommended way for advanced users that really want to use Garden on ROS 2 Humble or ROS 2 Rolling.

For Gazebo Classic with its 11 version and ROS 1 in this situation where the official version was an older version of Gazebo, we generated years ago unofficial packages named gazebo11_ros_pkgs hosted in packages.osrfoundation.org that could be used to install Gazebo11 instead of Gazebo9 on Melodic and others.

In this case, we can try to generate unofficial packages for the users of Gazebo Garden + ROS 2 Humble that could help the advanced user with their installations.

Roadmap:

Testing:

j-rivero commented 1 year ago

Quick test using the demos package: image

azeey commented 1 year ago

I had mixed results when testing this. I tried running ros2 run ros_gz_bridge parameter_bridge /chatter@std_msgs/msg/String@ignition.msgs.StringMsg and it worked, but not ros2 run ros_gz_bridge parameter_bridge /chatter@std_msgs/msg/String@gz.msgs.StringMsg (with gz instead of ignition). I also didn't see the GZ_VERSION environment variable set in the build logs

j-rivero commented 1 year ago

I also didn't see the GZ_VERSION environment variable set in the build logs

About this one. I tried to pass environment variables to bloom, but this is not a use case supported. Instead of that, I'm injecting the variable to the rules file, see these lines from the open PR.

j-rivero commented 1 year ago

I had mixed results when testing this. I tried running ros2 run ros_gz_bridge parameter_bridge /chatter@std_msgs/msg/String@ignition.msgs.StringMsg and it worked, but not ros2 run ros_gz_bridge parameter_bridge /chatter@std_msgs/msg/String@gz.msgs.StringMsg (with gz instead of ignition).

I have uploaded new 0.244.10-1002 versions. Could you please give it another try when you have time?

FYI @bperseghetti

bperseghetti commented 1 year ago

I had mixed results when testing this. I tried running ros2 run ros_gz_bridge parameter_bridge /chatter@std_msgs/msg/String@ignition.msgs.StringMsg and it worked, but not ros2 run ros_gz_bridge parameter_bridge /chatter@std_msgs/msg/String@gz.msgs.StringMsg (with gz instead of ignition).

I have uploaded new 0.244.10-1002 versions. Could you please give it another try when you have time?

FYI @bperseghetti

Thanks! Will give it a shot. If this works, it would also be great for Iron.

bperseghetti commented 1 year ago

Hey @j-rivero, I was testing the new package and noticed that ros-humble-ros-gzgarden-sim-demos has dependencies that install ign. I was discussing with @azeey about us possibly removing ros-humble-ros-gzgarden-sim-demos from ros-humble-ros-gzgarden package dependencies. Currently:

Package: ros-humble-ros-gzgarden
Version: 0.244.10-1002jammy
Architecture: amd64
Maintainer: Louise Poubel <louise@openrobotics.org>
Installed-Size: 43
Depends: ros-humble-ros-gzgarden-bridge, ros-humble-ros-gzgarden-image, ros-humble-ros-gzgarden-sim, ros-humble-ros-gzgarden-sim-demos, ros-humble-ros-workspace
Conflicts: ros-humble-ros-gz
.......

Ideally:

Package: ros-humble-ros-gzgarden
Version: 0.244.10-1002jammy
Architecture: amd64
Maintainer: Louise Poubel <louise@openrobotics.org>
Installed-Size: 43
Depends: ros-humble-ros-gzgarden-bridge, ros-humble-ros-gzgarden-image, ros-humble-ros-gzgarden-sim, ros-humble-ros-workspace
Conflicts: ros-humble-ros-gz
.......
bperseghetti commented 1 year ago

Everything though is working for me so far: image

bperseghetti commented 1 year ago

I guess I still will need to test the portion for spawning entities in sim, but if that works fine the rest should all be good too I think.

j-rivero commented 1 year ago

I had mixed results when testing this. I tried running ros2 run ros_gz_bridge parameter_bridge /chatter@std_msgs/msg/String@ignition.msgs.StringMsg and it worked, but not ros2 run ros_gz_bridge parameter_bridge /chatter@std_msgs/msg/String@gz.msgs.StringMsg

I think that knows what could be going on. Be sure of using gz cli instead of ign cli and that can make both ignition.msgs (with a warning that really using gz.msgs) and gz.msgs namespaces to work.

azeey commented 1 year ago

I had mixed results when testing this. I tried running ros2 run ros_gz_bridge parameter_bridge /chatter@std_msgs/msg/String@ignition.msgs.StringMsg and it worked, but not ros2 run ros_gz_bridge parameter_bridge /chatter@std_msgs/msg/String@gz.msgs.StringMsg

I think that knows what could be going on. Be sure of using gz cli instead of ign cli and that can make both ignition.msgs (with a warning that really using gz.msgs) and gz.msgs namespaces to work.

Ah, thanks! I might have used ign by mistake. Using gz seems to work well!

bperseghetti commented 1 year ago

@azeey @j-rivero Interestingly it seems like this did not bring in the actuator msgs update for ros_gz_bridge. Could it be run again? Maybe the extra dependencies were not installed and then left out?

Test it with:

ros2 topic pub -r 10 /actuators actuator_msgs/msg/Actuators "{velocity: [1, 1, 1, 1]}"

followed by:

ros2 run ros_gz_bridge parameter_bridge /actuators@actuator_msgs/msg/Actuators]gz.msgs.Actuators

Currently it results in:

[INFO] [1684680469.220630653] [ros_gz_bridge]: Creating ROS->GZ Bridge: [/actuators (actuator_msgs/msg/Actuators) -> /actuators (gz.msgs.Actuators)] (Lazy 0)
[WARN] [1684680469.221955939] [ros_gz_bridge]: Failed to create a bridge for topic [/actuators] with ROS2 type [actuator_msgs/msg/Actuators] to topic [/actuators] with Gazebo Transport type [gz.msgs.Actuators]
j-rivero commented 1 year ago

@azeey @j-rivero Interestingly it seems like this did not bring in the actuator msgs update for ros_gz_bridge. Could it be run again? Maybe the extra dependencies were not installed and then left out?

Should not be the case. Did the humble version of ros_gz released the actuators code? I don't see it in the humble branch but see it in the ros2 (rolling) branch.

azeey commented 1 year ago

I think https://github.com/gazebosim/ros_gz/pull/378 needs to be backported to the humble branch.

bperseghetti commented 1 year ago

@j-rivero Ah, yep, my bad on that. So used to thinking of the ros2 branch as the used for humble. Does the ROS2 branch work for Iron? Since it's only a day away any chance we could do a pre-release for iron based on ros2 branch?

bperseghetti commented 1 year ago

@azeey @j-rivero Think this PR should do it: https://github.com/gazebosim/ros_gz/pull/394

j-rivero commented 1 year ago

@azeey @j-rivero Think this PR should do it: gazebosim/ros_gz#394

Great, that is merged. We need a new release of for Humble from the ros_gz packages into the ros repo and I can use it to release from there.

j-rivero commented 1 year ago

Released into the stable repository version 0.244.11-1002 . Tested Build Status