diff --git a/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/src/MainWindow.cpp b/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/src/MainWindow.cpp
index 18d47630a5a6088d728aae05d85e44899cc61ed4..0f4625d4adcaabe018425f18cad1b7daf6bf0b2f 100644
--- a/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/src/MainWindow.cpp
+++ b/pps_ws/src/d_fall_pps/GUI_Qt/studentGUI/src/MainWindow.cpp
@@ -711,35 +711,43 @@ Setpoint MainWindow::correctSetpointBox(Setpoint setpoint, CrazyflieContext cont
     Setpoint corrected_setpoint;
     corrected_setpoint =  setpoint;
 
-    if(setpoint.x > context.localArea.xmax)
-        corrected_setpoint.x = context.localArea.xmax;
-    if(setpoint.y > context.localArea.ymax)
-        corrected_setpoint.y = context.localArea.ymax;
-    if(setpoint.z > context.localArea.zmax)
-        corrected_setpoint.z = context.localArea.zmax;
-
-    if(setpoint.x < context.localArea.xmin)
-        corrected_setpoint.x = context.localArea.xmin;
-    if(setpoint.y < context.localArea.ymin)
-        corrected_setpoint.y = context.localArea.ymin;
-    if(setpoint.z < context.localArea.zmin)
-        corrected_setpoint.z = context.localArea.zmin;
+    float x_size = context.localArea.xmax - context.localArea.xmin;
+    float y_size = context.localArea.xmax - context.localArea.xmin;
+    float z_size = context.localArea.xmax - context.localArea.xmin;
+
+    if(setpoint.x > x_size/2)
+        corrected_setpoint.x = x_size/2;
+    if(setpoint.y > y_size/2)
+        corrected_setpoint.y = y_size/2;
+    if(setpoint.z > z_size)
+        corrected_setpoint.z = z_size;
+
+    if(setpoint.x < -x_size/2)
+        corrected_setpoint.x = -x_size/2;
+    if(setpoint.y < -y_size/2)
+        corrected_setpoint.y = -y_size/2;
+    if(setpoint.z < 0)
+        corrected_setpoint.z = 0;
 
     return corrected_setpoint;
 }
 
 bool MainWindow::setpointInsideBox(Setpoint setpoint, CrazyflieContext context)
 {
+
+    float x_size = context.localArea.xmax - context.localArea.xmin;
+    float y_size = context.localArea.xmax - context.localArea.xmin;
+    float z_size = context.localArea.xmax - context.localArea.xmin;
     //position check
-	if((setpoint.x < context.localArea.xmin) or (setpoint.x > context.localArea.xmax)) {
+	if((setpoint.x < -x_size/2) or (setpoint.x > x_size/2)) {
 		ROS_INFO_STREAM("x outside safety box");
 		return false;
 	}
-	if((setpoint.y < context.localArea.ymin) or (setpoint.y > context.localArea.ymax)) {
+	if((setpoint.y < -y_size/2) or (setpoint.y > y_size/2)) {
 		ROS_INFO_STREAM("y outside safety box");
 		return false;
 	}
-	if((setpoint.z < context.localArea.zmin) or (setpoint.z > context.localArea.zmax)) {
+	if((setpoint.z < 0) or (setpoint.z > z_size)) {
 		ROS_INFO_STREAM("z outside safety box");
 		return false;
 	}