Lego-machine met Galaxy S4 lost Rubik's Cube in 3,253 seconde op

Een Lego-machine verbonden met een Samsung Galaxy S4 is erin geslaagd om een Rubik's Cube in slechts 3,253 secondes op te lossen. De smartphone werd gebruikt om de zogenaamde Lego Cubestormer 3 aan te sturen, die verantwoordelijk is voor het draaien van de kubus.

Daarmee verbetert de machine het wereldrecord dat voorheen stond op 5,27 seconden, zo melden de bedenkers van het concept. De prestaties van de Lego Cubestormer 3 in combinatie met de Samsung Galaxy S4 met Exynos-octacore zijn in een demonstratievideo vastgelegd. Het vorige wereldrecord werd behaald door een voorganger van de Cubestormer 3, die destijds was verbonden met een Galaxy S II.

De Galaxy S4 werd gebruikt om te bekijken hoe de Rubik's Cube gerangschikt is, om vervolgens te berekenen welke bewegingen noodzakelijk zijn om de kubus op te lossen. Daarvoor is de telefoon verbonden met de grijparmen van de uit Lego Mindstorms opgebouwde Cubestormer 3, die de bewegingen uitvoert. Uiteindelijk werd met deze setup een tijd genoteerd van 3,253 secondes.

Waarschijnlijk gaan de bedenkers, David Gilday en Mike Dobson, de tijd in de toekomst nog proberen te verbeteren. Hiervoor zijn echter nog geen concrete plannen bekendgemaakt.

Helaas!
De video die je probeert te bekijken is niet langer beschikbaar op Tweakers.net.

Door RoD

Forum Admin Mobile & FP PowerMod

16-03-2014 • 12:37

92

Reacties (92)

