Dual-motor tailsitters

hi Marco,
Never had a crash due to bad back transition with my vectored model. This is how back transition look from rcout5 and 6 (throttle for me).


Some explanation of the log
I always do the back transition from FBWA to Q_hover.
Before the transition rcout 5 and 6 does not superpose because I use differential thrust to control yaw.
Before transition I cut throttle , this is why pwm is 1000 right before the transition
Right after the transition there is a 0.5s plateau which correspond to the time needed to go from level flight to Q_tailsit_angle. The duration of the plateau depend on Q_tailsit_angle. I have seen it is longer if the angle is more vertical. The level of the plateau is exactly the value given by Q_M_thst_hover.
Right after the plateau there are always some bad oscillations during around 2s which is the time needed to go from Q_tailsit_angle to vertical. These oscillation are around 1350, I dont know why but the important thing is throttle is not 0.
After these 2s the vertical speed is around 0 (seen by IMU accZ) pwm increase and stabilize close to Q_M_thst_hover.
Some ideas
I think it is dangerous to do the back transition from FBWA to Q_stabilize because the vertical speed depends on the throttle stick position and is not limited by the controller.
Before the crash did you switched back to FBWA ? If yes I think the back transition failure does not explain the crash as the attitude of the wing was not so bad.

Otto,
Do you know why the back transition of your wing is so fast ? Duration of transition is always around 3s for me whatever parameters are.

HI Otto, thanks for reply!
I’ve performed many FBWA-> Q_Stabilize transitions without having any problems.
If you see my tlog there are many back transition without this issue, that’s why I believe the code in my case was wrong.
My goal is to perform automatic missions, and unfortunately I noticed that the back transitions from CRUISE to Q_Loiter, which are practically identical to those during an automatic mission, often don’t get well.
@tridge he’s a genius, we all know him, and he did a masterful job in Ardupilot, but I think it has to improve the back transitions on the tailsitters, they should be more “smooth” as with “Wingtra” (non-vectored like my “Explora”), on which the autopilot should be PX4.
Even by modifying some parameters I could not get these results on an automatic mission, and In the video we can see It’s a totally different approach.
I believe we should achieve this way of making the back transition.
My two cents


@Marco3dr,
Sorry, I overlooked the Log at the end of the Issue.

@letpi,
The back transition is not so fast, only the tilt of the wing.
At first, it makes a little tweek upwards, continue horizontal and then tilt fast. No idea why.
Some logs of my tests 42 to 47:
https://drive.google.com/open?id=0Bxldq38bfbqHa25ja09jTXZ0MUE
https://drive.google.com/open?id=0Bxldq38bfbqHNXhQRFMzRDNVUGM
https://drive.google.com/open?id=0Bxldq38bfbqHY0U3cEU1UHdpVXM
https://drive.google.com/open?id=0Bxldq38bfbqHSnVWU1k0dWVXZXM
https://drive.google.com/open?id=0Bxldq38bfbqHY1oyakZaVENnd1k
Regards Otto

@letpi,
The back transition is not so fast, only the tilt of the wing.
At first, it makes a little tweek upwards, continue horizontal and then tilt fast. No idea why.

I think I have a beginning of explanation
this is an extract of log 42, corresponding to the 4th transition in your video which ended by a crash

Right after the transition, both motors are looking upward by almost 90° during about 2s but the throttle is low and the wing can not pitch up, this is the little tweek you are mentioning.
After about 2s throttle increase to 100 % and the wing tilt so fast it loose stability.

This is an extract of log 47


Right after the transition there is a plateau of about 1s with throttle at a level given by Q_M_thst_hover which may be sufficient to pitch up the wing.

Between log 42 and log 47 the only significant change I can see in your parameters is Q_tailsit_angle from 30 to 50, so more vertical.

Hi All,

Been working on a VTBS. Managed to get the PIDs tuned up so it is beginning to fly reasonably well. You can check it out in the vid below. I should just highlight that this is just an initial flight test rig (hence why it doesn’t look much like a plane at the moment) and to simplify our PID tuning we have been taking off and landing in the upward position. It will be a belly sitter though.

