Dual-motor tailsitters

Note that hover throttle learning is not implemented for quadplanes. The last commit in this PR implements it (for tailsitters only) if anyone would like to test it: https://github.com/ArduPilot/ardupilot/pull/8113

@iampete, I have been able to load your fix into a pixhawk1 using mission planner and download custom firmware. I can see the new parameters. I will test as soon as possible and let you know. I am finishing a new tailsitter after a big crash (my fault, nothing wrong with the code) of the former one, so I want to be careful.

@kd0aij, to make clear, is your implementation on master ?

@losawing No, my PR isn’t “on master” it is against master, and to test it, you would check it out from my fork then build it yourself. I’m testing using the ChibiOS build: fmuv2. Let me know if you want to test it and are having problems with git.

@iampete , I have tested the fix in Q_hover and Q_loiter. I ended to set Q_tailsit_thscmx to 1. These nasty oscillations at low throttle are gone and the pumping when flying fast in q_hover is less sensitive. I have been able to set Q_angle to 60° and fly to a maximum speed of 10m/s in a very stable way.
I have not tested transitions.
There is still a problem with tilt motor oscillations on the ground, same as before. When the wing is on its belly in fbwa or manual mode, if you switch to Q_hover and raise throttle, tilt motor begin to oscillate and propellers hit the ground. I think this is an integrator which is not cleaned.
I will post a video as soon as possible. It begins to be complicate for me to fly because the small beach where I use to fly is now full of tourists and I have to fly early.

@kd0aij let me some days to try to get your code modification. This is not easy, I try to learn. I have struggled to find your fork on github, you have one repository and only one branch called master that can be cloned. It is the right file ?

good to know it works, a video would be use-full for other issue possibly you could set the I gains to zero to try and diagnose if its a pitch or yaw oscillation.

2 videos with yours fix. Around 15km/h of wind.
first one with q_tailsit_thscmx=5 . A lot of elevons and motor oscillations

second one with q_tailsit_thscmx=1. Much more stable

A third video of the issue

setting q_a_rat_yaw_I or q_a_rat_pit_I to 0 does not solution the problem. When I switch from fbwa to q_hover and raise the throttle, tilt motor begin to oscillate so I reduce throttle to avoid the propeller to hit the groud. After a variable period of time oscillations stop and I can raise throttle again without problem.

2 Likes

@marco3dr I’ve found the bug that causes zero throttle on FBWA -> QSTABILIZE transition for 2 seconds. It is actually a bug in the is_flying() code for tailsitter transition. It thought you were not flying (ie. on the ground), so set throttle to zero.
I’ve put a fix here:


I’ll include this fix in 3.8.5, which I expect to release very shortly
Sorry the fix took so long. Life has been rather hectic for me for a while.
Cheers, Tridge

2 Likes

@chasep52 You may like to set Q_M_SPIN_MIN to a larger value if you fly a lot in QSTABILIZE mode. For example, a value of 0.4 would mean the throttle will never go below 40% while flying. That will make instabilility while descending a lot less likely. Make sure that Q_M_SPIN_MIN is well below your hover throttle though, or the plane will climb forever.

I found in the fork KD0aij/arduplane a branch called styker_quad. I have cloned and compiled this branch. I hope I am right. It is already loaded in a pixhawk and I am almost ready to make flight test with a TVBS.
It seems to me there there is no new parameters. So if I understand, elevons gain (and tilt motors ?) is reduced by a factor of 4 at maximum lean angle. Any recommendation ?

@losawing Since that branch adds support for extra motors, be careful that it hasn’t broken your motor tilt functions; maybe do a bench test with props off to make sure everything responds properly in QSTABILIZE mode.
Regarding my change to the speed_scaling, all I did was force the scale to 1 with the throttle at zero (instead of 5). The max is still 5 in my branch.
The other major change on this branch is to add “hover learning” for tailsitters; if you hover in QSTABILIZE for about 10 seconds, then switch to QHOVER, you should not see any jump in altitude. Beware also, that you will be only the 2nd person to test that, so be prepared to adjust throttle or change back to QSTABILIZE if necessary.

looks like its flying very well, not too sure about the other issue. I guess its something to do with transitions, tridge’s fix may help, its in the latest release so should be easy to test.

If not I would guess there d oscillation in pitch you could confirm by setting d terms to zero for pitch. Does it do it when transitioning from FBWA or manual to Qstabalise? Have you had a look at the logs?

the feature I am interested in is the reduction of gain with the lean angle. As you don’t speak of it anymore, shall I understand it is in an other branch ?
yes I am careful, I will make test with the first TBVS I made, it is buit with unbreakable plastic.

1 Like

Intresting. I Also building tailsitter and now i have RF8 and flight axis, but if i start SITL in mission planner, my throttle goes to minimum. I try to raise it but nothing happens, and when i look my joystick in screen i also see it moes only right/left, but not up. I calibrate and did everything. still no idea. If i end Flight axis and play just for fun, then it works perfectly :slight_smile: I took random plane with fixed wing fimware.
Does everyone have this problem also?

Regards

@losawing Oh, sorry, I was a bit confused. The reduction with lean angle is in that branch too. It begins to take effect at roll > 30 degrees and pitch > transition_angle (which is one of the tailsitter parameters).

I had a successful test of that in QSTABILIZE mode with about 16kph wind last weekend, but destroyed the aircraft on the next flight due to pilot error.
The test seemed to indicate good performance when pitched forward up to 60 degrees (tailsit_angle was set to 45). But I didn’t test high speed lateral flight (roll > 30 deg); my plane had too strong a tendency to weather-vane.

1 Like

Try the QuadcopterX by following the instructions here: http://ardupilot.org/dev/docs/sitl-with-realflight.html

1 Like

I can do everything, but when comes the point: on the Full Parameter List or Tree screens, on the right-side select realflight-quad and press load parameters

I cant find to load Real flight-quad parameters anywhere. Thats why i suppose it doesnt work?

On right stick, everything is okey, all things are moving on plane aslo.
But left stick, it stucks in down positiion. I can move left or right, then plane details moves, but when i pust throttle to up, it doesnt move at all in simulator?
What should i do?

Thank you

it sounds like you haven’t armed the throttle

1 Like

Thank you, got it :smiley: It was not armed :slight_smile:

Is there some way to download already final firmware to my tailsitter.
I changed parameters, downloaded CAT model, but i can fly in fixed mode but whenever i change it to hoover mode, it starts shaking and drops down? I have my own build fixed wing 2 engine plane, then what supposed to be my first step to enable to fly with this? I heve PX4, do i install latest arduplane firmware and change like you said:
You will need to set:

Q_ENABLE=1
Q_FRAME_CLASS=10

For initial testing I’d also recommend setting:
Q_ASSIST_SPEED=0

Currently when you calibrate the accelerometers you will need to have the plane level in fixed-wing flight (ie. nose forward). Later we will need to add support for calibrating with the nose up, which would be more natural.

For servo setup, follow the fixed wing setup documentation for an elevon plane. You will also need to setup separate throttle outputs for left and right throttle. If you have left throttle on channel 3 and right throttle on channel 4 then you would use:

SERVO3_FUNCTION=73
SERVO4_FUNCTION=74

And then what? I’v readed a many forums but there are final products, not step by step for dummies like me :slight_smile:

My plane: