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






8 responses to “Autonomous Robotic Rubik’s Cube Solver”

  1. thomasjamesbarr Avatar

    Nice Spencer!
    – …

    Nice Spencer!
    -your second cousin? TJ

  2. doubleboost Avatar

    very clever ?
    very clever ?

  3. MrAbbe800 Avatar

    i didn’t have time …
    i didn’t have time to think lol
    cool robot? and wery fast

  4. jazzymaxie Avatar

    Awesome Job, …
    Awesome Job, Spencer!? ~Maxine Hall

  5. Jan Otterstrom Avatar
    Jan Otterstrom

    oohhhhhhhhhhhhhhhhhhhh dem!!!? Its wonderfull!!!congratulation!!Saludos desde Costa Rica

  6. IAssemble Avatar

    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! 🙂

  7. bloganfoo Avatar

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

  8. MrMIGboy Avatar

    Way to go Spencer …
    Way to go Spencer about time you got the video up ill put up? some links

Leave a Reply