【ROS】ROS 发布和订阅压缩图像消息 CompressedImage
#!/usr/bin/env python
import rospy
from sensor_msgs.msg import CompressedImage
class ImagePublisher:
def __init__(self):
# 初始化节点
rospy.init_node('image_publisher', anonymous=True)
# 创建发布者,发布名为/compressed_image的CompressedImage类型消息,频率设置为10Hz
self.publisher = rospy.Publisher('/compressed_image', CompressedImage, queue_size=10)
# 设置循环的频率
rate = rospy.Rate(10)
# 设置消息数据,这里需要替换为实际的压缩图像数据
# 假设compressed_image_data是一个包含压缩图像数据的字节串
compressed_image_data = b'...'
while not rospy.is_shutdown():
# 创建CompressedImage消息对象
message = CompressedImage()
message.header.stamp = rospy.Time.now()
message.format = "jpeg"
message.data = compressed_image_data
# 发布消息
self.publisher.publish(message)
# 等待一个循环周期
rate.sleep()
if __name__ == '__main__':
try:
ImagePublisher()
except rospy.ROSInterruptException:
pass
这段代码创建了一个ROS节点,该节点负责发布名为/compressed_image
的CompressedImage类型的消息。在循环中,它创建了一个CompressedImage消息对象,设置了消息头的时间戳,指定了图像的格式,并填充了图像数据。然后,该节点以10Hz的频率发布这个消息。在实际应用中,需要替换compressed_image_data
为实际的压缩图像数据。
评论已关闭