mirror of https://github.com/ArduPilot/ardupilot
Copter: add FLIGHT_OPTIONS param and options bits to disable thrust loss and yaw imbalance warnings
This commit is contained in:
parent
447af29ef1
commit
2e9c11fbdf
|
@ -608,6 +608,12 @@ private:
|
||||||
RELEASE_GRIPPER = (1<<5), // 32
|
RELEASE_GRIPPER = (1<<5), // 32
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
enum class FlightOptions {
|
||||||
|
DISABLE_THRUST_LOSS_CHECK = (1<<0), // 1
|
||||||
|
DISABLE_YAW_IMBALANCE_WARNING = (1<<1), // 2
|
||||||
|
};
|
||||||
|
|
||||||
static constexpr int8_t _failsafe_priorities[] = {
|
static constexpr int8_t _failsafe_priorities[] = {
|
||||||
Failsafe_Action_Terminate,
|
Failsafe_Action_Terminate,
|
||||||
Failsafe_Action_Land,
|
Failsafe_Action_Land,
|
||||||
|
|
|
@ -1045,6 +1045,13 @@ const AP_Param::GroupInfo ParametersG2::var_info[] = {
|
||||||
AP_GROUPINFO("RTL_OPTIONS", 43, ParametersG2, rtl_options, 0),
|
AP_GROUPINFO("RTL_OPTIONS", 43, ParametersG2, rtl_options, 0),
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// @Param: FLIGHT_OPTIONS
|
||||||
|
// @DisplayName: Flight mode options
|
||||||
|
// @Description: Flight mode specific options
|
||||||
|
// @Bitmask: 0:Disable thrust loss check, 1:Disable yaw imbalance warning
|
||||||
|
// @User: Advanced
|
||||||
|
AP_GROUPINFO("FLIGHT_OPTIONS", 44, ParametersG2, flight_options, 0),
|
||||||
|
|
||||||
AP_GROUPEND
|
AP_GROUPEND
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -642,6 +642,8 @@ public:
|
||||||
AP_Int32 rtl_options;
|
AP_Int32 rtl_options;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
AP_Int32 flight_options;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const AP_Param::Info var_info[];
|
extern const AP_Param::Info var_info[];
|
||||||
|
|
|
@ -98,6 +98,11 @@ void Copter::thrust_loss_check()
|
||||||
{
|
{
|
||||||
static uint16_t thrust_loss_counter; // number of iterations vehicle may have been crashed
|
static uint16_t thrust_loss_counter; // number of iterations vehicle may have been crashed
|
||||||
|
|
||||||
|
// no-op if suppresed by flight options param
|
||||||
|
if ((copter.g2.flight_options & uint32_t(FlightOptions::DISABLE_THRUST_LOSS_CHECK)) != 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// exit immediately if thrust boost is already engaged
|
// exit immediately if thrust boost is already engaged
|
||||||
if (motors->get_thrust_boost()) {
|
if (motors->get_thrust_boost()) {
|
||||||
return;
|
return;
|
||||||
|
@ -167,6 +172,11 @@ void Copter::thrust_loss_check()
|
||||||
// check for a large yaw imbalance, could be due to badly calibrated ESC or misaligned motors
|
// check for a large yaw imbalance, could be due to badly calibrated ESC or misaligned motors
|
||||||
void Copter::yaw_imbalance_check()
|
void Copter::yaw_imbalance_check()
|
||||||
{
|
{
|
||||||
|
// no-op if suppresed by flight options param
|
||||||
|
if ((copter.g2.flight_options & uint32_t(FlightOptions::DISABLE_YAW_IMBALANCE_WARNING)) != 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// If I is disabled it is unlikely that the issue is not obvious
|
// If I is disabled it is unlikely that the issue is not obvious
|
||||||
if (!is_positive(attitude_control->get_rate_yaw_pid().kI())) {
|
if (!is_positive(attitude_control->get_rate_yaw_pid().kI())) {
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue