rosbag详细使用——一文学会rosbag

rosbag详细使用——一文学会rosbag_第1张图片

 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 命令,如下:

 

 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

你可能感兴趣的:(研究生入门,ROS从入门到精通,ubuntu,c++,程序人生)