Exporting textured models from Blender and importing into Gazebo for use in ROS is something which seems like it should be very trivial but can end up being a bit of a headache. Here I talk a bit about how to deal with that.
Gazebo can import a few different model formats, including .stl and .obj. However, you should always use .dae (Collada) for Gazebo. Collada has the best support for textures and materials.
For basic colors on objects, you can just use Blender's default materials settings. This information will properly show up in Gazebo. However, if you try to do anything remotely complex, it will not be rendered as expeced. So, instead we should bake the textures to a UV image after unwrapping (using Smart UV Project).
You can create your .sdf
files on your own that include your .dae
file. But I can be a little lazy so I tend to test things out using Gazebo's model editor. One caveat is that using it will end up giving your object a gazebo Gray color. Open the generated .sdf
file (usually located in ~/model_editor_models
) and find the <material>
section. Delete it! Then, reload Gazebo and your materials should come out nicely.
Happy Roboting!