Replies: 58 comments 6 replies
-
One more standard to rule them all :) When I looked at it some years ago it was almost as if someone had dusted off VRML and gave it a new name. |
Beta Was this translation helpful? Give feedback.
-
I guess the file types will continue to proliferate until one isn't terrible... This one apparently matches the format used by WebGL, with the goal of minimizing the processing required to load into the GPU. |
Beta Was this translation helpful? Give feedback.
-
If it is supported by assimp then the file should get processed if added to the urdf. |
Beta Was this translation helpful? Give feedback.
-
An interesting article discussing glTF from the Godot team: https://godotengine.org/article/we-should-all-use-gltf-20-export-3d-assets-game-engines glTF 2.0 supports vendor extensions: https://github.com/KhronosGroup/glTF/tree/master/extensions Would it make sense to add robot specific extensions to glTF as a replacement for SDF and URDF? |
Beta Was this translation helpful? Give feedback.
-
It would be interesting, but this starts to sound rather like Collada. That also supports extension points. A good example of a tool which uses extensions to Collada heavily for robotics purposes is OpenRAVE. Problem with "vendor extensions" is that most of the time, vendors don't support extensions of other vendors (for whichever reasons). You can then get into the situation where loading a mesh with extension I've not checked whether Khronos has made provisions for this in the standard (ie: require And it was exactly the extension system which was one of the biggest issues with Collada when it was discussed as a potential successor to urdf. |
Beta Was this translation helpful? Give feedback.
-
We could of course decide we care about none of that and still use glTF. I did not want to imply that should not be done. But if the goal is to find a format which can be used both as urdf / sdf and what have we can (ie: by humans, in OSS projects, etc) and can be reliably imported and exported from commercial tools, we have to be careful. |
Beta Was this translation helpful? Give feedback.
-
@gavanderhoorn Khronos is collecting extensions, reviewing, and storing them in the main repo: https://github.com/KhronosGroup/glTF/tree/master/extensions There is a dependencies statement in the file to indicate which extensions are required. It also appears Solidworks has an exporter for glTF now: https://blogs.solidworks.com/solidworksblog/2019/01/introducing-solidworks-extended-reality.html Blender and Autodesk also support it. I am not sure about how human readable the file will be. This is something that will need to be investigated before using it. |
Beta Was this translation helpful? Give feedback.
-
Seems this discussion is something which could be interesting in the context of ros/urdf#34 as well. |
Beta Was this translation helpful? Give feedback.
-
And I just noticed Blender 2.8 and newer support gTLF. |
Beta Was this translation helpful? Give feedback.
-
There are a few existing proposals to create a glTF based replacement for URDF and SDF:
I am probably going to try to put together a working group to see what interest there is. I don't think either URDF or SDF are going to work for my current projects. |
Beta Was this translation helpful? Give feedback.
-
I'd suggest to try and reuse something existing if at all possible, for obvious reasons. |
Beta Was this translation helpful? Give feedback.
-
We are planning on using glTF with extensions |
Beta Was this translation helpful? Give feedback.
-
If we're honest, I'd hardly call these proposals. The first is a paper by two researchers and the second is a gist with some good ideas, but there doesn't appear to be any implementation available (and the gist is already almost 1.5 years old). You seem to have started KhronosGroup/glTF#1816. Is that the "glTF with extensions" you mention? |
Beta Was this translation helpful? Give feedback.
-
Yeah, I asked @wlawler45 to take a look. The amount required to add robot information to glTF is fairly minimal. We are going to come up with a formal proposal over the next few weeks/months. The infrastructure to support glTF is already widely available (far more than even COLLADA), so it should not be all that difficult. |
Beta Was this translation helpful? Give feedback.
-
There are now a few different discussions going on in parallel. I posted a link to this issue here on ROS Discourse: Web-based URDF visualization tool and library opensourced from NASA JPL. @gkjohnson responded there. Perhaps he'd like to post a few comments here as well. |
Beta Was this translation helpful? Give feedback.
-
I agree and what you are describing is more or less the SDF format. Where in this case the model element in SDF is the the URDF as you described it above. Then the world and light tag is the scene representation. |
Beta Was this translation helpful? Give feedback.
-
I created a repo for a potential working group: https://github.com/wasontech/robot-description-wg For now I am using my company's organization. This may move to RPI or ARM depending on how a formal group is organized. Please create one issue for each feature request so we can discuss them individually. |
Beta Was this translation helpful? Give feedback.
-
Please watch https://github.com/wasontech/robot-description-wg if you wish to be notified of new proposed changes. |
Beta Was this translation helpful? Give feedback.
-
I'm also going to setup an in-person call and announce a working group on discourse. I just have been running out of time every day. I'll post here once I've set something up. |
Beta Was this translation helpful? Give feedback.
-
@clalancette I think it may be better to create an initial proposal first with a small group before announcing to the broader community. These things have a tendency to get bogged down with too many cooks in the kitchen. |
Beta Was this translation helpful? Give feedback.
-
Is there a charter template for ROS 2 working groups? |
Beta Was this translation helpful? Give feedback.
-
Initial charter added to readme: https://github.com/wasontech/robot-description-wg/blob/master/README.md A two step process is suggested to help deal with deadlines for our active projects. |
Beta Was this translation helpful? Give feedback.
-
While I somewhat agree, there is a lot of duplication going on here. Which means there are already a lot of cooks, they are just in different kitchens and not talking to each other. That's why I'd rather have all of the people who care about this get together at least once. If the outcome of that is a small group that goes away and comes back with something, that's fine. |
Beta Was this translation helpful? Give feedback.
-
@clalancette that seems reasonable. If we want to do a community-wide working group, it should probably be done through ROS rather than me running it (I am a one-man shop). That unfortunately does not solve the active projects' near-term needs. |
Beta Was this translation helpful? Give feedback.
-
The Open Source Teach Pendant project that was the motivation for this project has finished its initial funded development phase. It was discussed in #629 . The repositories for the Tesseract extensions: https://github.com/pyri-project/pyri-tesseract-planning-browser https://github.com/pyri-project/pyri-tesseract-planning This is currently using the Babylon.js version of the viewer, and the modified URDF file format loader that Tesseract uses. I'd like to be able to have the different devices provide the URDF and resource files automatically. Right now this isn't really possible using URDF. As part of the user interface, I used the tesseract_python_viewer as a simple proof-of-concept Tesseract extension. I haven't had the time to develop the Babylon.js viewer further, and will probably wind up switching to another viewer which is more developed. @gkjohnson Are you still actively working on your Three.js viewer? Have you tried out the improved webxr support recently? |
Beta Was this translation helpful? Give feedback.
-
The open sourced URDFLoader project is intended more to enable simple loading and manipulation of URDF files (a la other three.js file format loaders like GLTFLoader). The example viewers in that repo are really just intended to be a simple of demonstration of how to use the loader. A more complex viewer with multiple robots. interactions, or visualizations would be up to the dependent application to implement. We have been building more robust web-based visualizations for ROS and other robotics platforms using URDFLoader internally but unfortunately that's not open source at the moment. Regarding WebXR awhile ago I updated the VR demo in that project to include the ability to manipulate loaded robot with controllers.
I don't quite follow this. The infrastructure for loading and transferring resources to the client should be independent from the file format. Maybe I'm not understanding the limitation? |
Beta Was this translation helpful? Give feedback.
-
GLTF is now becoming widely sprayed . I already made some industrial 3D realtime applications . some C/C++ api exists , but they either only permit to display a gltf file or only manipulate gltf data, but not both. |
Beta Was this translation helpful? Give feedback.
-
The main problem with URDF right now is it doesn't support composition of different models like SDF does. For instance, there is no concept of a "model" and instances of the model, and there is no way to easily add or remove robots. For instance, creating an editor that you can insert, drag around, and connect robots/accessories isn't really possible. There are also some missing features, and no easy way to add extensibility. Xacro is the current solution, but all context is lost after it is run. Also, it is inherently unsecurable and requires Python. (Unless there is a C++ implementation I haven't found) |
Beta Was this translation helpful? Give feedback.
-
I have published this Javascript implementation of a xacro processor which uses the expr-eval package to run the expressions so it doesn't run completely arbitrary JS. Of course as far as I understand the original xacro package can evaluate any python expression so this won't work on some of the more complex xacro files but you should be able to get reasonable expressions to work. |
Beta Was this translation helpful? Give feedback.
-
I moved the tesseract_viewer_python module over to use threejs instead of babylonjs. I haven't had time to work on the babylonjs viewer, and the threejs library has improved. The main missing feature in threejs is a good VR teleport control. More discussion in the pull request: tesseract-robotics/tesseract_python#21 |
Beta Was this translation helpful? Give feedback.
-
A new mesh format has been released and is rapidly gaining traction:
https://en.wikipedia.org/wiki/GlTF
https://blog.ybalrid.info/2018/07/why-gltf-2-0-is-awesome/
It appears to be supported by assimp. This new format is intended to fix the problems with collada, stl, etc.
Beta Was this translation helpful? Give feedback.
All reactions