编写一个简单的ROS2发布者节点,使用Python编写。该节点启动时向控制台输出“你好”,并且每隔2秒发布一次问候消息。
时间: 2025-01-05 16:43:51 浏览: 30
以下是一个使用Python编写的简单ROS2发布者节点示例,该节点启动时会向控制台输出“你好”,并且每隔2秒发布一次问候消息:
```python
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
class SimplePublisher(Node):
def __init__(self):
super().__init__('simple_publisher')
self.publisher_ = self.create_publisher(String, 'greeting_topic', 10)
timer_period = 2.0 # seconds
self.timer = self.create_timer(timer_period, self.timer_callback)
self.i = 0
self.get_logger().info('你好')
def timer_callback(self):
msg = String()
msg.data = f'你好,这是第 {self.i} 条消息'
self.publisher_.publish(msg)
self.get_logger().info(f'发布消息: {msg.data}')
self.i += 1
def main(args=None):
rclpy.init(args=args)
simple_publisher = SimplePublisher()
rclpy.spin(simple_publisher)
simple_publisher.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
```
这个节点的主要功能如下:
1. 导入必要的ROS2和Python库。
2. 创建一个继承自Node的SimplePublisher类。
3. 在类的构造函数中:
- 创建一个发布者,发布到'greeting_topic'主题。
- 创建一个定时器,每2秒调用一次timer_callback方法。
- 向控制台输出"你好"。
4. 定义timer_callback方法:
- 创建一条String类型的消息。
- 设置消息内容。
- 发布消息。
- 向控制台输出发布的消息内容。
5. 定义main函数:
- 初始化ROS2客户端库。
- 创建SimplePublisher节点实例。
- 启动ROS2的spin循环。
- 清理资源并关闭ROS2。
6. 如果此脚本作为主程序运行,则调用main函数。
要运行这个节点,你需要先确保已经正确安装并设置了ROS2环境。然后,将此代码保存为.py文件并使用Python解释器运行。
阅读全文
相关推荐



