92
91
76
17
0
7
Wijzig sortering
Super tof :D
Moet er niet aan denken wat voor een bouw- en programmeerwerk in zit..
Om deze tijd overigens wat duiding te geven is hier een lijst te vinden met de records door non-robots ;) (WR = 5.55 door Mats Valk, ook met links naar video's)
Wat ik mij afvraag is of de Galaxy ook echt 'bekijkt' en beredeneert welke stap de volgende moet zijn, of dat alle mogelijke beginstanden vooringeprogrammeerd zijn. Het lijkt er namelijk op dat de kubes eerst aan 3 kanten wordt bekeken en dan 'gewoon' de oplossing die bij die stand hoort zo snel mogelijk uitvoert...
Yep. Als je een kubus 1 keer rond om mag bekijken kun je daarna de kubus me je ogen dicht oplossen: http://www.youtube.com/watch?v=0enFFPcQyOc

Dat is wat hier ook gebeurt. Alleen is een computer natuurlijk nog iets beter in het analyseren van de mogelijke manieren van oplossen en daar de snelste uit pikken.

Ik ben al blij al is mijn kubus binnen 1 minuut op weet te lossen dus doe mij ook maar zo'n robot.
Als ze de kubus onder een hoek plaatsen kunnen ze 3 vlakken in een keer zien, scheelt weer draaien.
Als je weet welke kleur er op een vlak aan een kant zit dan weet je ook wat er aan de andere kant moet zitten.
Ik heb hier nog een kubus liggen van jaren geleden, is nog altijd niet opgelost...
Nee, je kunt niet alle beginstanden "erin programmeren". Er zijn 43 quintillion verschillende beginstanden. Dat is 43 miljard miljard. Best veel.

Het oplossen gebeurt via een aantal "stages".
Stage 1: draai de 4 ribben van het onderste vlak op hun plaats.
Stage 2: draai 3 hoekstenen van het onderste vlak op hun plaats.
Stage 3: draai 3 ribben van de middelste laag op hun plaats.
Stage 4: draai de laatste rib en hoeksteen van de tweede onderste lagen op hun plaats.
Nu zijn de onderste twee lagen klaar, en hoef je alleen de bovenste laag te doen.
Stage 5: draai de bovenste 4 ribben zo dat de goede kleur boven is
Stage 6: draai de bovenste 4 hoekstenen zo dat de goede kleur boven is
Stage 7: positioneer alle stenen in de bovenste laag op de goede plaats

Dat is kort-gezegd de manier waarop het gebeurt. Er zijn andere manieren. (Bv ik zelf doe eerst de 8 hoeken, en pas daarna de ribben). En als je beter wordt, kun je stages gaan combineren. Bv goede spelers doen stage 2, 3 en 4 allemaal tegelijk.

Als je eenmaal de onderste twee lagen hebt, en alleen de bovenste laag nog moet doen, dan wordt het aantal potentiele posities heel aardig ingeperkt. Je hebt dan slechts enkele tientallen verschillende slagen-sequenties nodig om iedere potentiele positie snel op te kunnen lossen (snel = tussen de 6 en 15 draaingen). Je moet dan wel een goed geheugen hebben om 50 of zo van die sequenties uit je hoofd te leren.
De Cube-stormer vind ik een ruig apparaat vanuit een machanisch standpunt. Zoiets vergt veel kennis.

Het programmeren zal minder lastig zijn omdat er trucs zijn om een Rubix Cube binnen een bepaald aantal wentelingen op te lossen. Deze hoef je enkel in code-vorm uit te werken. Dat de Galaxy S4 dit snel op kan lossen vind ik minder indrukwekkend aangezien het alom bekend is dat moderne processoren prima in staat zijn om dergelijke berekeningen in korte tijd op te lossen.

Ik ben wel benieuwd of ze het zal lukken om de complexere cubes uit te voeren, bijvoorbeeld de 4x4 of 5x5 uitvoering.

- 4x4 : http://www.kubuswinkel.nl.../r/u/rubiks4x4_spel_1.jpg
- 5x5 : http://www.puzzlesplus.net/images/Rubiks_5x5_L.jpg
- 9x9 : http://design.rubikscube.info/image/hanac.jpg

Er zijn zelfs al experimentele modellen met blokjes van ongelijke grootte, waardoor je grote en kleine vlakken krijgt. Helemaal lastig wordt het als je van dit soort puzzels gaat gebruiken :

- 12 kantige pentagon : http://walyou.com/wp-cont...-pentagon-rubiks-cube.jpg
- Met draaischijf : http://img.gawkerassets.c...a0na0a078jpg/original.jpg

Waarbij ik de constructie van dergelijke ingewikkelde "Rubix" kubussen dan ook weer heel erg interessant vind. Ben namelijk wel eens benieuwd hoe het binnenwerk van zo'n puzzel uitziet :P

Dus ja, leuk project, maar dit is natuurlijk pas het begin. Als je mij onder de indruk wilt krijgen moet je al de puzzels op kunnen lossen die ik hier heb gepost :Y)
Natuurlijk kunnen zij dat. Er zijn feitelijk helemaal geen berekeningen nodig om een Rubiks op te lossen. Voor de methode van minste 'acties', is het ten alle tijden een vaste reeks van handelingen - beslissingen op basis van een beperkt aantal input-parameters. Wat oplossen betreft is er derhalve helemaal niets prestigieus aan; dat kunnen jij en ik gewoon prima uit ons hoofd. Je moet gewoon het algoritme kennen; het is niet eens een algoritme, het is gewoon een voorgedefiniërde set van handelingen. Deze demonstratie is een leuke demonstratie van de IO en de [snelheid van] geometrische- en kleurherkenning. Dat is wel boeiend om te zien vanuit zo'n klein apparaatje komende.

[Reactie gewijzigd door CoreIT op 24 juli 2024 02:38]

Volgens mij duurt het oplossen door een computer tegenwoordig nooit meer dan een fractie van een seconde. Ook het verwerken van camerabeelden om de kleur van de vakken te bepalen kost vrijwel geen tijd, tenminste als je efficient met de hardware communiceert zonder overbodige API's of andere softwarelagen er tussenin. De tijdsduur wordt bijna volledig veroorzaakt door de beweging van de mechanische delen.
Anoniem: 415197 @Titan_Fox16 maart 2014 15:57
Die 3-dimensionale kubus is natuurlijk al tot vervelends toe geanalyseerd, en een algoritme om de efficientste oplossing te vinden is natuurlijk allang bekend. De toegevoegde waarde van dit project zit hem dus eigenlijk alleen in de grijpertjes.
Is een kubus niet altijd 3-dimensionaal? Waarschijnlijk bedoel je de 3x3x3 kubus (nog minder karakters ook XD)
Nee hoor, dat bedoelde ik niet. Een kubus kan ook 4-dimensionaal zijn:
https://www.youtube.com/watch?v=cbprfcSVcyQ
(ook wel hypercube genoemd)
hogere/lagere dimensies zijn ook mogelijk natuurlijk.

[Reactie gewijzigd door Anoniem: 415197 op 24 juli 2024 02:38]

