When we can control the environment precisely, we should as it simplifies so much---we can clip the world to platonic geometries and apply common tricks and trigonometry.
But when we cannot control the environment, really really much harder. Self-driving cars are a good example how hard it is, and still mainly focusing on relatively structured environments like cities.
Arbitrary environment is really where many expect AI/ML/probabilistic robotics to bring some necessary flexibility. And still out of reach today, except some astonishing use cases like Roombas (well, more like a best effort approach, still).
A shift from a single company handling all software and hardware inhouse, to a sort of divergence of the two. Kind of cool to think about, given how that sort of divergence seems to have happened in a few other areas (a dell computer runs windows, an LG TV runs apple TV, your iphone runs airbnb, spotify, instagram)