Multi-Robot Coordination and Cooperation with Task Precedence Relationships