Rubik’s Cube Robots

The Magic Cube has attracted the attention of many informatitians and engineers, so a lot of interesting technical inventions, programs and Rubik’s Cube Robots have been developed.

The goal is to create an algorithm which finds the optimal solution (as few steps as possible), and to build robotic arms which can handle the Rubik’s Cube with the required precision and speed. An accurate scanning system is required so the robot can recognize the colors of the scrambled cube.

In the last years numerous interesting projects have been realized. We have to mention the human-like RuBot2 (see picture above), developed by Irish roboticist and inventor Pete Redmond. This masterpiece appears in the 2010 Guinness Book of World Records as the world’s fastest Rubik’s Cube Robot, which means that it can solve a cube in less than 50 seconds.

The Sub1 Robot

In January 2016 a robot called the Sub1 robot broke the World Record for the fastest cube-solving robot, with a time of 0.887 seconds at the Cubikon Store, Munich. A speedcube that had been modified to work with the robot (inspected and accepted by the World Cube Association) was scrambled with a randomly generated computer scramble. Upon the start of the solve, two cameras connected to a laptop took two pictures, each showing three sides of the cube. Using these pictures, the laptop mapped out the cube and the colours and calculated a solution of 20 moves using an implementation of Herbert Kociemba’s Two-Phase-Algorithm, and these moves were transferred to the robot which performed them and solved the puzzle. The project took hundreds of hours of coding, constructing and tuning, but as a result it is the “first robot that can independently inspect and solve a Rubik’s Cube in under 1 second.”


Sub1 robot in action

The record was approved by Guinness World Records in mid-February, and breaks the previous record held by Cubestormer 3, a Lego robot that solved the puzzle in a time of 3.253 seconds.

Watch the video of an even faster 0.637 seconds result, published in November 2016:

MultiCuber 3

In March 2014, the Lego MultiCuber 3 robot set the Guiness World Record for solving a 4×4 Rubik’s Cube in 1 minute 18.68 seconds. The robot uses a smartphone to scan each of the puzzles 6 sides, a process which takes approximately 10 seconds of the solve. Once the cube has been scanned, a digital version appears on the smartphone screen and a solution is calculated (in the World Record video, the solution was 51 moves). The cube is lowered to make rotations and raised to make turns. The smartphone follows along with the digital image and a timer. The instability of the 4×4 cube is potentially a reason why a robot similar to the Sub1 robot could not be produced; six arms hold each centre piece of the Sub1 cube, whereas the 4×4 has no fixed centres, which means a less vigorous style of turning has to be developed.

A new robot has recently been developed by the same company to solve the 4×4 Rubik’s Cube even quicker, which currently holds the Unofficial World Record for a 4×4 solved by a robot (29.67 seconds). It uses the same smartphone-camera setup to take images of the cube and produce a digital version on the smartphone, however this process takes only 3 seconds compared to its predecessor’s 10. This record has not been verified by Guiness World Records as the cube needs to be scrambled and solved in the presence of an invigilator.

Multicuber 999 received the title of the largest-order cube solver from Guiness.

     
Mindcuber 3 and Mindcuber 999

The Lego Mindstorms kit

The MindCuber is a robot constructed from Lego Mindstorms kits. Online you can find instructions on how to build this robot yourself using the Mindstorms EV3 kit. It is one of the first self-buildable solving robots and can solve any 3×3 Rubik’s Cube you may have lying around the house.

Microcontroller based Lego Rubik’s Cube robot

This Lego robot has four degrees of freedom and it can solve the Cube in about 30 minutes with a similar algorithm that is using the Online Rubik’s Cube Solver Program. The robot is not connected to the computer so the color detection, the Rubik’s algorithm, the control of the LCD display and of the 4 DC motors are all done by a single PIC microcontroller.

First of all the robot scans the colors of the scrambled Rubik’s Cube, then calculates the steps leading to the solution. Finally using its mechanical arms executes these operations on the cube. In the meantime the current position of the cube is displayed in real time on a small LCD screen attached to the microcontroller.

The color detector flashes a red, a green and a blue LED. While a LED is on the system measures with a photoresistor the amount of the reflected light and knowing these three values (RGB) it can determine the color of the examined surface. The scanner reads a corner, an edge and a centerpiece at the same time. The robot has to move every piece under the scanner to scan the whole cube . This process takes 3 minutes.

After the scanning the robot knows the colors of the 54 surfaces of the cube and in function of this it has to find a series of permutations which leads to a solved position of the cube.

Mathematically the Rubik’s Cube is a permutation group. The program treats the cube as an ordered list where the rotations are operations which rearrange that list according to a certain pattern. Using these operations the program solves the cube in all the 24 possible orientations and takes that solution which has the least steps. After that simplifies the solution eliminating the unnecessary moves. For example UU’ = 0 or UUU = U’.

The robot has four degrees of freedom and all arms are moved by DC engines. Couldn’t use more powerful or faster engines because the Lego pieces could fall apart or the Cube might fly away. 🙂
The microcontroller controls the engines through H-bridges, and always knows the actual position of the robotic arms thanks to the sensors mounted on the appropriate spots.

While the robot is working we can follow the scanning and solving procedure on a 4096 colors 98×67 LCD display which has a built-in control circuit so it can be connected directly to the microcontroller.

It is not so complicated to implement the color detection, the robot control, the Rubik’s algorithm, and the control of the graphical display separately but doing all these task using a single PIC 18F4620 microcontroller makes this project so special.

See the robot in action

Comments

comments