Import URDF not working as expected
See original GitHub issueHI,
I’m trying to import the LeoRover description in Unity using ZeroSim. I followed the video tutorial and the comment from @micahpearlman in https://github.com/fsstudio-team/ZeroSimROSUnity/issues/17#issuecomment-995344947. I was able to import the .obj
files but it looks like the joints weren’t imported properly.
Have I missed something or is this the expected behaviour?
Setup info:
- Unity 2020.2.6f1
- on Ubuntu 18.04 LTS
- with your docker image to convert the meshes
Thanks, Alex
Issue Analytics
- State:
- Created a year ago
- Comments:17 (9 by maintainers)
Top Results From Across the Web
Problem with URDF Importer
I am using the URDF importer plugin to import a model of a Staubli manipulator, unfortunately it appears that the plugin incorrectly instantiates...
Read more >Failed to import URDF file - Isaac Sim
Hi all, I'm trying to import my robot to appear in the screen through the hello_world tutorial program. When I import my robot...
Read more >Rendering Issues when importing urdf linked to .obj
Hello everyone, I'll overview the issue and then list the specific code and details: In my simulation, when I load the urdf of...
Read more >Asset not found · Issue #69 · Unity-Technologies/URDF ...
When I upload the URDF file and the meshes in the Asset folder and push on the "import robot from URDF", an error...
Read more >Python cannot load URDF file - pybullet
Try supplying the full path to the file. The default is to look for the file in the current working directory, which is...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
No problem, that’s what open source is for!
We appreciate that you released ZeroSim to the public. I have experience with ROS and linux, but at the moment I have no experience whatsoever with Unity and C#. I have a colleague that’s got the opposite set of experiences. It sure is a possibility for us to contribute back to ZeroSim.
Thanks for you patience as well, I’m quite fluent, but English isn’t my first language so there might be some stuff that’s lost in translation.
FYI: xacro is just an xml macro language on top of the urdf xml. It makes life easier when you want to add links and joints in a modular way. As an example, this is the file that i use to add parts to the LeoRover original URDF:
Link origin issue
I believe you found the root cause of the issue. To my knowledge, the link origin rotations and translations values aren’t used when importing the URDF. I think that it could be handled in the conversion script probably with
bpy.ops.transform.rotate(rpy)
andbpy.ops.transform.translate(xyz)
. I guess it might also be handled here: https://github.com/fsstudio-team/ZeroSimROSUnity/blob/9adff2a83fb4cb9ec4207ca7e933ca56ae5ad01f/Runtime/Scripts/Util/ImportExport/ZOImportURDF.cs#L113 and there: https://github.com/fsstudio-team/ZeroSimROSUnity/blob/9adff2a83fb4cb9ec4207ca7e933ca56ae5ad01f/Runtime/Scripts/Util/ImportExport/ZOImportURDF.cs#L213I investigated by opening my
.dae
file in Blender.I then manually applied the
<origin rpy="0 0 -1.57079632679" xyz="0.155 0 -0.0085"/>
rotations then translations.The origin is now where the URDF is expecting it.
Validation in Blender with joint origin applied
After import
After joint origin is applied the part is properly located and the joint is where it’s expected to be.
<origin rpy="0 0 0" xyz="-0.045 0 0.0085"/>