Hi,
I am a new member not very experienced but very keen to learn.
I wonder does any member have any experience with solving machines for the Rubik's Cube?
Welcome to the group, Squeaky. Personally, I have on experience designing anything that would solve a Rubick's cube, but there are many experts here. No doubt someone has expertise in that area. Enjoy the forums!
I wonder does any member have any experience with solving machines for the Rubik's Cube?
I don't have any experience with this, but there are many algorithms for solving the Rubik's Cube. All you would need to do is place one of those algorithms into code and you will have a machine that can solve the Rubik's Cube.
I just did a quick search on YouTube and instantly found the following video:
This give you an algorithm that will solve the Rubik's Cube. Just code that algorithm into a program. Of course if you want the program to physically manipulate an actual Rubik's Cube you will also need to include all the necessary code for driving the actuators or robotics that you will be using to manipulate the physical cube.
Also, the algorithm in this video allows that the cube can potentially be solved before it gets to the end of the algorithm. Because of this you will also need to employ a way for your program to detect the actual physical state of the Rubik's Cube to be able to determine if it has been solved before the algorithm ends. Otherwise it may pass through a solved state and start to scramble the cube again.
So, in short, the problem has already been solved for you. All you need to do at this point is create a program that can physically manipulate the cube (if that's what you want it to do), and provide a way for the program to detect a solved state should it happen to solve the cube before it reaches the end of the algorithm.
Sounds like a fun project!
If you're going to create a machine that physically solves the cube your greatest challenge will most likely be with the mechanics of how to physically manipulate the cube. If that's your plan, have you given any thought to what kind of physical actuators or devices you plan on using?
If you build this project I'm sure everyone here would be very interested in following your progress so please share what you are doing. I'm sure folks here will also be willing to offer ideas on how to build something to physically manipulate the cube.
Best wishes on this project and welcome to the forums Joseph.
By the way, I noticed in your intro thread that you are into woodworking. I too have a woodshop. If you build a large enough Rubik's Cube from wood it may be possible to incorporate some type of internal stepper motors to make it automatically solve itself. I don't know if that's actually possible, but that thought came into my mind. It might also be able to sense from inside the cube when it's in a solved state.
Have you already built any Rubik's Cubes from wood? If you have I'm sure you have a far better understanding of the internal mechanics than I do.
DroneBot Workshop Robotics Engineer
James
Hi James,
Just one word….. Impressed!
After reading your reply I now feel that I have rather overcomplicated the problem.
I have pretty well finished the machine that will hold the cube and turn the various faces …. a combination of 4 servos to hold/ release a face and 4 stepper motors to turn them.
I was now looking into how to photograph each unscrambled face … then feed this data into a solving algorithm.... It would now appear that this is redundant.
One slight niggle springs to mind.... The algorithm to hold/release/turn the faces of the cube will be put through its routine by an Arduino sketch... but, as the video (included in your reply) very well demonstrates, the second run through (on the video) solved the puzzle in around 14 steps …. How will the sketch know when to stop?
I love these sort of problems.
Most of my wooden models are large geometric shapes Dodecahedrons, Octahedrons etc. etc..... Your suggestion of a Rubik's cube that solves itself whilst rolling around the lounge floor.... mind blowing!
I really appreciate your valued help.
Joseph
What you can find with a bit of a google 🙂
robot solving
self solving
https://www.theverge.com/tldr/2018/9/25/17900842/rubiks-cube-robot-human-controller-self-solving
This forum has a good roundup of ideas.
https://forum.arduino.cc/index.php?topic=271827.0
A number of more recent projects include a process to first scan all the faces and then use a program to calculate the solution, and finally execute it. Less glamorous designs have you manually enter the starting state of the faces and the the program will proceed to solve.
I played with an Arduino-based cube solving project a bit, but dropped it at some point. The physics are quite challenging. I like solving various types of ‘cubes’ as a form of relaxation, so the machine isn’t much fun for me as actually working on solutions IRL. I’m especially fond of the 5x5x5 Professor cube and something called the Pyramorphix.
Thanks Casey and Steven...
I do value your comments
As a very new member of this forum I am really appreciative of all your input.
Joseph
One slight niggle springs to mind.... The algorithm to hold/release/turn the faces of the cube will be put through its routine by an Arduino sketch... but, as the video (included in your reply) very well demonstrates, the second run through (on the video) solved the puzzle in around 14 steps …. How will the sketch know when to stop?
I love these sort of problems.
You'd need to have some way to sense when the cube is solved. That would probably be a fairly complex problem to solve. You would need to have the program "look" at a face and determine whether all the squares are the same color. And to be certain that the whole problem is solved you'd need to look at more than one face.
Most of my wooden models are large geometric shapes Dodecahedrons, Octahedrons etc. etc..... Your suggestion of a Rubik's cube that solves itself whilst rolling around the lounge floor.... mind blowing!
I would think that this is certainly doable. The trick is to either make the Rubik's Cube large enough to contain the stepper motors you need to drive it, or find extremely small stepper motors that are powerful enough to turn the faces.
If it were me I would opt for a huge Rubik's Cube and just go with standard size stepper motors, etc. At least for a first prototype. You can always work on making it smaller one after that if you want.
If you make one that solves itself from inside you should be able to figure out a way for the cube to know when it's been solved. Make some kind of circuit that only make a complete connection when all the faces are in the correct position. Then that circuit will produce a logical 1 when solved. Just have the Arduino stop when it sees that logical 1.
DroneBot Workshop Robotics Engineer
James
You can also probably learn a lot by studying this one. I see it includes a camera to scan the faces.
Incidentally, most machines solve the cube before they make the first move, so they know in advance the exact number of moves required. It is similar to people who can look at a scrambled cube, figure out the complete solution, and then execute it blindfolded without any mistakes. There are world records for blindfolded solves. Like this one:
Hi Stven,
Interesting... Before reading James's post the method I was contemplating included the camera...
(If I really knew how to do it I could include a photograph of my machine in its present form).
I am a very new member of this forum and still finding my feet.
I was on the point of buying a Pixy2 …. but now I ask myself do really need to include this step... all the camera will do is give me a "designed" algorithm which I can then feed into some sort of Arduino sketch. Or do I just use the algorithm which James pointed me towards.
Food for a lot of thought!
Joseph
Hi All … trial photograph
One of my models...
Joseph
This, hopefully should illustrate the "Solver" in its present state
Joseph
Another Model... one of my favourites
Well that’s an interesting challenge - algorithm versus looking up the answer using Cube Explorer ( http://kociemba.org/download.htm ). While the algorithm probably will take more moves, the satisfaction of doing the ‘programming’ yourself would be a consideration.
to detect completion without using a camera... that’s definitely not easy to do. I would say a Pixy2 is overkill, just need a basic raspberry pi camera for this. You can get a 5mp camera for under ten bucks.
I like the geometric models. That is quality woodworking. Are you familiar with George Hart ( http://georgehart.com/sculpture/roads-untaken.html)?
stven