diff --git a/ur_msgs/CMakeLists.txt b/ur_msgs/CMakeLists.txt
index 3409ea008ec4fee379c5244fe4ad464a95a0f24d..1b3457363e943ce4316567a744e603fcbd42a665 100644
--- a/ur_msgs/CMakeLists.txt
+++ b/ur_msgs/CMakeLists.txt
@@ -15,6 +15,7 @@ add_message_files(
    IOStates.msg
    RobotStateRTMsg.msg
    MasterboardDataMsg.msg
+   RobotModeDataMsg.msg
    ToolDataMsg.msg
 )
 
diff --git a/ur_msgs/msg/RobotModeDataMsg.msg b/ur_msgs/msg/RobotModeDataMsg.msg
new file mode 100644
index 0000000000000000000000000000000000000000..5c443f7b6cbc590201c0cceaebdd3bd6488b8075
--- /dev/null
+++ b/ur_msgs/msg/RobotModeDataMsg.msg
@@ -0,0 +1,15 @@
+# This data structure contains the RobotModeData structure
+# used by the Universal Robots controller
+#
+# This data structure is send at 10 Hz on TCP port 30002
+#
+# Note: this message does not carry all fields from the RobotModeData structure as broadcast by the robot controller, but a subset.
+
+uint64 timestamp
+bool is_robot_connected
+bool is_real_robot_enabled
+bool is_power_on_robot
+bool is_emergency_stopped
+bool is_protective_stopped
+bool is_program_running
+bool is_program_paused