In this paper, we describe a framework for coordinating multiple robots in the execution of a cooperative manipulation task. The coordination is distributed among the robots that use modular, hybrid controllers in order to execute the task. Different plans and models of the environment are built using a mix of global and local information and can be shared by the team members using wireless communication. Our framework uses models and metrics of computation, control, sensing and information in order to dynamically assign roles to the robots, and define the most suitable control hierarchy given the requirements of the task and characteristics of the robots. To test our framework, we have developed a object oriented simulator that allows the user to create different types of robots, to define different environments and to specify various types of control algorithms and communication protocols. Using the simulator, we have been able to test the execution of this task in different scenarios with different numbers of robots. We can verify the efficacy of the robot controllers, the effects of different parameters on the system performance and the ability of the robots to adapt to changes in the environment. Results from experiments with two real robots and with the simulator are used to explore the multi-robot coordination in a cooperative manipulation task.