Rubik's Cube Solving Robot, Year Two: Faster Algorithm, Graphical User Interface, and Vision

CSEF · 2005 Electricity & Electronics

Overview

Objectives/Goals The goal was to write the software and create the hardware required to autonomously solve a Rubik's cube. Methods/Materials The physical Rubik's cube solver was made primarily out of Plexiglas. Stepper motors were used to turn the faces of the cube. All code was written in C or C++. For the second year, the Kociemba algorithm was implemented, which works in much the same way as the prior algorithm, using iterative deepening searches, except that it works through fewer nested subgroups, cutting down the number of moves needed to solve the cube. A Graphical User Interface (GUI) was also created which added ease of use to the robot. The use of cameras has been implemented to read the state of the cube, as opposed to "remembering" it. A color recognition scheme was devised, comparing red, green and blue (RGB) values of preset sample points. For the second year, the RGB values were converted to hue, saturation and value (HSV) values, and the sample points were input by the user. Results There was some trouble stopping the solver from jamming. This was fixed by making all turns clockwise and slightly overshooting the goal so that the cube would self correct if slightly misaligned. The Kociemba algorithm solved the cube in roughly half the time and half as many moves as the Thistlethwaite algorithm. The GUI worked nicely, making the robot much more user friendly. The cameras worked more consistently, but still not to a point at which they can be depended on. Conclusions/Discussion Although the goal was reached, the project can still be improved upon. The main area that could use improvement is the color recognition algorithm. The implementation of neural networks along with an edge detection algorithm would be optimal. Now that the Kociemba algorithm has been implemented, the next step would be God's algorithm, which is still an impossibility with modern computing power.

Summary statement

During year two of the project the Rubik's Cube solving robot was refined to use a faster solving algorithm, a graphical user interface, and visual recognition.

Help received

Father was programming mentor and helped format final report, Herbert Kociemba provided advice on visual recognition, Mother helped create project board.

Awards (1)

  • Category Award

Competition history

  • CSEF 2005 Electricity & Electronics · Entry S0704

Resources

Related projects

Closest projects by meaning, across every fair and year in the corpus.

Browse more like this

Source: California Science & Engineering Fair public projects

Save projects to your library

Sign in with Google to keep track of projects you find interesting, organized into folders. An account also raises your daily allowance for “Has this been done?”, and lets you create a key for the MCP server with a much higher limit than anonymous use. Browsing stays public.

Continue with Google