目录
写在前面
ROS2也有rosbag类似命令,可以记录指定主题的数据到文件中,也可以将.bag文件再以主题形势发布出来,实现数据的回放。除了命令行操作,,也可以编程实现。
本文将总结ROS2的bag相关指令。(请注意区分ROS与ROS2。ROS版本可参考下文。)
ROS:rosbag的简单使用命令https://blog.csdn.net/qq_14977553/article/details/105192156总得来说,ros2 bag有三类指令,分别为info、play和record。其中,info用于将信息打印到屏幕;play用于从bag文件中回放ROS数据;record用于将ROS数据记录到bag文件。
info Print information about a bag to the screen
play Play back ROS data from a bag
record Record ROS data to a bag
1. ros2 bag record——记录
记录指定主题消息,消息数据包可通过play命令回放。
建议:在执行该记录指令之前,先用ros2 topic list查询在线可用的topic名。
#记录单个主题消息
ros2 bag record <topic_name>
#记录多个主题消息
ros2 bag record -o <file_name> <topic_name_1> <topic_name_2>...<topic_name_n>
# 记录系统内所有主题消息
ros2 bag record -a
可以看到当前目录下创建了一个以rosbag2+时间戳的目录,目录下有一个metadata.yaml文件,内容是数据记录的相关信息介绍,另外一个db3格式文件,就是我们记录下来的主题数据。
2. ros2 bag info——输出到屏幕
查看主题数据记录文件信息。
ros2 bag info <file_dir_name>
3. ros2 bag play——回放
回放记录下来的主题数据,可通过ros2 topic echo查看回放数据,也可以通过rqt工具查看。
注意:如果记录的主题数据有自定义消息,则需要配置环境变量。
ros2 bag play <file_dir_name>