Models spawn at the wrong scale [closed]
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?
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?
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.
The collada <unit> 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.