[Unofficial] Robot 37.61 4x4x4 UWR

whoa thats cool

would using a better 4x4 like the aosu yuxin or guansu be better? you could up the rotation of the thing that actually turns it

Thanks.

Most of the time is spent tilting the cube rather than turning the layers so a lighter cube with less mass would probably help more than a smoother one! :)
 
Great, I'll wait and see new, faster WRs :) Regards!

How about these? ;)

The video was taken at its first public event, LEGO World 2016 in Copenhagen only a few days after it solved its first cube. I have now had time to start optimising some of the mechanical movements (with the help of a 240 fps smartphone camera to see how everything moves)!

Here is a typical set of 5 solves as an indication of its current performance. Please note these times include the scan and calculation ("inspection") time which has been reduced to about 2.9s.

# Time Moves Solution
1 27.084s 52 U f' D R f l' L2 f' F' r' F' U2 l' B l' B' D B R' D' l' F2 u B u' F2 u U2 B' u' U F U2 D' F R2 B U' R2 U2 R' F2 R B2 R B2 R2 D F D' F L'
2 27.428s 53 F l f F' d f d2 D2 F' r2 F U' r B' U l2 B' D' R d L B' L' D B d' f2 F' L F' L' f2 F U F2 U B' D2 R' U F L' B' D B U' B D' B' D B D' B
3 27.319s 51 d2 l D' b r' b2 R d D l2 U F D' l2 B' F R F' l' B' R U' l B' U R L U' B l' L D2 R' D2 B R' D' F' U' B U B U L' U' L U L U L2 U'
4 28.001s 53 f' L' b U R2 u f2 D2 l' L d D' L u U' F l2 f' D' R D B2 R' f l F U2 B2 D2 R' F r U2 F' D2 L2 B U2 B2 L' D R F D R F' R' F' D F2 L' F L
5 28.724s 52 b l' F2 l' b' B R d' r2 R' b' B R u2 U' b B' r2 R' B' D' b R F' B' R' b' L f2 L B L' f2 U2 F U' F' U' R2 D2 F2 B L B D2 B U F D' F' U' R2

EDIT: would anybody be interested in a video of an average of 5?
 
Last edited:
How about these? ;)

The video was taken at its first public event, LEGO World 2016 in Copenhagen only a few days after it solved its first cube. I have now had time to start optimising some of the mechanical movements (with the help of a 240 fps smartphone camera to see how everything moves)!

Here is a typical set of 5 solves as an indication of its current performance. Please note these times include the scan and calculation ("inspection") time which has been reduced to about 2.9s.

# Time Moves Solution
1 27.084s 52 U f' D R f l' L2 f' F' r' F' U2 l' B l' B' D B R' D' l' F2 u B u' F2 u U2 B' u' U F U2 D' F R2 B U' R2 U2 R' F2 R B2 R B2 R2 D F D' F L'
2 27.428s 53 F l f F' d f d2 D2 F' r2 F U' r B' U l2 B' D' R d L B' L' D B d' f2 F' L F' L' f2 F U F2 U B' D2 R' U F L' B' D B U' B D' B' D B D' B
3 27.319s 51 d2 l D' b r' b2 R d D l2 U F D' l2 B' F R F' l' B' R U' l B' U R L U' B l' L D2 R' D2 B R' D' F' U' B U B U L' U' L U L U L2 U'
4 28.001s 53 f' L' b U R2 u f2 D2 l' L d D' L u U' F l2 f' D' R D B2 R' f l F U2 B2 D2 R' F r U2 F' D2 L2 B U2 B2 L' D R F D R F' R' F' D F2 L' F L
5 28.724s 52 b l' F2 l' b' B R d' r2 R' b' B R u2 U' b B' r2 R' B' D' b R F' B' R' b' L f2 L B L' f2 U2 F U' F' U' R2 D2 F2 B L B D2 B U F D' F' U' R2

EDIT: would anybody be interested in a video of an average of 5?

