Torna alla pagina precedente...
dT n. 49/2025 del 29.07.2025
Cornice stile Ritorno al futuro
   
SEP 15 2018
   

Immagine di apertura

Il cubo di Robot 2.0

La storia non è nuova, risale a un po' di anni fa. E, come scrivevo su FB, ogni volta che ricordo questa meraviglia ho il più classico dei brividi blu…

… o di qualsiasi altro colore, dei rimanenti disponibili sulle facce dell’indimenticabile (e mai dimenticato) Cubo di Rubik, inizialmente denominato - con non si sa quale lungimiranza - cubo magico. Per quel che mi riguarda, posso tranquillamente affermare che quel micidiale rompicapo degli anni 80 ha contribuito un bel po’ alla mia crescita, finanche quella professionale. Immagine_inlineCosì ai tempi dell’altrettanto amato Vic-20, mi venne in mente di scrivere un lunghissimo e complicatissimo programma in Basic per la sua soluzione. In quegli stessi mesi era argomento fisso, tra una lezione e l’altra, qualche volta anche durante, di noi giovanissime matricole universitarie in quel di Pisa. Cosa che immagino avvenisse anche in tanti altri atenei/licei.

Chiamavamo algoritmi i procedimenti base (sequenze di mosse) per risolvere una specifica problematica: ad esempio scambiare di posto due o più pezzi, ruotare un angolo, completare la prima faccia attraverso il pozzo di scarico, nome non so da chi dato e per quale ragione. Ma ci intendevamo al volo quando lo citavamo…

Vabbè, inutile continuare a parlare di questioni (mie) di quaranta e più anni fa - riassorbo la lacrimuccia che nel frattempo si era timidamente affacciata - saltiamo avanti, nel passato più recente.

Immagine_inlineDella soluzione robotizzata del Cubo di Rubik, in queste pagine ne ho parlato per la prima volta un po’ di anni fa. L’articoletto in questione è Il cubo di Robot, da cui il 2.0 aggiunto ora. Raccontavo di un interessante marchingegno utilizzante finanche componenti Lego - stanno sempre in mezzo! - che riusciva fisicamente a risolvere il rompicapo. La logica (tutta) era basata su un Samsung S2 che si occupava di leggere con la sua fotocamera i colori delle facce ed elaborare la sequenza di mosse per risolverlo. Il tutto dopo averci pensato appena qualche attimo, mentre l’azione meccanica durava circa cinque secondi, che a quell’epoca (siamo nel 2011) sembravano pochissimi. Più di recente, a onor del vero, sono stati realizzati dispositivi simili che raggiungono il medesimo obiettivo in poco più di un decimo di secondo… e non si può escludere che non si sia riuscito ad ottenere risultati ancora più stupefacenti.

Immagine_inlineIl brivido blu

Torniamo all’aspetto emozionale cui facevo riferimento all’inizio, che chiaramente non riguarda né gli aspetti AI - se mi stupissero sarei da ricovero… - né le tante soluzioni robotizzate, più o meno istantanee, che circolano ormai da tantissimo tempo. Qui parliamo di un Cubo di Rubik a momenti magico, ovvero in grado di auto-risolversi senza bisogno di toccarlo o affidarlo a un dispositivo meccanico esterno. Tutto questo grazie alla logica Arduino e alla robotica integrata nel rompicapo stesso, ma soprattutto alla genialità (e al coraggio…) del suo brillante ideatore, Takashi Kaburagi, che più giapponese non si può.

A guardare, anzi ammirare, i numerosi video presenti sul Web - tutti risalenti a 7-8 anni fa - quasi si stenta a crederci. Alcuni hanno ipotizzato, un po’ frettolosamente, che si limitasse a ripetere in senso contrario le mosse usate per mischiarlo, ma questo - oltre al fatto che l’avrebbero sgamato in un tempo inferiore al decimo di secondo prima narrato - è facilmente riscontrabile contando (e osservando) i movimenti, prima e dopo.

