ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

The recommended way to integrate ROS and GAZEBO to build a robot model

asked 2017-10-13 08:16:22 -0500

Randerson gravatar image

Hello, I know that there is a plenty of treads about this subjects but none of them really answered my doubts. But first, a little contextualization.

I am using ROS a while and currently I consider myself an intermediate ROS user. Recently I joint a project where I will be developing and implementing algorithms for an autonomous airship. In the scope of the project, there is not an airship simulator integrated with ROS and since it would be a value tool to have I decided to develop one via GAZEBO. In GAZEBO I consider myself a beginner.

For now I studying a lot of documentations and tutorials and so I am feeling somewhat drowned by all this new information. So I decided to open this thread as an way to consult some expert in ROS and GAZEBO. Here goes what I want and my questions:

  • A want to develop o model of a balloon (let, for now, forget about airship) which I can simulate via GAZEBO and I can interact via ROS. With GAZEBO I expect to use all, or most of all, its simulations tools. In special I want to be able to use the plugins Aerodynamics and Hydrodynamics. With ROS I expect to send control commands to the model and receive sensors information from it

My question is, since for me appears that everything comes from this, the robot model should be build upon the SDF or URDF format to I be able to achieve the detailed functionalities? Because, from what I read, if I use SDF I easily will be able to use the GAZEBO tools and plugins but, in the other hand, I will have difficult to interact with it via ROS. If I use URDF I will be able to interact with it via ROS but I may face some issues with GAZEBO or its plugins. So, what should I work with?

I know that this thread seems a little broad, but I just want an orientation to where to start. For example, If in a few days I make a square floats in GAZEBO that I can move it via ROS it will be a great achievement!

edit retag flag offensive close merge delete


Not an answer, but your question reminded me of From simulation to the field: Learning to swim with the AQUA robot, one of the presentations at ROSCon'17. It's about underwater robotics, ..

gvdhoorn gravatar image gvdhoorn  ( 2017-10-13 08:46:13 -0500 )edit

.. but a lot of it is probably applicable to your situation as well (similar dynamics?).

The team of the presenter implemented a full control stack + model + gazebo plugins for their robot. Perhaps you can use that as inspiration for your own work.

gvdhoorn gravatar image gvdhoorn  ( 2017-10-13 08:47:35 -0500 )edit

Be sure to check the video as well.

gvdhoorn gravatar image gvdhoorn  ( 2017-10-13 08:48:14 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2017-11-10 22:41:26 -0500

clyde gravatar image

I'm by no means an expert, but so far I've found the ROS+Gazebo path to be pretty productive. All of the robot logic is in ROS, and the simulation is run in Gazebo. I was able to bring up my robot before I had settled on a hardware design, and Gazebo saves me tons of testing time as I add features.

A few caveats:

(1) the URDF-to-SDF conversion process is a bit tricky. In my workflow I found it helpful to check the intermediate SDF output to make sure I was using the gazebo tags correctly in my URDF file (I wasn't.)

(2) The aerodynamics and hydrodynamics plugins are good starting points, but there's a lot that they don't do. There are some really nice models to look at, but it also helped me to write a few simple plugins to get familiar with how Gazebo worked.

edit flag offensive delete link more

Question Tools



Asked: 2017-10-13 08:16:22 -0500

Seen: 1,395 times

Last updated: Nov 10 '17