Saturday, November 19, 2011
Jerome Laplace from Generation Robots sent us some information about their excellent work getting a Nao humanoid robot to play 'Connect 4' versus a human opponent.
There are several interesting things about this video and the technical approach taken for getting everything working. The video production quality is excellent and helps explain to a non-technical audience how humans need to perform roughly the same functions as the robot without getting distracted by mathematics or jargon.
The 'Connect 4' game has some interesting properties in terms of robotics, the game pieces are geometrically uniform cylinders with easy to distinguish colors and the playing field is a grid of circles with a known and fixed spacing. If you were to design a game for a robot to play using computer vision you would be hard pressed to make something better, given that the playing field is basically a camera calibration pattern.
One other nice thing is how the robot is designed to uses it's weaknesses as a strength. If there is a problem with the robot's game play it can detect the failure and ask the human player to correct the placement of the game piece. This robustness also gives it the ability to detect cheating on the part of the human player and the robot can react as needed.
While for now this is a single game, it is pretty clear that this approach could be extended to playing checkers, Othello, or perhaps even a game of Go. It is easy to imagine an accretion of such hacks to the point where a generalized solution becomes possible, at the very least it seems reasonable to build a state machine that can make a reasonable guess as to which game the human wants to play and load the correct computer vision hacks and AI game play code.
I was initially uncertain about the business model behind the development of an emotive game engine for robots to play with children. After contemplation I now believe that this idea holds some promise as a de-virtualization of the Tamagotchi.