A Multi-robot Task Assignment Framework for Search and Rescue With Heterogeneous Teams