Go Down

Topic: Surrealistic Rubik's Cube robot [Auto-solver] (Read 4953 times) previous topic - next topic

Palliser

Sep 25, 2013, 04:51 pm Last Edit: Sep 27, 2013, 04:34 am by Palliser Reason: 1
Reading the title of an upcoming article in the August 2013 Circuit Cellar Magazine (Build a Rubik's Cube-Solving Robot, by Nelson Epp), it reminded me an idea that has been whirling in my mind for some time: A Rubik's cube robot that solves itself. Imagine for a moment a disordered 3x3x3 Rubik's cube that you just place on a surface and after a couple of seconds starts to bounce and flip, rotating its six faces and few seconds later stops with all of them now one-colored. What should be required to build this imagined 'surrealistic' Rubik's cube? I haven't read yet Mr. Epp's article but let's make an exercise imagining what parts should be required. Here my quick-start list:

1- Arduino micro
6- Full rotation servos
6- 3-axis-Gyroscopes (or Accelerometers)
1- Battery
1- Rubik cube.
Plus the Rubik's algorithms (the robot should knows in advance the unscrambled color positions).
What else?

Notice that my idea do raise other questions like what size or how fast will the robot solves itself?
(Current record: 5.27 secs CubeStormer II). Regards!

robtillaart

270 degree servo's should do as RRR == -R  but maybe that "interferes" with the algorithms.

full rotation allows human interaction too

instead of a jumping cube it could stand on one corner (diagonally) on some standard that holds the batteries and the Arduino. That gives more room for the servo's.

And I want definitely LED lights in, and when it is solved it must play the tune of "close encounters" ta da da ta daaaaaaaa...


Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

Boffin1

I shall follow this thread, I am way too busy to get my head around even the mechanism to rotate the shapes

( normally we grasp the outer rings to turn the various groups of segments.... hmmm  ) .

Good luck guys !

Jantje

If you want then human rotatable (after all who is going to scramble it?) I would go for steppers.
To know the colours you can use a cam or some kind of markers inside the cube.
Best regards
Jantje
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Boffin1

Of course you could have SMD RGB LEDs in each face and do it all software,  but perhaps nobody watching will believe it if they cant see it turning ?

Palliser

robtillaart, I really like your idea of holding diagonally the cube but I'm still thinking in the robot as a stand-alone cube that besides its ability to solve itself, also a human can grab it and scramble it anytime (or even can be used to give the impression that you are solving it!).

Jantje, you idea of using steppers is very good and it will get rid of the gyros but not sure yet.

Boffin1, the RGB LEDs could be an add-in to watch the robot in action in the dark but I see the wiring quite a challenge.

Anyway, here my back of the napkin sketch of the 6 servos. Regards!

cr0sh


Anyway, here my back of the napkin sketch of the 6 servos. Regards!


Nice sketch - but I think servos are going to limit you due to the shaft offset from the body.

I'd go for something with a centralized shaft (which you'd have to come up with your own feedback system to know position, etc) - something like those small micro-gearmotors might be ideal:

http://www.robotshop.com/productinfo.aspx?pc=RB-Pol-77&lang=en-US

Or - alternatively (but probably hella expensive) would be these "smart" servos:

http://www.robotshop.com/productinfo.aspx?pc=RB-Rbs-120&lang=en-US

...although, looking at their size, they aren't small - your "cube" would be fairly large...
I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

Palliser



Anyway, here my back of the napkin sketch of the 6 servos. Regards!


Nice sketch - but I think servos are going to limit you due to the shaft offset from the body.


Hello cr0sh,
Thanks for your comments. Regarding the shaft offset, I just have come up with a solution (see picture below) but you are right about the size; this new arrangement increased the size of the cube up to 8.02 x 8.02 inches, but remember, this is a prototype. I will be checking your links. Thanks!


Palliser


radman

I think this is a fantastic idea.
How are you going to get the power and control to the motors though?

Palliser


I think this is a fantastic idea.
How are you going to get the power and control to the motors though?


Hello radman,
I don't know yet. I am waiting for the barman with my drink and another pile of napkins. But let's revise some facts here while sitting in the bar. The faster the code solves the cube, the batteries consume less current. I am not a Rubik's cube solver expert but I've read about 52 steps algorithms or so in the web, which means that each servo should rotate about 10 times per effective solving. Then it's about to write some calculations (that's why the napkins) and estimate the capacity of the batteries and finally check if the characterized battery exists. In reference to the code (I am planning to use a Fio given that I can program it been from inside the cube). I don't have the answer yet either but as I said, it should be a very good code (I've also seen 5 minutes cube solver out there!). Let's see how it goes. Regards!

radman

A Rubik's cube 'appears' to be made of 3x3x3 smaller cubes.
However there is no central cube so that reduces to 26.

Of these cubes there are;





8 corner cubes3 faces visible each24 faces total
12 centre of edge cubes2 faces visible each24 faces total
6 central cubes1 face visible each6 faces total
26 cubes total 54 faces total


That sounds a lot but of course the cubes are not really free to move at random.
Maybe it would be possible to brute force the cube and calculate in advance the shortest path from any starting point?





Boffin1

http://www.youtube.com/watch?feature=player_embedded&v=052JJGBxFH0

this shows an external slice turning method, hard to imagine tiny servos turning all the outer slices ..

Palliser


A Rubik's cube 'appears' to be made of 3x3x3 smaller cubes.
However there is no central cube so that reduces to 26.

Of these cubes there are;





8 corner cubes3 faces visible each24 faces total
12 centre of edge cubes2 faces visible each24 faces total
6 central cubes1 face visible each6 faces total
26 cubes total 54 faces total


That sounds a lot but of course the cubes are not really free to move at random.
Maybe it would be possible to brute force the cube and calculate in advance the shortest path from any starting point?


Those are interesting facts about the Rubik's cube, radman.

That's also an interesting video Boffin1. I believe, nowadays, the solving a 'dumb cube' from the outside (robots, grips, etc.) gives us enough ideas to start thinking a way to do it from the inside.

My initial thought about solving the cube (as a simple exercise to test the hardware) was to reverse the solving process. I mean, the cube always memorizes the steps from the initial solved position to the final scrambled position (whatever). Then, the cube only needs to 'undo' the steps to go to the original solved position...which reminds me a chapter of the book "Iconostasis" by Pavel Florensky (Russia's unknown da Vinci) where he explains that all that we dream in a dream, and that seems to last a long time, is the result of what happens to us just before waking up. A reversed chain of events that lasts for few microseconds. Regards!

radman

Like I said I think this is an excellent idea, but there are enormous practical problems.
Boffin1 is right bout the servos, a fair bit of force is required to move the faces.

Can anybody say how many states a rubik's cube actually has?
In other words how many unique combinations can one be scrambled into.

Also don't you wish you had a real talent and skill like this;
http://www.youtube.com/watch?v=lhkzgjOKeLs

Go Up