URDF does not store the transformation implied by links in the link itself, instead, the links store visual and inertial geometry information, while the translation between frames is implied by the origin of the following joint(s). Therefore, we do generally not make use of the `r` argument to bodies, and let this be arbitrarily set. The transformation between two joints is instead encoded as a `r` and `R` arguments to each joint, where joints are wrapped in `URDFRevolute` and `URDFPrismatic` components respectively. Internally, these wrapper components are comprised of a transformation, [`FixedTranslation`](@ref) or [`FixedRotation`](@ref), followed by the actual joint. The interface to these special joints are identical to their non-wrapped counterparts, i.e., they have the `frame_a` and `frame_b` connectors as expected. Due to this approach, we always connect to the `frame_a` connector of links/bodies and let `frame_b` be unused.
0 commit comments