In the previous chapters, we have seen how to build a robot and simulate it in ROS. We also learned how to make our robot base autonomous and our robot arm intelligent enough to move to a pose in the environment. We also covered the waiter robot analogy (defined in Chapter 4, Handling Complex Robot Tasks Using State Machines), where we used multiple robots to collectively communicate between each other and serve customers, and using more robots to deliver products to houses (an application we defined in the previous chapter).
In this chapter, we will learn how to bring multiple robots into a simulation environment and establish communication between them. You will be introduced to a few methods and workarounds in ROS regarding how to differentiate between multiple robots and communicate effectively between them. You will also see the issues that arise...