Robotics StackExchange | Archived questions

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 pose tag. 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:

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

Asked by asomerville on 2016-08-11 10:24:39 UTC

Comments

Answers

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.

Asked by chapulina on 2016-08-11 13:17:17 UTC

Comments

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

Asked by asomerville on 2016-08-11 13:59:30 UTC