I think this week was one of the most difficult weeks in my internship. The idea to launch two TurtleBots in one simulation world is not random. We want to demonstrate following behavior. I can drive the first TurtleBot and the second will follow it. There is a follower package which works in real world. For instance, TurtleBot can follow a person or another robot. The package has not supported simulation. The script is the same for real and simulation world, but you can encountered some problems with launch parameters, settings and features which work only with real robot.
You should understand the structure of ros to find a problem. I will try to explain you idea. Firstly, you launch roscore. Roscore is the center of your system. It consists of three components: rosout, parameter server and master. Rosout is a standard output. Parameter server saves parameters. You can modify them.
You can visualize your system, find information about nodes and connections between them. Imagine that your system is a graph. Each node of this graph has logic and functionality. The edges connect nodes which can communicate. The master knows all information about this graph.
Here is a graph of default system. It is quite big, but it is not complicated to understand.
Here is a zoom of one part of this graph. If you select a node (node is an oval) then this node will be highlighted. There is a node named /mobile_base_nodelet_manager. Also there are inner and outer edges. Inner edges mean that the node subscribes to these topics. These topics are blue. Outer edges mean the node publishers data to these topics. These topics are green. There is a cyan topic. The node subscribes and publishers to this topic. More complicated system will have more nodes.
The better you know the system, the faster you find a problem. It takes a lot of time to find a problem. Now the follower demo works! I have to record video and write a new lesson. Then we will discuss a new challenge for the TurtleBot tutorial!