Hi Thomas,<div><br></div><div>Thank you for your feedback.  I just want to clarify things a bit and reassure you that existing URDF API will not change (with exceptions of minor tweaks presented on the API review page).   I do understand the gravity of changing something as low level as the URDF, and have been working hard on keeping it consistent and simple.  The ROS URDF stack will continue to exist as it is, our goal is that if changes happen, they will be transparent to current users.</div>

<div><br></div><div>As we are trying to figure out if expanding the scope of URDF is the right thing to do, the proposed extensions will be kept separate from the existing URDF API.</div><div><br></div><div>The suggested extensions in this API review is motivated by needs and wishes that's been brought up (to me) repetitively by other URDF users over the past couple of years, and we are doing our best to push back on anything that will violate the simpleness-principle the URDF is based on, while staying as general as possible.</div>

<div><br></div><div>Regarding your proposal, I'll try to comment on them inline, but these are relevant and valuable inputs to the review, I feel they could be added to the API review page?</div><div><br></div><div><br>

</div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">My proposal:<br>

- keep URDF as simple as possible<br></blockquote><div><br></div><div>Couldn't agree more!</div><div> </div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

- go toward making sure that URDF is a subset of SDF<br></blockquote><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

- do not redefine what already exists in SDF, use it. </blockquote><div><br></div><div>I am also trying to avoid having to maintain two formats and converters between formats :)  This is the reason we've stripped ROS dependency from URDF, creating urdfdom, down the road, allowing urdfdom to be an optional system dependency and parsed directly inside of Gazebo if detected.</div>

<div><br></div><div>On the subject of looking for a way to find a common ground for URDF and SDF in the long run; there are many overlapping concepts highly desirable in both URDF and SDF, but the intersection and coverage between SDF and URDF is complicated, and this review is targeted at simply extending URDF.  Hopefully as a side benefit, we'll find ways to converge model/state descriptions between robotics and simulation.</div>

<div><br></div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

- write a spec file or a REP for URDF and SDF so that it can stay a<br>coherent entity (i really don't want to maintain one SDF<br>and one URDF for the same robot!)<br></blockquote><div><br></div><div>noted, will start a rep.</div>

<div><br></div><div> </div><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

- be nice with the other parsers: if you change the format, you break<br>our code. At least, it would be nice to have a DTD, an<br>XML scheme or a version tag somewhere in the file so that we can<br>properly refuse too recent or too old URDF versions.<br>

Of course, this makes only sense if there is a spec, first.</blockquote><div><br></div><div>I do agree having a DTD or version tag will be great, these suggestions should be added to the API review page :)</div><div><br>
</div>
<div>Thanks,</div><div>John</div><div> </div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><div class="gmail_quote">On Wed, Jun 13, 2012 at 3:02 AM, Thomas Moulard <span dir="ltr"><<a href="mailto:thomas.moulard@gmail.com" target="_blank">thomas.moulard@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Wed, Jun 13, 2012 at 3:52 AM, John Hsu <<a href="mailto:johnhsu@willowgarage.com">johnhsu@willowgarage.com</a>> wrote:<br>


> Hi All,<br>
><br>
> A couple of extensions to the urdf have been proposed and are on the<br>
> horizon.  Please review and add your comments to the API Review page.<br>
<br>
</div></div>Hi,<br>
first thanks for proposing an API review and providing efforts in<br>
developing urdf.<br>
I think this is a very crucial tool for us, ROS users, especially in<br>
combination with tf.<br>
<br>
However, as this is a crucial tool, I also feel quite worried about<br>
the turn of even that<br>
is suggested by this proposal.<br>
<br>
IMHO, we do not need an API review without having a _clear_ view on<br>
what we (users) and WG<br>
wants to do with the URDF format, how we can make so that it stays<br>
compatible with the Gazebo<br>
SDF format, whether it is possible, in long term, to get rid of the<br>
PR-2 extensions and propose something<br>
for a broader range of robots (read here: closed chains, sensor fields, etc.)<br>
<br>
Particularly, it seems to me that this particular effort is very<br>
redundant to what have been done when SDF<br>
has been defined.<br>
<br>
The URDF format is one of the core part of the ROS ecosystem, we all<br>
build on top of it or use it but, AFAIK, there<br>
has been no effort so far to try to write specs for this format. To<br>
use a metaphor, I feel like you're trying to build webkit<br>
before writing down the HTML specifications and as you do that, I see<br>
a fragmentation of this "unified" robot modeling<br>
format that worries me.<br>
<br>
My proposal:<br>
- keep URDF as simple as possible<br>
- go toward making sure that URDF is a subset of SDF<br>
- do not redefine what already exists in SDF, use it.<br>
- write a spec file or a REP for URDF and SDF so that it can stay a<br>
coherent entity (i really don't want to maintain one SDF<br>
and one URDF for the same robot!)<br>
- be nice with the other parsers: if you change the format, you break<br>
our code. At least, it would be nice to have a DTD, an<br>
XML scheme or a version tag somewhere in the file so that we can<br>
properly refuse too recent or too old URDF versions.<br>
Of course, this makes only sense if there is a spec, first.<br>
<br>
Again, I did not put that on the wiki because this mail is about the<br>
format and not about the format implementation.<br>
<br>
What do you think?<br>
<span class="HOEnZb"><font color="#888888">--<br>
Thomas Moulard<br>
_______________________________________________<br>
ros-users mailing list<br>
<a href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
<a href="https://code.ros.org/mailman/listinfo/ros-users" target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
</font></span></blockquote></div><br></div>