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:
- 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
Asked by asomerville on 2016-08-11 10:24:39 UTC
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
Comments