yes I would totally be interested, he's getting darn fast...

now you're approaching humans for speedsolving... btw idk whats the lightest 4x4, anyone know of light 4x4s?

also you should race a pro 4x4 speedcuber irl, that'd be cool, could go to a comp depending where you live (It'd be great if one of your robots could help scrambling lol)
 
Last edited by a moderator:
yes I would totally be interested, he's getting damn fast...

now you're approaching humans for speedsolving... btw idk whats the lightest 4x4, anyone know of light 4x4s?

also you should race a pro 4x4 speedcuber irl, that'd be cool, could go to a comp depending where you live (It'd be great if one of your robots could help scrambling lol)

Thanks.

"approaching humans"?!? So just how many humans do you know who average under sub 28 *including inspection* (or sub 26 without)? lol

Actually, if I bring it to a competition do you think some of the human speedcubers would scramble for Quad-Cub3r? ;)

I do know one "pro 4x4x4 speedcuber" quite well... perhaps he would be interested in a "head-to-brick"...

Seriously though... it is not really fair to compare human times with robots since they use very different techniques, both algorithmically and mechanically. But it is perhaps fun and interesting?

I am in absolute awe of anyone who can solve cubes at the speeds you all manage! :cool:

I'm in the UK, and have previously demonstrated at the UK Open and UK Championship. It might be possible for me to attend these again or perhaps the Welcome To Cambridge event if I were invited... ;)
 
Last edited:
Lighter cubes, and smaller cubes, eg. Mini Aosu would likely be easier to turn fast.
I don't know what electronics hardware you're using to drive your motors (or indeed what motors you have), but motors can be driven faster by using a higher voltage drive, but with a resistor in series with each motor winding. The resistor drops the excess voltage, so you're not overloading the motor, but the extra series resistance decreases the L/R time-constant ( L/(Rmotor+Rseries) ), so the rise-times of the currents in the motor windings are reduced. Example run a 12V nominal motor at 15V.
Also, varying the step speed during the turn may be a useful technique. Ie. start off slower, ramp up the steps/sec mid-turn, and slow down towards the end of the turn. That way you're less likely to 'miss' steps due to over-aggressive acceleration.
 
Lighter cubes, and smaller cubes, eg. Mini Aosu would likely be easier to turn fast.
I don't know what electronics hardware you're using to drive your motors (or indeed what motors you have), but motors can be driven faster by using a higher voltage drive, but with a resistor in series with each motor winding. The resistor drops the excess voltage, so you're not overloading the motor, but the extra series resistance decreases the L/R time-constant ( L/(Rmotor+Rseries) ), so the rise-times of the currents in the motor windings are reduced. Example run a 12V nominal motor at 15V.
Also, varying the step speed during the turn may be a useful technique. Ie. start off slower, ramp up the steps/sec mid-turn, and slow down towards the end of the turn. That way you're less likely to 'miss' steps due to over-aggressive acceleration.

Thanks for the cube suggestions and motor driver tips.

However, I wish to use only standard, off-the shelf LEGO MINDSTORMS EV3 and technic technology for the mechanical portion my creations (as I am a huge LEGO fan). The motors are servos with optical shaft encoder feedback rather than stepper motors so your tips about stepping do not apply and I do not wish to consider modifying the standard driver circuitry.

If you are aware of CubeStormer II and CUBESTORMER 3, you may appreciate that there are other (although perhaps less technically elegant? ;) ) solutions to increasing turning torque/speed which I may consider applying!

Quad-Cub3r is my first "serious" attempt at a high speed 4x4x4 solver and I am very pleased with its performance uplift so far over my previous designs. But I still have a number of ideas to apply to this creation. For example I am currently re-generating a new set of lookup tables for my solving algorithm to try to find solutions which are optimised for the mechanical capability of the design ;)
 
Thanks.

"approaching humans"?!? So just how many humans do you know who average under sub 28 *including inspection* (or sub 26 without)? lol

