A Multi-Robot Task Assignment Framework for Search and Rescue with Heterogeneous Teams