You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello,
I would like to apply external forces to robot links in Gazebo using the apply_link_wrench plugin and exposing its corresponding Gazebo topics to ROS topics.
However, apply_link_wrench uses the gz.msgs.EntityWrench message, which is not included in the correspondence table of ros_gz_bridge.
Desired behavior
Implement a corresponding ROS message type (something like ros_gz_interfaces/msg/EntityWrench) and a bridge mapping between it and gz.msgs.EntityWrench.
Alternatives considered
Considered using the apply_joint_force plugin instead, as it uses the gz.msgs.Double type, which is included in ros_gz_bridge. Specifically for my use case it would be enough, however loading this plugin stops the controller (ros2_control) from working. In contrast, the apply_link_wrench plugin can be loaded (attached to the world) without interfering with the controller.
Implementation suggestion
The new message type can be similar to the already implemented ros_gz_interfaces/msg/JointWrench as follows:
Suggested fields correspond to the gz.msgs.EntityWrench message, enabling ros_gz_bridge to convert between them.
Additional context
As the apply_body_wrench service that was available in Gazebo Classic seems to have no direct replacement in modern Gazebo, I believe the suggested interface together with the already available apply_link_wrench public is a welcome feature.
If all this makes sense, I would be pleased to help with the implementation. Thanks in advance!
The text was updated successfully, but these errors were encountered:
Hello,
I would like to apply external forces to robot links in Gazebo using the apply_link_wrench plugin and exposing its corresponding Gazebo topics to ROS topics.
However, apply_link_wrench uses the gz.msgs.EntityWrench message, which is not included in the correspondence table of ros_gz_bridge.
Desired behavior
Implement a corresponding ROS message type (something like ros_gz_interfaces/msg/EntityWrench) and a bridge mapping between it and gz.msgs.EntityWrench.
Alternatives considered
Considered using the apply_joint_force plugin instead, as it uses the gz.msgs.Double type, which is included in ros_gz_bridge. Specifically for my use case it would be enough, however loading this plugin stops the controller (ros2_control) from working. In contrast, the apply_link_wrench plugin can be loaded (attached to the world) without interfering with the controller.
Implementation suggestion
The new message type can be similar to the already implemented ros_gz_interfaces/msg/JointWrench as follows:
Suggested fields correspond to the gz.msgs.EntityWrench message, enabling ros_gz_bridge to convert between them.
Additional context
As the apply_body_wrench service that was available in Gazebo Classic seems to have no direct replacement in modern Gazebo, I believe the suggested interface together with the already available apply_link_wrench public is a welcome feature.
If all this makes sense, I would be pleased to help with the implementation. Thanks in advance!
The text was updated successfully, but these errors were encountered: