Becca 6 Chase Demo

Brandon Rohrer's Blog

A robot puppy learned to chase a ball around a room. By the time it was a couple of weeks old, it got pretty good. It's brain is Becca, a general machine learning algorithm.

The robot is able to sense the direction of the ball and how far away it is. It can also tell how far away each of the walls are and when it bumps into something. Whenever it bumps into the ball with its mouth, it "catches" the ball. The old ball disappears and a new one re-appears someplace else. The robot can move forward and backward and spin both directions.

When the robot is new, it doesn't know the difference between near and far, right and left. Even when the ball is directly ahead of it, the robot has no idea that moving forward will let it catch the ball. It doesn't know the meaning of any of its sensors or actions in the world. Becca learns this by trial and error, with a mixture of curiosity-based exploration and doing what has worked best in the past.

Becca 6 code
Code for the simulated world

Brandon
@_brohrer_
LinkedIn
March 8, 2015

If you found this helpful, I also recommend How to Turn Your House into a Robot. I work at Microsoft, but my opinions are my own.