ROS2 listener 存储
时间: 2023-08-03 16:08:40 浏览: 47
在ROS2中,Listener节点可以使用Python中的文件操作函数将收到的消息存储到磁盘中。您可以使用Python中的open()函数打开一个文本文件,并使用write()函数将消息写入该文件。下面是一个示例代码,它将收到的消息存储到名为“messages.txt”的文本文件中:
```python
import rclpy
from std_msgs.msg import String
def callback(msg):
with open('messages.txt', 'a') as f:
f.write(msg.data + '\n')
def listener():
rclpy.init()
node = rclpy.create_node('listener')
sub = node.create_subscription(String, 'chatter', callback)
while rclpy.ok():
rclpy.spin_once(node)
rclpy.shutdown()
if __name__ == '__main__':
listener()
```
在上面的代码中,我们首先使用Python的with语句打开名为“messages.txt”的文本文件,并将其保存在变量f中。然后,在回调函数中,我们使用f.write()函数将收到的消息写入文件中,并在每行末尾添加一个换行符。最后,在主循环中,我们使用rclpy.spin_once()函数等待来自其他节点的消息,直到程序被中断为止。
当您执行上面的代码时,它将开始运行,并将收到的消息存储到“messages.txt”文件中。如果您打开该文件,您将看到每行包含一个消息。如果您希望将消息存储为二进制数据或其他格式,您可以使用Python的pickle或JSON库等适当的库来实现。