diff --git a/src/lib/FlightTasks/tasks/FlightTaskOrbit.cpp b/src/lib/FlightTasks/tasks/FlightTaskOrbit.cpp index 0cc92c2884..7129af4218 100644 --- a/src/lib/FlightTasks/tasks/FlightTaskOrbit.cpp +++ b/src/lib/FlightTasks/tasks/FlightTaskOrbit.cpp @@ -60,9 +60,9 @@ bool FlightTaskOrbit::applyCommandParameters(const vehicle_command_s &command) bool FlightTaskOrbit::setRadius(const float r) { if (math::isInRange(r, _radius_min, _radius_max)) { - // radius is more important than velocity for safety + // small radius is more important than high velocity for safety if (!checkAcceleration(r, _v, _acceleration_max)) { - _v = sqrtf(_acceleration_max * r); + _v = math::sign(_v) * sqrtf(_acceleration_max * r); } _r = r;