Nao Plays Connect Four
Written by Harry Fairhead   
Sunday, 01 January 2012

The Nao robot is a mega toy just waiting to happen. If you want proof just watch it interact while playing the game Connect Four.

Allowing for the fact that these are still early days it seems to work - Nao is appealing as an opponent and how many chess playing programs can you say that about?

When AI meets robotics new things start to happen.




The Connect Four project is something that a team at HumaRobotics is working on and they have made a few well polished videos of their progress. If you know the Connect Four game you can probably see that actually working out an algorithm to play the game is fairly straightforward - you can use a classic minimax algorithm for example. This is indeed what Nao uses in these videos, but the game play isn't the point - the playing is.

It is the ability to interact with the human player and the world that is the real experiment here. First a skin tracking algorithm is used to make the robot locate the player. The player puts a hand in front of the robot's face and it tracks the hand to locate the player. It then uses face recognition to identify the opponent. Nao then locates the board and the holes - using Bayesian particle filters. Once the state of the board has been determined, a classical alpha-beta pruning minimax search determines the move to be played - this is the easy part.

The final phase is that Nao stands up and moves towards the board - the recognition phase needs Nao to be further away from the board. The robot next requests a token from its opponent, locating and picking up a piece is currently too difficult, and then uses a multi-linear controller algorithm to place the disc in the correct slot - currently operating at around an 80% success  rate.

It also checks that the play has been made correctly and if not asks its opponent to make the play for it. There are some "emotional" routines that react to cheating, failing etc. to increase the level of interaction with the human.

All of the processing is done internally using the embedded PC and no off-robot CPU is involved.

There are two videos to show Nao working. The first is a little short and doesn't feature enough of the robot in action - it is much more of a promo than the second video:


A second video presents Nao explaining what it is doing and is slow in places:


If you are lucky enough to have a Nao, you can download version 0.4 of the software and try it out for yourself. Eventually it would make a really good robot app for the RobotAppStore.

Perhaps this really is the way robots finally become a mass market.

More Information


Robot-Apps A View of the Future - Infographic

An App Store For Robots

Next Generation NAO Robot

Nao and Heather Knight on CNN


To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.




TypeScript 5.5 Adds ECMAScript Set Support

TypeScript 5.5 is now available as a release candidate. This version adds support for the proposed ECMAScript Set methods, as well as inferred type predicates and the ability to narrow expressions for [ ... ]

GitHub Announces 2024 Accelerator Cohort Winners

GitHub has announced the companies chosen to form the next cohort for GitHub Accelerator. Find out about this year's participating projects, all of which focus on AI.

More News

C book



or email your comment to:



Last Updated ( Sunday, 06 February 2022 )