Enabling robots to follow abstract instructions and complete complex dynamic tasks