We propose a distributed approach to solve the multi-robot task allocation problem. This problem consists of two distinct sets: robots and tasks. The objective is to assign tasks to robots while optimizing a given criterion. This problem is known to be $\mathcal {NP}$ -hard even with small numbers of robots and tasks. The field of survivors’ search and rescue is adopted: i.e. some Unmanned Aerial Vehicles are used to rescue a number of survivors. We choose this problem, given its importance in everyday life: (a) survivors are the tasks; (b) Unmanned Aerial Vehicles are the robots; and (c) the objective is to rescue the maximum number of survivors while minimizing the makespan (time elapsed between rescuing the first and last survivors) and traveled distances. The approach is composed of two phases: inclusion and consensus. During the inclusion phase, each Unmanned Aerial Vehicle builds a bundle of survivors using the Ant Colony System. During the consensus phase, Unmanned Aerial Vehicles resolve conflicts in their bundles of survivors (i.e. a survivor is being chosen by more than two Unmanned Aerial Vehicles), using an adequate coordination mechanism. The approach is implemented using Java programming language and JADE multi-agent Framework. The performance of our approach is compared to five state-of-the-art multi-robot task allocation solutions. Simulation results show that the proposed approach outperforms these solutions, in terms of: (i) makespans; (ii) traveled distances; and (iii) exchanged messages.