dartsim / dart

DART: Dynamic Animation and Robotics Toolkit
http://dartsim.github.io/
BSD 2-Clause "Simplified" License
876 stars 285 forks source link

Unit information in collada (.dae) files is ignored #287

Open tobiaskunz opened 9 years ago

tobiaskunz commented 9 years ago

Collada (.dae) files support the specification of a unit in the header of the file, which is then applied throughout the file. For example, this way all vertices could be specified in inches. The unit information then allows the correct conversion in meters. Since, the unit information is ignored, meshes specified in inches are rendered too large in DART.

Here is an example of a robot model that has meshes specified in inches: https://github.com/ros-industrial/kuka_experimental/tree/hydro-devel/kuka_kr210_support

This problem applies to both, URDF and SDF loaders. This problem is caused by assimp. We are using assimp for loading and representing meshes. However, assimp ignores the unit information in collada files. This is probably because assimp does not consider units in general and collada is one of the only file formats that allow the specification of a unit.

Gazebo and rviz consider the unit information in collada files. Gazebo does not use assimp to load mesh files. rviz uses assimp to load meshes but parses collada files a second time directly to read out the unit information.

I don't think this has a high priority to be fixed. As a workaround a scale can be added to the URDF file or the meshes can be rescaled. I am just leaving this here, to make people aware of it.

stale[bot] commented 6 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.