Waarbij ik de constructie van dergelijke ingewikkelde "Rubix" kubussen dan ook weer heel erg interessant vind. Ben namelijk wel eens benieuwd hoe het binnenwerk van zo'n puzzel uitziet
https://www.youtube.com/watch?v=lZon43R90-Q
https://www.youtube.com/watch?v=isxiAXu-z_Q
https://www.youtube.com/watch?v=bgBbO4BiStU

Niet compleet uitgelegd overal maar het idee is wel duidelijk dan. :)

Hier een uitgebreide assemblage van een 11x11:
https://www.youtube.com/watch?v=uAE9T4-Hd5U

Pfff. Wie verzint zoiets? :P
Dat deed ik vroegah al met de originele Cube.
Met beetje kracht was deze perfect uit elkaar te "rukken" en dan in juiste combi terug te zetten.
Want uiteraard kreeg (bijna) niemand het voor elkaar om dat t&^* ding op te lossen, inclu stupid me.
Dus dan maar de "mechanische" manier.

Menig maatje was me dankbaar.

En dan natuurlijk in 2 seconde weer draaien en draaien, en weer werd ik er bijgehaald.
Ik vraag me af hoe relevant die S4 is in dit geval. Gaat dit niet gewoon met elke ARM-computer die een camera heeft en I/O? Die CSM3 is volgens mij key hier, met de custom software natuurlijk.

Het interessante is natuurlijk ook het feit dat ze de camera gebruiken om eerst de cube te bekijken en naar een 3D model te mappen, waarna gewoon blindelings alle benodigde acties uitgevoerd worden om hem op te lossen.
Uiteraard, de titel had ook "Lego-machine met smartphone lost Rubik's Cube in 3,253 seconde op" kunnen zijn. Neigt een beetje naar sluikreclame.
En is er wel de originele ROM gebruikt of was het een eigen of een kale ROM?
En de cubes een beetje smeren kan nog wel een paar tienen schelen ;)
Het had ook kunnen zijn 'Machine met smartphone lost Hongaarse kubus in 3,253 seconde op'

Waarom is het geen reclame voor Lego of Rubiks maar wel voor Samsung, het is allemaal uitwisselbaar...
Edit: Excuus, ik zag rechtsboven in het notificatiescherm een nieuwe reactie en heb daar meteen op gereageerd zonder te beseffen dat het al een oud artikel is. :D

[Reactie gewijzigd door uNoTopia op 24 juli 2024 02:38]

Dat heb ik gedaan, waarom zoek je naar 3 weken oude post is iets wat je je beter af kan vragen...

Hongaarse cubus = Rubiks cube :)
En voor de lego had er ook Duplo kunnen zijn of dat andere knex :)

[Reactie gewijzigd door watercoolertje op 24 juli 2024 02:38]

Het exacte type boeit niet heel veel, maar omdat de smartphone alle logica draait, en dus ook alle bewegingen berekend, wil je wel een relatief snelle telefoon
Mwah, een µc kan dat ook wel...
Er is een andere mindstorms Rubik solver geweest (ik geloof zelfs de voorloper van deze) die op 2 manieren de kon kubus oplossen. Met een android telefoon, dan deed hij het in 6 seconden of volledig op de mindstorms controller, en dan deed hij er 40 seconden over.

De processor power van de telefoon is gewoon nodig om de hoeveelheid benodigde bewegingen te verminderen.
Ja, maar dat is niet de enige, en ook niet de laatste... daarnaast is mindstorms nou niet perse een krachtige µc van het heden.

Een telefoon heeft absoluut gezien ook niet echt veel 'power' hoor. Kijk naar een willekeurig embedded systeem en je hebt vrij snel meer power dan een telefoon.

En stel dat je echte power wil, dan kan je voor de helft van het geld van een telefoon een PC bouwen.

Dus die telefoon is meer gewoon makkelijk, waarschijnlijk om dat ie er al was of omdat samsung hem gesponsord heeft. Niet om dat het de beste keuze was lijkt me.
Tja, telefoons zijn voor dit soort toepassingen wel handig, want naast de processor, heb je ook direct een relatief hoge resolutie camera, een beeldscherm, een touch interface en het zit in een hele compacte behuizing.

Je hoeft geen PCB te bouwen, geen behuizing, niets. Het enige wat je moet customisen is misschien de stekker.

Het tweede voordeel is natuurlijk dat je, dat je een stapel API's hebt om de boel aan te roepen. Maar dat heeft een RPI ook
Ja, er is natuurlijk voor alles wat te zeggen.

