Robotics StackExchange | Archived questions

Models spawn at the wrong scale

I'm using a slightly modified version of the Robonaut with Gazebo 1.7.1 (and ROS Fuerte). Obviously the Robonaut works fine in previous versions of Gazebo, but in this version, the parts (which use collada .dae meshes) spawn 100x too small. (It took me forever to notice the tiny robot parts floating in midair and realize that was the problem...) However, it shows up at the proper scale in rviz. The meshes have the following unit tag: <unit name="centimeter" meter="0.01"/>.

I also have a URDF model of a table that uses a collada .dae mesh I made with SketchUp. This appears at the correct size in Gazebo 1.7.1, but it's huge in rviz. It's also huge in the Fuerte version of Gazebo. The unit tag is <unit meter="0.0254000" name="inch" />.

This question is related, but I still don't understand why the Robonaut spawned at the correct scale in previous Gazebo versions, and why it still appears at the correct scale in rviz. Is the change due to an update in how Gazebo handles mesh parsing? Which program is in error? Do I have to update the units in all the Robonaut mesh files and in my table mesh file?

Asked by Elizabeth C on 2013-04-22 02:31:04 UTC

Comments

Are you using sdf or urdf? Can you post the relevant part of the model file where you create the visual containing the the collada mesh?

Asked by iche033 on 2013-04-23 02:22:32 UTC

URDF. But after I asked the question, I got models to show up the right size in both programs by changing the unit tag to <unit name="meter" meter="1.00"/> in all the mesh files (and manually multiplying all dimensions in the table mesh file by .0254...), so I guess the original question isn't quite relevant now. However, I'd still like to know why the programs interpret things differently and which way is correct.

Asked by Elizabeth C on 2013-04-24 01:04:02 UTC

The collada element is ill defined. We have interpreted to mean the factor that must be applied to all data in order to get meters. Unfortunately, some 3D mesh programs don't properly set this value, such as Blender.

Asked by nkoenig on 2013-04-26 11:57:46 UTC

Answers