Comments (3)
Thanks for proposing this! Given what was discussed in #123 (comment), I think that it is useful to clarify what version number this is new URDF+quaternion will use (as requested in #123 (comment)).
It is going to be URDF spec 2.0
or 1.1
? I am not an expert of versioning for file formats, and the usually used semantic versioning refers to software APIs (with corresponding ABIs), not file formats. The only example that I know of strictly defined versioning rules for a file format are FMI's versioning rules, defined in https://fmi-standard.org/docs/3.0/#VersioningLayered .
However, philosophy aside, the version support was added in #133, but unless I am missing something no explicit semantics was defined for it. However, there is an implicit semantic defined by the check in
urdfdom/urdf_parser/src/model.cpp
Line 128 in 29426ec
1.1
or any other number, as old urdfdom that do not read quaternions will always do the right thing: refuse to load the document.
Regardless of weather we use "1.1" or "2.0" as a version, I guess we need to modify the following point in the code:
urdfdom/urdf_parser/src/model.cpp
Line 128 in 29426ec
urdfdom/urdf_parser/src/pose.cpp
Line 110 in 14f6db1
- https://github.com/ros/urdfdom/pull/194/files#diff-f6e0c5c27bb1c6f9c99cab653d4849b0fe93a493cf60b5f0fcf2bf408588d7c6R4 : the updated spec is now the one of 1.1/2.0 URDF spec
from urdfdom.
I guess no modification is required in this? This code creates a urdf::ModelInterfaceSharedPtr
from a SDF model, without passing via the textual representation of the URDF, that is modified by this proposal. In memory, the urdf::Rotation
struct already uses quaternion.
Whatever gazebo is using when doing gz sdf -p robot.urdf > robot.sdf or when spawning robot from an urdf robot description ? @ahcorde
This code is the URDF parser in https://github.com/gazebosim/sdformat/blob/sdf14/src/parser_urdf.cc . However, I do not think it needs any modification as it already uses urdfdom and so it reads the urdf pose from urdfdom's structures, see https://github.com/gazebosim/sdformat/blob/sdf14/src/parser_urdf.cc#L2802 . However, I think the problem here is of deployment. If I recall correctly (but things may have changed, I do not have a Humble install to quickly check) sdformat and gazebo packages use the urdfdom that ships with official Debian/Ubuntu repos (apt package: liburdfdom-dev, see for example https://packages.ubuntu.com/jammy/liburdfdom-dev), while ROS2 installs its own version of urdfdom package (ros-humble-urdfdom or something similar, see http://repo.ros2.org/ubuntu/main/pool/main/r/ros-humble-urdfdom/). So, to ensure that any change is available and supported in Gazebo for ROS Jazzy, we would need to make sure that urdfdom with this modifications is available in Ubuntu 24.04 repos. I am not sure if we are still in time for that, probably @j-rivero knows more. A possible alternative is that ROS installs its own ABI compatible sdformat package, to avoid any relation with the system's urdfdom.
from urdfdom.
Another related question: unfortunatly we still do not have the spec in a github repo (mainly my fault, see ros/urdfdom_headers#62). However, could you propose here or somewhere how you would edit the spec in http://wiki.ros.org/urdf/XML to document quaternions?
from urdfdom.
Related Issues (20)
- Invalid path in urdfdom_INCLUDE_DIRS on Windows installation using vcpkg
- Using wrong headers HOT 2
- Deprecation warning on urdfdom_parser with Clang HOT 2
- check_urdf: no loop detection
- Branch urdfdom for Galactic HOT 5
- Usage of `version` attribute in `robot` xml-node HOT 2
- [cmake] urdf_LIBRARIES is still wrong HOT 2
- Feature request: check_urdf should be able to read from std_in HOT 2
- parseJointLimits() does not parse acceleration limits
- Joint limits (vel, effort) are checked even when the joint is continuous type.
- Build Status link in README.md is broken HOT 2
- Use tinyxml2 instead of tinyxml HOT 3
- Remove tinyxml2 from public API HOT 2
- Cannot parse capsule error HOT 1
- Fixed joints parse limits but not axis
- Removing console_bridge for Logging HOT 4
- support export URDF HOT 1
- Don't use (outdated) self-provided gtest version (especially if another version is installed already) HOT 7
- libtinyxml absolute path in the cmake export target files HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from urdfdom.