Rubik’s cube solving robot

I designed and built this robot for PARI, a robotics firm in Pune, India. The robot was created to demonstrate how a pneumatic manipulation system can perform delicate tasks, in this case solving a Rubik's cube.

The robot coordinates a pneumatic system with a microprocessor running a complex algorithm. It demonstrates that pneumatics can carry out delicate and complex motions with precision and accuracy. The robot also features an image processing system and a servo-operated mechanism, making it a prime example of a coordinated, closed-loop robotic system.

The robot uses FESTO pneumatic cylinders—both linear and rotary—controlled by FESTO direction control valves. Induction sensors provide feedback on each cylinder’s position. The double-solenoid-operated direction control valves are managed by a relay board, which is driven by a PIC16F877A microcontroller. This controller uses an optically isolated system to drive TIP122 Darlington pair transistors, which, in turn, drive the relays. The PIC16F877A does not run the cube-solving algorithm but converts higher-level moves into robot-specific moves and drives the appropriate relays.

The cube-solving algorithm runs on an ARM9-based microprocessor with a WinCE operating system. Using pruning and move tables, the algorithm finds a solution within 30 moves for any valid cube combination in 30 seconds. This solution is communicated to the PIC16F877A via serial communication, which then converts it into robot-specific moves.

A Nikon L10 camera photographs each face of the cube. The PIC controls the interface between the camera and the ARM9 board. A servo motor, also controlled by the PIC, operates the camera, and the images are stored on the ARM9 board’s flash memory. The program includes an HSB conversion algorithm to ensure accurate color recording under various lighting conditions.

The robot takes 180 seconds to photograph and find a solution to the scrambled cube. Physically solving the cube takes approximately 300 seconds, varying with the complexity of the scrambling, with a maximum time of 400 seconds.

The CAD image above shows a novel feature of the robot : a commercially available Nikon L10 camera, operated by a Servo Motor. The Servo motor switched the camera on and took photographs of the cube when required by the main algorithm.

The pneumatic connection diagram shows how the 8 pneumatic motors were connected to a series of valves so that each could be individually controlled via a solenoid and relay.