Robotics StackExchange | Archived questions

rate of subscribing

can i change the rate of subscribing or publishing?

Asked by ad26kr on 2014-04-16 19:59:29 UTC

Comments

Answers

You can use the ros::Rate to specify the frequency that you would like to loop at

Asked by adreno on 2014-04-26 21:33:56 UTC

Comments

I know how to use ros::Rate to control the loop of publisher , but for subscriber, how to implement it?

Asked by sxin on 2016-02-03 10:34:33 UTC

topic_tools/throttle can subscribe to a topic and republish it at a different rate or bandwidth. I don't think there's a way to do it directly in a subscriber.

Asked by Dan Lazewatsky on 2014-04-27 11:36:37 UTC

Comments

You can use a client/server node pair (and a queue/buffer in the server node) to avoid lag build up. For example, if you are gathering camera images in a node and publishing them slightly faster than a subscriber node can display them, lag will build up over time. Take this difference to an extreme and it is essentially how a high speed camera is used. If you implement the client/server + queue, the node collecting camera images will still gather frames faster than the display node can show them, but you can pick keyframes out of the queue to eliminate any lag up to that point.

I was unaware of the topic_tools/throttle solution. That sounds like it would accomplish what I described above, but you would need to know a priori the processing rate of the display node, right?

Asked by mechanicalmanb on 2014-07-13 21:08:55 UTC

Comments