Immagine_inlineUn altro degli aspetti interessanti è che si utilizza proprio come un normalissimo “cubo”, almeno nella sua fase iniziale. Si mischiano le facce a mano, impostando tutte le mosse che si vuole, e dopo averlo appoggiato su un piano… parte la magia: torna a posto da solo, mossa dopo mossa. Ovvero, i suoi servomotori interni “in qualche modo” tracciano le mosse per mischiarlo… NON per poi risolverlo… ma per generare la mappa della disposizione/orientamento dei singoli pezzi, cosa che mi fece perdere un bel po’ di tempo, forse nottate, quando scrissi il codice in Basic per il Vic-20. Cito testualmente da MC n. 11, del lontano settembre 82, MC aveva appena un anno e io poco più di venti:

Immagine_inline«Far 'scubettare' un computer è più complicato di quanto sembri. Il problema, infatti, non è tanto quello della risoluzione, che come vedremo è molto semplice, quanto quello di trovare un modello matematico o quasi matematico che assomigli al cubo in tutto e per tutto. Ciò significa anche che deve avere le stesse proprietà algebriche. La soluzione che ho ritenuto migliore è stata quella di rappresentare il cubo in memoria, guarda caso, come un array tridimensionale di lato tre. Inoltre ogni elemento, di tipo stringa, contiene un codice per la biunivoca identificazione di un ben preciso mattoncino. Ad esempio, il pezzo Rosso-Verde-Giallo è rappresentato dalla stringa "RVG". Fin qui tutto normale, anzi qualcuno si sarà pure chiesto dove è tutta questa complicazione. Lo accontento subito: il complicato sta nel fatto che ogni mattoncino si può trovare nella stessa posizione con diversi orientamenti. Quindi la rappresentazione in memoria di un determinato mattoncino non è unica. Si è così pensato alle permutazioni cicliche di ogni stringa a seconda dell'orientamento del mattoncino corrispondente. In parole più semplici se il pezzo Rosso-Verde-Giallo cambia orientamento, all'interno dell'array avrà come sua rappresentazione la stringa "VRG" o "GVR" a seconda dell'orientamento stesso. Inoltre è stato necessario definire per ogni elemento dell'array quale dei colori rappresentati fosse sulla faccia XXX, quale sulla faccia YYY. A ciò si aggiunge che, quando si ruota una faccia, oltre a spostare in senso orario o antiorario i contenuti delle celle relative ai mattoncini spostati, bisogna per ognuno di essi effettuare le dovute modifiche dato che anche l'orientamento cambia».

Immagine_inlineIl vero cubo magico, dopo averlo mischiato a piacere, basta appoggiarlo sul tavolo (o tenerlo tra le dita in punta di vertice) e godersi i movimenti che compie, da solo, per tornare al punto di inizio, con le facce tutte ordinate. Navigando navigando ho letto anche di una (assai) ipotetica versione levitante, in qualche modo sospesa a qualche cm dal piano (magnetico?) per non rotolare a zonzo per il tavolo. Non credo sia mai stata realizzata… anche perché altrimenti di tracce ne avrebbe lasciate non poche.

Tornando con i piedi (e il cubo) per terra, la realizzazione non deve essere stata semplice. Sempre attingendo ai video in Rete si nota come i primi prototipi, come immaginabile, erano ben più grandi di un cubo classico e una delle magie deve essere stata proprio il riuscire a far stare tutto nelle dimensioni standard. Questione che solletica una disinteressata domanda: perché una cosa così bella e interessante - ben venga la smentita se ho capito male! - non è mai arrivata sul mercato?

Alzi la mano del mouse chi ne avrebbe acquistato uno di corsa. Presente!

AdP


Invia per email
#Vic-20#Robotica#digiTANTO#VideoYT#AI

Progetto a cura di  Andrea de Prisco - AdP

Per ulteriori informazioni,
utilizza il modulo Contattami

RSS

Privacy policy Informativa estesa RST