FlightTaskOrbit: parameterize hardcoded maximum radius (#20012)

This commit is contained in:
Matthias Grob
2022-08-05 09:19:32 +02:00
committed by GitHub
parent dfdfbbfa9c
commit 87cbda1992
3 changed files with 47 additions and 3 deletions
@@ -72,7 +72,7 @@ bool FlightTaskOrbit::applyCommandParameters(const vehicle_command_s &command)
float new_velocity = signFromBool(new_is_clockwise) * new_absolute_velocity;
if (math::isInRange(new_radius, _radius_min, _radius_max)) {
if (math::isInRange(new_radius, _radius_min, _param_mc_orbit_rad_max.get())) {
_started_clockwise = new_is_clockwise;
_sanitizeParams(new_radius, new_velocity);
_orbit_radius = new_radius;
@@ -146,7 +146,7 @@ bool FlightTaskOrbit::sendTelemetry()
void FlightTaskOrbit::_sanitizeParams(float &radius, float &velocity) const
{
// clip the radius to be within range
radius = math::constrain(radius, _radius_min, _radius_max);
radius = math::constrain(radius, _radius_min, _param_mc_orbit_rad_max.get());
velocity = math::constrain(velocity, -fabsf(_velocity_max), fabsf(_velocity_max));
bool exceeds_maximum_acceleration = (velocity * velocity) >= _acceleration_max * radius;