【ROS学习】通过 topic_tools/throttle 改变话题的发布频率、发布带宽

写在前面

已经录制好数据集,但是想要更改话题发布的频率,也就是类似于“抽帧” 的方式,ROS中提供了一个功能包:topic_tools/throttle. ROS-wiki 网站介绍topic_tools/throttle 介绍也很清晰,使用方法也很简单。这里主要对原链接做一个翻译。

一、介绍

throttle 是一个能够以最大带宽或者最大消息频率重新发布输入的话题数据到另外一个话题。这对于具有带宽限制的用途(比如通过无线链路链接)是非常有用的。它能够在任意的 message 类型下进行工作

二、使用方法

2.1 参数

~wall_clock (bool, default: False)

如果为True,则根据墙上的时钟时间(wall clock time)执行所有速率测量,无论模拟/日志时间是否有效。 
(New in ros_comm 1.5.3) 

~unreliable (bool, default: False)

如果为True,则倾向于通过输入数据的不可靠连接。 
(原文: If True, prefer to negotiate an unreliable connection for the inbound data.)
(New in ros_comm 1.5.3) 

~lazy (bool, default: False)

如果为True,只有至少有一个订阅者订阅了输出话题,当前节点才会订阅到输入话题上(有订阅输出话题,这个节点才会工作)。 
(New in ros_comm 1.5.3) 

2.2 控制发布频率

功能:控制 输入话题intopic按照 最大频率的限制 输出到outtopic。
命令格式:

throttle messages <intopic> <msgs_per_sec> [outtopic]

参数解释:

intopic: 订阅的输入话题
msgs_per_sec: 每秒允许通过的最大messages数。
outtopic: 发布的输出话题 (default: intopic_throttle) 

举例说明:
将激光雷达数据 /laser_scan 限制到最大 1hz,并发布到 /laser_scan_low_freq

rosrun topic_tools throttle messages /laser_scan 1.0 /laser_scan_low_freq

launch 文件写法:

<node pkg="topic_tools" type="throttle" name="camera_throttle" args="messages /laser_scan 5.0 /laser_scan_low_freq" output="screen" respawn="true"/>    

2.3 控制发布带宽

功能:控制 输入话题intopic按照最大带宽的限制输出到outtopic。
命令格式:

throttle bytes <intopic> <bytes_per_sec> <window> [outtopic]

参数解释:

intopic: 订阅的输入话题
bytes_per_sec: 每秒允许通过的最大字节数数。
window: 采样窗口, 单位s。 (原文: Window (in seconds) over which to sample)
outtopic: 发布的输出话题 (default: intopic_throttle) 

举例说明:
将激光雷达数据 /laser_scan 带宽限制到最大 1KBps,并发布到 /laser_scan_low_bandwidth

 rosrun topic_tools throttle bytes /laser_scan 1024 1.0 /laser_scan_low_bandwidth

launch 文件写法:

<node pkg="topic_tools" type="throttle" name="camera_throttle" args="bytes /laser_scan 1024 1.0 /laser_scan_low_bandwidth" output="screen" respawn="true"/>    

参考链接

[1] ROS wiki. topic_tools/throttle [EB/OL]. http://wiki.ros.org/topic_tools/throttle, 2019-06-11/2023-01-11.

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值