Simulation of Tiltrotor in gazebo

I am trying to simulate custom made quad tiltrotor VTOL on gazebo before trying it on real world. I’ve made model of tiltrotor and load it with the parameters with Ardupilot on Gazebo.
Unfortunately, When the ardupilot is connected to the model in gazebo, the propeller starts spinning on itself. I don’t know why. I’ve set channels for motors as 5,6,7,8 and set their maximum and minimum pwm to be 1900 and 900 respectively.
You can see the video of what’s happening.

Any help is appreciated. I am going to post my updates in here.

Also, When i do watch servo* it shows that the servo 5, 6, 7, 8 value to be 1000. But I’ve set SERVOx_MIN 900 in the parameters.

Hi @Abheesh_Khanal,

Have you got it to work? I am working on a talled VTOL and have not been able to get it to work.

If you have made it work, it could help me.

Thank you,


Hello @slucasm
I don’t know what you mean by ‘talled VTOL’.
I have no success with Tiltrotor VTOL. However, I have successfully done gazebo simulation of standard vtol, quadplane, and other multicopters.
Let me know if you need help on those.

Abhish Khanal

Hi @Abheesh_Khanal,

What I mean with a ‘talled VTOL’ is the same as the standard vtol but with an A-Tail. Can you share with me the files for the quadplane?

Thank you in advance!

You can find the sdf file for A tailed Quadplane here along with the implementation for ardupilot plugin. The design and simulation works fine.

But first, You’ll need to run ardupilot with your custom parameter and model. Let me know if you have any questions.

Regards, Abhish Khanal

I saw similar things when I try to simulate a quadcopter.
Could you please work on offset and multiplier values in the plugin configurations in the *.sdf file?
I think changing the offset (giving negative values) might help.

Hello @Mustafa_Gokce
Quadcopter works perfectly in gazebo with ardupilot. Propeller rotating itself in above video was solved when the 4 motors were connected in channel 5,6,7,8 and when damping was introduced in the blades in the *.sdf file.

1 Like

Thanks for the files @Abheesh_Khanal,

I will prove it, can you share also the file with the ardupilot params? It is necessary to configure correctly your vtol. (It is the file with .parm extension located on /Tools/autotest/default_params).

Thanks a lot for everything!!

The parameter file is gazebo-gauthali.parm (1.1 KB) .

To run this you have to add the line given below in Tools/autotest/pysim/

"gazebo-gauthali": {
                "waf_target": "bin/arduplane",
                "default_params_filename": "default_params/gazebo-gauthali.parm",

Hi @Abheesh_Khanal,

I’m trying to fly ‘gazebo-gauthali’ VTOL but it dosn’t works well. When I start SITL and Gazebo, rotor 3 starts spinning and the drone starts spininng as well. Then, if I try to take off I get an output error “EKF yaw reset”.

Do you know how to fix this error?

I’m using your Gazebo model and your param files (without modifications)


It’s been a while since I ran it. I may have changed something. I will get back to you.

In the parameter you can see that the motors are given to channel 5,6,7,8 but in sdf file the motors are connected to 6,7,8,9 because in gazebo channel 1 is assumed as 0. This leaves channel 9 float in which motor 4 is connected. That’s why it is spinning on itself.
In sdf file, change the motor channel to 4,5,6,7. This will solve the problem.
If pusher motor starts spinning on itself, change channel of pusher motor to 3.
Simply put, changing parameter will solve your problems now.


Hello Sir,

Can you help me about your model. I am trying to understand xml file and trying to make “Pusher Motor(Throttle)” configuration. But yours is Puller Motor so all joint collisions for puller. How can i invert it to Pusher.