diff --git a/ros2/src/robobin/robobin/motor_control_node.py b/ros2/src/robobin/robobin/motor_control_node.py
index 74cb1b81f2acca54a20d7477e7dfebb9ff7978c3..f8b6ea489d008a92fb77175e8e838b5f5678289b 100644
--- a/ros2/src/robobin/robobin/motor_control_node.py
+++ b/ros2/src/robobin/robobin/motor_control_node.py
@@ -60,9 +60,13 @@ class MotorController(Node):
 def main(args=None):
     rclpy.init(args=args)
     node = MotorController()
-    rclpy.spin(node)
-    node.destroy_node()
-    rclpy.shutdown()
+    try:
+        rclpy.spin(node)
+    except KeyboardInterrupt:
+        node.shutdown()
+    finally:
+        node.destroy_node()
+        rclpy.shutdown()
 
 if __name__ == '__main__':
     main()