mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-27 23:43:34 +08:00
Implement RC and DL failsafe action handling for multirotors
Move RC and DL failsafe actions handling from navigator to commander (credits to @AndreasAntener) Separate manual kill switch handling via manual_lockdown to prevent override and release of software lockdown by RC switch Other changes: Add failsafe tune Fix LED blinking for Pixracer Return back support for rc inputs in simulator but now it is configurable via cmake
This commit is contained in:
committed by
Lorenz Meier
parent
964dabe179
commit
3a17c07b1e
@@ -158,8 +158,6 @@ Navigator::Navigator() :
|
||||
_param_acceptance_radius(this, "ACC_RAD"),
|
||||
_param_fw_alt_acceptance_radius(this, "FW_ALT_RAD"),
|
||||
_param_mc_alt_acceptance_radius(this, "MC_ALT_RAD"),
|
||||
_param_datalinkloss_act(this, "DLL_ACT"),
|
||||
_param_rcloss_act(this, "RCL_ACT"),
|
||||
_param_cruising_speed_hover(this, "MPC_XY_CRUISE", false),
|
||||
_param_cruising_speed_plane(this, "FW_AIRSPD_TRIM", false),
|
||||
_param_cruising_throttle_plane(this, "FW_THR_CRUISE", false),
|
||||
@@ -565,15 +563,7 @@ Navigator::task_main()
|
||||
break;
|
||||
case vehicle_status_s::NAVIGATION_STATE_AUTO_RCRECOVER:
|
||||
_pos_sp_triplet_published_invalid_once = false;
|
||||
if (_param_rcloss_act.get() == 1) {
|
||||
_navigation_mode = &_loiter;
|
||||
} else if (_param_rcloss_act.get() == 3) {
|
||||
_navigation_mode = &_land;
|
||||
} else if (_param_rcloss_act.get() == 4) {
|
||||
_navigation_mode = &_rcLoss;
|
||||
} else { /* if == 2 or unknown, RTL */
|
||||
_navigation_mode = &_rtl;
|
||||
}
|
||||
_navigation_mode = &_rcLoss;
|
||||
break;
|
||||
case vehicle_status_s::NAVIGATION_STATE_AUTO_RTL:
|
||||
_pos_sp_triplet_published_invalid_once = false;
|
||||
@@ -592,18 +582,8 @@ Navigator::task_main()
|
||||
_navigation_mode = &_land;
|
||||
break;
|
||||
case vehicle_status_s::NAVIGATION_STATE_AUTO_RTGS:
|
||||
/* Use complex data link loss mode only when enabled via param
|
||||
* otherwise use rtl */
|
||||
_pos_sp_triplet_published_invalid_once = false;
|
||||
if (_param_datalinkloss_act.get() == 1) {
|
||||
_navigation_mode = &_loiter;
|
||||
} else if (_param_datalinkloss_act.get() == 3) {
|
||||
_navigation_mode = &_land;
|
||||
} else if (_param_datalinkloss_act.get() == 4) {
|
||||
_navigation_mode = &_dataLinkLoss;
|
||||
} else { /* if == 2 or unknown, RTL */
|
||||
_navigation_mode = &_rtl;
|
||||
}
|
||||
_navigation_mode = &_dataLinkLoss;
|
||||
break;
|
||||
case vehicle_status_s::NAVIGATION_STATE_AUTO_LANDENGFAIL:
|
||||
_pos_sp_triplet_published_invalid_once = false;
|
||||
|
||||
Reference in New Issue
Block a user