Actually, if I bring it to a competition do you think some of the human speedcubers would scramble for Quad-Cub3r? ;)

I do know one "pro 4x4x4 speedcuber" quite well... perhaps he would be interested in a "head-to-brick"...

Seriously though... it is not really fair to compare human times with robots since they use very different techniques, both algorithmically and mechanically. But it is perhaps fun and interesting?

I am in absolute awe of anyone who can solve cubes at the speeds you all manage! :cool:

I'm in the UK, and have previously demonstrated at the UK Open and UK Championship. It might be possible for me to attend these again or perhaps the Welcome To Cambridge event if I were invited... ;)
That's a good point, didn't realize that, I guess you should try following WCA inspection rules, 15 seconds to inspect the cube, then start turning/timing

you could always have it compete (unofficially at one of my comps), gotta follow the human regs though, like starting and stopping stackmat, and picking up the cube from the table, you also have to fully release the cube.
 
That's a good point, didn't realize that, I guess you should try following WCA inspection rules, 15 seconds to inspect the cube, then start turning/timing

you could always have it compete (unofficially at one of my comps), gotta follow the human regs though, like starting and stopping stackmat, and picking up the cube from the table, you also have to fully release the cube.

Thanks for the invitation. But if you offer a human vs. robot competition, I'd rather propose a blindfold one (since the robot only looks at the cube before the mechanical solve) as I can easily make a mechanism to use a stackmat timer and pick up and release the cube in the remaining 90 seconds or so! ;) lol

This is one of the main reasons why it is not (in my opinion) worth doing like-for-like competitions since there will always be something that favours either human or robot...

Out of interest, although the Guinness World Records guidelines for robot solves refer to the WCA rules for the definition of legal puzzles, they stipulate that the complete time including scanning and calculation must be included and do not include any requirements on picking up or releasing the cube that are not part of the process of actually solving the puzzle (and are probably only included in human competitions to make it easier to define a reliable method for timing human solves).
 
BLD is even less fair than speedsolving, because humans have a very limited capacity for storing and manipulating large amounts of data :p At least with speedsolving, humans and machines can get roughly similar times but with very different techniques, so each one can use their strengths (fast turning vs. tons of computation). Sebastian Weyer's world record 4x4x4 average is just over 26 seconds so it's actually very close and would be fun to watch.

I know you made your own 4x4x4 solver, which is awesome, but have you looked into other techniques? People like Charles Tsai and Shuang Chen have made other solvers that may be able to find solutions in the low 40s range in a reasonable amount of time. I think the random-state scrambler used for WCA competitions is by Shuang Chen.
 
The "just a handheld phone" does have an ARM-based 2.5GHz quad-core processor with 2GB RAM and the algorithm runs on all cores for about 1 second to find a good solution so it uses a reasonable amount of processing power compared with say 50ms for the 3x3x3 in CUBESTORMER 3 ;)

I meant compared to my 4.6 GHz x 8 CPU core Intel i7-5960X with 128 GB of RAM.

:)

I use it for 5x5x5. Imagine running your awesome 4x4x4 alg on that machine.
 
Last edited:
BLD is even less fair than speedsolving, because humans have a very limited capacity for storing and manipulating large amounts of data :p At least with speedsolving, humans and machines can get roughly similar times but with very different techniques, so each one can use their strengths (fast turning vs. tons of computation). Sebastian Weyer's world record 4x4x4 average is just over 26 seconds so it's actually very close and would be fun to watch.

I know you made your own 4x4x4 solver, which is awesome, but have you looked into other techniques? People like Charles Tsai and Shuang Chen have made other solvers that may be able to find solutions in the low 40s range in a reasonable amount of time. I think the random-state scrambler used for WCA competitions is by Shuang Chen.

Thanks.

Which do you think would be more interesting? A robot with sub 26 time following "WCA human rules" with stackmat and cube pick-up/release, or one with a sub 26 time for a complete solve including inspection (but without stackmat or cube pick-up/release)?

