Don't ad-block us - support your favorite websites. We have safe, unobstrusive, robotics related ads that you actually want to see - see here for more.

0 Members and 1 Guest are viewing this topic.

Hats off to your great solving time! It takes me about 2-5 minutes to solve one depending on the initial shuffle... Well, to build a rubik solver isn't trivial at all. I would be happy just to make the rotations of the cube working with servos and all. But say you have that, you could maybe hook up mirrors or something to get your camera to get view of all sides. Some imaging processing on that to get the color of all the pieces and then "just" apply your favourite rubik method and -presto! your cube solver is done. Not that hard now that I gave you the full solution right?!?

how about the wavefront pathfinding type algorithm using a map?

I'm imagining a breadth first search as it has been proven that any random Rubiks cube can be solved in 25 moves or less by the time you get to your 26th level of the tree you should have a solution. Assuming this is a 3X3X3 cube:One move can result in a 'disk' (cross section?) to rotate into 3 new positions.There are effectively 9 'disks'.There are 3*9 moves to expand off of every new node.So for every move made there are 26 new possible moves (Why would you want search a 'undo' and create an infinte cycle.... bleh )so that's only 27+26^24 = 9106685769537214956799814036095003 combinations you would have to search to find the optimal solution But like my comment before, if you could recognize configurations you have already been and halt the search of that part of the tree there (if you have already been there there was already a shorter path to that point, so if that leads you to a solution, you are already searching that path) I'm sure the number of un-searched limbs will dwindle quickly....does this make sense to any one else

#ifndef RUBIK_H #define RUBIK_H typedef struct { uint8_t cube [3][3][6]; }RubikCube_T; typedef enum { FRONT=0, BACK, LEFT, RIGHT, TOP, BOTTOM }RubikSide_T; typedef enum{ GREEN=0, YELLOW, BLUE, RED, WHITE, ORANGE // Is that right?}RubikColor_T; #endif

Google will give you lots of examples including the 'how to solve the Rubik cube' algorithm. As well as concrete examples - e.g. the Lego Mindstorms Rubik Cube solver.If you just wish to find how to 'solve' it then there are lots of booklets - probably available from Amazon and the like