Gazebo | Ignition | Community
Ask Your Question

Revision history [back]

Not sure if you are still working on your project, however I believe this is a topic which is important which justifies a response. Those inexperienced with ROS and/or Gazebo are often filtered through the ROS tutorials and the Gazebo tutorials at the same time, making it seem like they are entirely compatible projects, which is not true. If you started learning in ROS it is likely the case that you have made a model using URDF format. While you can use URDF with Gazebo and can load URDF files without an error, when Gazebo launch it converts to SDF behind the scenes and many important properties you so carefully built in the URDF are either partially ignored, or ignored entirely. This includes <dynamic> inside joints, <limit> in many joint types, and a handful of other tags. There are comments buried around on Q&A forums for both Gazebo and ROS which discuss this if you want to keep digging. Personally I think just letting these problems be present behind the scenes is one of the biggest things limiting Gazebo and ROS and there have been a few attempts to resolve these problems but it seems that the projects tend to be left for dead, leaving new users wasting many hours thinking they are coding a real functionality improperly - but the functionality isn't there at all.

Either move to SDF format and forget about ROS entirely or stick with URDF and make your own plugin which will set those properties.

Not sure if you are still working on your project, however I believe this is a topic which is important which justifies a response. Those inexperienced with ROS and/or Gazebo are often filtered through the ROS tutorials and the Gazebo tutorials at the same time, making it seem like they are entirely compatible projects, which is not true. If you started learning in ROS it is likely the case that you have made a model using URDF format. While you can use URDF with Gazebo and can load URDF files without an error, when Gazebo launch launches it converts to SDF behind the scenes and many important properties you so carefully built in the URDF are either partially ignored, or ignored entirely. This includes <dynamic> inside joints, <limit> in many joint types, and a handful of other tags. There are comments buried around on Q&A forums for both Gazebo and ROS which discuss this if you want to keep digging. Personally I think just letting these problems be present behind the scenes is one of the biggest things limiting Gazebo and ROS and there have been a few attempts to resolve these problems but it seems that the projects tend to be left for dead, leaving new users wasting many hours thinking they are coding a real functionality improperly - but the functionality isn't there at all.

Either move to SDF format and forget about ROS entirely or stick with URDF and make your own plugin which will set those properties.

Not sure if you are still working on your project, however I believe this is a topic which is important which justifies a response. Those inexperienced with ROS and/or Gazebo are often filtered through the ROS tutorials and the Gazebo tutorials at the same time, making it seem like they are entirely compatible projects, which is not true. If you started learning in ROS it is likely the case that you have made a model using URDF format. While you can use URDF with Gazebo and can load URDF files without an error, when Gazebo launches it converts to SDF behind the scenes and many important properties you so carefully built in the URDF are either partially ignored, or ignored entirely. This includes <dynamic> inside joints, <limit> in many joint types, and a handful of other tags. There are comments buried around on Q&A forums for both Gazebo and ROS which discuss this if you want to keep digging. Personally I think just letting these problems be present behind the scenes is one of the biggest things limiting Gazebo and ROS and there ROS. There have been a few attempts to resolve these problems by making URDF/SDF converters or coding up ways to work around it, but it seems that the projects tend to be left for dead, leaving new users wasting many hours thinking they are coding a real functionality improperly - but the functionality isn't there at all.

Either move to SDF format and forget about ROS entirely or stick with URDF and make your own plugin which will set those properties.