Help Debugging Auto-Launch Crash Due to Possible TECSControl Pitch Control Issue

I’m seeking assistance with a crash issue on a fixed-wing plane running v1.14. The plane stalled and crashed during an auto-launch, despite previous successful launches. The incident seems to involve a potential issue with the TECSControl::_calcPitchControl function.

Observation: During takeoff, our pitch setpoint was initially 10 degrees, aligning with FW_TKO_PITCH_MIN. Unexpectedly, the setpoint increased to 15 degrees (FW_P_LIM_MAX), causing excessive pitching. This occurred before reaching adequate airspeed, leading to a stall and crash.

Potential Issue: Upon examining TECSControl::_calcPitchControl, I noticed the logic might inadvertently cause such setpoint jumps. The code snippet below suggests the pitch setpoint is constrained between current, max, or min values, which might explain the sudden increase from 10 to 15 degrees.

const float pitch_increment = dt * param.vert_accel_limit / math::max(input.tas, FLT_EPSILON);
_pitch_setpoint = constrain(pitch_setpoint, _pitch_setpoint - pitch_increment,
                            _pitch_setpoint + pitch_increment);

Is this behavior by design, or could it be a bug? Am I focusing on the correct part of the code, or is this a diversion from the actual issue?

Can you share other telemetry? Also any config chanegs?

It could be related to this:

Are you using v1.14.0 or later? (It was patched into v1.14.1 I believe)

If you have a log please share it!