diff --git a/system/mrm_emergency_stop_operator/schema/mrm_emergency_stop_operator.json b/system/mrm_emergency_stop_operator/schema/mrm_emergency_stop_operator.json
new file mode 100644
index 0000000000000..6ce5e06c824ce
--- /dev/null
+++ b/system/mrm_emergency_stop_operator/schema/mrm_emergency_stop_operator.json
@@ -0,0 +1,40 @@
+{
+  "$schema": "http://json-schema.org/draft-07/schema#",
+  "title": "Parameters for mrm_emergency_stop_operator",
+  "type": "object",
+  "definitions": {
+    "mrm_emergency_stop_operator": {
+      "type": "object",
+      "properties": {
+        "update_rate": {
+          "type": "number",
+          "default": 30,
+          "description": "Timer callback frequency [Hz]."
+        },
+        "target_acceleration": {
+          "type": "number",
+          "default": -2.5,
+          "description": "Target acceleration for emergency stop [m/s^2]."
+        },
+        "target_jerk": {
+          "type": "number",
+          "default": -1.5,
+          "description": "Target jerk for emergency stop [m/s^3] ."
+        }
+      },
+      "required": ["update_rate", "target_jerk", "target_acceleration"]
+    }
+  },
+  "properties": {
+    "/**": {
+      "type": "object",
+      "properties": {
+        "ros__parameters": {
+          "$ref": "#/definitions/mrm_emergency_stop_operator"
+        }
+      },
+      "required": ["ros__parameters"]
+    }
+  },
+  "required": ["/**"]
+}
diff --git a/system/mrm_emergency_stop_operator/src/mrm_emergency_stop_operator/mrm_emergency_stop_operator_core.cpp b/system/mrm_emergency_stop_operator/src/mrm_emergency_stop_operator/mrm_emergency_stop_operator_core.cpp
index 9ee9d7a685df3..efb73cedee4e3 100644
--- a/system/mrm_emergency_stop_operator/src/mrm_emergency_stop_operator/mrm_emergency_stop_operator_core.cpp
+++ b/system/mrm_emergency_stop_operator/src/mrm_emergency_stop_operator/mrm_emergency_stop_operator_core.cpp
@@ -23,9 +23,9 @@ MrmEmergencyStopOperator::MrmEmergencyStopOperator(const rclcpp::NodeOptions & n
 : Node("mrm_emergency_stop_operator", node_options)
 {
   // Parameter
-  params_.update_rate = static_cast<int>(declare_parameter<int>("update_rate", 30));
-  params_.target_acceleration = declare_parameter<double>("target_acceleration", -2.5);
-  params_.target_jerk = declare_parameter<double>("target_jerk", -1.5);
+  params_.update_rate = static_cast<int>(declare_parameter<int>("update_rate"));
+  params_.target_acceleration = declare_parameter<double>("target_acceleration");
+  params_.target_jerk = declare_parameter<double>("target_jerk");
 
   // Subscriber
   sub_control_cmd_ = create_subscription<AckermannControlCommand>(