gazebosim / ros_gz

Integration between ROS (1 and 2) and Gazebo simulation
https://gazebosim.org
Apache License 2.0
211 stars 125 forks source link

Add support for gz.msgs.EntityWrench (base branch: ros2) (backport #573) #576

Closed mergify[bot] closed 3 days ago

mergify[bot] commented 4 days ago

🎉 New feature

Closes #566

Also replaces PR #572, now retargeted to the ros2 branch.

Summary

Adds the new ros_gz_interfaces/msg/EntityWrench, with structure compatible with gz.msgs.EntityWrench. This enables the user to apply wrenches to Gazebo entities using ROS topics.

Also implements the ros_gz_bridge mapping between ros_gz_interfaces/msg/EntityWrench and gz.msgs.EntityWrench.

Test it

Manual testing involves spawning any entity in Gazebo and loading the gz::sim::systems::ApplyLinkWrench plugin to the world SDF. Then, call the ros_gz_bridge to expose the entity wrench topic as follows (YAML syntax):

- topic_name: "/world/<world_name>/wrench"
  ros_type_name: "ros_gz_interfaces/msg/EntityWrench"
  gz_type_name: "gz.msgs.EntityWrench"

Checklist

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.


This is an automatic backport of pull request #573 done by Mergify.

mergify[bot] commented 4 days ago

Cherry-pick of f9afb69d1163633dd978024bb7271a28cf7b551a has failed:

On branch mergify/bp/iron/pr-573
Your branch is up to date with 'origin/iron'.

You are currently cherry-picking commit f9afb69.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
    modified:   ros_gz_bridge/include/ros_gz_bridge/convert/ros_gz_interfaces.hpp
    modified:   ros_gz_bridge/ros_gz_bridge/mappings.py
    modified:   ros_gz_bridge/src/convert/ros_gz_interfaces.cpp
    modified:   ros_gz_bridge/test/utils/gz_test_msg.cpp
    modified:   ros_gz_bridge/test/utils/ros_test_msg.cpp
    modified:   ros_gz_bridge/test/utils/ros_test_msg.hpp
    modified:   ros_gz_interfaces/CMakeLists.txt
    modified:   ros_gz_interfaces/README.md
    new file:   ros_gz_interfaces/msg/EntityWrench.msg

Unmerged paths:
  (use "git add <file>..." to mark resolution)
    both modified:   ros_gz_bridge/README.md
    both modified:   ros_gz_bridge/test/utils/gz_test_msg.hpp

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally