Violent roll oscillations after takeoff leading to crash

Hello Ardupilot community!

A few weeks back, I made a successful full auto mission with this frame (successful-flight.bin) but since then I couldn’t replicate that success and made many crashes due to violent rolls after takeoff (crash6.bin).

Could you please help me understand what went wrong?

servo throws:
ailerons: 25°UP/15°DOWN
v-tails: 20° UP and DOWN
wingspan: 2.56m
AUW: 4.3kg for successful flight and 3.5kg for crash6

CG and FBWA directions were checked before flight.
arduplane v4.6.3

Crash6.bin

Successful-flight.bin

Crash video

Here’s the pitch and roll performance from your “successful” take off. To be honest, I think you got lucky on the first one because it seems very disconnected from what the controller is asking for.

How is this plane launched?

Hi Allister,

Thank you very much for helping. The plane is hand-launched. I agree that the plane banked left at first against the controller’s wishes, but it eventually responded (although scarily late) to the controller’s servo outputs. Maybe control surfaces didn’t have enough authority at this point?
From then, the flight proceeds according to the mission, including auto landing.

I included a video of the successful flight takeoff:

Successful flight takeoff

It’s hard to tell in that video, but it looks like the pitch is too high. When you throw the plane it needs to be only a couple of degrees (2 or 3) above level. This will give the plane a better chance to accelerate and then climb out.

I’d say the plane took off successfully for a short time. I’m increasingly thinking the wings experienced aeroelastic instability due to the wings bending repeatedly. This could have even caused control reversal.

I noticed that the carbon spars used in the successful flight were stiffer. I also used PLA Aero in the successful flight versus ASA Aero in the crash, which is more flexible.

I also see structural instability in the wings. It is not a problem for the wing tip to flex, but for the entire wing from the root to oscillate is neither normal nor can it lead to anything good.

Secondly, when there are so many changes (materials, load-bearing structures) between the two flights, I do not think it makes much sense to try to find what made them different and caused the accident. If specific, isolated changes had been made between the first and second flights, it would make sense, but with all those changes and other implicit ones (weights, mass distribution, cog, etc.), I do not think it is possible; they are two completely different aircraft.

You are right about the abnormal wing behaviour. Many things changed between the two flights, indeed. I’m going back to emulate most aspects of the successful flight.

One thing that bothers me is the clearly poor starting PID values. I noticed that PIDR.P does nothing while PIDR.I did the heavy lifting. What do you think? Should I increase P before next flight?

Except in very specific situations, the default PID values are good enough (or not bad enough) to guarantee flight.

Once you have verified that the aircraft flies, it is time to perform an autotune. If you follow the autotune procedure instructions, the results are usually satisfactory.

With the current versions of Ardupilot, it is no longer limited to P, I, and D factors; there are also others such as FF (according to the developers, the most important). So it is best to start with standard values and perform an autotune.