前言:
为了方便调试测试,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版权协议,转载请附上原文出处链接和本声明。