Thank you for advice. Feels ok in flight now. Now checking many logs after many successful flights.
Thrust Vectored Belly Sitter with extra, third pusher motor - Help Please
I’m building a Thrust Vectored Belly Sitter with a twist… I have a third, non-thrust-vectored motor pushing from the rear for unnecessary speed. The Left and Right wing mounted motors are thrust vectored and have enough clearance to avoid prop strike. The REAR motor, however, does not vector and I do NOT want it active for VTOL modes and only for forward flight. Right now, I cannot seem to find a way to NOT use it in VTOL Q modes but only in forward flight modes. A few reasons for having the third motor on this airframe (AR Wing Pro) is not just because I had the motor lying around but it was an easy way to get a good CG without having dead weight.
Everything else seems to be working in my config except the rear motor spins in Q flight modes.
(If this is unsolvable with existing codebase I will just add landing gear to get the clearance but I don’t want the added weight).
Thanks You for any guidance.
Not possible in code directly, you could do it with scripting if your flight controller is capable.
Thanks for the quick response @iampete. I will look into scripting. I am using a Matek F765 WSE… hopefully this will suffice. Worst case is added landing gear or give up on the Belly sitting and go to conventional Tail Sitter format.
@iampete … Thanks again, your tip forced me to learn how the Lua scripting worked.,. Got it working perfectly. Here’s the script I made that works perfectly.
function update () -- periodic function that will be called local mode_number = vehicle:get_mode() --get flight mode number local K_THROTTLE = 70 --Throttle function (centre only) local PWM = 900 --Servo function disabled local throttle_channel = SRV_Channels:find_channel(K_THROTTLE) --Looks for the Servo channel controlling THROTTLE local TIMEOUT = 1000 --Delay of 1 second if mode_number > 16 then gcs:send_text(6, 'Pusher Throttle Disabled in QModes. ') --modes 17 and higher are Qmodes for VTOL only SRV_Channels:set_output_pwm_chan_timeout(throttle_channel, PWM, TIMEOUT) --disable throttle by a timeout --Other flight modes are for Plane forward flight only end return update, 1000 end return update, 1000 -- request "update" to be the first time 1000 milliseconds (1 second) after script is loaded
I recommend using this
note that is only in 4.2, It is more robust than:
vehicle:get_mode() > 16
All your other locals should not be inside the loop. That would leave you with something like:
local K_THROTTLE = 70 --Throttle function (centre only) local throttle_channel = SRV_Channels:find_channel(K_THROTTLE) --Looks for the Servo channel controlling THROTTLE local PWM = 900 --Servo function disabled local TIMEOUT = 100 function update () -- periodic function that will be called if quadplane:in_vtol_mode() then SRV_Channels:set_output_pwm_chan_timeout(throttle_channel, PWM, TIMEOUT) --disable throttle by a timeout end return update, TIMEOUT * 0.5 end return update, 1000
I bumped up the loop rate, that will make more responsive. If your feeling fancy you could also read the min pwm out of the param for that servo output.
Thanks for that @iampete
That tightens it up nicely. This is the first code I’ve written since 2004 when I did coding for a living… definitely going to play more and exercise this old brain. I’m using v4.2.0 Dev so I will make changes suggested.
I just fixed a few bugs i spotted on the second look, still not tested of course…
Tested and works great. Thanks for your help.
I just proced to autotune the Roll Axis ( precisons by @hwurzburg & @Satoru_Sasaki some days ago) with the function Q_AUTOTUNE_AXIS = 1
In my case, the AUTOTUNE sequence was succesful, but the values founded by autopilot was not good . If somebody are interesting , this is the logs :
If somebody can help to understand why the news values are not good , I’ll take it
Hello Evreybody !
After update to with V4.2.0dev (2251293e) version, made a manual tune, find and set
Q_TAILSIT_DSKLD value, yesterday I made :
the first sucesfull sequence QSTABILIZE > FBWA > QHOVER > LANDING
THANKS TO ALL COTRIBUTORS, GREAT JOB
About flight,this is the result of PIQP.P+PIQP.D+PIQP.FF PIQP.Act BARO.Alt ARSP.Airspeed
About transition, this is the result of PIQP.P+PIQP.D+PIQP.FF PIQP.Act
Need to set another value of Q_A_RAT_PIT_FF ?
About tune process, anybody can suggest me other graph template who need to generate to optimize the different process of the tune ?
I remark in the log the presence of the MSG : “Transition VTOL done, timeout”. How ca I remediate this process ?
Thanks Again !
your transition angle is 45deg, with a target rate of 50deg/s of up pitch for the transition which you are not getting ,so it times out after ~1.4sec when you have only reached <20 deg up pitch…it then goes into QHOVER and drops the throttle a bit since you are still coasting up in alt a bit…this compounds the problem of getting the nose up to 90deg…you start to drop in alt so QHOVER raises the throttle to stop the drop, while you raise the stick demanding even more climb rate…this creates enough airflow that the elevons now get effective and pull the nose to 90deg and you hover…my guess is that your elevons are too small…
issues: your control effectiveness is low raising the nose to 90deg for VTOL and can only command a low up pitch rate in the initial part of the transition, so it times out…
you can lower the backtransition angle to 20 degs, but you will still be in the same boat…I think you need to increase the area of the elevons…for a non vectored tailsitter they are usually 33-50% of the wing chord to obtain sufficient control effectiveness…you can also fly much faster in fixed wing before the transition, but that will also create zooming…and not having enough control authority will bite you when you try to move in VTOL modes…pitch is especially susceptible to getting the “leans” in hove where you pitch it forward or back to move and it gets “stuck” and cant be brought back to 90 deg unless you give it high throttle to increase the airflow over the control surfaces…this is why vectored thrust is popular since it gets a lot of direct control for pitch and yaw
Great Thanks for this Analysis !
I modify Q_TAILSIT_RAT_VT, from 50 - > 25 and I made two videos from today with good transitions:
Hi @melc good to see the progress. Looks like you lost control during QHover descend in the second flight. Log shows elevon saturated and AP cannot correct then.
Aside from elevon area and deflection is not enough, I am advised 2 parameters will help.
- Q_VELZ_MAX_DN=150 and Q_VELZ_MAX=500 to limit ascend/descend speed in QHover.
Q_A_THR_MIX_MAX and Q_A_THR_MIX_MAN to 0.9
This set throttle vs attitude control prioritization to high. Throttle will kick in when the plane lost attitude to recover.
Check Eclipson E VTOL thread and other VTOL Plane threads for detail.
Thanks For you replay !
I apply today the settings and test just after, some wind : It’s really great
I try to survey more the Eclipson E VTOL thread
Video of the result , sorry , I don’t see the presence of a part of my COVID MASK on my gopro !!! !!!
Logs Tailsiter test with big COVID Protection !!!
If any idea for optimize, I take !
Good to see the progress. I see you had scary moment in the first 15 seconds until you exit to FBWA. Noticed you have very PWM range set for RCOUT.C4, 900 to 2200. Does the servo really move to that?
One advice I got that could apply here is to raise q_a_rat_yaw_I and Imax, as high as 1. I see you struggled to point wingtip to the wind a few times?
Hi Satoru and thanks for youtr return
- I see you had scary moment in the first 15 seconds until you exit to FBWA
yes, strange, but with 4.2dev version, the wing it’s like a spinning-top, it’s a real joke , at the limit of the fun / afreid ! I really think this experience very interesting and Great Thanks of the DEV IMPLEMENTATION EFFORTS
- Noticed you have very PWM range set for RCOUT.C4, 900 to 2200. Does the servo really move to that?
it’s true, all the range are used
- One advice I got that could apply here is to raise q_a_rat_yaw_I and Imax, as high as 1
Thaks, I proced to test in the next flight
I see you struggled to point wingtip to the wind a few times?
- sorry, I don’t remember
Have a Great Week-end !
HI to everyone!
I’m going to make a Duo Tailsitter with vector thrust, and also is a Belly sitter. I start developing using PX4, I’m new with Ardupilot because this Airframe Configuration is not support by PX4. But I see works almost the same way or exactly the same.
My question is, any recommendation related to parameters of this configuration, what are the most important ones, I already read all the documentation from the Ardupilot related to Tailsitters, but the expertise of you devs sometimes is more important that the documentation.
Here I attached an image of my setup:
Hope someone can help me!