From a142688fea426c235a75676946e73ee83f7bc71b Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Sat, 10 Oct 2015 21:41:42 +0900 Subject: [PATCH] Copter: guided attitude timeout to 1sec Also add set-attitude-target capabilities flag Thanks to Fredia and Sebastian for noticing these issues! --- ArduCopter/capabilities.cpp | 1 + ArduCopter/control_guided.cpp | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ArduCopter/capabilities.cpp b/ArduCopter/capabilities.cpp index 3788f86e4d..b4e4f62ed9 100644 --- a/ArduCopter/capabilities.cpp +++ b/ArduCopter/capabilities.cpp @@ -9,4 +9,5 @@ void Copter::init_capabilities(void) hal.util->set_capabilities(MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_LOCAL_NED); hal.util->set_capabilities(MAV_PROTOCOL_CAPABILITY_SET_POSITION_TARGET_GLOBAL_INT); hal.util->set_capabilities(MAV_PROTOCOL_CAPABILITY_FLIGHT_TERMINATION); + hal.util->set_capabilities(MAV_PROTOCOL_CAPABILITY_SET_ATTITUDE_TARGET); } diff --git a/ArduCopter/control_guided.cpp b/ArduCopter/control_guided.cpp index 9ce4afac5d..b792399d2d 100644 --- a/ArduCopter/control_guided.cpp +++ b/ArduCopter/control_guided.cpp @@ -11,6 +11,7 @@ #endif #define GUIDED_POSVEL_TIMEOUT_MS 3000 // guided mode's position-velocity controller times out after 3seconds with no new updates +#define GUIDED_ATTITUDE_TIMEOUT_MS 1000 // guided mode's attitude controller times out after 1 second with no new updates static Vector3f posvel_pos_target_cm; static Vector3f posvel_vel_target_cms; @@ -470,7 +471,7 @@ void Copter::guided_angle_control_run() // check for timeout - set lean angles and climb rate to zero if no updates received for 3 seconds uint32_t tnow = millis(); - if (tnow - guided_angle_state.update_time_ms > GUIDED_POSVEL_TIMEOUT_MS) { + if (tnow - guided_angle_state.update_time_ms > GUIDED_ATTITUDE_TIMEOUT_MS) { roll_in = 0.0f; pitch_in = 0.0f; climb_rate_cms = 0.0f;