Dual-motor tailsitters

I found a Realflight8 plank wing model of the Simitar, and discovered that RF8 also has the JWL-065 airfoil available, so I modified it to represent a tri-motor version of your Batwing design. Here are 3-views from the RF8 editor:



I had tuned my Q pids for 25% elevons, on the original Simitar model, but it actually still flies in SITL without retuning:

Where is the neutral point and CG on your model? In the 3-views, the CG is indicated by the green coordinate frame arrows.

I am really impressed !!
The neutral point is 45mm from the leading edge of the root cord.
The CG is 35 mm from the same point.
Root cord = tip cord = 280mm
aileron cord is 84mm and length is 380mm

I watched the video, takeoff and landing is a lot of fun. What are these oscillations at 1ā€™25ā€™ā€™.
The simitar is an interesting model with a forward swept wing too, not very different from my wing, except the forward swept is done with a straight leading edge and a smaller tip cord. The reason I choose to keep a constant wing cord is to increase the distance between ailerons and CG. I think the simitar could be also a good airframe for your project.

The oscillations are mostly due to the fact that I tuned using the original Simitar model with elevons at 25% chord. Reducing them to just 20% in the Batwing config mostly eliminates the oscillations, although thereā€™s still some funny behavior on transitions from qhover to fbwa.

a short video to show the weather vaning feature in q_loiter mode. Low wind, around 10km/h or less.
First right turn was manually commanded to put the wing side wind.
q_wvane_gain=1
q_wvane_minroll=1
vectored thrust disabled

1 Like

@losawing Binaries for the new version of code for tri/quad/hex etc. tailsitters is here: https://drive.google.com/open?id=1bCpzpMiLE0f6bAlaX4cLFYNrO_oQo_9N

Iā€™ve also put a copy of the parameters Iā€™m using for my SITL tests with the RF8 Stryker_quad. Iā€™ve done some flight testing with the Dart in QSTABILIZE, QHOVER and QLOITER modes using an earlier version of this branch and had no problems, but have not attempted any transitions with the real model.

The PR for this is https://github.com/ArduPilot/ardupilot/pull/10401 .
It extends the standard ArduCopter class for quads in a way that should allow support of any geometry defined for copters, but I have only implemented tri and quad frames so far.

thanks, I will test the new version soon.
I read in the PR that you plan to change yaw control from earth-frame to body-frame. Is this already implemented ? This is not a priority but something that could improve a lot the hover flight, I always found not natural the way the wing turns in hover mode and the fact that we can not roll the plane when lean angle is high.

I made 2 flights this morning.
The problem of motors spinning in manual or FBWA is gone, armed or not armed.
Apart from that I can not tell about differences between this version and the previous one, everythingā€™s seems very fine. I tried q_hover, q_loiter, fbwa and transition between these modes. I tested again q_tailsit_motmx=15 (first flight) and =3 (this log), no problem again.
The behavior to roll input is the same as previously so I guess the frame change is not implemented but it fly very well like that.
It seems to me, you are very close to complete your task. thatā€™s nice.

1 Like

@losawing Wow, that was fast! And many thanks for all your testing and logs. They will be a big help in getting this accepted into master.

The only functional change should be the motor behavior, as you observed; there were bugs in the arming checks and zero throttle behavior in the previous version.
Iā€™m currently working on QACRO mode, as a first step to understanding the code well enough to modify the yaw behaviour in other Q modes. Also, it may be that QACRO (with 3-axis body-frame rate control) will be preferable to QSTABILIZE/QHOVER, at least for skilled pilotsā€¦

I made some more flights this evening and found a weird behavior. I have got a short motors stop of less than 0.5 s in q_hover mode. The weird thing is motors output fell bellow q_m_spin_min. It happened when throttle stick is at minimum for several seconds and when the wing is flying with high lean angle (elevator stick full forward) at around 7m/s. Just to mention, when my wing is flying with this attitude it loses altitude very slowly despite the throttle stick position. This throttle cut is not really dangerous as it is very short. I succeed to reproduce it numerous time, this is the log bellow.

This is a print of the log to show motors 5 and 6 stop together with throttle and elevator stick position.

Sorry for this late complain, it is going to give you so more work and head scratching.

Thanks for the bug report and log. That one looks like it might be interesting :frowning:

Hereā€™s the first pass at QACRO mode. Itā€™s currently a PR against the previous branch in my repo: https://github.com/kd0aij/ardupilot/pull/7

Binaries:
https://drive.google.com/open?id=15vS_wiGrQzYN0w-aM35pgvm71fuEQhLK

The new mode number is 23 (the GCSs wonā€™t know about it) and only tested in SITL at present.

