Python读取ros2信息
时间: 2023-08-10 18:02:47 浏览: 132
ros2yolo_python
要在Python中读取ROS2信息,可以使用ROS2提供的Python客户端库。这个库叫做rclpy,它提供了与ROS2通信的一些基本功能。
以下是一个简单的例子,演示如何使用rclpy订阅一个ROS2主题并打印接收到的消息:
```python
import rclpy
from std_msgs.msg import String
def callback(msg):
print('Received: ', msg.data)
def main(args=None):
rclpy.init(args=args)
node = rclpy.create_node('my_subscriber')
sub = node.create_subscription(String, 'my_topic', callback)
try:
rclpy.spin(node)
except KeyboardInterrupt:
pass
node.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
```
在这个例子中,我们使用rclpy.init()初始化rclpy,然后创建一个节点(node)对象。我们还创建了一个订阅者(subscriber)对象,它将订阅名为“my_topic”的主题,并在接收到新消息时调用callback()函数。最后,我们调用rclpy.spin()函数来保持节点的活动状态,直到程序被中断。
在callback()函数中,我们简单地打印接收到的消息数据。这里我们使用了ROS2的std_msgs/String消息类型。
当你运行这个Python脚本时,它将订阅名为“my_topic”的主题,并打印出接收到的消息数据。你可以在其他地方发布这个主题的消息,然后在这个Python脚本中看到它们的输出。
阅读全文