Percorso di costruzioneIntermedioUn fine settimana o due

Mini sumo robot: presa, cuneo e rilevamento del bordo

Un mini sumo robot che cerca l'avversario, lo spinge fuori dal ring e si ferma sul bordo bianco invece di uscire dal bordo.

Schema tecnico: Mini sumo robot: presa, cuneo e rilevamento del bordoCLEARANCE FIELD

Cosa stai costruendo

Due robot, un ring, nessun sensore puntato su qualcosa diverso da loro stessi e il pavimento. Vince chi è ancora dentro alla fine.

È l’obiettivo più semplice di questo sito e non è il progetto facile che sembra, perché il sumo è l’unico robot in cui la meccanica decide l’esito e il codice deve soltanto non rovinarlo. Ogni altra costruzione qui premia algoritmi migliori. Questa premia un cuneo più affilato.

Vale la pena vivere una volta questa inversione. È anche il motivo per cui l’ordine di costruzione qui sotto dedica il primo giorno all’aritmetica e l’ultimo al comportamento, l’opposto di come iniziano quasi tutti.

I tre numeri che lo decidono

La forza di spinta è 5.9 N e i tuoi motori potrebbero fornire 25 N. Un robot da 500 g con ruote in silicone è limitato dalla trazione di un fattore quattro. Il gruppo di trazione non è il vincolo e non lo sarà mai, quindi costruisci fino al limite di peso, metti ogni grammo sulle ruote motrici e spendi il bilancio dei motori sul rapporto di riduzione invece che sulla potenza.

Un cuneo che solleva il 40% dell’avversario dà 2.3× la sua spinta. Il peso che gli togli arriva su di te, quindi il rapporto è (1+f)/(1−f) e cresce rapidamente. Nessun’altra singola modifica si avvicina.

Puoi viaggiare a circa 0.8 m/s. Non perché i motori finiscano, ma perché 25 mm di bordo più 25 ms di latenza sono tutto lo spazio di arresto disponibile. La maggior parte dei primi robot è progettata per il doppio e perde contro il bordo, non contro l’avversario.

Quelle tre frasi sono tutto il progetto. Tutto ciò che segue spiega come raggiungerle.

Lista dei componenti

Il mini sumo ha una classe formale: ingombro di 10 × 10 cm all’inizio, massimo 500 g, su un ring di 77 cm con un bordo bianco di 2.5 cm. Le regole danno forma alla lista.

Componente Quantità Costo indicativo Note
Arduino Uno o Nano 1 $5 Un Nano sta molto più comodamente nell’ingombro di 10 cm
Sensori IR a riflessione 2–4 $5 Rilevamento del bordo. Almeno uno su ciascun angolo frontale
VL53L0X 2–3 $10–15 Rilevamento dell’avversario. Il fascio stretto batte il sonar in un ring
Motori N20 con encoder 2 $16 Rapporto di coppia elevato: 1:100 o più lento. La velocità non è l’obiettivo
TB6612FNG 1 $3
Telaio con cuneo in acciaio 1 $10–25 Il cuneo è l’arma; l’acciaio è anche il peso di bilanciamento
Pacco batteria 1 $10 Serve anche come massa: mettilo sulle ruote motrici
Pneumatici in silicone o ad alta aderenza 2 $5 L’aggiornamento più prezioso dell’elenco

Totale: circa $65–90.

Due note che decidono gli incontri più di quanto si limitino a far funzionare il robot.

Il peso va sulle ruote motrici, fino al limite. La forza di spinta è attrito, e l’attrito è il coefficiente moltiplicato per il carico normale. Ogni grammo che non è su una ruota motrice è sprecato: per questo i robot sumo arrivano esattamente a 500 g e mettono quasi tutto quel peso su due ruote.

Gli pneumatici contano più dei motori. Un robot che ha raggiunto il limite di trazione non guadagna nulla da più coppia: le ruote semplicemente girano. Passare dalla plastica dura (µ ≈ 0.4) al silicone (µ ≈ 1.2 o meglio) triplica all’incirca la forza di spinta disponibile per cinque dollari, risultato che nessun aggiornamento dei motori può eguagliare.

