In engineering today, we usually think about how to control every little thing. But some tasks can be so complex to figure out that manual programming is nearly impossible. That’s when self learning systems can become a huge advantage. Instead of controlling every little line of code, you allow the system to try different movements, saving the one that kind of works, then try new movements based on that. By the trial and error method, the robot will find the best locomotion technique for its own shape, whether it is walking, jumping, rolling or moves that no human have ever thought about before! This is very similar to how evolution works and it can be used for robots as well, as demonstrated in this video from IEEE Spectrum. You loose detailed control, your robot might not choose the solution you think is the right one, and at the end you will probably have no idea how the program actually work, but the robot moves! This is the very frontier of robot development!