Autonomous Robotic Rubik’s Cube Solver

This robot is the product of six months of designing, programming, and testing. David Campeau and I entered this in the regional science fair and were chosen to attend the 2010 ISEF in San Jose. The basic design of the robot is based off of “Danny’s Rubik’s Cube Solver”. However, after the development of eight prototypes, the design is much different. David wrote the GUI that interfaces all of the solver’s components. A lot of work went into making a program that could consistently recognize the cubes colors in different lighting conditions. The program that finds the solution to the cube was written by Herbert Kociemba. We’re hoping to maybe further develop this and get the solving time down a couple seconds. This particular solve was about 25 moves and took 51 seconds. Not only is this robot fast, but it is also very robust. It will seldom make a mistake and will very consistently solve any cube in less than one minute.

This was the 2010 abstract of our project and paper:

Our goal was to construct a robust and relatively simple robot that could solve a 3x3x3 Rubik’s Cube in less than one minute.
The robot was constructed using a Lego Mindstorms NXT set. Programming of the robot’s basic functions was performed using LabVIEW and the NXT Toolkit. Higher level programming was done primarily using Matlab. A Matlab graphical user interface (GUI), featuring a virtual cube mirroring the cube being solved, was programmed to launch and monitor the solution. The cube’s faces were systematically scanned using a robot mounted USB webcam. We developed an image processing algorithm that analyzed the webcam images and sent the initial cube orientation to a two-phased solving algorithm programmed in C. The solver was optimized to rapidly find a short (less than 30 moves), but not necessarily an optimal solution (less than 21 moves), which could require substantially more computing time. A Matlab routine then interfaced the solution to the LabVIEW routines on the NXT brick via a USB connection, and initiated execution of the robotic moves, controlled by the NXT brick.
The final cube solving process from initial scanning to final completion required less than one minute. This project necessitated several hundred hours of work; it took approximately six months to construct and program a functional robot. More than eight prototypes of the robot and ten prototypes of the GUI/solver were developed to reach our goal. Challenges overcome included inaccuracy of Lego servo motors, flimsy plastic Lego pieces, image processing under changing lighting conditions, and interfacing between system components.

Duration : 0:1:29

Related Reading:


Be Sociable, Share!

8 thoughts on “Autonomous Robotic Rubik’s Cube Solver

  1. Great adaptation of …
    Great adaptation of Danny’s design. I love the two-handed cube flip! Not as fast as? “Yellow Cube Machine” or “CubeStormer” but pretty fast for a robot using only a single NXT. Well done! 🙂

  2. Interesting. Would …
    Interesting. Would you be? interested in showing this off at the next Rubik’s Cube competition in Rochester?

Leave a Reply