我有一组包含时间戳和里程数据的带元数据的图像数据集。我想将这些图像的时间序列转换为rosbag,以便在测试后轻松地从我的代码中拔出并切换到实时数据。根据教程,程序化地将数据保存到rosbag的过程似乎是这样的:
对于图像,数据类型不同但过程相同。然而,当我有数据应该彼此关联时,例如每个图像应该与时间戳和里程记录配对。这个示例代码似乎是分别写入“闲聊”和“数字”的。有什么方法可以发布数据,使得每个图像都自动与其他数据配对?
换句话说,我需要帮助以下代码中的注释行:
import rosbag
from std_msgs.msg import Int32, String
bag = rosbag.Bag('test.bag', 'w')
try:
str = String()
str.data = 'foo'
i = Int32()
i.data = 42
bag.write('chatter', str)
bag.write('numbers', i)
finally:
bag.close()
对于图像,数据类型不同但过程相同。然而,当我有数据应该彼此关联时,例如每个图像应该与时间戳和里程记录配对。这个示例代码似乎是分别写入“闲聊”和“数字”的。有什么方法可以发布数据,使得每个图像都自动与其他数据配对?
换句话说,我需要帮助以下代码中的注释行:
import rosbag
import cv2
from std_msgs.msg import Int32, String
from sensor_msgs.msg import Image
bag = rosbag.Bag('test.bag', 'w')
for data in data_list:
(imname, timestamp, speed) = data
ts_str = String()
ts_str.data = timestamp
s = Float32()
s.data = speed
image = cv2.imread(imname)
# convert cv2 image to rosbag format
# write image, ts_str and s to the rosbag jointly
bag.close()