ROS:rosbag的简单使用命令
rosbag的简单使用命令
1、在终端或者sh脚本中启动数据录制功能
rosbag record -O subset /turtle1/cmd_vel /turtle1/pose
2、如果在 launch 文件中使用 rosbag record 命令,如下:
<node pkg="rosbag" type="record" name="bag_record" args=" -O temp /topic1 /topic2"/>
记录/topic1 /topic2名字为temp.bag,录制的包放在home文件夹的.ros文件夹中。
3、如果想改变消息的发布速率,可以用下面的命令,-r 后面的数字对应播放速率。
rosbag play -r 2 temp.bag
4、如果希望 rosbag 循环播放,可以用命令
rosbag play -l temp.bag # -l== --loop
5、如果只播放感兴趣的 topic ,则用命令
rosbag play temp.bag --topic /topic1
6、在上述播放命令执行期间,空格键可以暂停播放
7、将file_name.bag文件中topic_name话题的消息转换到Txt_name.txt文件中
rostopic echo -b file_name.bag -p /topic_name > Txt_name.txt
8、过滤,生成temp1.bag只保留/odom,/tf数据
rosbag filter temp.bag temp1.bag "topic=='/odom' or topic=='/tf'"
9、过滤,保留某个时间段的数据
rosbag filter my.bag out.bag "t.to_sec() >= 123564.77 and t.to_sec() <= 794545.88"
10、如果播放两个及以上bag包,那么他们会第一帧对其,后面根据第一帧时间戳的时间差播放。
```yaml
rosbag play recorded1.bag recorded2.bag
11、启动5秒进入包中。
rosbag play -s 5 recorded1.bag
12、启动时暂停按空格键开始回放
rosbag play --pause record.bag
13、修复xxx.bag.active
修复方法:
rosbag reindex xxx.bag.active
此时会生成一个 .bag.org.active 后缀的中间文件,不用管。然后运行:
rosbag fix xxx.bag.active rename.bag
rename.bag 为输出的修复rosbag
版权声明:本文为qq_14977553原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。