I think you may be assuming my motivation for creating these robots is to try to compete with humans? This is not the case. I guess I use human speedcubing times partly as "targets" for me and partly because I appreciate there will be an inevitable comparison which encourages discussion and interest!

My main motivations are for personal pleasure in the all the creative activities around building my designs and using the results to try to inspire people, particularly the next generation, to take an interest in robotics/math/problem-solving or whatever else they may see in my creations. Part of the way in which I like to do this is by showing what can be done by building from "basic" components, both mechanical and algorithmic. Rather than by taking more complex components developed by others, I prefer to show that with appropriate focus, people can develop their own ideas for a wide variety of challenges.

On a personal level, I have had (and am still having) great fun exploring ideas for my own solving algorithms which gives me far more pleasure than any "achievement" there may be in "beating human times" by using other people's work. The only way I feel inspired to include other's ideas is when the creators themselves are part of a team where our experiences and abilities complement each other. As you can guess, this happens when Mike Dobson and I get together! :)

I meant compared to my 4.6 GHz x 8 CPU core Intel i7-5960X with 128 GB of RAM.

:)

I use it for 5x5x5. Imagine running your awesome 4x4x4 alg on that machine.

As Mike once said in response to a similar suggestion for CUBESTORMER 3... It would need a much bigger, stronger LEGO stand to support a heavy computer like that than a smartphone! And of course the batteries and inverter required to power it would be pretty heavy too! lol ;)

Again, one of my personal motivations is to try to do things in an efficient, "smart" way rather than just throwing "brute force" at it! :)

Although of course, as you may guess, I use significantly more computing resource than a single smartphone to pre-calculate the lookup tables involved in the algorithm.

EDIT: and out of interest what move count do you typically get for your 5x5x5 solver in a "reasonable amount of time"? (I'd be interested in having a "target" for the 5x5x5 smartphone-efficient solution I'm currently working on ;) )
 
Last edited:
Which do you think would be more interesting? A robot with sub 26 time following "WCA human rules" with stackmat and cube pick-up/release, or one with a sub 26 time for a complete solve including inspection (but without stackmat or cube pick-up/release)?
I don't really care about stackmat or cube picking up for robots, since that's really a compromise we did for humans. It could be interesting for a robot to separately time inspection/calculation and solving.

One thing I wonder is, could inspection be decreased by using an "online" solver? That is, you get the start of the solve, and optimize the rest as you go, so that the algorithm is always ahead of the cube. So maybe you would have a great centers solution within 1 second, and start turning, and by the time centers are done you would have the rest of the solution computed. It might make the total time longer, and almost certainly would make the solving time longer, but the inspection could be quite short.

I think you may be assuming my motivation for creating these robots is to try to compete with humans? This is not the case. I guess I use human speedcubing times partly as "targets" for me and partly because I appreciate there will be an inevitable comparison which encourages discussion and interest!
Nah, it's the same thing as you - I think it's fun to look at how the times differ and, while the times are still close, would be cool to watch. Eventually I expect it to be completely not comparable, just like my times solving a 13x13x13 on the computer are not at all comparable with people solving a physical 13x13x13.


On a personal level, I have had (and am still having) great fun exploring ideas for my own solving algorithms which gives me far more pleasure than any "achievement" there may be in "beating human times" by using other people's work. The only way I feel inspired to include other's ideas is when the creators themselves are part of a team where our experiences and abilities complement each other. As you can guess, this happens when Mike Dobson and I get together! :)
Makes sense :) Of course, on the other hand, it is probably not easy for most people to build this robot, but you already have it, so if people were interested in testing other, already-coded solving algorithms you would be the best person for the job.

As Mike once said in response to a similar suggestion for CUBESTORMER 3... It would need a much bigger, stronger LEGO stand to support a heavy computer like that than a smartphone! And of course the batteries and inverter required to power it would be pretty heavy too! lol ;)
Just curious, but is it a rule that only the robot's components can touch the surface?
 
