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
Resources
Related projects
CSEF · 2004
Software and Hardware Implementation of Rubik's Cube Solving Algorithms
ISEF · 2016
Python Cubed
CSEF · 2015
Devising an Effective Way of Solving the Rubiks Cube
CSEF · 2008
Writing a Rubik's Cube Solver using Mathematica
CSEF · 2011
Cube It: Creating a 3D Rubik's Cube Simulator in C++ and OpenGL
CSEF · 2014
Speedsolving a Rubik's Cube: Which Algorithms First?
CSEF · 2015
Human vs. Robot: The Final Showdown
ISEF · 2017
Vision Based Robot Intelligence
Closest projects by meaning, across every fair and year in the corpus.
Browse more like this
Source: California Science & Engineering Fair public projects