This project use arduino, python and opencv to solve the rubik´s cube. The main goal was to obtain one cheap robot wich could solve the rubik´s cube in less than one minute.
However I need to mention that my additional idea was to desgin a T-shirt with some ideas to talk about with other people-so this project need to understand some fundamental maths and train yourself in Python and opencv.
Technical Motivation
I was checking some rubik´s cube solver robot and I got captived by the ingenious of the LEGO's robot named SpinnerCube.
OperationThis robot use 3 stepper motors to perform all the moves of the cube's faces URFLDB. The stages are:
- To capture sticker's color face by face, according to a sequence
- To processing each face, using python and establish the scrambled initial position of the cube
- To solve the cube by Kociemba algorithm
- To send solution from python to Arduino throught serial port
- From arduino to perform all the moves as soon as accurate and as repetable as possible!!!
Best Time reached
In order to obtain good time record, one trick easy to perform with these robots based on stepper motors is an inverse sequence, however is easy to identify if the solution is real because Kociemba normally solve the cube with 20 to 27 moves, and other methods as Fridrich, CFOP, normally solve in more moves. By the way I am not interested in a Record as my main goal, I am interested in learning, but look for physical limits, without tricks, is a good exercise to go with patient in the calibration process - Fine Tunning.
Consequently, depending on robot model, there is a physical limit ; in this case on the stepper motors is adequate torque to move the faces and maximum speed and acceleration associated. However the delays between moves and the spins for U(up),D(down),B(back) moves are constrains.
I have seen working Spinner Cube robots, based on Servos, and speed to solve is better. In the near future, I will share with all of you my project with this model based on servos.
In this case, playing with calibration settings, I got 18 seconds as my minimal time, and to avoid
In this video you can see how after iterations, I got 18 seconds ( different scrambled positions-same calibration parameters):
Developer
I can share with you my complete software development, this is open source.
An application was developed with Arduino and Python to integrate program, solve the cube and control the robot. This help us to test and make more efficient the input of cube state and to take pictures.
This APP use programming strategies from other open source developers and was tuned for weeks in order to teach the system to watch and extract sticker's color.
What for?
The answer to this question will be given to the readers in the near future; now this answer could be to develop a product for a niche of people who likes rubik's cube . Let's see what happen.
Comments
Please log in or sign up to comment.