Closed RussTedrake closed 1 year ago
This suffers from the same issue as #17193 where the convention of Drake (joint frame doesn't necessarily coincide with the child frame) differs from convention of standard formats. We can let joint frame have the same translation as the child frame but use a rotation such that the joint frame's z is along the axis specified in URDF. This should have the same effect as Russ's temporary fix.
While working on this, I realized that axis info is not respected by universal joint either in URDF parser. However, unlike SDFormat, URDF doesn't support specifying the second axis of a joint (because it doesn't support joints where a second axis makes sense). I'm not sure what's the correct behavior should be in this case. Perhaps we need a new drake tag for axis2?
A new tag for axis2 (or whatever) may be the only way. That may be distinct enough to warrant a new issue.
@rpoyner-tri see #19381.
Someone tried
and was surprised to see the planar joint still operating around the z axis. Looking at the URDF documentation, it seems that we are clearly in the wrong:
Reading the urdf parser code, we simply don't handle it (nor do we provide any warning).
One can work around it by rotating the origin:
but we clearly need to fix the bug.