Gazebo | Ignition | Community
Ask Your Question

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

asked 2016-08-11 10:24:39 -0500

asomerville gravatar image

updated 2016-08-11 10:25:58 -0500

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 ( 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.


  • 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 flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-08-11 13:17:17 -0500

chapulina gravatar image

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.
edit flag offensive delete link more


Thanks. I'll see if I can produce a minimal example.

asomerville gravatar imageasomerville ( 2016-08-11 13:59:30 -0500 )edit

Question Tools

1 follower


Asked: 2016-08-11 10:24:39 -0500

Seen: 856 times

Last updated: Aug 11 '16