Ordine di costruzione

1 — Decidi prima massa e pneumatici. Impostano la forza di spinta prima ancora che esista una riga di codice. Punta al limite di 500 g, con la massa bassa e sulle ruote motrici; usa pneumatici in silicone o uretano morbido, non quelli forniti con il kit del telaio. µ 1.2 rispetto a µ 0.7 dà il 72% di spinta in più e costa il prezzo di un set di ruote.

2 — Scegli il rapporto per la coppia e controlla la corrente di stallo. Il sumo vive sul lato della coppia della curva del motore, intorno a 0.8 m/s alla ruota anziché agli 1.5 che un kit di telaio presuppone. Poi calcola quanto assorbono due motori in stallo— circa 3 A— e dimensiona il pacco di conseguenza rispetto a quello, non rispetto alla corrente di crociera. Un intero incontro è uno stallo prolungato.

3 — Fagli fermarsi al bordo, da solo nel ring. Questo è il traguardo. Monta sensori a riflessione su entrambi gli angoli frontali, il più in avanti possibile finché vedono ancora la linea bianca, calibrati sul ring reale anziché sulla tua scrivania. Guida a tutta velocità verso il bordo, cinquanta volte, da ogni angolo. Finché questo non è noiosamente affidabile non ha senso aggiungere un avversario: un robot che esce da solo perde senza essere mai stato spinto.

4 — Leggi i sensori di bordo a ogni passaggio del ciclo. Quattro quinti della distanza di reazione aspettano la successiva iterazione del ciclo, e una singola lettura bloccante della distanza equivale a 20 ms di cecità proprio nel momento sbagliato. La temporizzazione non bloccante è l’aumento di velocità più economico disponibile.

5 — Aggiungi il rilevamento dell’avversario. Un VL53L0X frontale e, opzionalmente, altri due inclinati verso l’esterno a 45°. Il fascio stretto conta: un sensore a ultrasuoni in un ring trova soprattutto il ring.

6 — Scrivi il comportamento come stati espliciti. Cerca, carica, spingi, ritira, con il riflesso del bordo che li precede tutti. Questo è un caso da manuale per una macchina a stati finiti, perché il controllo del bordo deve essere eseguito in ogni stato e non deve esistere alcun percorso nel codice in cui non lo sia.

7 — Costruisci il cuneo per ultimo e modificalo per sempre. È la parte con il maggior impatto e la più facile da cambiare.

Il comportamento, in un paragrafo

Inizia con un ritardo obbligatorio— la maggior parte dei regolamenti richiede cinque secondi. Poi cerca: ruota sul posto, o percorri un piccolo arco, finché il sensore frontale non segnala qualcosa entro circa 40 cm. Carica dritto verso l’avversario a piena potenza. Spingi finché la distanza non si riapre (l’avversario si è mosso) o non rilevi il bordo. Ritira a qualsiasi rilevamento del bordo: prima retromarcia a fondo, poi fermati e ruota di nuovo verso il centro del ring. Il ritiro ha la precedenza su tutto, da qualsiasi stato e in qualsiasi momento.

La parte sottile è che spingere e restare bloccati sembrano identici dal sensore frontale. Se hai gli encoder, una velocità delle ruote pari a zero con un comando al massimo significa che sei in stallo: è il segnale per arretrare e riaccostarti da un angolo diverso, invece di continuare a strisciare finché la batteria si scarica.

Note hardware importanti

La punta del cuneo decide gli incontri. Lamiera sottile di acciaio o alluminio, rettificata fino a formare uno spigolo e tenuta a una frazione di millimetro dal pavimento da qualcosa di rigido. Su un supporto flessibile sale sopra l’avversario invece di infilarsi sotto, il che inverte il segno dell’intero calcolo del trasferimento di peso.

