1
$\begingroup$

I'm trying to learn Gazebo and I'm kinda puzzled about how difficult it is. I'm using the latest LTS version (Gazebo Garden) and following the intro tutorials. I'm manually editing sdf files, with which I'm struggling to create something as simple as a box with 4 wheels. In the UI I can move things around, but I see no option to do something as simple as scaling objects and I'm just manually inserting numbers for shapes, positions and orientations in the XML/sdf file and constantly reload the sdf file with gz sim my_world.sdf to see what the result is of my little change.

And then I run into models like the ones below. How do people make these complex models? I cannot believe they are manually editing sdf files and reloading them every 5 seconds to see what their edit did. Are they using different programs to construct these models? If so, which ones? Why is there no mention of this in the Gazebo documentation? What am I missing here?

And lastly, where is the Gazebo community? I just found this form, but it seems pretty dead. There have only been 3 questions in the past week. I asked a question, but got no response. Any tips on where to find the community would be great as well.

enter image description here enter image description here

$\endgroup$

2 Answers 2

4
$\begingroup$

Those kinds of models are made in CAD software, exported to 3D rendering software to apply textures, and then imported in Gazebo. Or they are generated in some other way, e.g. through photogrammetry.

Have a look at this ROSCon presentation (video - slides) on "How to Achieve Realistic Visuals in Ignition Gazebo", and this community meeting recording.

My process is:

  • Model in Fusion 360 (CAD),
  • Export from Fusion 360 as .fbx,
  • Import in Blender, apply textures and export as .dae.
  • Use the .dae in your SDF.

See here for more info on applying textures etc.

If you want to give it a try: Fusion 360 has a free license for 'personal use', but you'll have to google it, as it is quite well hidden on their website. Blender is open source. However: be prepared for yet another learning curve if you have no previous CAD/Blender experience.

Why is there no mention of this in the Gazebo documentation?

Welcome to ROS / Gazebo! It's a thin line between being excited and grateful for the vast amount of functionality, and being ultimately frustrated by the lack of documentation and best-practice-info.

And lastly, where is the Gazebo community?

There's indeed https://community.gazebosim.org/, as well as https://answers.gazebosim.org/, although the latter is being replaced by this Stack Exchange site.

I asked a question, but got no response.

Which question is that? There's this one, to which I replied.

$\endgroup$
3
  • $\begingroup$ Thanks for the explanation. I now realise I asked my question at answers.gazebosim, not community.gazebosim. But do I understand it correctly that robotics.stackexchange is now the best place to ask questions about Gazebo? Furtermore, thanks for the clarification on the usage of 3D software. I've got a 3D-printer for which I mostly used tinkercad. I'm running Linux so I can unfortunately not use fusion360. Supposedly Rhino3d can run on Linux though so I might check that out. I've also played with Blender, which is very powerful, but indeed has a rather steep learning curve.. :-) $\endgroup$
    – kramer65
    Jun 26 at 14:47
  • $\begingroup$ One more question. Let's say I create an airplane in Blender, with several moving parts. I export them as multiple .dae files to use them in Gazebo. How do I position and connect them correctly together in a .sdf file? Do you use the Gazebo UI for that? Or do you manually edit sdf files? $\endgroup$
    – kramer65
    Jun 26 at 14:50
  • $\begingroup$ robotics.stackexchange.com will replace both answers.ros.org and answers.gazebosim.org, see this post. The ROS Discourse and Gazebo community sites are rather intended for general discussions than for specific questions. Afaik FreeCAD might also be a good alternative on linux. Unless you have very many separately moving parts, I think it is best to just measure coordinates in CAD and write this pose info manually in the SDF. $\endgroup$
    – JRTG
    Jun 26 at 20:58
3
$\begingroup$

There are scripts for various tools that automate the generation of an SDF (you may need to adjust/fix some parameters afterwards). Due to Gazebo's backwards compatibility for older SDF versions, these tools can still create SDF files that can be used with Gazebo Garden.

  • For SolidWorks there is sw_urdf_exporter with some tutorials within the wiki. An additional tutorial can be found here.
  • For Fusion 360 you can use fusion2urdf.
  • For FreeCAD there are two options: freecad_to_gazebo and RobotCreator. The latter one seems to be more up-to-date and is still under development.
  • For Blender use Phobos. The old version works well for Blender version < 3.0. Currently it is being revised to work with the latest Blender.

Another important point is that it's common practice to reduce the number of polygons for the CAD model used to simulate collisions in order to achieve real-time performance (the same is possible for visualization but this has negative effects on e.g. a camera output).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.