# What is the expected effect of pose tag on links defined within a sub-model when links are parented across model lines

Using the include tag to include an sdf file containing a model allows you to make use of the posetag. However, the semantics are unclear, I've been unable to find a sufficient reference on the subject (sdformat.org does not provide complete semantics), and apparently inconsistent across sensors (more on that at the end)

If you have a pair of nested models main_model and sub_model where sub_model has a link sub_model::test_link and main_model has a joint that parents sub_model::test_link is a child of main_model::main_link, what is the effect of a pose tag on sub_model (either directly or via an include tag).

Experimentally, I can see at least visually it appears that the pose tag of the model transforms links defined within even if they are parented externally. With that in mind, I haven't been able to form a reasonable mental model of how the TF tree would look.

Importantly, the thing that lead to this investigation: the sonar sensor at least appears not to be affected and thus can mismatch the mechanical and visual simulations.

Context:

• Gazebo 7.0.0
• Using Gazebo without ROS

So before I go down a potentially deep rabbit hole, my questions are:

• Is anything I've said blatently incorrect
• What is the expected semantics of a model's pose tag on links defined within but parented externally?
• Are there any known issues with the sonar sensor respecting the semantics of the model definition?
• Are there any good references where I can find the answers. (I've tried reading the source, but
edit retag close merge delete

Sort by » oldest newest most voted

It's a bit hard for me to follow from the description what is going where. It would help if you provided an example SDF or even pseudo-SDF.

But in any case, let's see if some things are clear:

• A model's pose is defined w.r.t. the world or its parent model.
• A link's pose is defined w.r.t. its parent model. So if the parent model's pose changes, the global pose of its links change.
• A joint's pose is defined w.r.t. its child link.
• A joint's pose does not alter the pose of any links, it just places the constraint in a different position. So connecting links in different models with a joint doesn't change those link's poses, it only alters how they will move with respect to each other.
• SDF, unlike URDF and TF, supports graphs, so you can end up with something which isn't a tree.
more