ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Multi-Robot tb3, one ROS Master

asked 2021-06-16 04:14:34 -0500

Zaynab el Mawas gravatar image

Hello, I am trying to connect multiple turtlebot3 burger to one master ROS on a different machine (portable pc). I tried to do the MASTER_URI and HOSTNAME solution, but the launch file of the turtlebot itself stopped working and was not accessible by the master. My final goal is to get the data of the sensors in a synchronized matter and give a command to the robots also in a simultaneous time. I tried to use Chrony with Terminator terminal broadcasting, but it is not the same thing, because each of the robots will be giving and getting data according to its own clock. Any Ideas?

edit retag flag offensive close merge delete

Comments

Generally speaking ROS Master is the controller for multiple CPUs in a single robot. It should not be used to synchronize multiple robots.

kscottz gravatar image kscottz  ( 2021-06-17 20:56:45 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2021-06-20 10:30:26 -0500

Mike Scheutzow gravatar image
  1. Running multiple robots on a single ros-master is difficult and requires significant experience. For each robot, you will need to make sure that the node names, topic names and TF frame names do not conflict with any other robot on that master.
  2. Getting every robot to collect sensor data with tight synchronization is difficult to impossible in a real system. A more workable approach is to accurately timestamp every sensor message when it is created, then gather all the messages and post-process them to interpolate each sensor's data to a common timestamp.
edit flag offensive delete link more

Comments

Thank you Mike Scheutzow for your Reply.

I created namespaces for each of the robots, and TF prefix for the frames. The most challenging part is indeed the collection of data. I compared and joined the recorded ROSBAGs in rqt_bag. In Fact, I am working on a Collaborative localization and Fusion approach. So in the code, the measurement will be taken in consideration if it is in the interval of time of the iteration of the most frequent sensor, but I was hoping that there will be a method to obtain this for the same sensors of the 3 robots at considerably close times (given that the sampling frequency varies for the same sensor).

So I deduce that the proposed approach is the most optimal one given the complexity of the ROS_MASTER implementation.

Thank you a lot for the clarification.

Zaynab el Mawas gravatar image Zaynab el Mawas  ( 2021-06-21 03:01:31 -0500 )edit

I'm pleased to hear you got it working. One thing to be aware of is that "TF prefix" has been deprecated for a long time, probably because node authors kept implementing it incorrectly. So if you begin using any new node types in your ROS system, TF prefix may not work correctly for that node. If it does not, you have to manually configure proper frame name(s) for that node.

Mike Scheutzow gravatar image Mike Scheutzow  ( 2021-06-23 06:56:37 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2021-06-16 04:12:41 -0500

Seen: 128 times

Last updated: Jun 16 '21