Dual-motor tailsitters

@losawing I discovered that some of the weird throttle behavior in stabilized modes is due to the “angle_boost” function, which is supposed to boost throttle to compensate for tilt angle in multicopters. But it also reduces the throttle down to zero as tilt angle goes from 60 to 90 degrees. You can disable it by setting parameter Q_A_ANGLE_BOOST to zero. This shouldn’t affect QACRO mode, since it doesn’t use that function.

@losawing @iampete Several copter tailsitter commits went into master yesterday, so I rebased and rebuilt the flight-test-3 binaries. There should be no changes in functionality from the previous version.

The only additions to flight-test-3 are now the gain scaling (interpolation and attitude/throttle) and the removal of thrust limiting in AP_MotorsMatrixTS.

Is there a parameter change ?

angle boost =0 is my default value for this parameter. This is something I kept constant from the beginning as it was an advise from tridge early in this thread.

Yes, there are some new parameters for Q_ACRO max roll/pitch/yaw rates:
http://ardupilot.org/plane/docs/parameters.html#q-throttle-expo-throttle-expo-strength
I think Q_THROTTLE_EXPO is also new to flight-test-3; the default is 0.2.
The throttle curves put hover thrust at mid-stick, and they look like this:
throttleCurves
Now I remember Tridge’s advice on Q_A_ANGLE_BOOST :slight_smile:
Too bad I had forgotten it.

After 3 of 4 defective Tilt-Servos it was time to change the brand.
Here the story of the replacement.

1 Like

My last flying wing made for speed. 95cm wing span, about 25dm² and 1kg with 4s battery. No vectored thrust. I will begin with CG at 20% of mean cord. Airfoil is TP100,7.2% relative thickness, designed to have a constant Cm over a wide Cl range.
4 motors 2600KV: 1808 size for top and bottom, 2208 size for wings. 5152 gemfan propellers for tuning and then I plan to test emax 5075 propellers. The pixhawk will run the copter tailsitter code. First test expected soon.

3 Likes

Very nice looking build. Best of luck on the maiden flight.

A short video to show q_hover
some magic parameters
q_tailsit_mot_mx=15
Q_tailsit_thscmx=0.3
Q_frame_class=1
Q_frame_type=0
Q_tailsit_input=3

2 Likes

Looks like pitch authority is pretty good. Interesting motor sounds; I guess motor speed is changing a lot when you make rapid attitude changes.

yes, top and bottom motors react very fast. Stability seems to be very good. Maybe tomorrow I will test transitions. The thrust delivered by the four motors is incredible, this plane is going to be ballistic.

1 Like

Congratulation, amazing stable.
Edit: Verry nice design and built precisely.
Good luck for the transitions.

Around 58m/s maximum speed with throttle limited at 75% and 5 inches pitch propellers. Acceleration is amazing, up to 20m/s². The wing can go faster but I have to ensure first the RTL function is working because it becomes very small quickly.
I have about 10 flights, transitions and fixed wing flight are very good. The most difficult is to tune the pitch axis to get a neutral and smooth behavior at low and high speed.

3 Likes

That’s very fast! Glad to hear the transitions worked.
Looks like the airspeed sensor is working well at high speeds; should be good for the interpolation speed scaling option in q modes.


a video with transitions and fbwa, some speed too…
4 Likes

WOW!..love it…great job… inspiring

Perfect design and tuning…
But needs good eyes, because verry fast, small and blue surface in the blue sky.
Should be named: cruise missile :wink:

thank you for all these encouragements and thanks to the developers.
@lorbass I agree the light blue is not the best choice but I have a solar roll almost 30 years old that I want to finish. I have now only 1 meter left so this is done :grinning:
@iampete, I tried this evening q_assist and had a surprise. When assist speed is reached the wing make a sudden transition to a mode that look like to q_stabilize. The forward transition was almost impossible as the speed was not high enough. I begun with assist speed =13 and the forward transition failed then I reduced the assist speed to 10 but the problem remains. I fly with the binaries from post 1706. I tested q_assit 1 or 2 months ago and it was perfect as it allowed to fly at high alpha safely with plane modes.

Could you post the log from that flight, and indicate where the problems occurred?
thanks,
–Mark

@losawing @iampete A lot of the changes that were in flight-test-3 (which is what Pierre is flying: git hash 2ef5119) have been merged to master.

This PR is the remaining set of changes : https://github.com/ArduPilot/ardupilot/pull/11195
and binaries built from it are here: pr-feature-tailsitter-gainscaling

@losawing The new binaries should behave the same as what you are flying (including the qassist issue you reported), but it would be nice if you’d be willing to test with those, so that we are closer to what’s in master.

I forgot to mention that there are some parameter changes in this PR to make them (hopefully) less confusing.
There is now a bitmask to enable one or more of 3 options (default is 1=boost-only):

    // @Param: TAILSIT_GSCMSK
    // @DisplayName: Tailsitter gain scaling mask
    // @Description: Bitmask of gain scaling methods to be applied: BOOST: boost gain at low throttle, ATT_THR: reduce gain at high throttle/tilt, INTERP: interpolate between fixed-wing and copter controls
    // @User: Standard
    // @Bitmask: 1:BOOST,2:ATT_THR,4:INTERP

and a separate parameter for the throttle/tilt based maximum attenuation (min scale value):

    // @Param: TAILSIT_GSCMIN
    // @DisplayName: Minimum gain scaling based on throttle and attitude
    // @Description: Minimum gain scaling at high throttle/tilt angle
    // @Range: 0.1 1

The max gain boost at low throttle now defaults to 2, and has no effect on the other 2 options:

    // @Param: TAILSIT_THSCMX
    // @DisplayName: Maximum gain boost
    // @Description: Maximum gain boost at low throttle
    // @Range: 0.1 5

TAILSIT_SPDMIN/MAX function as before, but only affect the gain interpolation option

TAILSIT_GSCMSK=3 would be low throttle boost plus attitude/throttle based attenuation
TAILSIT_GSCMSK=5 would be low throttle boost plus gain interpolation

2 Likes

@losawing Just updated the pr-feature-tailsitter-gainscaling binaries with a qassist fix from @iampete

Fix not tested, but can only affect the elevator boost when bit 0 of TAILSIT_GSCMSK is set.
Also, I’d recommend not using BOOST for a copter tailsitter anyway, so TAILSIT_GSCMSK = 2 for ATT_THR or TAILSIT_GSCMSK = 4 for gain INTERPolation would be my recommended test cases.