We have been encountering some weird/quirky behaviours and would really appreciate any advice on how we can resolve the following issues:

  1. With no throttle set, and the aircraft sat on the ground, the motor-tilt servos oscillate. As soon as a very small amount of throttle is added the oscillation goes away. (See in this video: https://youtu.be/Rmpvpy-yCvI I know its not sat the ground on the video but the pitch tuning rig makes it more apparent to see) I suspect that it has something to do with throttle scaling (maybe a divide by zero somewhere in the code?) causing the instability. Does anyone have any advice on how to cure the issue. We have already tried increasing Q_M_SPIN_ARM but this doesn’t seem to do anything.

  2. Due to the mass distribution of our aircraft the CG is not under the motors, causing it to hover whilst leaning forward a little. The aircraft flies fine with no Pitch I term (Q_A_RAT_PIT_I). We know that by adding I in, the aircraft will straighten up to vertical causing it to fly backwards. We would like to trim the aircraft for the hover attitude like you can with a quadcopter, to allow us to add pitch I. Anyone know how to do this?

  3. The aircraft is designed to take a significant payload. When it is empty it makes the throttle very twitchy (Thrust/Weight = 4). We would like to make it smoother. Currently flying with Q_M_THST_EXPO at 0 for linear curve. Can this be a negative expo? Any advice on how to reduce the twitchy response? In the flight in the above vid we reduced the weight of the throttle to 60% and offset it by 40% in the transmitter and it flew nicely. Obviously this is not a good idea for when we change into Altitude hold mode, so are looking to adjust it in the parameters.

Sorry for the long one. Any advice is greatly received :slight_smile:

I am afraid not to be really helpful


  1. I have the same problem and no solution for it. Yes it is a problem because sometime propellers hit the ground.
  2. You can try to increase a little AHRS_TRIM_Y but I think it will affect also the fixed wing flight. Why dont you switch to Q_loiter ?
  3. try to reduce SERVOXX_MAX where XX are the numbers corresponding to your mapping of throttle left and throttle right. Do not forget to tune Q_M_thst_hover (post 758 from tridge)

If you reduce Q_A_RAT_PIT_D this will disapear.
Due to this feedback effect D can’t set as it should be for the flying.

Thanks for your response.

We tried as you suggested. Removing Yaw rate and Pitch rate ‘D’ and it does remove the oscillation on the ground. However, this is to the detriment of in air performance.

The oscillation is only in effect on the ground, when the throttle is set to the zero position. Even the smallest increment of throttle, to the point that the rotors barely spin, resolves the issue. The rotors are barely spinning, so I don’t think the inertia of the blades and rotors would damp out the oscillation at such slow speeds. Therefore, I am convinced that it is caused by the throttle scaling that is introduced by the vector thrust. For the servo output to be reduced as throttle is increased, It is likely that the output is divided by some factor of the throttle %. Hence, at zero throttle, the output maybe being divided by zero, causing infinite gain.

Would anybody be able to point me in the right direction as to which module in the code deals with the throttle scaling for vectored thrust? I would like to investigate further.

Thanks for the response,

  1. Good to know that were not the only ones :slight_smile:

  2. We looked into AHRS_TRIM_Y. As you say it will effect fixed wing flight, so doesn’t solve our problem. Sadly we haven’t got as far as QLoiter yet.

  3. We are going to look into Q_M_THST_HOVER. Thank you

Specs of Wingtra One :

KDE 3520 400Kv with 14x8 prop

https://www.kdedirect.com/collections/uas-multi-rotor-brushless-motors/products/kde3520xf-400

1.8kg of batteries : https://www.rdomarketplace.com/wingtra-set-of-flight-batteries/

2 batteries needed 
 May be they use them in 8S. Could not lift well in 4S with wind ! It’s a lot of power 2x4S 7500mAh for 55 min flight time @16m/s :scream:

1 Like

750$ the batteries set !!! not for hobby use. I read somewhere they use 18650 Panasonic Cell.
10Ah 3s in my 1.6kg wing give a maximum endurance with vertical take off and landing of 37km in 43 minutes.

About your second question I have an other suggestion: to make again accelerometer calibration taking care to enter the exact vertical position you want is hover.

Average 14m/s, seems good but it needs 2x more power than a regular wing. With an FX61 and 3s 5200mAh with 1.6kg, I can fly 45min 36km with no wind. (better in 4s 5.2Ah with wind)
Like the concept of tailsitter (I have difficulties for landing in my country) but if there is high battery drain, it’s better to find a more far open space and take off / land from here. With 2x4S 7500mAh, I can fly a lot more @16m/s than 55minutes.

yes, the tail-sitter cant be as efficient as a plane. This is a challenge but I think I can get 50km in around 1 hour. We will see as soon as the weather gets better. I am also currently working on a small wing made of glass fiber around 20dmÂČ with a much faster airfoil and 2500kv motors. The goal is to make something that fly fast but land easily despite the heavy weight. I just need some courage because I hate to work with composite.

It looks like this may be the relevant code: https://github.com/ArduPilot/ardupilot/blob/master/ArduPlane/tailsitter.cpp#L94

Next Vision:
Dual motor vectored Tailsitter for digital FPV.

Manual: https://drive.google.com/open?id=18VjNNKl4wUGIbkGbB4Y7qWhGF6GRBe7e
Print Files:
Axel.stl (48.1 KB)
Pouley Tiltunit.stl (185.3 KB)
Tilt Unit.stl (222.5 KB)
Housing right.stl (512.5 KB)
Pouley Servo.stl (432.2 KB)
Housing left.stl (512.5 KB)

Video: (New, less errors
)


Regards Otto
9 Likes

Another Screenshot of one their videos.

08

From that one it looks the use 8s3p 18650. But the specs on your link says 97,2 Wh / 14,4 V = 6,75 Ah → equals two cells parallel of 3.4 Ah. Or the cells they use are not up to date on energy density

Anyways the 1.8 kg cannot be. Cells weigh 45-50g each. 8s3p → max 1.2 kg

I recently bought six of the NCR18650GA Cells (best energy density I could find) and wired them to an 3s2p. Weight 303g with cables etc. Cells cost about 6-8$ each.
The cells have a MASSIV internal resistance that you better not underestimate: I tested them at realistic test scenario and found out that you can not use them without proper cooling when you discharge them by around 2C. My pack went to 70°C even with a cooling fan on it. (Benchtest) Also the voltage level is way lower then with lipos under same load. On 2C you can calc with nominal voltage of 3.3V/cell. At 2C you’ll only get like around 210 Wh/kg out of them. So conclusion is to only use that kind of cells when you will fly over an hour. (on 1C instead of 2C you’ll only have half the voltage sag, half the current and therefore one third of the power dissipation) Otherwise use Lipos like the Multistar ones.

Great project Otto!

Otto, that’s great
 lots of interesting data
now I have to get that dam 3d printer!
thanks

Hi David Kaden,

I new to PID tuning.

from what have you write, what is T ? is T = Oscillation Period ?
if yes, how to get the Oscillation Period ?

Thank you.

Yes it is. By deviding time by counted periods.

Anybody here who:

  • has latest FW
  • Tailsitter (so without motor tilt)
  • got good PID tuning

Please raise your hand and tell how you did it!

Background:
I already described how you can tune your PIDs through Ziegler/Nichols method and also did this successful, BUT since we have the PID scaling with throttle in the firmware I can not get my PIDs working as before. This totally screwed up everything and I redid the calculations with new test of the oscilation periods etc but STILL this method is not working anymore :frowning:
So since weather is geting warmer I was flying and tuning while hovering and ended up using only half of P and I values for Pitch and Yaw from what I calculated them ( I just went for only PI+FF, no D term). My hover throttle is correctly set though. I don’t understand that.

Is there any way to see what PID values are currently used???