From 8f170bca1330895498d6cf4cea94ecdb70ed9157 Mon Sep 17 00:00:00 2001 From: Claudio Chies <61051109+Claudio-Chies@users.noreply.github.com> Date: Wed, 25 Feb 2026 19:41:12 +0100 Subject: [PATCH] Quadratic thrust for SIH hexarotor (#67) * sih: add thrust model hexacopter model * fix: add missing line break * sihsim_hey airframe: add THR_MDL_FAC to accomodate for simulated quadratic motor thrust. --------- Co-authored-by: Matthias Grob --- ROMFS/px4fmu_common/init.d-posix/airframes/10044_sihsim_hex | 2 ++ src/modules/simulation/simulator_sih/sih.cpp | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/ROMFS/px4fmu_common/init.d-posix/airframes/10044_sihsim_hex b/ROMFS/px4fmu_common/init.d-posix/airframes/10044_sihsim_hex index 36ae9a26d7..2219fc5361 100644 --- a/ROMFS/px4fmu_common/init.d-posix/airframes/10044_sihsim_hex +++ b/ROMFS/px4fmu_common/init.d-posix/airframes/10044_sihsim_hex @@ -45,3 +45,5 @@ param set-default PWM_MAIN_FUNC5 105 param set-default PWM_MAIN_FUNC6 106 param set-default EKF2_GPS_DELAY 0 + +param set-default THR_MDL_FAC 1 # simulated quadratic motor thrust diff --git a/src/modules/simulation/simulator_sih/sih.cpp b/src/modules/simulation/simulator_sih/sih.cpp index 68b9e380de..7bf37364aa 100644 --- a/src/modules/simulation/simulator_sih/sih.cpp +++ b/src/modules/simulation/simulator_sih/sih.cpp @@ -337,6 +337,10 @@ void Sih::generate_force_and_torques(const float dt) m3 m2 ├1/2┤ ├ 1 ┤ */ + for (int i = 0; i < 6; ++i) { + _u[i] *= _u[i]; // quadratic thrust model + } + _T_B = Vector3f(0.0f, 0.0f, -_T_MAX * (+_u[0] + _u[1] + _u[2] + _u[3] + _u[4] + _u[5])); _Mt_B = Vector3f(_L_ROLL * _T_MAX * (-.5f * _u[0] - _u[1] - .5f * _u[2] + .5f * _u[3] + _u[4] + .5f * _u[5]), _L_PITCH * _T_MAX * (M_SQRT3_F / 2.f) * (+_u[0] - _u[2] - _u[3] + _u[5]),