Dual-motor tailsitters

OK, thank you for your answer! It seems that the problem I encountered is not reverse. Its error is that after the flight control is unlocked, if it is triggered to the yaw channel, the aileron steering gear will not be in the neutral position. It may be low position or high position. I am not sure

Thank you for your reply. I don’t know if it’s a problem with the yaw error integrator. Because when I take off, the aileron steering gear is not in the neutral position, but pulled to the low position. My pitching lever can only control the steering gear from the low position to the high position.This is because the yaw channel is triggered.

if you have q_tailsit_input=0 and your wing is vertical, yaw sick control plane roll (so ailerons deflection) and roll sick control plane yaw (so wing motors differential thrust). You have to imagine you are piloting an helicopter and the plane belly is the heli nose. Maybe what you see is very normal. Did you try to hover ?

1 Like

I tried to hover the plane, but the plane was yaw all the time. I tried to adjust the aileron, but it didn’t work. The steering engine was like a fool

If your plane hover and is stable or almost stable but yaw continuously, one possibility is your TX require a yaw rate. TX calibration issue ? Can we have a log or the full parameter list ?

2.param (21.2 KB)
This is my parameter table. Please have a look. I may have neglected some important links in parameter adjustment

I compared your parameter file to one of a former vectored tailsitter (plane 3.9 I think). This is a short list of significative difference.
1- you have arming check disable so you dont know if you have a gps or compass calibraion problem or other problem.
2- you have q_a_rat_yaw_I = 0.005 .This is very low, try 0.3 to 0.6. Also pit_I and rll_I are too low.
3- servo5_trim and servo6_trim are 1500. I set MOTORS servoXX_trim = servoXX_min
4- I do not use safety switch, you have brd_safety_enable=1
5- I have kff_rddrmix and rudd_dt_gain non zero (0.4 and 20)
item 3 to 5 have probably nothing to do with your problem but I would test them…

Thank you very much! For some reasons, I am now working on the dual thrust vector model, i.e. the bicopter model, but I don’t know how to set the parameters of this model. I can’t find the description of setting parameters in arduplot home

I have no experience with bicopter.
I suggest you joint this thread
Bicopter ardupilot firmware

OK, thank you very much.

Hi everyone,

I am sorry if I am going to ask a silly question, but I did not find this information in this blog.

I am using PixHawk Cube 2 on a flying wing with two tilt motors.
Are there any specific parameters to configure a VTOL aircraft to take off and land on its belly in QSTAB flight modes (like this one: https://youtu.be/exVv_al7iFI?list=PLGPeJBcn_X34LpYbV1FCjS389GC2tYKSL) or does it only depends on the pilot’s hability to fly?

Thank you in advance for any help :wink:

David Melo

Welcome @David_Melo
Check out the wiki page for info on setting up “vectored” tailsitters.
A Tilt Vectored Belly-Sitter (TVBS) should take off in qstabilize as shown in the video with the recommended parameter settings and relatively little pilot skill; just raise the throttle gradually and let the autopilot contol roll, pitch and yaw.

If you find that the wiki needs improvement, please raise an issue or comment here.

1 Like

Thank you very much for your input! I will check the wiki page!

I forgot to include the link… in case you haven’t found it already:

Thank you very much! I was trying to find the right one. This is perfect :+1:


TLDR: Tuning my dual motor tail sitter flying wing in hover mode, ATT vs PIQx? What PID parameters go with which axis? Does the reference frame change from NED when going into hover (copter?) mode? What are the PIQx units? Radians?

I’ve built a VTOL flying wing Tail sitter made for crashing, which I’ve named FlyWood, this thing can take a beating! (Which comes in handy trying new code…). Once this works I will transition the electronics onto a much more fragile, efficient and overall nice flying wing which is the goal of this project.
Tuning again is of course needed on the other aircraft, but by then I hope to have more experience to limit the number of crashes.

First autonomous flight had big oscillations in hover mode. No manual input was made until almost crash where I switched into manual mode to shut the engines off.
I’ve looked at both ATT and PIQx logs. They both display oscillations in certain axis but differ quite a lot.
To tune one of the axis, which one should I look at and what PID parameters correspond to each?

Heres a video of the flight.

I’ve attached the log as well:

Here’s the PIQx logs:

Am I correct that ATT displays the attitude in plane mode, and PIQx (e.g. PIQP for pitch) display the copter mode? So when hovering and not flying like plane I should only look at the PIQ logs?
And I should also only tune PIQ related parameters from that data?

In case I’m wrong, here are the ATT logs:

Also, In hover mode (nose straight up), pitch is the same, but roll is no longer in normal body frame, correct? Roll is body fram yaw (i.e. roll is controlled by differential thrust?).
Yaw is then controller by differential elevon deflection in hover mode, correct?

If so, then according to PIQx logs, roll has nice reference tracking, but pitch has oscillations and yaw is all over the place.
The pitch oscillations seem to be on the order of 1-2 radians in amplitude which does not agree with video. Am I missing something on the unit here?

Any help and/or pointers is greatly appreciated!

I built this for my masters thesis (finished now) where I developed my own non linear attitude controller that worked nicely, but for reasons I am abandoning it. I’d like to see if I can get at least acceptable results with arduplane, and from what I read it looks like I can achieve great results given the proper tuning!




Yeah roll is doing well, this is because the roll angle has the most powerful actuators and they are better suited to the default pids, ie like a copter.
The PID’s work on the rates not the angles, so it would be rad/s I think.


Welcome, Robert, to what may well be the longest topic in the entire forum.

The PIQx log records refer to the multicopter frame Roll, Pitch and Yaw axes. So for a tailsitter, Roll is body-frame yaw and Yaw is body-frame roll.

Your log shows that you were actually in AUTO mode. That adds many variables to the equation…

I suggest that you first try QSTABILIZE mode, using manual control of throttle, roll, pitch and yaw. There are many posts early in this thread on the topic of initial tuning, so a little time (ok, maybe a lot :slight_smile: ) searching this topic should be well worth the effort.

One way to more safely do the initial tuning is shown in this video. This is QSTABILIZE mode with the vehicle suspended on a tether:

1 Like

@Trobolit, Thanks a lot for the video.
From post 1453, you will find video, photo, log, parameter list and construction details of a non vectored tailsitter. This configuration is not easiest one.
It seems to me your tailsitter is almost stable for yaw and roll but not with pitch. I would begin increase q_a_rat_pitch_p and set elevons throw to 45° if not already done. As soon as your wing will fly safely you will take advantage to proceed q_autotune.
The CG location is the most critical parameter. Keep in mind that only the wing section submitted to propeller wash is able to produce a force and a pitching moment when hovering.

@Trobolit This page describes the angle and rate controllers for Copter.
Angles and rates are generally in radians and rad/sec, but the rate controller outputs control motor thrust which ranges from [-1,1].