From 7c3a67e3747e67defe05fe9ab92b607fef37ba3e Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 11 Dec 2015 10:57:41 +0100 Subject: [PATCH] use optimal recovery strategy for tailsitters --- cmake/configs/nuttx_px4fmu-v4_default.cmake | 1 + cmake/configs/posix_eagle_default.cmake | 1 + cmake/configs/qurt_eagle_hil.cmake | 1 + cmake/configs/qurt_eagle_release.cmake | 1 + cmake/configs/qurt_eagle_travis.cmake | 1 + src/modules/mc_att_control/mc_att_control_main.cpp | 5 +++-- 6 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cmake/configs/nuttx_px4fmu-v4_default.cmake b/cmake/configs/nuttx_px4fmu-v4_default.cmake index 9d22c71bbf..084f81d9da 100644 --- a/cmake/configs/nuttx_px4fmu-v4_default.cmake +++ b/cmake/configs/nuttx_px4fmu-v4_default.cmake @@ -122,6 +122,7 @@ set(config_module_list lib/launchdetection lib/terrain_estimation lib/runway_takeoff + lib/tailsitter_recovery platforms/nuttx # had to add for cmake, not sure why wasn't in original config diff --git a/cmake/configs/posix_eagle_default.cmake b/cmake/configs/posix_eagle_default.cmake index 76d9711187..b78d393ddf 100644 --- a/cmake/configs/posix_eagle_default.cmake +++ b/cmake/configs/posix_eagle_default.cmake @@ -40,6 +40,7 @@ set(config_module_list lib/conversion lib/terrain_estimation lib/runway_takeoff + lib/tailsitter_recovery platforms/common platforms/posix/px4_layer diff --git a/cmake/configs/qurt_eagle_hil.cmake b/cmake/configs/qurt_eagle_hil.cmake index 87dd29152e..0f2e92b0c0 100644 --- a/cmake/configs/qurt_eagle_hil.cmake +++ b/cmake/configs/qurt_eagle_hil.cmake @@ -49,6 +49,7 @@ set(config_module_list lib/conversion lib/terrain_estimation lib/runway_takeoff + lib/tailsitter_recovery modules/controllib # diff --git a/cmake/configs/qurt_eagle_release.cmake b/cmake/configs/qurt_eagle_release.cmake index 62a20263e5..67d84c8fa7 100644 --- a/cmake/configs/qurt_eagle_release.cmake +++ b/cmake/configs/qurt_eagle_release.cmake @@ -72,6 +72,7 @@ set(config_module_list lib/conversion lib/terrain_estimation lib/runway_takeoff + lib/tailsitter_recovery # # QuRT port diff --git a/cmake/configs/qurt_eagle_travis.cmake b/cmake/configs/qurt_eagle_travis.cmake index 75cb5f2394..85fae3373b 100644 --- a/cmake/configs/qurt_eagle_travis.cmake +++ b/cmake/configs/qurt_eagle_travis.cmake @@ -54,6 +54,7 @@ set(config_module_list lib/ecl lib/terrain_estimation lib/runway_takeoff + lib/tailsitter_recovery # # QuRT port diff --git a/src/modules/mc_att_control/mc_att_control_main.cpp b/src/modules/mc_att_control/mc_att_control_main.cpp index 3764c95a39..91ce68b481 100644 --- a/src/modules/mc_att_control/mc_att_control_main.cpp +++ b/src/modules/mc_att_control/mc_att_control_main.cpp @@ -387,9 +387,8 @@ MulticopterAttitudeControl::MulticopterAttitudeControl() : /* fetch initial parameter values */ parameters_update(); - vehicle_status_poll(); - if (_vehicle_status.is_vtol && _params.vtol_type == 0) { + if (_params.vtol_type == 0) { // the vehicle is a tailsitter, use optimal recovery control strategy _ts_opt_recovery = new TailsitterRecovery(); } @@ -835,6 +834,8 @@ MulticopterAttitudeControl::task_main() control_attitude(dt); } else { + vehicle_attitude_setpoint_poll(); + _thrust_sp = _v_att_sp.thrust; math::Quaternion q(_ctrl_state.q[0], _ctrl_state.q[1], _ctrl_state.q[2], _ctrl_state.q[3]); math::Quaternion q_sp(&_v_att_sp.q_d[0]); _ts_opt_recovery->setAttGains(_params.att_p, _params.yaw_ff);