ROS:rosbag play系列指令(详解)

本文详细介绍了ROSbagplay的多种指令,包括播放多个bag文件、设置播放速度、添加时间戳显示、暂停与恢复播放、设定输出缓冲区大小、指定播放话题、延迟播放、循环播放等。这些指令帮助用户灵活控制ROS录制数据的回放,以适应不同的调试和分析需求。
摘要由CSDN通过智能技术生成

Rosbag play系列指令

Rosbag play bagFile01.bag bagFile02.bag …

播放多个录制文件:

由于我们的bag录制文件并不是同一时间录制,因此bag录制文件会因录制顺序不同播放顺序也不同,同时两个录制文件播放的时间间隔等于两个录制文件录制的时间间隔。

Rosbag play --bags=bagFile01.bag bagFile02.bag …

和上面那个指令作用一样:

Rosbag play -p prefix_name bagFile01.bag

给被发布的话题添加前缀,相当于给话题添加命名空间,但是改变话题也就意味着“原topic通信双方将断开联系“:

Rosbag play -q bagFile01.bag

停止在工作台上打印播放的信息(不显示播放完成的进度):

Rosbag play -i bagFile01.bag

立即播放录制文件,不再等待0.2s了:

Rosbag play --pause bagFile01.bag

暂停播放,等待按空格开启播放:

Rosbag play --queue length bagFile01.bag

设定输出缓冲区大小(输出缓冲区队列长度,单位byte):

有输入输出缓冲区用以暂时存放读写期间的文件数据而在内存区预留的一定空间。 即利用主存的存储空间来暂存从磁盘中输入输出的信息。 目的是缓和CPU 与 I/O 设备间速度不匹配的矛盾。 减少对 CPU 的中断频率,放宽对 CPU 中断响应时间的限制。 提高 CPU和 I/O 设备之间的并行性。 输入输出缓冲区通过磁盘缓存来实现,磁盘缓存本身并不是一种实际存在的存储介质,它依托于固定磁盘,提供对主存储器存储空间的扩充。

Rosbag play --clock bagFile01.bag

播放录制文件时顺带显示录制文件的时间戳:

时间戳指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

Rosbag play --clock --hz=freq_value bagFile01.bag

以freq_value频率显示时间戳:

但是说实在话,添加了--clock和--hz之后感觉没啥变化。

Rosbag play --delay delaytimevalue bagFile01.bag

延迟delaytimevalue秒,然后公布时间:

Rosbag play -r mulispeedvalue bagFile01.bag

以mulispeedvalue倍数倍速播放录制信息:

Rosbag play -s start_time bagFile01.bag

从start_time时刻开始播放录制消息:

Rosbag play --duration=Duration bagFile01.bag

录制文件持续播放Duration秒:

Rosbag play --skip-empty=Duration bagFile01.bag

在超过Duration秒的时间内,没有任何消息,那就跳过他们:

我们看到总播放时长从6.99变为了6.48,这就说明文件中空消息持续长达0.1秒的总时长为6.99-6.48=0.5秒。

Rosbag play --loop bagFile01.bag

重复播放录制文件直至人为的结束:

Rosbag play -k bagFile01.bag

播放录制文件结束之后,负责播放录制信息的节点并未结束进程:

播放的时长已经超过了bag文件录制的总时长,负责播放录制信息的节点仍未结束进程:

Rosbag play bagFile01.bag --topics topic01 topic02 …

播放录制文件中指定话题的消息:

播放时长为3.35秒左右,说明/turtle1/cmd_vel这个话题发布消息的时长为3.35秒左右。

Rosbag play bagFile01.bag --pause-topics topic01 topic02 …

等到播放到topic01、topic02…话题相关消息的时候暂停播放,等待在命令行输入空格后再继续播放录制的消息文件:

Rosbag play --wait-for-subscribers bagFile01.bag

如果我们录制的消息都是publisher发布的消息,那么我们在使用rosbag play进行播放时,一定要等到subscribers准备好之后,再进行消息的发送:

一定要将话题名称与话题类型分清楚,话题名称就像我们的变量名称一样有a,b,c…等无限多个,但是变量的类型的个数不是无穷的,变量的类型有int、float…等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

肥肥胖胖是太阳

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

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

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

打赏作者

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

抵扣说明:

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

余额充值