diff --git a/ros2/src/robobin/robobin/message_handler.py b/ros2/src/robobin/robobin/message_handler.py
index 01adeb4d2e9ea358ea5f77a8334c37a3d9336526..dd41cdbf100fca7f9b50531783ad0c2133ea2c03 100644
--- a/ros2/src/robobin/robobin/message_handler.py
+++ b/ros2/src/robobin/robobin/message_handler.py
@@ -50,14 +50,21 @@ class MessageHandler:
             "S": (-0.5, 0),   # Move backward
             "D": (0, -0.5)    # Turn right
         }
-        response_data = directions.get(message.strip().upper(), (0, 0))
+        
+        # Get direction data and ensure it's a tuple of floats
+        raw_response_data = directions.get(message.strip().upper(), (0, 0))
+        response_data = (float(raw_response_data[0]), float(raw_response_data[1]))  # Explicitly cast to float
+        
+        # Send feedback to the client
         response = f"Manual control command received: {response_data}".encode()
         if self.testing:
             print(response.decode())
         else:
             client_socket.sendall(response)
+        
         print("Processed manual control command:", response_data)
         return "cmd_vel", response_data
+
     
     def handle_unknown_message(self, client_socket, _):
         """Handles unknown commands."""