Rubiks Cube Solver
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ckociemba Inital project Jan 6, 2018
prunetables Inital project Jan 6, 2018
.DS_Store Inital project Jan 6, 2018
Makefile Inital project Jan 6, 2018
README.md Add video Jan 10, 2018
convert_moves.py
convert_moves.pyc Inital project Jan 6, 2018
javares.txt Inital project Jan 6, 2018
robot.h Inital project Jan 6, 2018
robot.ino Inital project Jan 6, 2018
robot_picture.png
solve
solve.c Inital project Jan 6, 2018
test.py Inital project Jan 6, 2018

README.md

Rubik's Cube Robot

During the summer after my freshman year, my friend Jake and I built a robot that can solve a Rubik's cube in ~30 seconds. We had a small 3D printer, allowing us to create our design from scratch. We used a Raspberry Pi for the color detection/move planning, an Arduino for the motor control, 8 servo motors, super glue, a wooden board, and our 3D printed parts.

The design took many iterations and tweaks to finally work. One of our more clever solutions involved gluing rubber bands to the inside of our control arms to increase the friction between the arm to hold the cube up.

Having only four arms meant needing to be very smart about arm movement. We used the Kociemba algorithm to solve the cube but needed to customize the solution for our setup. With our highly optimized planning, redundant moves are removed by allowing simultaneous actions to take place.

Code

The Kociemba algorithm is taken from https://github.com/muodov/kociemba

convert_moves.py converts the output of the Kociemba algorithm to an optimized version for our setup

robot.ino contains the logic for controlling the robot

Demo

Robot Video