Roll, pitch and yaw are body-frame rates hard-wired to a max of only +/-90 deg/sec, and there is no transition logic involved. Also, there is no throttle curve yet, so there will probably be some adjustment needed qoing to/from QSTABILIZE and QHOVER. Iā€™ve had no problems switching back and forth between qhover and qacro in SITL. But itā€™s easy to get going too fast and get large control oscillations. It flies exaclty like a helicopter in heading-lock mode (you need to use rudder to turn), and roll/pitch behave as expected, although things will get wild if you stall the wing at low throttle. QHOVER should make for a quick recovery, I hope.

Update: parameters ACRO_PITCH_RATE and ACRO_ROLL_RATE now set the max roll and pitch rates in QACRO. Default is 180 deg/sec for both.

I made a quick test this evening and had a problem with the throttle that almost does not respond to stick input and whatever the throttle stick position motors thrust is higher than the weight. I tried all q_m parameters without success. I made these tests holding the wing and did not try to release it.
Otherwise the wing reacts like you said. It responds to stick input like an helicopter except an helicopter does not takeoff vertically (nose up). This is not easy to figure at the beginning. Also there is no more return to level when stick are released. This is really challenging, I thing I will need some hours of training to get used. :upside_down_face:
Did you crash when you tested in SITL ?

Something is very wrong if you canā€™t get zero throttle in QACRO mode; itā€™s mapped linearly from min to max PWM output:
image

Maybe the binary I posted is bad. Iā€™m just starting to add the proper thottle curve now. When that is done, Iā€™ll post a new binary.

Regarding difficulty of ACRO modes, it does take some skill, but I have done a little bit of FPV and LOS practice with racing quads. The thing to do if you get in trouble is switch to a stabilized mode. ArduCopter does have training features for ACRO mode which will return to level if you get off the sticks, and they could eventually be utilized in QACRO also, if we find it useful. But I think switching to FBWA or QSTABILIZE might be all we need since tailsitters donā€™t go ballistic like multicopters.

Iā€™ll post a RealFlight video of QACRO mode soon.

Demo flight of QACRO in RF8 with quad Stryker and better throttle input curve with Q_M_THST_HOVER at center stick and expo. Throttle stick shouldnā€™t need to move (much) when switching from QHOVER to QACRO with zero rate of climb. Parameter settings are in qacro.parm in the binaries folder. Some important ones:
ACRO_LOCKING 1.000000
ACRO_PITCH_RATE 180.000000
ACRO_ROLL_RATE 360.000000
Q_TAILSIT_INPUT 1.000000
That last parameter makes roll and yaw stick inputs work as they would for a plane; it will take some practice to hover that way if youā€™ve been using multicopter mode instead. (QACRO is hard-wired to plane mode for what I hope are obvious reasons).

I also observe motors not stopping at low stick in QACRO mode if Q_M_THST_HOVER is non-zero (in SITL).
And I think the motors stopping issue will only happen in QHOVER mode, but Itā€™s not apparent what is causing either issue.

new binaries at https://drive.google.com/open?id=15vS_wiGrQzYN0w-aM35pgvm71fuEQhLK

Some info from the old-fashioned vectored Tailsitter.
It is also possible to land on the belly.


Regards, Otto
2 Likes

The last binaries is working perfect but not me. Acro mode is hard !! Maybe after hours of trainingā€¦I will be the torque roll king. The locking is correct but of course not as good as an helicopter and the altitude control is difficult as soon as the wing produce some lift. I will need a big stock of propeller though.
No video for the moment, an hovering drunk wing is not something to showā€¦ :crazy_face:

1 Like

hello Otto, Thatā€™s good to have some news of your project. Weather seems to be good in Switzerland too and video quality is great.
Did you find a solution to your throttle pulse issue ?

Thanks again for testing. Itā€™s too cold and snowy here right now.
Did you have any trouble bailing out of QACRO by switching to hover or stabilize? QACRO is much easier to fly with the nose level, as long as you keep the speed below the point at which oscillation begins.

Iā€™ll experiment with bailing from QACRO to FBWA in SITL to see if thatā€™s a better option. Transitions actually seem to be working properly now.

Thanks for your comment and question.
No, not yet. Also in FBWA are the throttle pulses when Throttle Out ist 30%. (Not with 40%)
In FBWA not the influence of autothrottle. But realized an oscillation of Roll in the Vibs.
Next test with reduced RLL2SRV_P and_D. (And higher altitude :wink:)
Regards, Otto

no it was perfect, I crashed only when the attitude was very bad and altitude too low. My flying field is very small, water in front and trees in the back, for the moment I do not dare to push too much the elevator stick.