diff --git a/dummy/dummy_operation_mode_publisher/CMakeLists.txt b/dummy/dummy_operation_mode_publisher/CMakeLists.txt
new file mode 100644
index 0000000000000..d682cd8198e4e
--- /dev/null
+++ b/dummy/dummy_operation_mode_publisher/CMakeLists.txt
@@ -0,0 +1,21 @@
+cmake_minimum_required(VERSION 3.14)
+project(dummy_operation_mode_publisher)
+
+find_package(autoware_cmake REQUIRED)
+autoware_package()
+
+ament_auto_add_library(dummy_operation_mode_publisher SHARED
+ src/dummy_operation_mode_publisher.cpp
+)
+ament_target_dependencies(dummy_operation_mode_publisher)
+
+rclcpp_components_register_node(${PROJECT_NAME}
+ PLUGIN "dummy_operation_mode_publisher::DummyOperationModePublisher"
+ EXECUTABLE ${PROJECT_NAME}_node
+)
+
+ament_auto_package(
+ INSTALL_TO_SHARE
+ launch
+ config
+)
diff --git a/dummy/dummy_operation_mode_publisher/README.md b/dummy/dummy_operation_mode_publisher/README.md
new file mode 100644
index 0000000000000..e67018a331dc5
--- /dev/null
+++ b/dummy/dummy_operation_mode_publisher/README.md
@@ -0,0 +1,23 @@
+# Dummy Operation Mode Publisher
+
+## Purpose
+
+## Inner-workings / Algorithms
+
+## Inputs / Outputs
+
+### Input
+
+### Output
+
+## Parameters
+
+## Assumptions / Known limits
+
+## (Optional) Error detection and handling
+
+## (Optional) Performance characterization
+
+## (Optional) References/External links
+
+## (Optional) Future extensions / Unimplemented parts
diff --git a/dummy/dummy_operation_mode_publisher/config/dummy_operation_mode_publisher.param.yaml b/dummy/dummy_operation_mode_publisher/config/dummy_operation_mode_publisher.param.yaml
new file mode 100644
index 0000000000000..a20dbd7ffd3d9
--- /dev/null
+++ b/dummy/dummy_operation_mode_publisher/config/dummy_operation_mode_publisher.param.yaml
@@ -0,0 +1,2 @@
+/**:
+ ros__parameters:
diff --git a/dummy/dummy_operation_mode_publisher/launch/dummy_operation_mode_publisher.launch.xml b/dummy/dummy_operation_mode_publisher/launch/dummy_operation_mode_publisher.launch.xml
new file mode 100644
index 0000000000000..4c49835a57e5b
--- /dev/null
+++ b/dummy/dummy_operation_mode_publisher/launch/dummy_operation_mode_publisher.launch.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/dummy/dummy_operation_mode_publisher/package.xml b/dummy/dummy_operation_mode_publisher/package.xml
new file mode 100644
index 0000000000000..5cc8fc63c70e8
--- /dev/null
+++ b/dummy/dummy_operation_mode_publisher/package.xml
@@ -0,0 +1,25 @@
+
+
+
+ dummy_operation_mode_publisher
+ 0.1.0
+ The dummy_operation_mode_publisher package
+ Makoto Kurihara
+ Apache License 2.0
+
+ ament_cmake_auto
+
+ autoware_cmake
+
+
+ autoware_adapi_v1_msgs
+ rclcpp
+ rclcpp_components
+
+ ament_lint_auto
+ autoware_lint_common
+
+
+ ament_cmake
+
+
diff --git a/dummy/dummy_operation_mode_publisher/src/dummy_operation_mode_publisher.cpp b/dummy/dummy_operation_mode_publisher/src/dummy_operation_mode_publisher.cpp
new file mode 100644
index 0000000000000..876368d69b4d3
--- /dev/null
+++ b/dummy/dummy_operation_mode_publisher/src/dummy_operation_mode_publisher.cpp
@@ -0,0 +1,67 @@
+// Copyright 2024 TIER IV, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "dummy_operation_mode_publisher.hpp"
+
+namespace dummy_operation_mode_publisher
+{
+
+DummyOperationModePublisher::DummyOperationModePublisher(const rclcpp::NodeOptions & node_options)
+: Node("dummy_operation_mode_publisher", node_options)
+{
+ // Parameter
+
+ // Subscriber
+
+ // Publisher
+ pub_operation_mode_state_ = create_publisher(
+ "~/output/operation_mode_state", 10);
+ pub_operation_mode_state_adapi_ =
+ create_publisher(
+ "~/output/operation_mode_state_adapi", 10);
+
+ // Service
+
+ // Client
+
+ // Timer
+ using namespace std::literals::chrono_literals;
+ timer_ = rclcpp::create_timer(
+ this, get_clock(), 1s, std::bind(&DummyOperationModePublisher::onTimer, this));
+
+ // State
+
+ // Diagnostics
+}
+
+void DummyOperationModePublisher::onTimer()
+{
+ autoware_adapi_v1_msgs::msg::OperationModeState msg;
+ msg.stamp = this->now();
+ msg.mode = autoware_adapi_v1_msgs::msg::OperationModeState::AUTONOMOUS;
+ msg.is_autonomous_mode_available = true;
+ msg.is_in_transition = false;
+ msg.is_stop_mode_available = true;
+ msg.is_autonomous_mode_available = true;
+ msg.is_local_mode_available = true;
+ msg.is_remote_mode_available = true;
+
+ pub_operation_mode_state_->publish(msg);
+ pub_operation_mode_state_adapi_->publish(msg);
+}
+
+} // namespace dummy_operation_mode_publisher
+
+#include
+RCLCPP_COMPONENTS_REGISTER_NODE(dummy_operation_mode_publisher::DummyOperationModePublisher)
diff --git a/dummy/dummy_operation_mode_publisher/src/dummy_operation_mode_publisher.hpp b/dummy/dummy_operation_mode_publisher/src/dummy_operation_mode_publisher.hpp
new file mode 100644
index 0000000000000..7e7f574d8b4db
--- /dev/null
+++ b/dummy/dummy_operation_mode_publisher/src/dummy_operation_mode_publisher.hpp
@@ -0,0 +1,58 @@
+// Copyright 2024 TIER IV, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef DUMMY_OPERATION_MODE_PUBLISHER_HPP_
+#define DUMMY_OPERATION_MODE_PUBLISHER_HPP_
+
+// include
+#include
+
+#include
+
+namespace dummy_operation_mode_publisher
+{
+
+class DummyOperationModePublisher : public rclcpp::Node
+{
+public:
+ explicit DummyOperationModePublisher(const rclcpp::NodeOptions & node_options);
+ ~DummyOperationModePublisher() = default;
+
+private:
+ // Parameter
+
+ // Subscriber
+
+ // Publisher
+ rclcpp::Publisher::SharedPtr
+ pub_operation_mode_state_;
+ rclcpp::Publisher::SharedPtr
+ pub_operation_mode_state_adapi_;
+
+ // Service
+
+ // Client
+
+ // Timer
+ rclcpp::TimerBase::SharedPtr timer_;
+
+ void onTimer();
+
+ // State
+
+ // Diagnostics
+};
+} // namespace dummy_operation_mode_publisher
+
+#endif // DUMMY_OPERATION_MODE_PUBLISHER_HPP_