解析ROSbag图片,点云。

在网上看了一些处理ROSbag文章,简单总结一下放在下面。写于2022.06.06,有点6啊。

第一,针对ROSbag的2D图像数据:

  1. 可以写ros .launch直接拿到。参考ros-wiki.

  2. 可以用ros python API解析bag拿到。 下面代码可以通过 docker pull leo345/rosbag2info 拿到镜像运行。

 1 # ROS bag image, lidar data extraction.
 2 # Using next lidar-frame of camera-frame as lidar data output.
 3 import cv2
 4 import os
 5 import rosbag
 6 from cv_bridge import CvBridge
 7 bag_list = os.listdir('./rosbag')
 8 
 9 
10 def main():
11     # Process bag one by one.
12     for bag_name in bag_list:
13         bag = rosbag.Bag('./rosbag/' + bag_name, "r")
14         bridge = CvBridge()
15         bag_data = bag.read_messages()
16         count = 0
17         timestamp = '0000000000'
18         print('Extracting work starts from ' + os.getcwd())
19         os.makedirs('./raw_data/%s/pcd' % bag_name[:-4])
20         os.makedirs('./raw_data/%s/imgs' % bag_name[:-4])
21         for topic, msg, t in bag_data:
22             # Extract camera info.
23             if topic == '/kitti/camera_color_left/image_raw':
24                 count += 1
25                 cv_image = bridge.imgmsg_to_cv2(msg, 'rgb8')
26                 timestamp = str(msg.header.stamp.to_sec())
27                 img_name = timestamp + '.jpg'
28                 cv2.imwrite('./raw_data/%s/imgs/' % bag_name[:-4] + img_name, cv_image)
29 
30             # Extract lidar info.
31             if topic == '/kitti/velo/pointcloud':
32                 lidar_data_name = timestamp + '.csv'
33                 lidar_data_path = os.path.join('./raw_data/%s/pcd/' % bag_name[:-4] + lidar_data_name)
34                 with open(lidar_data_path, 'w') as f:
35                     f.write(str(msg))
36 
37         print("Extracting ended, And in %s, image total frames num is: " % bag_name[:-4] + str(count))
38 
39 
40 if __name__ == '__main__':
41     main()
View Code

  当然上面代码顺便解析了lidar的数据存下来。

第二,针对ROSbag的3D点云数据:

  1. 可以用ros python API解析bag拿到。 (如上面的code)

  2. 比较好的一个包 bagpy( without ros env.)

尤其是第二个方法,非常方便。。how to详见GitHub.

 

That's all!

 

posted @ 2022-06-06 19:10  江右无双  阅读(598)  评论(0)    收藏  举报