-
Notifications
You must be signed in to change notification settings - Fork 146
Description
Context
I had a discussion with @clalancette and @sloretz about this and am sharing some of the contents here:
-
The URDF specification has become broadly used beyond even the ROS community. There are many URDFs in circulation, and we should preserve backwards compatibility such that any URDFs that work today will always continue to work.
-
As new features are added to the URDF specification, we suggest incrementing the existing version tag documenting feature support within versions to avoid confusion about which URDF files can be used with which version of ROS. The default value of this version tag is currently 1.0, and the parser throws a runtime_error exception if any other version is parsed.
Recent issue with Quaternion support
The schema version should be incremented when adding new features. I noticed a bit late that support for quaternions was merged in #194 and tagged in 5.0.3. I think before the version goes into widespread use that we should increment the schema version (perhaps to 1.1), so that URDFs must declare version 1.1 in order to use the new quat_xyzw attribute. Likewise, we would also need to update the version check logic in model.cpp's parseURDF function. Perhaps add a maximum supported URDF spec version and throw the exception if the version to be parsed exceeds that.
cc @ahcorde