Distributed Heterogeneous Multi-robot Task Allocation in Communication-limited Environments