diff --git a/ROMFS/px4fmu_common/init.d-posix/airframes/60002_gz_uuv_bluerov2_heavy b/ROMFS/px4fmu_common/init.d-posix/airframes/60002_gz_uuv_bluerov2_heavy
index 287589a052..b80bf079b7 100644
--- a/ROMFS/px4fmu_common/init.d-posix/airframes/60002_gz_uuv_bluerov2_heavy
+++ b/ROMFS/px4fmu_common/init.d-posix/airframes/60002_gz_uuv_bluerov2_heavy
@@ -34,7 +34,6 @@ param set-default COM_LOW_BAT_ACT 0
param set-default NAV_DLL_ACT 0
param set-default GF_ACTION 1
param set-default NAV_RCL_ACT 1
-param set-default COM_POSCTL_NAVL 2
# disable attitude failure detection
param set-default FD_FAIL_P 0
diff --git a/ROMFS/px4fmu_common/init.d-posix/airframes/70000_gz_atmos b/ROMFS/px4fmu_common/init.d-posix/airframes/70000_gz_atmos
index c539586ae5..49ef971307 100644
--- a/ROMFS/px4fmu_common/init.d-posix/airframes/70000_gz_atmos
+++ b/ROMFS/px4fmu_common/init.d-posix/airframes/70000_gz_atmos
@@ -45,7 +45,6 @@ param set-default COM_LOW_BAT_ACT 0
param set-default NAV_DLL_ACT 0
param set-default GF_ACTION 1
param set-default NAV_RCL_ACT 1
-param set-default COM_POSCTL_NAVL 2
# disable attitude failure detection
param set-default FD_FAIL_P 0
diff --git a/ROMFS/px4fmu_common/init.d/airframes/60002_uuv_bluerov2_heavy b/ROMFS/px4fmu_common/init.d/airframes/60002_uuv_bluerov2_heavy
index d397e5deae..7ad928367d 100644
--- a/ROMFS/px4fmu_common/init.d/airframes/60002_uuv_bluerov2_heavy
+++ b/ROMFS/px4fmu_common/init.d/airframes/60002_uuv_bluerov2_heavy
@@ -45,7 +45,6 @@ param set-default COM_LOW_BAT_ACT 0
param set-default NAV_DLL_ACT 0
param set-default GF_ACTION 1
param set-default NAV_RCL_ACT 1
-param set-default COM_POSCTL_NAVL 2
# disable attitude failure detection
param set-default FD_FAIL_P 0
diff --git a/ROMFS/px4fmu_common/init.d/airframes/70000_atmos b/ROMFS/px4fmu_common/init.d/airframes/70000_atmos
index 37b676cef1..3ad05a85e0 100644
--- a/ROMFS/px4fmu_common/init.d/airframes/70000_atmos
+++ b/ROMFS/px4fmu_common/init.d/airframes/70000_atmos
@@ -35,7 +35,6 @@ param set-default COM_LOW_BAT_ACT 0
param set-default NAV_DLL_ACT 0
param set-default GF_ACTION 1
param set-default NAV_RCL_ACT 1
-param set-default COM_POSCTL_NAVL 2
# Set Mocap Vision frame
param set EKF2_EV_CTRL 15
diff --git a/docs/assets/airframes/multicopter/amovlab_f410/amovlabf410_drone_v1.15.4.params b/docs/assets/airframes/multicopter/amovlab_f410/amovlabf410_drone_v1.15.4.params
index f80c1b5a3a..0d16ea9f01 100644
--- a/docs/assets/airframes/multicopter/amovlab_f410/amovlabf410_drone_v1.15.4.params
+++ b/docs/assets/airframes/multicopter/amovlab_f410/amovlabf410_drone_v1.15.4.params
@@ -1,8 +1,8 @@
# Onboard parameters for Vehicle 1
#
# Stack: PX4 Pro
-# Vehicle: ¶àÐýÒí
-# Version: 1.15.4
+# Vehicle: Multi-Rotor
+# Version: 1.15.4
# Git Revision: 99c40407ff000000
#
# Vehicle-Id Component-Id Name Value Type
@@ -318,7 +318,6 @@
1 1 COM_OBS_AVOID 0 6
1 1 COM_OF_LOSS_T 1.000000000000000000 9
1 1 COM_PARACHUTE 0 6
-1 1 COM_POSCTL_NAVL 0 6
1 1 COM_POS_FS_DELAY 1 6
1 1 COM_POS_FS_EPH 5.000000000000000000 9
1 1 COM_POS_LOW_EPH -1.000000000000000000 9
diff --git a/docs/en/config/safety.md b/docs/en/config/safety.md
index 92a302ad3e..a741030744 100644
--- a/docs/en/config/safety.md
+++ b/docs/en/config/safety.md
@@ -206,23 +206,11 @@ The relevant parameters shown below.
### Position Loss Failsafe Action
-The failure action is controlled by [COM_POSCTL_NAVL](../advanced_config/parameter_reference.md#COM_POSCTL_NAVL), based on whether RC control is assumed to be available (and altitude information):
-
-- `0`: Remote control available.
- Switch to _Altitude mode_ if a height estimate is available, otherwise _Stabilized mode_.
-- `1`: Remote control _not_ available.
- Switch to _Descend mode_ if a height estimate is available, otherwise enter flight termination.
- _Descend mode_ is a landing mode that does not require a position estimate.
-
Fixed-wing planes, and VTOLs not configured to land in hover ([NAV_FORCE_VT](../advanced_config/parameter_reference.md#NAV_FORCE_VT)), have a parameter ([FW_GPSF_LT](../advanced_config/parameter_reference.md#FW_GPSF_LT)) that defines how long they will loiter (circle with a constant roll angle ([FW_GPSF_R](../advanced_config/parameter_reference.md#FW_GPSF_R)) at the current altitude) after losing position before attempting to land.
If VTOLs have are configured to switch to hover for landing ([NAV_FORCE_VT](../advanced_config/parameter_reference.md#NAV_FORCE_VT)) then they will first transition and then descend.
The relevant parameters for all vehicles shown below.
-| Parameter | Description |
-| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
-| [COM_POSCTL_NAVL](../advanced_config/parameter_reference.md#COM_POSCTL_NAVL) | Position control navigation loss response during mission. Values: `0` - assume use of RC, `1` - Assume no RC. |
-
Parameters that only affect Fixed-wing vehicles:
| Parameter | Description |
diff --git a/src/modules/commander/Commander.hpp b/src/modules/commander/Commander.hpp
index 1d7841cdc8..e079d13ee8 100644
--- a/src/modules/commander/Commander.hpp
+++ b/src/modules/commander/Commander.hpp
@@ -230,7 +230,7 @@ private:
_health_and_arming_checks.externalChecks()
#endif
};
- UserModeIntention _user_mode_intention {this, _vehicle_status, _health_and_arming_checks, &_mode_management};
+ UserModeIntention _user_mode_intention {_vehicle_status, _health_and_arming_checks, &_mode_management};
const failsafe_flags_s &_failsafe_flags{_health_and_arming_checks.failsafeFlags()};
HomePosition _home_position{_failsafe_flags};
diff --git a/src/modules/commander/UserModeIntention.cpp b/src/modules/commander/UserModeIntention.cpp
index 086f9501b3..556bddbd18 100644
--- a/src/modules/commander/UserModeIntention.cpp
+++ b/src/modules/commander/UserModeIntention.cpp
@@ -34,9 +34,9 @@
#include "UserModeIntention.hpp"
-UserModeIntention::UserModeIntention(ModuleParams *parent, const vehicle_status_s &vehicle_status,
+UserModeIntention::UserModeIntention(const vehicle_status_s &vehicle_status,
const HealthAndArmingChecks &health_and_arming_checks, ModeChangeHandler *handler)
- : ModuleParams(parent), _vehicle_status(vehicle_status), _health_and_arming_checks(health_and_arming_checks),
+ : _vehicle_status(vehicle_status), _health_and_arming_checks(health_and_arming_checks),
_handler(handler)
{
}
@@ -59,7 +59,7 @@ bool UserModeIntention::change(uint8_t user_intended_nav_state, ModeChangeSource
allow_change = _health_and_arming_checks.canRun(user_intended_nav_state);
// Check fallback
- if (!allow_change && allow_fallback && _param_com_posctl_navl.get() == 0) {
+ if (!allow_change && allow_fallback) {
if (user_intended_nav_state == vehicle_status_s::NAVIGATION_STATE_POSCTL) {
allow_change = _health_and_arming_checks.canRun(vehicle_status_s::NAVIGATION_STATE_ALTCTL);
// We still use the original user intended mode. The failsafe state machine will then set the
diff --git a/src/modules/commander/UserModeIntention.hpp b/src/modules/commander/UserModeIntention.hpp
index b8b6827e06..cfb4e3998b 100644
--- a/src/modules/commander/UserModeIntention.hpp
+++ b/src/modules/commander/UserModeIntention.hpp
@@ -35,7 +35,6 @@
#include
#include "HealthAndArmingChecks/HealthAndArmingChecks.hpp"
-#include
enum class ModeChangeSource {
User, ///< RC or MAVLink
@@ -58,10 +57,10 @@ public:
};
-class UserModeIntention : ModuleParams
+class UserModeIntention
{
public:
- UserModeIntention(ModuleParams *parent, const vehicle_status_s &vehicle_status,
+ UserModeIntention(const vehicle_status_s &vehicle_status,
const HealthAndArmingChecks &health_and_arming_checks, ModeChangeHandler *handler);
~UserModeIntention() = default;
@@ -102,8 +101,4 @@ private:
bool _ever_had_mode_change{false}; ///< true if there was ever a mode change call (also if the same mode as already set)
bool _had_mode_change{false}; ///< true if there was a mode change call since the last getHadModeChangeAndClear()
-
- DEFINE_PARAMETERS(
- (ParamInt) _param_com_posctl_navl
- );
};
diff --git a/src/modules/commander/commander_params.c b/src/modules/commander/commander_params.c
index 565c6406be..1e194ac5df 100644
--- a/src/modules/commander/commander_params.c
+++ b/src/modules/commander/commander_params.c
@@ -461,18 +461,6 @@ PARAM_DEFINE_FLOAT(COM_RC_STICK_OV, 30.0f);
*/
PARAM_DEFINE_INT32(COM_ARM_MIS_REQ, 0);
-/**
- * Position mode navigation loss response
- *
- * This sets the flight mode that will be used if navigation accuracy is no longer adequate for position control in manual Position mode.
- *
- * @value 0 Altitude mode
- * @value 1 Land mode (descend)
- *
- * @group Commander
- */
-PARAM_DEFINE_INT32(COM_POSCTL_NAVL, 0);
-
/**
* Require arm authorization to arm
*
diff --git a/src/modules/commander/failsafe/failsafe.cpp b/src/modules/commander/failsafe/failsafe.cpp
index 5c3578fb89..cdc770190c 100644
--- a/src/modules/commander/failsafe/failsafe.cpp
+++ b/src/modules/commander/failsafe/failsafe.cpp
@@ -668,46 +668,20 @@ FailsafeBase::Action Failsafe::checkModeFallback(const failsafe_flags_s &status_
}
}
- // posctrl
- switch (position_control_navigation_loss_response(_param_com_posctl_navl.get())) {
- case position_control_navigation_loss_response::Altitude_Manual: // AltCtrl/Manual
-
- // PosCtrl/PositionSlow -> AltCtrl
- if ((user_intended_mode == vehicle_status_s::NAVIGATION_STATE_POSCTL ||
- user_intended_mode == vehicle_status_s::NAVIGATION_STATE_POSITION_SLOW)
- && !modeCanRun(status_flags, user_intended_mode)) {
- action = Action::FallbackAltCtrl;
- user_intended_mode = vehicle_status_s::NAVIGATION_STATE_ALTCTL;
- }
-
- // AltCtrl -> Stabilized
- if (user_intended_mode == vehicle_status_s::NAVIGATION_STATE_ALTCTL
- && !modeCanRun(status_flags, user_intended_mode)) {
- action = Action::FallbackStab;
- user_intended_mode = vehicle_status_s::NAVIGATION_STATE_STAB;
- }
-
- break;
-
- case position_control_navigation_loss_response::Land_Descend: // Land/Terminate
-
- // PosCtrl/PositionSlow -> Land
- if ((user_intended_mode == vehicle_status_s::NAVIGATION_STATE_POSCTL ||
- user_intended_mode == vehicle_status_s::NAVIGATION_STATE_POSITION_SLOW)
- && !modeCanRun(status_flags, user_intended_mode)) {
- action = Action::Land;
- user_intended_mode = vehicle_status_s::NAVIGATION_STATE_AUTO_LAND;
-
- // Land -> Descend
- if (!modeCanRun(status_flags, user_intended_mode)) {
- action = Action::Descend;
- user_intended_mode = vehicle_status_s::NAVIGATION_STATE_DESCEND;
- }
- }
-
- break;
+ // PosCtrl/PositionSlow -> AltCtrl
+ if ((user_intended_mode == vehicle_status_s::NAVIGATION_STATE_POSCTL ||
+ user_intended_mode == vehicle_status_s::NAVIGATION_STATE_POSITION_SLOW)
+ && !modeCanRun(status_flags, user_intended_mode)) {
+ action = Action::FallbackAltCtrl;
+ user_intended_mode = vehicle_status_s::NAVIGATION_STATE_ALTCTL;
}
+ // AltCtrl -> Stabilized
+ if (user_intended_mode == vehicle_status_s::NAVIGATION_STATE_ALTCTL
+ && !modeCanRun(status_flags, user_intended_mode)) {
+ action = Action::FallbackStab;
+ user_intended_mode = vehicle_status_s::NAVIGATION_STATE_STAB;
+ }
// Last, check can_run for intended mode
if (!modeCanRun(status_flags, user_intended_mode)) {
diff --git a/src/modules/commander/failsafe/failsafe.h b/src/modules/commander/failsafe/failsafe.h
index d7ac7c75c2..f9382e0428 100644
--- a/src/modules/commander/failsafe/failsafe.h
+++ b/src/modules/commander/failsafe/failsafe.h
@@ -85,11 +85,6 @@ private:
Disarm = 7,
};
- enum class position_control_navigation_loss_response : int32_t {
- Altitude_Manual = 0,
- Land_Descend = 1,
- };
-
enum class actuator_failure_failsafe_mode : int32_t {
Warning_only = 0,
Hold_mode = 1,
@@ -202,7 +197,6 @@ private:
(ParamInt) _param_com_rcl_except,
(ParamInt) _param_com_dll_except,
(ParamInt) _param_com_rc_in_mode,
- (ParamInt) _param_com_posctl_navl,
(ParamInt) _param_gf_action,
(ParamFloat) _param_com_spoolup_time,
(ParamInt) _param_com_imb_prop_act,