Browse Source

MulticopterLandDetector: remove arbitrary maximum altitude based on battery percentage

sbg
Matthias Grob 5 years ago
parent
commit
c36c8d161c
  1. 21
      src/modules/land_detector/MulticopterLandDetector.cpp
  2. 2
      src/modules/land_detector/MulticopterLandDetector.h

21
src/modules/land_detector/MulticopterLandDetector.cpp

@ -90,7 +90,6 @@ void MulticopterLandDetector::_update_topics() @@ -90,7 +90,6 @@ void MulticopterLandDetector::_update_topics()
LandDetector::_update_topics();
_actuator_controls_sub.update(&_actuator_controls);
_battery_sub.update(&_battery_status);
_vehicle_angular_velocity_sub.update(&_vehicle_angular_velocity);
_vehicle_control_mode_sub.update(&_vehicle_control_mode);
_vehicle_local_position_setpoint_sub.update(&_vehicle_local_position_setpoint);
@ -256,26 +255,12 @@ bool MulticopterLandDetector::_get_landed_state() @@ -256,26 +255,12 @@ bool MulticopterLandDetector::_get_landed_state()
float MulticopterLandDetector::_get_max_altitude()
{
/* TODO: add a meaningful altitude */
float valid_altitude_max = _param_lndmc_alt_max.get();
if (valid_altitude_max < 0.0f) {
if (_param_lndmc_alt_max.get() < 0.0f) {
return INFINITY;
}
if (_battery_status.warning == battery_status_s::BATTERY_WARNING_LOW) {
valid_altitude_max = _param_lndmc_alt_max.get() * 0.75f;
}
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;
} else {
return _param_lndmc_alt_max.get();
}
return valid_altitude_max;
}
bool MulticopterLandDetector::_has_altitude_lock()

2
src/modules/land_detector/MulticopterLandDetector.h

@ -115,7 +115,6 @@ private: @@ -115,7 +115,6 @@ private:
} _params{};
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_angular_velocity_sub{ORB_ID(vehicle_angular_velocity)};
uORB::Subscription _vehicle_control_mode_sub{ORB_ID(vehicle_control_mode)};
@ -124,7 +123,6 @@ private: @@ -124,7 +123,6 @@ private:
uORB::Subscription _hover_thrust_estimate_sub{ORB_ID(hover_thrust_estimate)};
actuator_controls_s _actuator_controls {};
battery_status_s _battery_status {};
vehicle_angular_velocity_s _vehicle_angular_velocity{};
vehicle_control_mode_s _vehicle_control_mode {};
vehicle_local_position_setpoint_s _vehicle_local_position_setpoint {};

Loading…
Cancel
Save