mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-01 19:07:45 +08:00
MulticopterLandDetector: remove arbitrary maximum altitude based on battery percentage
This commit is contained in:
@@ -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 {};
|
||||||
|
|||||||
Reference in New Issue
Block a user