Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

migrate non-standard URDF capsule tag to drake:capsule. #16460

Closed
rpoyner-tri opened this issue Jan 28, 2022 · 5 comments
Closed

migrate non-standard URDF capsule tag to drake:capsule. #16460

rpoyner-tri opened this issue Jan 28, 2022 · 5 comments

Comments

@rpoyner-tri
Copy link
Contributor

(Re-)discovrered while writing parsing docs. We support some non-standard legacy capsule tag in URDF, but the standard is unaware of it. Proposal: support drake:capsule, and maybe deprecate the made-up capsule tag. If URDF ever introduces capsule, at least we (hopefully by then) won't have old tags with potentially clashing syntax and semantics lying about.

FYI @EricCousineau-TRI @DamrongGuoy @joemasterjohn thoughts?

@jwnimmer-tri
Copy link
Collaborator

jwnimmer-tri commented Jan 28, 2022

Counter-proposal: add <capsule> to the URDF spec using our current semantics, and change nothing in Drake.

@jwnimmer-tri
Copy link
Collaborator

Here is the TODO in the current code:

} else if (child_node = node->FirstChildElement("capsule");
child_node) {
// TODO(SeanCurtis-TRI): This should *not* be <capsule>. It should be
// <drake:capsule>. <capsule> is not in the spec
// http://wiki.ros.org/urdf/XML/link. And even there has been a three-year
// debate about adding it into ros (still unresolved):
// https://github.com/ros/urdfdom_headers/pull/24
// Given that this is a tag that is *not* in the spec, it requires the
// namespace.
// As a footnote, bullet does support it:
// https://github.com/bulletphysics/bullet3/blob/master/data/capsule.urdf
// and we have a number of legacy files that have <capsule> declarations
// in them.
return ParseCapsule(child_node);

It mentions ros/urdfdom_headers#24.

@rpoyner-tri
Copy link
Contributor Author

I read the TODO; that's how I got here. The consequences of your counter-proposal are: (1) delete the TODO, (2) document some set of non-prefixed community extensions to URDF that Drake honors, (3) maybe delete that documentation if the standard version ever merges.

@jwnimmer-tri
Copy link
Collaborator

Yes, that sounds correct to me. I think our users are best served by keeping our current (quite reasonable) extension intact.

While the thoughts captured in the TODO make sense from a conformance perspective, I don't think they actually help users in any way. If we had started with <drake:capsule> from day 1, perhaps there would be a case for keeping it, but rolling it back now doesn't help anyone.

@rpoyner-tri
Copy link
Contributor Author

Got it. I think I'll close the issue, and incorporate items 1 and 2 from above into #16444.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants