The answer is, of course, robot learning. Walk into nearly any robotics research lab these days and you will find teams working on tackling the issue. Rather, building more complex and capable systems will almost certainly involve a combination of solutions.