Hi all,
Holybro S500, Pixhawk 6X, PX4 v1.14.3. Indoors, no GPS fix, baro height (EKF2_HGT_REF = 0), Holybro H-Flow over DroneCAN (EKF2_OF_CTRL = 1, EKF2_RNG_CTRL = 1, EKF2_RNG_A_HMAX = 1.0). Armed by RC switch, then switched to Takeoff mode.
Takeoff mode behaves inconsistently. The climb seems to depend on the baro altitude at the moment of takeoff, not on MIS_TAKEOFF_ALT:
Log A: https://logs.px4.io/plot_app?log=f391d795-a2be-4c0d-b547-93456d4f7cf5
Log B: https://logs.px4.io/plot_app?log=bc72cb2b-e861-494a-9e06-0534ee803ba6
Log C:https://logs.px4.io/plot_app?log=be21f60a-10e4-4ed2-a00d-298c53df1aa3
Across 24 attempts the same pattern repeats:
- When the local altitude had drifted above MIS_TAKEOFF_ALT on the ground, the vehicle did not take off.
- When it had drifted below 0, the vehicle climbed by MIS_TAKEOFF_ALT plus the drift.
Every attempt logs [navigator] Using minimum takeoff altitude: X m.
Questions
- In v1.14.3, when no home altitude is available (no GPS), is the takeoff target MIS_TAKEOFF_ALT as an absolute local altitude instead of relative to the current altitude? Is that why it fails or overshoots after baro drift?
- Is this fixed in v1.15 and later, where the target seems to be current altitude + MIS_TAKEOFF_ALT?
- I want to use the H-Flow rangefinder as the height reference instead of the barometer (indoors, flat floor, flying below 3 m). Which parameters should I set in v1.14.3? Is this list correct, and is anything missing?
- EKF2_HGT_REF 2 (range sensor) currently 0
- EKF2_RNG_CTRL 2 (always) or 1 (conditional)? currently 1
- EKF2_BARO_CTRL 1 keep enabled, or set 0?
- EKF2_RNG_A_HMAX ? currently 1.0 m
- EKF2_RNG_A_VMAX ? currently 1.0 m/s
- EKF2_MIN_RNG 0.13 (rangefinder reading when on the ground)
- EKF2_RNG_POS_X 0.10
- EKF2_RNG_NOISE ?
- EKF2_RNG_GATE ?
- MPC_ALT_MODE 0, 1 or 2?
- UAVCAN_RNG_MIN 0.08
- UAVCAN_RNG_MAX 30
Thanks!

