1.rosbag 录制使用
rosbag record -a 录制所有话题
rosbag record /topic_name 录制指定话题
rosbag record -O filename.bag /topic_name 指定生成数据包的名字filename.bag
rosbag record -b 4092 /topic_name 扩大录制内存限制
Record a bag file with the contents of specified topics.
1.2 如果在 launch 文件中使用 rosbag record 命令,如下:
<node pkg="rosbag" type="record" name="bag_record" args="/topic1 /topic2"/>
2.rosbag info
2.1 rosbag info指令可以显示数据包中的信息:
rosbag info filename.bag
2.2 输出yaml配置参数 Print information in YAML format.
rosbag info -y filename.bag
3.rosbag 回放使用
rosbag info name.bag 查看话题名称、类型、消息数量
rosbag play name.bag 回放数据包
rosbag play -r 1.5 name.bag 1.5倍速回放,按一定频率回放,-r选项用来设定消息发布速率;
rosbag play -l name.bag 按一定频率回放,-l选项用来设定循环播放;
rosbag play name.bag --topic /topic1 只播放感兴趣的topic;
-d 用来指定延迟播放的时间(sec);
-s参数用来指定从几秒开始;rosbag play -s 10 xx.bag
-u 参数表示仅播放包的前几秒信息;rosbag play -u 10 xx.bag
-r 参数用来指定播放速度
-l 循环播放
在上述播放命令执行期间,空格键可以暂停播放。
如果想修改topic名字播放
rosbag play file.bag /topic_name:=/reame_topic_name
#//topic_name是原topic,reame_topic_name是新topic
4.rosbag操作
4.1 将file_name.bag文件中/odom话题的消息转换到odom_name.txt文件中
rostopic echo -b file_name.bag -p /odom > odom_name.txt
4.2 rosbag文件提取话题数据,生成temp1.bag只保留/odom,/tf数据
rosbag filter temp.bag temp1.bag "topic=='/odom' or topic=='/tf'"
4.3 过滤,保留某个时间段的数据
rosbag filter my.bag out.bag "t.to_sec() >= 123564.77 and t.to_sec() <= 794545.88"
4.4 如果播放两个及以上bag包,那么他们会第一帧对其,后面根据第一帧时间戳的时间差播放。
rosbag play recorded1.bag recorded2.bag
4.5 启动5秒进入包中。
rosbag play -s 5 recorded1.bag
4.6 启动时暂停按空格键开始回放
rosbag play --pause record.bag