ROS学习笔记15:rosbag数据记录与回放(ROS常用组件)

前言:

        为了方便调试测试,ROS提供了数据记录与回放的功能包rosbag,可以帮助开发者收集ROS系统运行时的消息数据,然后再离线状态下回放。

        首先,启动键盘控制乌龟例程所需的所有节点,rosbag的功能将基于该例程讲解。

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

1.记录数据:

(1)查看当前ROS系统中存在的话题:

rostopic list -v

(2)使用rosbag抓取这些话题的消息,并且打包成一个文件放置到指定文件夹中:

mkdir bagfiles         
cd bagfiles            

(3)键入指令记录指定话题消息:

rosbag record -a -O cmd_record

        解释:rosbag record就是数据记录的命令;-a参数意为所有发布的消息;-O参数意为存为压缩文件。

PS:可能出现的问题如下

        这个警告意思是:暂停了,没有进行数据的录制。 原因在于ROS tf 的发布时间晚于 topic 的时间,Rviz 在做 msg 的 tf 变换时,默认把过时的 msg 丢掉。

 解决方案:

rosparam set /use_sim_time false

相关链接:

【ROS】rosbag数据记录与回放时遇到/use_sim_time设置问题_Amelie_xiao的博客-CSDN博客_rosbag回放数据

(4)录制数据库,按ctrl+c即可停止数据记录:

 (5)生成的.bag文件如下:

2.回放数据:

(1)rosbag info <your bagfile>命令:

        查看数据记录文件的详细信息。

(2)rosbag play <your bagfile>命令:

        回放指定的bag文件。


版权声明:本文为qq_71734878原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。