Tieni la parte frontale bassa. Il cuneo dell’avversario applica una forza verso l’alto al tuo bordo anteriore, e quanto ti fa ribaltare dipende da quanto è alto il tuo baricentro rispetto a esso. I robot alti vengono ribaltati da robot che non potrebbero spingerli più forte.

Nessun rotellino se puoi evitarlo. Il peso su una ruota libera non produce trazione. Due ruote motrici e una pattina a basso attrito— un bottone in PTFE o la testa di una vite arrotondata— mettono quasi tutta la massa al lavoro.

Proteggi il cablaggio. Questo è l’unico robot del sito deliberatamente spinto. Ciò che si trova all’esterno viene colpito; ciò che è su un connettore si scollega.

Riduttori metallici. I treni di ruote dentate di plastica si rompono in un robot la cui normale condizione operativa è lo stallo, e un riduttore rotto a metà incontro è indistinguibile da una batteria scarica.

Che aspetto ha un buon risultato

Misura Costruzione tipica Competitiva
Massa 400–500 g 499 g: il limite, esattamente
Frazione della massa sulle ruote motrici 70% 90%+
Coefficiente di attrito del pneumatico 0.6–0.8 (gomma) 1.2–1.5 (silicone)
Forza di spinta 2.5–4 N 6–7 N
Tempo di reazione al rilevamento del bordo 60–100 ms Inferiore a 30 ms
Distanza di arresto dalla velocità massima 8–15 cm Inferiore a 5 cm
Portata di rilevamento dell’avversario 30–40 cm 60–80 cm

Il tempo di reazione al bordo è il numero che decide chi vince o chi perde gli incontri, ed è un effetto maggiore della forza di spinta. Il bordo bianco del ring è largo 2.5 cm. Un robot che viaggia a 0.5 m/s attraversa quel bordo in 50 ms: quindi una reazione di 100 ms significa che il robot è già fuori quando ha finito di decidere di fermarsi.

Questo bilancio si compone di tempo di lettura del sensore, periodo del ciclo e distanza di frenatura. Tutti e tre sono attaccabili: interroga i sensori di bordo molto più spesso di tutto il resto, mantieni stretto il ciclo di controllo e frena invece di scivolare— cortocircuitando il motore attraverso l’H-bridge il robot si ferma molto più rapidamente di quanto faccia togliendogli alimentazione.

Vale la pena esprimere il limite di trazione come aritmetica. Con 500 g su due ruote motrici e pneumatici in silicone a µ = 1.4:

maximum pushing force = 0.5 kg x 9.81 x 1.4 = 6.9 N

Oltre questo le ruote girano indipendentemente dalla coppia del motore: è il motivo per cui un robot sumo è un problema di trazione con i vestiti di un problema di motore.

Quando va storto

Sintomo Di solito
Esce dal ring da solo Troppo veloce per il bilancio del bordo, oppure sensori di bordo interrogati troppo lentamente
Le ruote girano, il robot non va da nessuna parte Trazione limitata, come progettato: aggiungi massa o cambia pneumatici
Perde contro un robot simile Il suo cuneo è finito sotto il tuo: luce a terra, non potenza
Si resetta durante la spinta Corrente di stallo che abbassa la linea: dimensiona per lo stallo
Vede un bordo che non c’è IR ambiente o ring riflettente: scherma i sensori e ricalibra
Insegue la parete del ring invece dell’avversario Fascio troppo largo: è questo che il tempo di volo risolve
Cade all’indietro Nessun sensore di bordo posteriore
Si ferma sulla linea e poi esce comunque Ha girato mentre era ancora in movimento; fermati prima del movimento

Sei degli otto sono guasti meccanici o di sensore, la stessa distribuzione mostrata dal micromouse e per la stessa ragione: l’algoritmo è la parte piccola.

Se vuoi il rilevamento e la geometria di arresto senza la corsa degli attrezzi meccanici, il simulatore di evitamento degli ostacoli esegue la stessa aritmetica della distanza di arresto con un sensore frontale, e il robot con evitamento degli ostacoli è la costruzione più gentile che condivide gran parte di questo hardware. Per la teoria del gruppo di trazione sotto tutto questo, il percorso di controllo dei motori parte dal dimensionamento e finisce sull’odometria.

