Rosbag常见使用汇总

前言

在 ROS 系统中,可以使用 bag 文件来保存和记录系统的运行状态,比如录制激光雷达和相机话题的 bag 包,然后回放用来,进行联合外参标定。

1.官方的 rosbag 教程的笔记

https://wiki.ros.org/rosbag/Commandline

1.常用的几个操作

虽然命令很多,但是实际工作中常用的命令也就如下几个:

1. 1.录包

录制所有话题:

rosbag record -a

录制指定话题,设置 bag 包名:

rosbag record -O bag_name.bag /topic1_name /topic2_name /xxx

有时候我录制包不设置名称,默认按照录制结束时间命名:

rosbag record /topic1_name /topic2_name /xxx

1. 2.回放

常用的是以暂停的方式启动,防止跑掉数据:

rosbag play --pause record.bag

你也可以直接回放:

rosbag play record.bag

建图过程中有时会设置以 0.5 倍速回放,也就是以录制频率的一半回放:

rosbag play -r 0.5 record.bag

回放完后,我一般会用 rostopic list 查看下发布的主题,确保是我需要的:

rostopic list

1. 3.修复

如果遇到拷到bag包中文件损坏,提示需要 reindex,执行一下即可,不过数据好像会少一些:

rosbag reindex xxx.bag

下面是完整的 rosbag 用法,需要的可以查找下

2.rosbag 基本作用

rosbag 工具可以录制一个包、从一个或多个包中重新发布消息、查看一个包的基本信息、检查一个包的消息定义,基于 Python 表达式过滤一个包的消息,压缩和解压缩一个包以及重建一个包的索引。

rosbag 目前常用的命令如下(fix 和 filter 暂时没有用到):
record:用指定的话题录制一个 bag 包
info:显示一个 bag 包的基本信息,比如包含哪些话题
play:回放一个或者多个 bag 包
check:检查一个 bag 包在当前的系统中是否可以回放和迁移
compress:压缩一个或多个 bag 包
decompress:解压缩一个或多个 bag 包
reindex:重新索引一个或多个损坏 bag 包

在实际的项目的中,用的最多的就是 record、info 以及 play 功能,先录制想要的话题包,录制完毕检查下包的信息,最后再回放作为算法的输入,下面就详细学习下上面命令的用法。

3.rosbag record使用

record 订阅指定主题并生成一个 bag 文件,其中包含有关这些主题的所有消息,常见用法如下。
录制系统中所有的话题:

rosbag record -a

录制指定的话题 topic_names 数据

rosbag record <topic_names>
比如录制 rosout、tf、cmd_vel 3 个话题,录制的 bag 包以时间命名:
rosbag record rosout tf cmd_vel

指定数据包名称,如指定文件名 20250104.bag:

rosbag record -O 20250104.bag 
注意:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱凤的小光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值