【ros】4.rosbag的使用

原文链接
rosbag的使用

1.录制包

录制所有的topic: rosbag record -a
录制指定的topic: rosbag record /topic1 /topic2


2.查看包的信息

rosbag info your.bag

这个命令主要是拿来看一个包里的topic,时长,信息类型等。对于比较小的包,直接rosbag play xx.bagrostopic list即可。但像KITTI转出来的,20多G的,打开实在太慢了,相比起来,info足够。


3.播放包rosbag play

rosbag play xx.bag

-d参数可以用来指定延迟播放的时间(Sec)

-s参数用于指定从几秒开始:

从10秒开始播放:rosbag play -s 10 xx.bag

-u参数表示仅播放包的前几秒信息:
仅播放前十秒:rosbag play -u 10 xx.bag

-r 参数用来指定播放速度:
2倍速播放: rosbag play -r 2 xx.bag

从120s开始播放,只播放20s,就是播放120s~140s的时间段:
rosbag play xx.bag -s 120 -u 20


4.包过滤 rosbag filter

rosbag filter命令可以用python指令来过滤包,能够使用的内置变量为topic, m , t.secst.nsecs
按时间过滤的时候,需要注意的是应该用UNIX时间,这个时间可以用rosbag info来确定。

rosbag filter input.bag output.bag "t.to_sec() <= 1284703931.86"

而如果需要截取一段时间,可以用and来连接:
rosbag filter input.bag output.bag "t.to_sec() <= 1284703931.86 and t.to_sec()>=1284703935.86"

按话题过滤的话,可以这样写:

过滤单个topic
rosbag filter input.bag output.bag "topic == '/tf'"

只保留/velodyne_point_cloud/visensor/imu,使用or==:
rosbag filter input.bag output.bag "topic == '/velodyne_point_cloud' or topic =='/visensor/imu' "

过滤两个topic:/velodyne_point_cloud/visensor/imu,使用and!=:
rosbag filter input.bag output.bag "topic != '/velodyne_point_cloud' and topic !='/visensor/imu' "

猜你喜欢

转载自blog.csdn.net/u011754972/article/details/121509639