gazebosim / gz-sim

Open source robotics simulator. The latest version of Gazebo.
https://gazebosim.org
Apache License 2.0
621 stars 251 forks source link

PosePublisher's "publish_nested_model_pose" parameter is confusing #2321

Open azeey opened 4 months ago

azeey commented 4 months ago

The PosePublisher system has a parameter for publishing the pose of the model that contains the plugin. This parameter is called publish_nested_model_pose: https://github.com/gazebosim/gz-sim/blob/633ce72171e27e83bf2e0292c9998e036d5da3fc/src/systems/pose_publisher/PosePublisher.hh#L46-L49

However, anyone familiar with nested models in SDFormat would expect that the parameter is referring to publishing the pose of child (nested) models inside the model that contains the PosePublisher plugin.

I actually think this feature was a bug, but it has been used in many places, e.g. SubT, to provide ground truth. I propose we add a new parameter that allows just publishing the model's absolute pose (as opposed to relative to another parent model if it's nested) since that seems something a lot of users need (https://github.com/gazebosim/ros_gz/issues/172, https://github.com/gazebosim/ros_gz/issues/410).

Extra context: https://github.com/gazebosim/gz-sim/pull/1342 added <publish_model_pose> that would allow users to disable publishing the pose of the top level model. i.e, if publish_model_pose=false and publish_nested_model_pose=true, the PosePublisher only publishes the child (nested) model poses.