Empty links in URDF are assumed to be massless and get converted into SDFormat frames
To substantiate this, I wanted to find a first-hand source, but trying to find one directly in specs / code is a bit harder than it should be?
http://wiki.ros.org/urdf/XML/link
Ultimately, it seems like "optional inertial" all the down to KDL means "zero-mass + zero-inertia", which is fine and sounds obvious if you say it out loud, but seems like it could be ambiguous.
It would be lovely to seethe XML page for it to look like:
inertial: (optional: defaults to zero mass and zero inertia)
Motivated by this discussion: https://github.com/osrf/sdformat/issues/199#issuecomment-622127508
To substantiate this, I wanted to find a first-hand source, but trying to find one directly in specs / code is a bit harder than it should be? http://wiki.ros.org/urdf/XML/link
Walking through some various points that connect parsing to usage in KDL: https://github.com/ros/urdfdom/blob/0da4b20675cdbe14b532d484a1c17df85b4e1584/urdf_parser/src/link.cpp#L432 https://github.com/ros/urdfdom_headers/blob/e31d66ea4a1f753fcca05e2d046b3af20a3234b3/urdf_model/include/urdf_model/link.h#L196 https://github.com/ros/kdl_parser/blob/24597c21301c53b66a5e0ae22619210261f1a28f/kdl_parser/src/kdl_parser.cpp#L147-L151
I've stopped my search, but was going to dig into KDL itself: https://github.com/orocos/orocos_kinematics_dynamics/tree/master/orocos_kdl
Ultimately, it seems like "optional inertial" all the down to KDL means "zero-mass + zero-inertia", which is fine and sounds obvious if you say it out loud, but seems like it could be ambiguous.
It would be lovely to seethe XML page for it to look like: