У меня есть набор изображений с метаданными, включая временные метки и данные одометрия из набора данных. Я хочу преобразовать эти временные серии изображений в розовую сумку, поэтому я могу легко подключить ее к коду, который я буду писать, и переключать данные в реальном времени после тестирования. К учебник, процесс программно сохранения данных в rosbag, кажется, работает как:(Python) Преобразование временных рядов изображений в сумку ROS
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()
бы синтаксис тогда: ч = std_msgs.msg.Header() s.Header = ч bag.write ('Скорость', s) Я не знаком с программным размещения в rosbag, так отправляет несколько сообщений с тем же именем (например, в том цикле, который я написал) нормально? Кроме того, что является синтаксисом для преобразования массива numpy (или opencv-изображения) в датчик_msg.Image? Не удается найти соответствующий синтаксис Python. –
@HalT Я добавил пример того, как установить метку времени для сообщений (нет необходимости создавать отдельный объект заголовка). Для преобразования изображений OpenCV в сообщения ROS см. [ROS wiki для cv_bridge] (http://wiki.ros.org/cv_bridge/Tutorials/ConvertingBetweenROSImagesAndOpenCVImagesPython). – luator