Aan de ene kant wil je iets dat 'werkt', maar aan de andere kant is het ook prettig om volledige specs te hebben, of open hardware, of open drivers, of soms heb je juridische aspecten. Je hebt natuurlijk ook prototype vs. productie, en experimenten enzovoorts.

Er is voor alles wat. Je hebt bijvoorbeeld Intel's Quark, daar kan je ook best een boel mee en is voor een x86 platform best open. De Raspberry Pi begint na de release van de VideoCore documentatie van Broadcom ook nog veel meer opener te worden (je kan bijna met 100% eigen firmware gaan werken, naast de al 100% open PCB en schema's enz.

Uiteindelijk is het natuurlijk gewoon leuk om dingen te maken ;) en soms maakt het niet uit waar je het mee doet en is het handig als we dat wat je al hebt liggen kan gebruiken.
Je moet niet altijd alles zelf willen bouwen, soms moet je gewoon kan en klare componenten van de plank pakken. Daar produceer je je product vaak veel sneller en simpeler.
Ja bijna elk arm apparaat kan gebruikt worden de eerst versie was met ene nokia n95 dacht ik maar laptops/pc's kunnen het nog sneller.
Ik denk vrijwel niet, er hoeft in principe maar een camera aanwezig te zijn en een programmeerbare processor die berekent welke stappen nodig zijn om dit op te lossen. Ik vind het ook interessanter hoe ze de CB3 geprogrammeerd hebben e.d.
Vind het echter jammer dat er in dit artikel niet wat meer is ingegaan op de CB3 zelf, nu is het simpelweg wat informatie over de S4, waar die op aangesloten zit en een filmpje.
De vraag is wat de meerwaarde is van een telefoon in plaats van een laptop met programmeertools? Telkens die extra stap om de code op de S4 te krijgen lijkt me tijdverlies.

Tenzij natuurlijk dat Samsung ze een zakcentje heeft toegestopt.
Ik denk eerlijk gezegt ook dat de winst meer in een sneller bewegende mashine zit dan in meer reken kracht.

Meer reken kracht doet niet zo veel als b.v. de servo'tjes niet sneller en/of nauwkeurig genoeg kunnen draaien.
Of een snellere/betere camera?
Veelal heb je inzicht in de cube voordat de timer gaat lopen. Op het moment dat daadwerkelijk de tijd gaat tellen, dan is in principe de camera niet meer nodig. Zie bijvoorbeeld ook (menselijke) solvers die geblinddoekt een cube oplossen.
Kennelijk was dat dan geen officiële wedstrijd. Want er staat toch echt dat het vorige record 5.27 s was. In een ander filmpje hoorde ik dat de kubus een minimum aantal keer random gedraaid moet worden voor een officiële recordpoging YouTube.
Eigenlijk vind ik het rete traag...

Als ik hier : https://www.youtube.com/watch?v=WCrTrtxAUbA zie dat een mens het binnen 6 seconden doet, dan doet een dit ding het dus maar 2x zo snel.

Meet menselijke records : http://www.recordholders.org/en/list/rubik.html
Je kunt de kubus fysiek niet veel sneller draaien, zeker niet met Lego.
Hier het filmpje met geluid en nog eens in 1080p ook:
https://www.youtube.com/watch?v=X0pFZG7j5cE
Wat ik eigenlijk in alle reacties hierboven mis, is dat die cube door een machine van Lego(!) opgelost wordt. Er zijn overigens ook grotere varianten:

7x7 http://www.youtube.com/watch?v=b5b9BIBuOd4
9x9 http://www.youtube.com/watch?v=DTuA9A3gdu0

Tuurlijk zijn er snellere robots, absoluut. Maar die zijn niet van plastic blokjes.
Met de standaard Mindstorms-set is het ook mogelijk om een kubus op te lossen, gewoon met de eigen Brick. Lukt overigens niet in zo'n korte tijd (eerder drie minuten) maar het is dan wel erg leuk om te zien. Zoek maar eens op Tilted Twister.
De aanpak die @gryz noemt is voor beginners de juiste (met zo'n 10 - 15 substappen die je moet onthouden ben je er wel) , maar levert daardoor wel veel draaiingen op. Het is bewijsbaar dat een willekeurige kubus in minder dan 20 draaiingen opgelost kan worden (bron moet ik zoeken, ik meen dat 19 bewijsbaar is en 18 nog niet) maar daar is geavanceerdere rekenkracht (zoals de S4) voor nodig dan de simpele processor uit de Mindstorms-set.
Dat is inderdaad heel snel. Maar ik vind het een beetje dat tweakers alleen snel even een filmpje dumpt. Wat meer uitleg over het eea in-elkaar-ge-tweak-ed is had hier zeker thuisgehoord :)
Het meest vreemde: dit incident zegt helemaal niks over hoe snel dat ding nou is.

