Samuel Muir '11 (left) and Jacob Sandlund '11 (right) with their Rubik's cube-solving robot.
May 4, 2010
By Melissa Vogrin ’10
Most people struggle to solve a Rubik’s cube. However, electrical and computer engineering (ECE) majors Samuel Muir ’11 and Jacob Sandlund ’11 no longer have to worry about that. They have constructed a stationary robot that solves the cube for them.
Muir and Sandlund are students in an exploratory ECE course, Robotics Interfacing, taught by assistant ECE professor Dr. Joel Schipper.
Their robot can solve a mixed-up Rubik’s cube in an average of 40 moves, which takes about seven minutes. The robot makes approximately one move every 10 seconds. Muir explains, “Humans tend to solve the cube in less time than robots do, but robots use fewer moves to do so.”
Building a robot was the final project for the class, and though Muir and Sandlund only worked on theirs for about a month, they used theories and information they had learned throughout the course. “Solving Rubik’s cubes was a hobby of mine in high school,” Muir said. “I had seen similar robots on YouTube. When we needed an idea for a final project, I suggested it.”
Designing, programming, and constructing the robot was a collaborative effort. ECE assistant lab director Nick Schmidt ’91 built the hardware, and he helped with the designing process. Associate professor of mathematics Dr. Alberto Delgado assisted Muir with the group theory behind the algorithm that is used to solve the cube. Associate ECE professor Dr. Gary Dempsey helped design the controls theory, which was used to make the motor that turns the tray of the robot. Dr. Yufeng Lu, assistant ECE professor, assisted Sandlund with the camera interfacing.
When creating the robot, Sandlund primarily focused on the camera interfacing and color detection of the Rubik’s cube, and Muir worked on the algorithm used to solve the cube and to create the robotic interfacing (moving parts).
The project has three main components: the robot; a microcontroller, which is essentially a smaller, slower computer that has less memory; and a camera. After the scrambled Rubik’s cube is placed on the robot’s tray, the microcontroller reads the cube’s colors and diagnoses how many moves it will take to solve the cube. Then, it calibrates the colors based on the center square. The robot raises the cube up and manipulates it, solving it layer by layer.
Sandlund says the biggest challenge was getting the camera to recognize all the cube’s colors. He explains, “The hardest part was getting usable images from the camera. After a while, we got images that were recognizable, but the colors were messed up. It looked like everything was an eerie green color.”
After the camera was working, the project started to come together. Sandlund and Muir were able to detect the colors of all nine Rubik’s cube squares. After they found the colors, Muir’s algorithm solved the cube in memory, and then solved the cube using the robot.
“It was really neat to see how the cube was manipulated with the flipping, turning, and twisting, until it was completely solved,” Sandlund said. “It was exciting and also a real relief to see everything working together as planned.”
- Video: Rubik's Cube-solving Robot