Coordinating Multi-Robot Teams In The Presence Of Motion Constraints And Heterogeneity