  For multi-robot teams with heterogeneous capabilities, typical task
allocation methods assign tasks to robots based on the suitability of the
robots to perform certain tasks as well as the requirements of the task itself.
However, in real-world deployments of robot teams, the suitability of a robot
might be unknown prior to deployment, or might vary due to changing
environmental conditions. This paper presents an adaptive task allocation and
task execution framework which allows individual robots to prioritize among
tasks while explicitly taking into account their efficacy at performing the
tasks---the parameters of which might be unknown before deployment and/or might
vary over time. Such a \emph{specialization} parameter---encoding the
effectiveness of a given robot towards a task---is updated on-the-fly, allowing
our algorithm to reassign tasks among robots with the aim of executing them.
The developed framework requires no explicit model of the changing environment
or of the unknown robot capabilities---it only takes into account the progress
made by the robots at completing the tasks. Simulations and experiments
demonstrate the efficacy of the proposed approach during variations in
environmental conditions and when robot capabilities are unknown before
deployment.
