ROSBAG的使用以及TF_OLD_DATA问题
1.rosbag录包
1.1 放了方便起见,先创建一个专门的文件夹,存放数据包
cd ~/bagfiles
rosbag record -a
其中-a
选项表示将当前发布的所有 topic 数据都录制保存到一个 rosbag 文件中。
1.2 也可以只记录某些感兴趣的 topic,命令如下:
rosbag record /topic_name1 /topic_name2 /topic_name3
2.rosbag回放
rosbag play <bagfile>
2.1 相当于以两倍的速度通过按键发布控制命令时产生的轨迹。 -r
后面的数字对应播放速率。
rosbag play -r 2 <bagfile>
2.2 如果希望 rosbag 循环播放,可以用命令
rosbag play -l <bagfile> # -l == --loop
2.3 如果只播放感兴趣的 topic ,则用命令
rosbag play <bagfile> --topic /topic1
2.4在上述播放命令执行期间,空格键可以暂停播放。
3.TF_OLD_DATA问题
rosbag 录包回放时报错
TF_OLD_DATA ignoring data from the past for frame odom at time 1.57864e+09 a
先roscore
后rosparam set /use_sim_time true 系统参数可以生效
再rosbag play <bagfile>
最后启动自己程序(例如slam_gmapping)