From 4b70584cf483c1db941d9e2bb6f3b7099dbb47c0 Mon Sep 17 00:00:00 2001 From: Dennis Mannhart <dennis@yuneecresearch.com> Date: Wed, 12 Sep 2018 15:31:01 +0200 Subject: [PATCH] mc_pos_control takeoff: control velocity if velocity estimation is available, otherwise just keep thrust vector pointing upward --- src/modules/mc_pos_control/mc_pos_control_main.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/modules/mc_pos_control/mc_pos_control_main.cpp b/src/modules/mc_pos_control/mc_pos_control_main.cpp index 54ea44e050..26a9bffd19 100644 --- a/src/modules/mc_pos_control/mc_pos_control_main.cpp +++ b/src/modules/mc_pos_control/mc_pos_control_main.cpp @@ -684,7 +684,14 @@ MulticopterPositionControl::run() // don't control position in xy setpoint.x = setpoint.y = NAN; setpoint.vx = setpoint.vy = NAN; - setpoint.thrust[0] = setpoint.thrust[1] = 0.0f; // just keeping pointing upwards + setpoint.thrust[0] = setpoint.thrust[1] = NAN; + + if (PX4_ISFINITE(_states.velocity(0)) && PX4_ISFINITE(_states.velocity(1))) { + setpoint.vx = setpoint.vy = NAN; // try to keep zero velocity + + } else { + setpoint.thrust[0] = setpoint.thrust[1] = 0.0f; // just keeping pointing upwards + } } if (_vehicle_land_detected.landed && !_in_smooth_takeoff && !PX4_ISFINITE(setpoint.thrust[2])) { -- GitLab