Roadmap del progetto

Il percorso di costruzione

Segui l'albero tecnologico dai componenti fino a un robot funzionante. Ogni nodo si sblocca quando i suoi prerequisiti sono completati, e i tuoi progressi vengono salvati su questo dispositivo.

0 / 18 completati

100%
Costruzione

Fagli restare nel ring

Costruzione

Obiettivo

Vinci uno spintone

Obiettivo

Componenti

Tutorial in questo percorso

Domande frequenti

Che cos'è il mini sumo?

Una classe di combattimento tra robot in cui due robot autonomi cercano di spingersi fuori da un ring circolare, senza armi e senza danni da contatto. Il mini sumo limita il robot a 500 grammi e a un ingombro di 10 per 10 centimetri, con altezza illimitata; il ring è un disco nero di 77 centimetri con un bordo bianco di 25 millimetri dipinto attorno al bordo. Un incontro finisce quando il corpo di un robot tocca il pavimento fuori dal ring, cosa che accade molto più spesso uscendo dal bordo che venendo spinti fuori.

Perché c'è un limite di peso se i robot più pesanti spingono più forte?

Perché è proprio questo il punto. La forza di spinta su un piccolo robot è limitata dall'attrito: è il coefficiente di attrito moltiplicato per il peso sulle ruote motrici, e quel numero è solo circa un quarto di ciò che i motori potrebbero fornire. Limitare la massa limita la spinta e impedisce che la classe diventi un concorso su chi ha comprato i motori più grandi. Significa anche che ogni concorrente dovrebbe essere costruito al limite, perché nelle regole la massa è la risorsa e rinunciare a 100 grammi equivale a rinunciare al 20 percento della spinta.

Mi servono encoder sui motori?

Non per un primo robot. Il sumo non richiede odometria: nulla deve sapere dove si trova sul ring, solo se sta per lasciarlo. Gli encoder diventano utili in seguito per capire che sei bloccato contro un avversario invece di muoverti liberamente, il che è uno stato davvero diverso e che il tuo codice di comportamento vorrebbe conoscere. Inizia senza e aggiungili quando la macchina a stati avrà bisogno dell'informazione.

Ultrasuoni o tempo di volo per trovare l'avversario?

Tempo di volo, in un ring. Un fascio a ultrasuoni si apre di circa 15 gradi e riflette sul pavimento e su qualsiasi superficie vicina, così un robot che cerca trova muri, tavoli e il bordo del proprio ring. Un VL53L0X ha un cono stretto e legge in circa 20 millisecondi senza interferenze acustiche. L'alternativa classica è una coppia di sensori IR analogici a corto raggio inclinati verso l'esterno, economici e veloci ma che vedono gli avversari scuri molto più tardi di quelli chiari.

A che velocità dovrebbe davvero guidare il robot?

Più lentamente di quanto tu voglia. Con 25 millisecondi di latenza tra sensore e freno e ruote in silicone, un robot con il sensore di bordo 40 millimetri davanti all'asse può viaggiare a circa 0.98 metri al secondo prima di non potersi più fermare entro il bordo; poiché un'inversione brusca porta le ruote sul coefficiente cinetico più basso, circa 0.8 metri al secondo è il valore onesto. La maggior parte dei primi robot è progettata per un metro e mezzo al secondo e perde ogni incontro contro il bordo, non contro l'avversario.

Perché il mio robot perde contro uno dall'aspetto identico?

Quasi sempre a causa del bordo frontale. Due robot di massa e aderenza uguali spingono ugualmente finché uno non finisce sotto l'altro, e sollevare il 40 percento del peso dell'avversario rende la tua spinta 2.3 volte la sua, perché il peso che sollevi si aggiunge alla tua trazione e si sottrae dalla sua. L'effetto è maggiore di qualsiasi modifica di motore, pneumatico o batteria a tua disposizione, ed è deciso da una frazione di millimetro di luce a terra sulla punta del cuneo.