Home | Tutorials | Wiki | Issues
Ask Your Question

What's the advantage of not using the global ROS callback queue in gazebo plugins?

asked 2013-03-20 01:44:08 -0500

piyushk gravatar image

I am writing a visual plugin to display an image stream inside of gazebo. Unfortunately, AFAIK the Image Transport API does not provide an API to change the callback queue, as is done in most gazebo plugins for ROS. Using the global callback queue seems to be working fine.

Since I only stream images sporadically, I can drop ImageTransport and use the standard subscribtion approach to use an alternate callback queue. However, is there an advantage to doing so?


edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2013-07-15 16:20:45 -0500

gerkey gravatar image

You should be fine with the global roscpp callback queue.

I believe that we started using custom callback queues in the Gazebo plugins within the drcsim package in an effort to minimize latency in handling of incoming messages. We were specifically trying to provide a fast update loop for certain command messages used to control the Atlas robot. Even in that situation, we probably overused them, relative to the performance gains that we made.

edit flag offensive delete link more


Per-plugin callback queues have been used in Gazebo plugins long before DRC and I asked a similar question more than a year ago on ROS answers, and again in this forum in January: http://answers.gazebosim.org/question/962/callback-queues-and-locking-in-gazebo/. I would be glad if someone could comment on the more specific questions 2. and 3. there. The IMHO unnecessary callback queue constructs are still actively used in the latest version of gazeborospkgs for the upcoming hydro release.

Johannes Meyer gravatar imageJohannes Meyer ( 2013-07-16 14:23:57 -0500 )edit
Login/Signup to Answer

Question Tools



Asked: 2013-03-20 01:44:08 -0500

Seen: 1,682 times

Last updated: Jul 15 '13