URDF to Gazebo differs from URDF to SDF to Gazebo
I found out a strange behaviour when spawning model in Gazebo.
I have an URDF model of a humanoid robot and a launch file where it is sapwned to Gazebo through
model_spawn of the
gazebo_ros package using
<param name="robot_description" command="$(find xacro)/xacro.py '$(find my_robot_description)/urdf/my_robot.xacro'"/> <node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen" args="-urdf -model my_robot -param robot_description"/>
In such a case, if I endow the URDF with a simple
<gazebo> property as follows:
<gazebo> <!-- robot model offset --> <pose>0 0 0.5 0 0 0</pose> </gazebo>
It doesn't affect my model in Gazebo, which generate a warning like this:
Warning [parser_urdf.cc:1232] multiple inconsistent <pose> exists due to fixed joint reduction overwriting previous value [0 0 0.5 0 0 0] with [0 0 0 0 -0 0].
However, if I convert the URDF first to SDF (using
gz sdf -p my_robot.urdf) and spawn the SDF directly with the
-sdf flag, this does not happen and everything works as expected.
Why does this happen? Is a problem of the URDF parser of Gazebo or I'm doing something wrong?