Dual-motor tailsitters

Quick warning to everyone: For some reason, on my airplane the throttle output is capped at 50% in FBWA and AUTOTUNE. I was able to do a successful forward transition by setting KFF_RDDRMIX to 0, which got rid of the crazy yaw oscillations I saw on my first attempt. The transition was perfect… the nose pitched over, airspeed increased and it was flying on the wing with almost no altitude gain at all. However, because of my low-pitch props and a capped 50% throttle, I was unable to maintain altitude. I ended up putting it back into QSTABILIZE in an unusual attitude, with a predictable loss of control.

I’m sending the logs to @tridge , but if you’re going to try a forward transition I would at least make sure you have full power in FBWA, or whatever mode you plan on switching to.

is THR_MAX set to 100 ?

I suspect its due to KFF_RDDRMIX being too high. Set that really low, or even zero. The differential thrust of the motors is treated as rudder, govered by KFF_RDDRMIX
My apologies for not telling you to lower KFF_RDDRMIX. I’m going to make a change now to default KFF_RDDRMIX low for tailsitters. I’ll also default some of the other key parameters to the right values.

1 Like

@mrjadkowski What’s your power setup (voltage/kV/props) and flying weight?

@tridge THR_MAX was the issue with the power, and KFF_RDDRMIX was the issue with the roll-yaw coupling. I fixed all that, and took it back out for some more flying. There is still some weird stuff going on in forward flight, with what appears to be some inappropriate yaw inputs. I sent you the log files to take a look at, as I figured you would want to look at the transitions. But I did have three more successful forward transitions, and two successful back transitions. It’s the control in forward flight that seems to be acting strangely.

1 Like

3S lipo (around 11.5V in hover), E-flight Park 480 1020kv motors, and I’m flying 10x4.5 props since I broke my 10x5.5 props. The airplane is around 1300g RTF, and it’s hovering at around 50% throttle.

thanks for the logs, I’ll look at them, but I notice you’re also running beta3, which is quite old. I’ll do a beta4 soon, but meanwhile can you install master? (latest in MissionPlanner, use control-Q). There is an important logging fix for tailsitters in master

I’ll give it a try, but the last time I tried to load the latest master build for px4 v4 I couldn’t get any mavlink heartbeat messages.

On another subject, is it possible to define different AHRS_TRIM values for Q modes and forward flight modes? If not, would it be a difficult change to make? I think it would be useful for this airframe type.

I just built a branch based on a recent version of master for v4 and it’s running OK on the bench; connects to mavproxy and downloads logs.

yes, I agree. just need to work out how to do that and fit into the AHRS API

I release 3.8.0beta4 today, with all of the tailsitter improvements except for Leonards controller changes (as they haven’t been flight tested yet)
It should be on the autobuild firmware server in a few hours.
Many thanks to all the testers who helped make this beta so much better!

One more question: is it possible to disable yaw inputs while not in a Q-mode? I think part of my forward-flight problem is that I’m inadvertently introducing small yaw inputs with my throttle stick. Unfortunately with differential thrust yaw control, those small inputs cause big yaw changes on the airframe.

@tridge Initial test of Qhover indicates that the integrator isn’t initialized properly. Engaging qhover from qstabilize causes throttle to drop with loss of altitude then surge with a large gain. Seems OK once it settles down.

@kd0aij ok, thanks. Can you post a DF log of that? Shouldn’t be hard to fix.

I think we need a new parameter for that. What should we call it though? It really is a gain for yaw by differential thrust. Does RUDDER_GAIN capture that? Can you think of a better name? I’d like it to be a 0 to 1 value, or perhaps a percentage.

1 Like

@tridge, log’s on the way. I was going to try reducing the rudder contribution here to make FW mode differential yaw more reasonable: https://github.com/ArduPilot/ardupilot/blob/master/libraries/AP_Motors/AP_MotorsTailsitter.cpp#L69

Also, I’ve not managed to figure out why the buzzer is going off when I throttle up; can’t find any params which would set a low voltage warning, or log messages which indicate a warning. Of course I still haven’t set up a GCS for flight testing.

Mark and I have settled on RUDD_DT_SCALE, where DT means "differential thrust"
Mark will test a patch for it today

Hi, I am running into mag issues, I think with the mag in the vertical ?
random yaw commands, have not had a reliable hover
I will swap to another board and let you know the results
also with my controllers have had yaw issues in ff and was thinking
of using a diff pressure sensor( airspeed ) sensing on both sides of the vertical
stabilizer, any input on that idea?

@mrjadkowski https://github.com/ArduPilot/ardupilot/pull/6005 adds the rudder gain parameter that Tridge proposed (beware: Tridge hasn’t reviewed it yet). It bench tests OK for me at 10%, but you can set it to zero to completely disable differential thrust for FW yaw control.

Have you double-checked your external compass orientation? There is an error in the wiki that says external compass orientation should be relative to the flight controller, but I’ve found that it actually needs to be set relative to the aircraft. In this case, relative to the aircraft in forward flight attitude. If you look at the orientation of my compass, I have it set to ROTATION_NONE even though my AHRS_ORIENTATION is YAW_270.