As Mike once said in response to a similar suggestion for CUBESTORMER 3... It would need a much bigger, stronger LEGO stand to support a heavy computer like that than a smartphone! And of course the batteries and inverter required to power it would be pretty heavy too! lol ;)

True :) I was thinking a simple USB cable could transfer the move data though. Just put the beast under a table with a tablecloth, nobody would know :)

Again, one of my personal motivations is to try to do things in an efficient, "smart" way rather than just throwing "brute force" at it! :)

But brute force is fun too! I like having a computer that scores #1 in on every benchmark site in the world. But, for the 5x5x5, the branching factor dictates the need for such hardware.

Depth 11 = 147,990,866,406,820,695 nodes
Depth 12 = 5,249,024,392,428,376,695 nodes

The good news is more pruning opportunities. You can use corners, wing edges, and midges with fairly easy lookups.


EDIT: and out of interest what move count do you typically get for your 5x5x5 solver in a "reasonable amount of time"? (I'd be interested in having a "target" for the 5x5x5 smartphone-efficient solution I'm currently working on ;) )

I am currently testing a suite of solves with 3 different solving algorithms:

1. Reduction (centers, tredges, corners)
2. Tredge-First (tredges, centers, corners)
3. Cage (centers last, everything else in any order first)

I only have data for reduction at this point. I use the "Blind Alg" approach to solve centers. I pre-computed every alg to solve centers ignoring the rest of the cube. It can exchange 1 center from top/front, 2 centers from top/front, 3 centers from top/front ... 8 centers from top/front. Ditto for top/bottom. Instead of generating moves from a move generator and searching various depths, I pass indices to the "alg," which contains the pre-computed moves, I generate those moves, and count the population of "correct center stickers." But, I don't do this just one alg at a time. I pair up every alg with every other alg, and note which cascade of algs nets the best center count, then alg x alg x alg, then 4 in a row, etc. In about 3 seconds I can have 40+ centers solved. I halt the procedure, apply the best algs, and research again, usually solving the centers in two very fast stages.

I should take note of your technique of paying attention to the edges during the various trials. Usually they're scattered to the wind after a fast center solve. Stage 2 I seek a smaller move count at the expense of time. I generate a cube with all but corners solved (ghost cubes) and make every possible move 6 moves deep and load them into a RAM buffer with their reversed solutions. I search from stage 1 looking to get to "stage 2 - 6 moves" as efficiently as possible. I take note of my "best progress," and periodically make the moves leading to the greatest count of solved tredges. I repeat this until bingo ... it sees the 6-move solution and gets me to the final stage.

The final stage is an instantaneous lookup to complete the corners.

From a random scramble of 75 moves, the average solution time is around 10 minutes, including building the database, which is over 7 minutes. The move generator averages 150,653,000 nodes/second while generating the 64-bit hash numbers and filling the tables, over 900 million/second when decoupled from this process, and over 7 quadrillion per second (7,788,992,968,780,036 to be exact) when probing the hash table during the search and pruning to reach its depths. So the slowdown to build hash tables is worth the speedup to reach depths quickly. Example: it completes depth 10 in 0 seconds, 11 in 19 seconds.

Obviously an improvement would be to write the 6-turns-from-solved database to disk and just read it into RAM when it is time. I haven't done this yet because I'm still doing some work on the other two procedures.

So right now, on very fast hardware, I have sub 3-minute solves as a first order target for your 5x5x5. But my focus is move length reduction for now, not fastest execution time. Once I get the fewest moves part down, I'll work on the other.

Edit: Move count average of 35 solves = 62 moves.
 
Last edited:
At LEGO World 2016, Quad-Cub3r solves the 4x4x4 cube significantly faster than the current official Guinness World Record time for a robot! ;-)

Enjoy!

4x4 cube solved in 9.8 seconds by a robot including inspection time !

The first time a robot is faster than humans in 4x4 speed solve

So the WB has come a long way yo
 
Back
Top