Better way for many-to-many robot communication

asked 2017-10-01 20:35:47 -0600

jasonwang538@gmail.com gravatar image

Hi everyone.

I am using ROS-Gazebo in my project for simulating natural swarming behaviour. I used publish/subscribe topic as a manner for simulating inter-robot communication. I feel okay for one-to-many message broadcast through publishing topic. However, I am confused about how to achieve many-to-one message reception. More specifically, I am wondering how to let one robot receive many messages through rostopic system. I cannot create one callback function for each message. In my case, it could be even 20~30 robots in simulation. Except for creating20~30 callback functions in each robot's controller, does anyone have any better idea for achieving this multi-message reception in one robot.

BTW, messages from all robots follow the same structure. I appreciate any information from you.

Jason

edit retag flag offensive close merge delete

Comments

If messages from all robots have the same structure, they have the same type, like for example std_msgs/String?

You could use the same callback for any topic that publishes messages of a specific type.

Ruben Alves gravatar image Ruben Alves  ( 2017-10-02 06:20:25 -0600 )edit

Thanks Ruben. Actually, even though each topic use the same data structure, it needs some specific compution for the data. I am trying to add some parameters to callback function to achieve it. I found boost::bind could be a possible solution. I am trying that.

jasonwang538@gmail.com gravatar image jasonwang538@gmail.com  ( 2017-10-02 17:07:17 -0600 )edit