It's only difficult because Uber has to deal with humans - will their cell phone be charged? Will they hear the notification on their phones? What if they forgot to indicate that they've taken the rest of the day off? What if they claim to be available but are actually in the restroom at a fast food restaurant? It's supposed to be a 6 minute drive but what if they make a wrong turn? What if they glance quickly at the map of where they're supposed to go but saw it wrong, then muted the turn-by-turn so they could blast some daft punk? Working with human agents is hard.
If you have always-online self-driving cars, then you've already done the hard part. Directing them where to go is trivial.