Dual-motor tailsitters

A question to the developer: when flying level without altitude change what is the condition to have equal thrust from top and bottom motors ? Is it conditioned to the right level horizon calibration ? I mean does this calibration should be made at the attitude the aircraft will fly at the target speed.

in forward flight the top and bottom motors will have equal thrust, differential thrust is not setup for the pitch axis.

I should have looked at my log

So we can tell it works as it should :sunglasses: Hopefully I did not removed the flaps :grinning: and it will be much easier to find the right balance.

@kd0aij I made a quick flight this evening to test transition and I can tell they were perfect.

1 Like

@losawing Thanks for the test reports; let me know if you see any problems.

I made a hover flight this evening to tune q PID and found my wing did not want to yaw left or only slowly and sometime reverse so I looked at the log and found the yaw is controlled the same way it is for a multicopter. This is a print of motors output together with yaw stick input. Donā€™t look at oscillations, pitch_p was way too aggressive.

It can be a great feature to improve the yaw stability, which is the weak point of a tailsitter as soon as there is some wind, but this is a constrain with respect to propeller rotation as until now we used to set cw and ccw propeller on the wing.
Of course yaw is still controlled by the flaps but tilt motors are steady most of the time and react only (or mainly) to pitch attitude changes. Are you interested by the log ?

I hadnā€™t considered that, it would make sense to have it like this, we can easily add a new frame type for it.

I meant, until now dual motor tailsitters used to have their (wing) motors running opposite directions and all my wings have left motor CW and right CCW. I have also top motor CW and bottom CCW. It seems to me that this configuration should be neutral with respect to the yaw but for some reason this is not the case. We have to understand why and I will set q_tailsit_vh to 0 to see if there is an interaction with tilt motors.
To have both wing motors running the same direction is an option but it will not be symmetrical with respect to the wing vortex.

I think I understood the phenomena, this is simply because when yawing left wing motors spin much slower so less airflow on the flaps.

I had forgotten about this difference between using the standard quadcopter frame and what I was doing before with a subclass: in the subclass I override the motor setup and set all the yaw coefficients to zero to disable yaw control using motor torque. I also have counter-rotating wing motors in both the Stryker_quad and Dart models. Iā€™ll look into fixing this in the new implementation; yaw control in Qmodes (and of course roll control in FW modes) should use only elevons.

I agree, disable yaw control using motor torque is the best option. It would be nice but for the moment there are more drawback than advantages.
And to have both motor wing running the same direction would forbid to stop top and bottom motors in any fixed wing mode.
I looked at the meteo over your country, so cold !!! keep your lipo battery at home under a cover :grinning:

i donā€™t see the disadvantage in allowing differential torque yawing, I can see its a good idea to have the ā€˜wingā€™ props counter rotating. We can achieve that easily with a new motor layout. I guess you could also do the new motor layout with zero yaw coefficients. Either should only be a few lines to add.

2 Likes

Itā€™s not extremely cold in Denver today, but still too cold for me to flyā€¦
I just put new binaries here: https://drive.google.com/open?id=1N-2alKSHzA8oZSAygTe9U-hExeY7bz1k

These were generated from the PR branch: https://github.com/ArduPilot/ardupilot/pull/10324

SITL testing shows that Qmode yaw is now elevon-only, and it works well the Q_RAT_YAW params the same as those for Q_RAT_PIT
This branch now has the angle-based gain scaling and in SITL itā€™s stable up to almost 100kph in QSTABILIZE mode. (I have Q_ANGLE_MAX=8000)

@iampete What do you think of the way Iā€™m zeroing the _yaw_factor array?

looks good, I was thinking to do it when setting up the frames but your way works too. I wonder if its worth having a parameter.

I was thinking it would be useful to have parameters for scaling the ratio of throttle/copter control to control surface control. Could have one for roll, pitch and yaw. I think there would be potential for improvement. Trouble is it opens a massive rabbit hole of tuning.

Yes, there is additional complexity as compared to pure multirotors. Iā€™m beginning to think that we really should use subclasses of AP_MotorsMatrix in order to narrow the focus to more specific airframe types. That might allow for hardwiring some things to reduce the number of new params. It also makes it easier to mess with one vehicle type without worrying about breaking others.

I do not make the development so my humble opinion is to progress step by step in order to get a valuable result not necessarily the best one. It will be done in a next step.

@losawing Thanks, my intent is just to keep my work on a path which might have a chance of getting into master. But actually making things fly is higher priority.

Those new binaries arenā€™t behaving correctly on my Dart, so I donā€™t recommend trying to fly with them yet. The throttle isnā€™t shutting off as expected at low stick in manual and fbw modes. Qmodes seem OK though.

I have seen that but it does not matter. Next Sunday is expected to be sunny and calm, I will make some more flight with the last binaries.

Great job so far,

I think differential torque yaw would be a nice feature.
And for quad tailsitters differential thrust for pitch (and roll) is on my wishlist. If a flap fails, then there is redundandance.
IĀ“m in a students team and we want to do some research about the efficiency of forward flight without any mechanical moving parts (except the 4 quad motors)ā€¦

I was thinking to do pitch differential thrust using Q-assist, will kick in if the aircraft is struggling to reach its target attitude with just flaps (or you can just set the Q-assist speed such that it is on all the time).

If you want to do some testing I can build you a firmware that does that. I think we will get there in the end anyway, just it takes a little longer to get stuff into master.

1 Like

@losawing I think the only problem is that the motors enabled by TAILSIT_MOTMX spin at SPIN_MIN when armed at zero throttle, even in FW modes. I guess that is OK if youā€™re not landing in FW mode, so I agree that it doesnā€™t matter.
I want to change that so weā€™ll have the option to put landing gear on a tri-motor frame and land in manual or fbwa modes too.

1 Like