We are trying to make the rosflight gazebo simulation work. We are not capable to do so with the instructions provided by the webpage. My question to the developers is, does the simulation work?
(We have tested in both melodic and kinetic with the same results.)

Thanks in advance.


we have a gazebo simulation running in our project. It’s not my part as im working on the hardware, but nevertheless maybe I can provide some help?
What did you tried so far?

Regards Rafael


We have tried to launch the simulation in ROS melodic and Kinetic, but when the simulation launches, the drone appears without any texture and with half the drone under the ground (see the image attached). There is no tf related to the simulation (that we think that should be there).


If you have any other instructions different to the ones from the web, we’d be thankful if you share it with us.


Hi @LarreaMikel,

The behavior you’ve described so far matches the expected behavior. The Gazebo simulation is pretty minimal; it runs the flight controller firmware as software-in-the-loop (SIL) and simulates the basic sensors (IMU, barometer, etc.), but that’s about it. It’s intended to help test your basic configuration, and as a starting point for application-specific simulation setups. The graphics are not fancy, and the drone appearing to be halfway underground is not pretty, but is just the way it’s set up.

To test if it’s working, the first thing I’d do would be to start rosflight_io in UDP mode (so it communicates with the SIL firmware over UDP as opposed to over a serial connection with hardware):

rosrun rosflight rosflight_io _udp:=true

With that running, you should be able to do something like rostopic hz /imu/data and see that simulated IMU data is being published. The next step after that is to run through the basic flight controller setup steps as if it were real hardware, then connect a simulated RC transmitter (instructions on this page) and see if you can get it flying!

As far as there being tf published, that’s something I guess we just never implemented since we don’t use it that much ourselves. If that’s a feature that’s useful to you, consider opening an issue or pull request on GitHub.

Does that help?