编写一个ROS2节点,节点中包含一个定时器,每隔3秒钟输出一个随机整数python代码
时间: 2024-10-07 16:06:13 浏览: 53
在Robot Operating System (ROS) 2中,你可以使用Python编写一个节点,利用`rclpy`库来创建定时器并打印随机整数。下面是一个简单的示例:
```python
# 导入必要的ROS2库
import rclpy
from rclpy.node import Node
from rclpy.time import Time
import random
class RandomTimer(Node):
def __init__(self):
super().__init__('random_timer_node')
# 创建一个每3秒触发一次的定时器
self.timer = self.create_timer(3, self.timer_callback)
def timer_callback(self):
# 获取当前时间
now = self.get_clock().now()
# 生成一个随机整数
random_number = random.randint(0, 100)
# 输出到ROS日志
self.get_logger().info(f"Random number at {now.to_msg()}: {random_number}")
def main(args=None):
rclpy.init(args=args)
node = RandomTimer()
rclpy.spin(node) # 运行节点直到程序退出
node.destroy_node() # 关闭节点
rclpy.shutdown()
if __name__ == '__main__':
main()
```
在这个代码中,我们首先导入了所需的库,然后创建了一个名为`RandomTimer`的节点,并设置了3秒的定时器。每当定时器触发时,它会调用`timer_callback`函数,在那里生成一个随机数并将其记录下来。
运行这个节点后,你会在控制台上看到每隔3秒打印出一个随机整数及其对应的当前时间戳。
阅读全文