diff --git a/src/main/fc/settings.yaml b/src/main/fc/settings.yaml index 902fa67b6a..34dc677e3d 100644 --- a/src/main/fc/settings.yaml +++ b/src/main/fc/settings.yaml @@ -1269,7 +1269,11 @@ groups: - name: nav_mc_braking_boost_disengage_speed field: mc.braking_boost_disengage_speed min: 0 - max: 1000 + max: 1000 + - name: nav_mc_braking_bank_angle + field: mc.braking_bank_angle + min: 15 + max: 60 - name: nav_fw_cruise_thr field: fw.cruise_throttle min: 1000 diff --git a/src/main/navigation/navigation.c b/src/main/navigation/navigation.c index 16ee94e1dc..30383f0218 100755 --- a/src/main/navigation/navigation.c +++ b/src/main/navigation/navigation.c @@ -123,6 +123,7 @@ PG_RESET_TEMPLATE(navConfig_t, navConfig, .braking_boost_timeout = 750, // Timout boost after 750ms .braking_boost_speed_threshold = 150, // Boost can happen only above 1.5m/s .braking_boost_disengage_speed = 100, // Disable boost at 1m/s + .braking_bank_angle = 40, // Max braking angle }, // Fixed wing diff --git a/src/main/navigation/navigation.h b/src/main/navigation/navigation.h index df7ab07080..89b6b7aa5f 100755 --- a/src/main/navigation/navigation.h +++ b/src/main/navigation/navigation.h @@ -148,6 +148,7 @@ typedef struct navConfig_s { uint16_t braking_boost_timeout; // Timeout for boost mode uint16_t braking_boost_speed_threshold; // Above this speed braking boost mode can engage uint16_t braking_boost_disengage_speed; // Below this speed braking boost will disengage + uint8_t braking_bank_angle; // Max angle [deg] that MR is allowed duing braking boost phase } mc; struct { diff --git a/src/main/navigation/navigation_multicopter.c b/src/main/navigation/navigation_multicopter.c index 3be140595b..dee448093c 100755 --- a/src/main/navigation/navigation_multicopter.c +++ b/src/main/navigation/navigation_multicopter.c @@ -426,10 +426,7 @@ static void updatePositionAccelController_MC(timeDelta_t deltaMicros, float maxA newAccelX = newAccelX * boostFactor; newAccelY = newAccelY * boostFactor; - //do a small, static, boost to max banking angle. - //This routine is very short, MR should be able to keep altitude - maxBankAngle = maxBankAngle * 120 / 100; - + maxBankAngle = DEGREES_TO_DECIDEGREES(navConfig()->mc.braking_bank_angle); accCutoffFrequency = NAV_ACCEL_CUTOFF_FREQUENCY_HZ * 2; }