From bd05ea84cc02bb7a39c3ff10ce854ceeea1240c9 Mon Sep 17 00:00:00 2001
From: Randy Mackay <rmackay9@yahoo.com>
Date: Mon, 14 Jan 2013 13:30:25 +0900
Subject: [PATCH] Copter: constrain loiter so that it never commands more than
 45 degrees of lean in lat or lon directions

---
 ArduCopter/navigation.pde | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/ArduCopter/navigation.pde b/ArduCopter/navigation.pde
index decb98b0a..396643dce 100644
--- a/ArduCopter/navigation.pde
+++ b/ArduCopter/navigation.pde
@@ -406,7 +406,7 @@ static void calc_loiter(int16_t x_error, int16_t y_error)
     }
 
     output                  = p + i + d;
-    nav_lon                 = constrain(output, -32000, 32000); // constraint to remove chance of overflow when adding int32_t to int16_t
+    nav_lon                 = constrain(output, -4500, 4500); // constrain max angle to 45 degrees
 
 #if LOGGING_ENABLED == ENABLED
     // log output if PID logging is on and we are tuning the yaw
@@ -439,7 +439,7 @@ static void calc_loiter(int16_t x_error, int16_t y_error)
     }
 
     output                  = p + i + d;
-    nav_lat                 = constrain(output, -32000, 32000); // constraint to remove chance of overflow when adding int32_t to int16_t
+    nav_lat                 = constrain(output, -4500, 4500); // constrain max angle to 45 degrees
 
 #if LOGGING_ENABLED == ENABLED
     // log output if PID logging is on and we are tuning the yaw
@@ -485,7 +485,7 @@ static void calc_loiter(int16_t x_error, int16_t y_error)
     }
 
     output                  = p + i + d;
-    nav_lon                 = constrain(output, -32000, 32000); // constraint to remove chance of overflow when adding int32_t to int16_t
+    nav_lon                 = constrain(output, -4500, 4500); // constrain max angle to 45 degrees
 
 #if LOGGING_ENABLED == ENABLED
     // log output if PID logging is on and we are tuning the yaw
@@ -518,7 +518,7 @@ static void calc_loiter(int16_t x_error, int16_t y_error)
     }
 
     output                  = p + i + d;
-    nav_lat                 = constrain(output, -32000, 32000); // constraint to remove chance of overflow when adding int32_t to int16_t
+    nav_lat                 = constrain(output, -4500, 4500); // constrain max angle to 45 degrees
 
 #if LOGGING_ENABLED == ENABLED
     // log output if PID logging is on and we are tuning the yaw
-- 
GitLab