From 0c39f888d0d34ed2bab01cb8b05651a50ac4da16 Mon Sep 17 00:00:00 2001 From: yadnyeshwar Date: Sun, 8 Mar 2026 07:31:51 +0000 Subject: [PATCH 1/2] Add minimal rclpy timer example demonstrating create_timer() usage Signed-off-by: yadnyeshwar --- rclpy/topics/minimal_timer/README.md | 33 +++++++++++++++++++++ rclpy/topics/minimal_timer/minimal_timer.py | 29 ++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 rclpy/topics/minimal_timer/README.md create mode 100644 rclpy/topics/minimal_timer/minimal_timer.py diff --git a/rclpy/topics/minimal_timer/README.md b/rclpy/topics/minimal_timer/README.md new file mode 100644 index 00000000..4094f457 --- /dev/null +++ b/rclpy/topics/minimal_timer/README.md @@ -0,0 +1,33 @@ +# Minimal Timer Example + +This example demonstrates how to create a simple timer node in ROS 2 using rclpy. + +## Overview + +ROS 2 timers allow nodes to execute a callback function periodically. +They are commonly used for tasks such as monitoring loops, periodic updates, +or scheduled processing. + +This example creates a node that executes a callback every second using +`create_timer()`. + +## Running the Example + +Run the node with: + +```bash +python3 minimal_timer.py + +``` + +You should see log messages printed once per second. + +## Example output + +Timer callback triggered +Timer callback triggered +Timer callback triggered + +## Key Concept + +`create_timer()` schedules a callback to be executed periodically. diff --git a/rclpy/topics/minimal_timer/minimal_timer.py b/rclpy/topics/minimal_timer/minimal_timer.py new file mode 100644 index 00000000..d0eee4bd --- /dev/null +++ b/rclpy/topics/minimal_timer/minimal_timer.py @@ -0,0 +1,29 @@ +import rclpy +from rclpy.node import Node + + +class MinimalTimer(Node): + + def __init__(self): + super().__init__('minimal_timer') + + timer_period = 1.0 + self.timer = self.create_timer(timer_period, self.timer_callback) + + def timer_callback(self): + self.get_logger().info('Timer callback triggered') + + +def main(args=None): + rclpy.init(args=args) + + minimal_timer = MinimalTimer() + + rclpy.spin(minimal_timer) + + minimal_timer.destroy_node() + rclpy.shutdown() + + +if __name__ == '__main__': + main() From 4ca020b1d7db2944e35131c2dd32145c2e2f8704 Mon Sep 17 00:00:00 2001 From: yadnyeshwar Date: Mon, 9 Mar 2026 17:04:25 +0000 Subject: [PATCH 2/2] Move minimal_timer example under rclpy/timers to align with rclcpp examples Signed-off-by: yadnyeshwar --- rclpy/{topics => timers}/minimal_timer/README.md | 0 rclpy/{topics => timers}/minimal_timer/minimal_timer.py | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename rclpy/{topics => timers}/minimal_timer/README.md (100%) rename rclpy/{topics => timers}/minimal_timer/minimal_timer.py (100%) diff --git a/rclpy/topics/minimal_timer/README.md b/rclpy/timers/minimal_timer/README.md similarity index 100% rename from rclpy/topics/minimal_timer/README.md rename to rclpy/timers/minimal_timer/README.md diff --git a/rclpy/topics/minimal_timer/minimal_timer.py b/rclpy/timers/minimal_timer/minimal_timer.py similarity index 100% rename from rclpy/topics/minimal_timer/minimal_timer.py rename to rclpy/timers/minimal_timer/minimal_timer.py