MulticopterLandDetector: remove arbitrary maximum altitude based on battery percentage

This commit is contained in:
Matthias Grob
2020-06-02 15:49:17 +02:00
parent 39a33a35ae
commit c36c8d161c
2 changed files with 3 additions and 20 deletions
@@ -90,7 +90,6 @@ void MulticopterLandDetector::_update_topics()
LandDetector::_update_topics(); LandDetector::_update_topics();
_actuator_controls_sub.update(&_actuator_controls); _actuator_controls_sub.update(&_actuator_controls);
_battery_sub.update(&_battery_status);
_vehicle_angular_velocity_sub.update(&_vehicle_angular_velocity); _vehicle_angular_velocity_sub.update(&_vehicle_angular_velocity);
_vehicle_control_mode_sub.update(&_vehicle_control_mode); _vehicle_control_mode_sub.update(&_vehicle_control_mode);
_vehicle_local_position_setpoint_sub.update(&_vehicle_local_position_setpoint); _vehicle_local_position_setpoint_sub.update(&_vehicle_local_position_setpoint);
@@ -256,26 +255,12 @@ bool MulticopterLandDetector::_get_landed_state()
float MulticopterLandDetector::_get_max_altitude() float MulticopterLandDetector::_get_max_altitude()
{ {
/* TODO: add a meaningful altitude */ if (_param_lndmc_alt_max.get() < 0.0f) {
float valid_altitude_max = _param_lndmc_alt_max.get();
if (valid_altitude_max < 0.0f) {
return INFINITY; return INFINITY;
}
if (_battery_status.warning == battery_status_s::BATTERY_WARNING_LOW) { } else {
valid_altitude_max = _param_lndmc_alt_max.get() * 0.75f; return _param_lndmc_alt_max.get();
} }
if (_battery_status.warning == battery_status_s::BATTERY_WARNING_CRITICAL) {
valid_altitude_max = _param_lndmc_alt_max.get() * 0.5f;
}
if (_battery_status.warning == battery_status_s::BATTERY_WARNING_EMERGENCY) {
valid_altitude_max = _param_lndmc_alt_max.get() * 0.25f;
}
return valid_altitude_max;
} }
bool MulticopterLandDetector::_has_altitude_lock() bool MulticopterLandDetector::_has_altitude_lock()
@@ -115,7 +115,6 @@ private:
} _params{}; } _params{};
uORB::Subscription _actuator_controls_sub{ORB_ID(actuator_controls_0)}; uORB::Subscription _actuator_controls_sub{ORB_ID(actuator_controls_0)};
uORB::Subscription _battery_sub{ORB_ID(battery_status)};
uORB::Subscription _vehicle_acceleration_sub{ORB_ID(vehicle_acceleration)}; uORB::Subscription _vehicle_acceleration_sub{ORB_ID(vehicle_acceleration)};
uORB::Subscription _vehicle_angular_velocity_sub{ORB_ID(vehicle_angular_velocity)}; uORB::Subscription _vehicle_angular_velocity_sub{ORB_ID(vehicle_angular_velocity)};
uORB::Subscription _vehicle_control_mode_sub{ORB_ID(vehicle_control_mode)}; uORB::Subscription _vehicle_control_mode_sub{ORB_ID(vehicle_control_mode)};
@@ -124,7 +123,6 @@ private:
uORB::Subscription _hover_thrust_estimate_sub{ORB_ID(hover_thrust_estimate)}; uORB::Subscription _hover_thrust_estimate_sub{ORB_ID(hover_thrust_estimate)};
actuator_controls_s _actuator_controls {}; actuator_controls_s _actuator_controls {};
battery_status_s _battery_status {};
vehicle_angular_velocity_s _vehicle_angular_velocity{}; vehicle_angular_velocity_s _vehicle_angular_velocity{};
vehicle_control_mode_s _vehicle_control_mode {}; vehicle_control_mode_s _vehicle_control_mode {};
vehicle_local_position_setpoint_s _vehicle_local_position_setpoint {}; vehicle_local_position_setpoint_s _vehicle_local_position_setpoint {};