Het gaat om de start-positie. Die is random. Dat betekent dat je soms meer dan het gemiddelde aantal slagen (draaingen) nodig hebt. En soms minder. Heel soms, heel heel soms, zou je een random gedraaide kubus kunnen krijgen die al helemaal goed is. Dan heb je 0.0 seconden nodig om hem op te lossen. Zou dat een nieuw record zijn ?

Bij echte kubus-wedstrijden doen ze aan gemiddelden. Bv het gemiddelde over 4 kubussen. Of het gemiddelde over 10 kubussen, waarbij je de beste en slechtste tijd weg laat. Dat hadden ze hier ook moeten doen.

Begin jaren tachtig (toen de kubus uitkwam) heb ik er nog aardig wat tijd aan besteed. Ik heb toen ooit een beste tijd gedraaid van 16 seconden. Doet dat er toe ? Nee, was toeval. Een getal waar je meer aan had was mijn gemiddelde: 35 seconden.

FYI: ik heb 1-2 jaar geleden nog eens gekeken naar de moderne stand van zaken. Mensen over de hele wereld draaien nog steeds kubussen. En hun gemiddelde is nu onder de 15 seconden. Waanzin !
Iedere kubus kan met maximaal 20 draaien worden opgelost, in welke positie de kubus ook staat. Deze machine zal het waarschijnlijk dan ook in 20 slagen doen.
Bij de cubestormer 2 melden ze dat ze 5 paden lieten uiterekenen, en dan keken welke het snelste door de robot kon worden uitgevoerd. Sommige slagen kunnen immers parralel aan 2 kanten, en draaien van de kubus was erg tijdrovend.
Heel onwaarschijnlijk dat een nederige S4 'God's algorithm' implementeert.
Er zit een heel groot verschil tussen een kubus stelling in maximaal 20 zetten oplossen en het bewijzen dat het altijd in maximaal 20 zetten kan.
Ze hadden een tijd voordat de 20 zetten bewezen was al een programma dat in de miljoenen stellingen per seconde kon oplossen in 20 zetten, tenminste, voor zover ze konden testen. Helemaal zeker was het toen nog niet omdat het toen nog niet zeker was of er niet toevallig nog een klein aantal stellingen met 21 zetten waren.
Bij Guiness letten ze bij dit soort dingen ook op de officiele regels, ik ga er dan ook vanuit dat het hier ook om een gemiddelde gaat.
Misschien is dit apparaat dan ook uitermate geschikt om kubussen zo snel mogelijk, zo random mogelijk door de war te draaien?
gryz persoonlijk vond ik het vroeger ook wel eens leuk om met een rubiks kubus te spelen.
De lol was er echter al heel snel af zodra ik las over het oplos algoritme en het oplossen ervan doodsimpel werd.
Ok snelheid is een ding en wellicht blijft het een goede training omdat je perceptie, analyse, algoritme-toepassing en executie in zeer korte successie moet toepassen wat het een goede indicatie maakt voor hoe goed je deze dingen kunt combineren.
Persoonlijk echter vond ik de 'magie' van een rubiks puzzel juist het 'op je dooie gemakje aan dat ding draaien'.

Wat ik probeer te zeggen is dat ik de meerwaarde voor MENSEN wel snap maar voor een machine niet zo. Goh, dus deze nieuwe machine heeft een betere camera/snellere processor/snellere nauwkeurigere motors?... boeiend. :|
Ik vraag me alleen af hoe representatief deze test is. Het ligt er toch helemaal aan hoe ver de Rubix Cube "in de war" is ? Ik bedoel; als je de kubus zo instelt dat er maar 2 bewegingen nodig zijn ben je sneller klaar dan 3,253 seconden.

Wat mij namelijk interesseert wat het absolute minimaal aantal rotaties is dat je nodig hebt om zo'n puzzel op te lossen; dus dat de kubus maximaal door elkaar is gemengd.
Ja, maar de Rubiks Cube kan altijd in 20 moves opgelost worden. Ook wel God's Number genoemd:
http://www.cube20.org

Hierin staat ook de meest moeilijke positie. Hoe dan ook, het kan altijd in 20 zetten. Dus je moet ja algoritme in orde hebben zodat er niet meer dan 20 zetten worden gebruikt en hele snelle servo's :)

Op dit item kan niet meer gereageerd worden.