Copter Tailsitters

I meant that switching to QSTABILIZE while tumbling might result in in some control instability due to large yaw torque demands. It would be interesting to see the log for that.
I’d also like to see the new log to check for evidence of aliasing effects in the IMUs.

the log of the video (airspeed does not work, I forgot to remove the pitot cap but airspeed use is 0)

the log with no control surfaces (only up to 150s)

the transition to fbwa is at 69s,
at 74s baro altitude =19m , airspeed=22m/s, Ahr2pitch= -46°, AHR2 rll = 82°
that was almost a big crash and I dont speak about trees that was very very close…

Regarding the apparent discrepancy of roll/yaw between attitude estimates, that is just a problem with using Euler angles to represent attitude. You can demonstrate the problem with Euler angles by pointing your tailsitter straight up in FW mode and watching the PFD in a GCS. Roll and yaw will behave in a rather unpredictable manner,

When the nose of the aircraft is near vertical (Euler pitch near 90 degrees), the roll and yaw angles become ambiguous (related to “gimbal lock”). This page has a good explanation of the issue: http://www.chrobotics.com/library/understanding-euler-angles

But this is not a problem for the ArduPilot attitude controller, since it uses either rotation matrices or quaternions in calculations.

I don’t see any obvious problems with vibration in the logs. Did you notice any control issues that were different from your other tailsitters?

thanks for the link, I have now a better understanding.
I did not notice any control issues this evening. Only logs analysis and weird reaction from previous flight made me suspicious.

@losawing,@kd0aij
Congratulation, another succesful project, Thanks for posting.

hello Otto,
My post 29 gives relevant Q_frame parameter to make a copter X tailsitter with yaw controlled by motor differential torque and control surfaces. The frame type choice and differential torque feature is explained post 2.
A Copter tailsitter can fly very fast with large lean angle so several gain attenuation methods where developed. The parameter for choosing the method is q_tailsit_gscmsk.
But I dont know what features are already in plane stable release, we need some advise from @kd0aij

@losawing I just rebased the gain scaling PR on master and built new binaries for fmuv3/v4 here: pr-feature-tailsitter-gainscaling

As always, beware of new bugs or unexpected behavior changes with builds based on master.
I’ve renamed the previous build to “build_2019_08_01” in case you find a major problem with the new build. It flies OK for me in SITL though.

Regarding the tailsitter features which have made it into stable, I’m currently working on updating the wiki. “Copter” tailsitters are supported, but the only documentation currently present is in the parameter descriptions.

Setting Q_TAILSIT_MOTMX to a non-zero value (indicating which motors remain active in forward flight) is how a “copter” tailsitter frame is specified. Then Q_FRAME_CLASS and Q_FRAME_TYPE specify which motor layout to use. (Note that Q_FRAME_CLASS would never be “TailSitter” for a “copter” tailsitter)

There is basic tailsitter gainscaling based on attitude and throttle level in plane4.0 (stable), and it should handle high-speed forward flight fairly well, but the gainscaling options PR adds some new parameters plus an interpolation method from @iampete for finer control of your setup.

1 Like

Thanks for the update, glad to hear that copter tailsitter is now into stable. I had forgotten q_tailsit_motmx is the way to specify a copter tailsitter.
The weather is terribly windy since 2 or 3 weeks so I did not make any progress since the last video, it should be better next week.

Thanks for the reply, I’m “collecting” all datas to learn because I thinks about to transforme my Skywalker into a copter-tailsitter Plus.
Could you poste the Params of your wing showed here, please: : https://youtu.be/8JXYF0XCHHo

Thanks for your work, I follow in the background. :grinning:
Again a good team work.
Otto

hacker7mai.param (23.8 KB)
This is the closest parameter list I found. I have checked these parameters correspond to a quad + tailsitter. Q_tailsit_motmx is set to 15 which means copter tailsitter with all four motor running in plane mode. The description is in the full parameter list.
I guess you want to use plane 4.0 but this parameter list goes with a binaries that contains features and parameters which are not already in plane 4: The gain attenuation method is chosen with the help of q_tailsit_gscmsk parameter. But I think the way it works in plane 4 is a little different and is explained in the wiki http://ardupilot.org/plane/docs/qacro-mode.html
Also the differential thrust was not implement in May and I dont know if this feature is in plane 4.0.
A important parameter difference between copter and traditional tailsitter is about servo_function. Motors 1 to 4 are declared as 33 to 36 and for the correct mapping you have to refer to copter mapping.
I think the most important to begin is above, @kd0aij will correct me if I miss something.

Thanks alot. Yes of course, the params are not new, but I will learn about and try to understand it. At least, they are from a real and good flying wing. And I do not simply copy it.
In my case I intend not to use all four mots for plane mode. And I need more time so the plane 4.0 will then perhaps be ready.
Otto

@kd0aij
I made several flights with the new binaries. Tried q_hover, q_loiter, q_acro and fbwa.
To fly q_acro I had to lower gain scaling parameter to 0.05, spin min to 0.1 and q_throttle_expo to 0.1 but the result is very very good. Absolutely no oscillations can be seen whatever the attitude and throttle. There are no glitches and no rates limitation. The high gain attenuation has no effect on transition and hover stability (much better than with the batwing). While flying q_acro, motor surge can be heard, I suppose the differential thrust is active and want to correct the plane roll resulting in these surges. I will test other attenuation method soon.
Q_hover and q_loiter works good as usual. But yaw rate is limited to about 60°/s in q_hover mode but not in loiter mode. That was also true with the previous binaries. This limitation is not linked to q_tailsit_rll_mx. Anything else is OK.
I played a little with q_a_rat_yaw_flt parameters. Effect is not obvious, the only thing I can tell is about FLTE when low but not 0 the yaw become sluggish and oscillate. Do you have some ideas how to test these parameters ?

1 Like

Great! Thanks for testing.
I assume this was the bi-wing copter tailsitter and GSCMSK=2?

Interesting that Q_TAILSIT_GSCMIN is so low at 0.05; I guess that would mean the elevons are more effective than with the batwing?
It might be a good idea to scale the differential yaw torque with airspeed also, if the surging is happening in forward flight (the log should help with that).
You might try reducing Q_A_RAT_YAW_FF to see if it is causing the surging.

The defaults for FLTE and FLTT are both zero, meaning no filter on PID loop error and target values. They should probably stay that way. FILT was renamed to FLTD and the default value for quadplane roll/pitch is 10Hz (20Hz for copters). A copter tailsitter might benefit from a larger value for roll or pitch, but I’m not sure. I thought @lthall had written some documentation on tuning those params for Copter, but I can’t find it now.


last flight log, yes, it was the biplane and gscmask=2
4 control surfaces directly on propellers wash make ailerons very very effective, oscillations that forced me to reduce the scaling parameter were with plane roll
My test wing is now dismantled to get back the electronic.

It looks like the torque response for bodyframe roll is pretty large in QACRO:

So I’d try reducing Q_A_RAT_YAW_FF.

Have you tried the no-yaw-torque X frame type? That’s Q_FRAME_CLASS=17.
I can’t remember whether we determined if it was necessary for a bi-wing with elevons.

@losawing, @kd0aij,
After a lot of annoyance with Updating Win 7, I hat to reinstall the whole PC.
But now, the work can continue.
I plan to modify the small wing to a Copter-Tailsitter. What is your meaning about this setup?


And to use the DJI Snail System: https://www.dji.com/ch/snail/info#specs
With 4 Props 6x3", Battery 3S, 3000 mAh. The weight would be 920 gr.
Would the Mot Distance behind be enoughe with 240 mm. (9.5")

1 Like

That’s a good idea to use again your Caipirinha. The 240 mm distance between top and bottom motors seems fine. I had 220 mm on my test wing (1200mm wing span) and 180mm on my jet wing (980mm wing span) so you will probably get more pitch authority. The CG will be relatively high when the wing will sit on his tail, so you can expect the wing to tip. Maybe some legs below motor mounts will help.

Thanks for the feedback.

CG is 24 cm from the ground.
Yes, one of the disadvantage of Tailsitters. I will add thin carbon sticks to the elevons from tip to tip (vertical in Plane mode) a least for hover tests.

Edit: Or do you mean tip while hovering?

No, I meant during landing. I am pretty sure hovering will be solid.