ros / common_msgs

Commonly used messages in ROS. Includes messages for actions (actionlib_msgs), diagnostics (diagnostic_msgs), geometric primitives (geometry_msgs), robot navigation (nav_msgs), and common sensors (sensor_msgs), such as laser range finders, cameras, point clouds.
http://wiki.ros.org/common_msgs
186 stars 190 forks source link

Pose and Transform messages are redundant #175

Closed jeanchristopheruel closed 1 year ago

jeanchristopheruel commented 2 years ago

Transform and Pose are semantically the same thing. It is redundant to have both of them. I suggest keeping only Transform since the terminology is more generalized.

peci1 commented 1 year ago

In my view, they are not semantically the same. They might be mathematically the same (or very similar), but the semantics differ.

The general policy in ROS is to have separate message definition if they carry a semantically different information (even if the data structure would be the same). See e.g. Point vs. Vector3 types.

Pose is (from msg definition) "pose in free space". It does not specify the pose of what kind of object.

Transform is "transform between two coordinate frames". Here it does specify that you should only apply it to coordinate frames.

The difference is nicely visible in the stamped variants of the messages. TransformStamped has the child_frame_id field, because it knows it specifies the tf between two tf frames. PoseStamped has nothing like that - it is just a generic pose of "something" in the given frame.

tfoote commented 1 year ago

Yes they are differentiated due to the semantic differences highlighed by @peci1 above.

Also there was a long thread on it recently at https://github.com/ros2/common_interfaces/issues/152