Automatic landing failure to establish flare resulted hard touch down

Hi guys,

I attempt to use automatic landing, but there was a obviously hard touch down, after check the log, I found the aircraft didn’t establish the pitch angle during flare phase, causing touch down with a very high descent rate.

BTW, I used rangefinder to achieve more accurate altitude control

aircraft start to flare at 2m in log

“2026-01-31 16:00:11.755 Flare 2.0m sink=1.92 speed=15.1 dist=18.9“

so we could see when the vehicle start to flare, TECS.dhdem start to reduce but very slow, meanwhile, TECS.dh still keep as before even touch down.

and I also found when the flare start, the ATT.DesPitch jump down at the same time, could anyone explain what happened ?

log attached for your reference

Looks like the known issue with desPitch handling during flare transition. IIRC it was fixed recently. AP_TECS: Initialize flare sink demand with current demand by Georacer · Pull Request #31610 · ArduPilot/ardupilot · GitHub

I would consider trying 4.7 dev.

thanks @LupusTheCanine

I will check and waiting for 4.7

Hi @LupusTheCanine

I merge the code from AP_TECS: Initialize flare sink demand with current demand by Georacer · Pull Request #31610 · ArduPilot/ardupilot · GitHub to version 4.6.3 and build the firmware by myself. I retry the automatic landing today and seems the same issue

you could observer the small jump down of ATT.DesPitch due to flare start

log attached for your reference https://drive.google.com/file/d/18PbJ1R3Y1pQ4TpAqtJ-Z4cCfivedfnG6/view?usp=sharing

It looks like there is something wrong in TECS. I noticed that _integSEBdot and _integKE are riding the limits during approach and landing. ardupilot/libraries/AP_TECS/AP_TECS.cpp at master · ArduPilot/ardupilot · GitHub

In my testing setting both TECS_SPDWEIGHT and TECS_LAND_SPDWGT to 0 helped but setting only one of them to 0 stil caused flare issues.