ROS系统下将.bag文件转为.jpg格式与.txt格式的方式
说明
在ubuntu系统下对使用rosbag对话题中的信息进行保存是一个很好的方式,但是.bag文件是一个数据包,下文包含对两种.bag文件中数据形式进行获取与转换的方式。
前置准备(相关工具包下载,如果已有请直接跳过)
要将.bag文件中存储的视频信息转换为可查看的图片,你可以使用ROS中的两个工具:rosbag和image_view。以下是具体的步骤:
安装ROS工具包
sudo apt-get update
sudo apt-get install ros-<distro>-rosbag ros-<distro>-image-view
这里的是你正在使用的ROS版本的名称,例如melodic、noetic等。
导入ROS环境变量
source /opt/ros/<distro>/setup.bash
.bag转.jpg
下面的顺序一定要注意,先输入保存可视化图像的语句再进行.bag文件的播放。否则可能会漏掉前面的部分图片信息
举例如下:
# step1 保存
rosrun image_view extract_images _sec_per_frame:=0.1 image:=/camera/image_raw
# step2 播放
rosbag play your_bag_file.bag
使用以下命令播放.bag文件:
rosbag play your_bag_file.bag
将your_bag_file.bag替换为你要转换的.bag文件的路径。
播放.bag文件时,可视化图像消息
rosrun image_view image_view image:=/camera/image_raw
这将打开一个图像窗口,显示来自/camera/image_raw话题的图像消息。
保存可视化的图像消息为图片文件
rosrun image_view extract_images _sec_per_frame:=0.1 image:=/camera/image_raw
这将在当前目录下创建一个名为extracted_images的文件夹,并将图像消息保存为.jpg格式的图片文件。
.bag转.txt
如果.bag中获取的是数据包,可以直接使用下面的语句进行格式转换:
rostopic echo -b <bag_name>.bag -p /<topic_name> > <new_name>.txt
# 举例
rostopic echo -b data1.bag -p /tag_detections > data1.txt