Progetto in corso · Robotica
Robotic
Costruiamo un braccio robotico, dai motori delle articolazioni fino alla mano.
- il rapporto del riduttore
- 40:1
- lo sbraccio
- 520 mm
- il carico di progetto
- 2 kg
- la coppia al gomito, stimata
- 13,9 N·m
Per chi viene da ingegneria robotica e meccatronica, informatica
Il braccio
A.R.M. è un braccio a tre gradi di libertà: una base che gira attorno all’asse verticale, una spalla e un gomito. Braccio e avambraccio sono lunghi 260 mm ciascuno, quindi la punta arriva a 520 mm dalla spalla. L’obiettivo è muovere 2 kg.
Ogni articolazione ha lo stesso schema: un motore brushless da drone, un riduttore cicloidale da 40 a 1, un encoder magnetico e un driver che controlla la corrente. Gli attuatori precisi in commercio costano molto: li costruiamo noi, e così capiamo ogni pezzo.
| Gradi di libertà | 3 | base, spalla, gomito |
|---|---|---|
| Braccio | 260 mm | dalla spalla al gomito |
| Avambraccio | 260 mm | dal gomito alla punta |
| Sbraccio | 520 mm | |
| Carico di progetto | 2 kg | sulla punta |
| Rotazione della base | da −180° a +180° | |
| Rotazione della spalla | da 0° a 90° | |
| Rotazione del gomito | da −90° a +90° | |
| Motori | Tarot 4008 e 4114 | il 4114, più grande, sulla spalla |
| Struttura | PAHT-CF stampato in 3D | profili cavi da 20 × 20 mm, parete 2,5 mm |
Il riduttore cicloidale
Un motore brushless gira veloce ma ha poca coppia. Il riduttore fa il contrario: rallenta di 40 volte e moltiplica la forza, in un disco largo 60 mm.
Al centro c’è una camma, spostata di mezzo millimetro dall’asse. Girando fa oscillare due dischi con 39 lobi dentro una corona con 40 denti. I dischi non ruotano, perché otto perni fissi passano nei loro fori. È la corona che avanza, di un dente a ogni giro della camma: 40 giri del motore per un giro del gomito.
I due dischi lavorano a 180 gradi l’uno dall’altro, così le forze si bilanciano. Molti lobi toccano i denti nello stesso momento: per questo un riduttore cicloidale ha pochissimo gioco e regge bene gli urti.
| Denti della corona | 40 | semicerchi da 2 mm su un cerchio da 52 mm |
|---|---|---|
| Lobi dei dischi | 39 | diametro da 49 a 51 mm |
| Eccentricità | 0,5 mm | |
| Dischi | 2, spessi 5 mm | a 180 gradi |
| Fori dei dischi | 8 da 7,08 mm | con 2 cuscinetti ciascuno |
| Perni | 3 mm di diametro | il gioco nel foro è 1 mm, il doppio dell’eccentricità |
| Cuscinetti | 37 | 2 da 52 mm, 2 da 24, 1 da 18, 32 da 7 |
| Ingombro del giunto | 60 × 74 mm | diametro per lunghezza |
N = 40 denti della corona
R = 26 mm raggio del cerchio dei denti
r = 1 mm raggio dei denti
e = 0,5 mm eccentricità
ψ(t) = atan2( sin((1 − N)·t), R/(e·N) − cos((1 − N)·t) )
x(t) = R·cos t − r·cos(t + ψ) − e·cos(N·t)
y(t) = −R·sin t + r·sin(t + ψ) + e·sin(N·t) con t da 0 a 2π
Quanta forza serve
Con 2 kg sulla punta e il braccio disteso, il peso fa leva. Più ci si allontana dalla punta, più cresce il momento che il motore deve reggere: 5,2 N·m al gomito, 11,4 N·m alla spalla.
La coppia disponibile è quella del motore moltiplicata per 40 e per il rendimento del riduttore, stimato all’85%. Al gomito c’è margine per 2,7 volte il carico, alla spalla per 1,3: per questo sulla spalla c’è il motore più grande.
- Gomito 5,2 N·m
- Spalla 11,4 N·m
I numeri del grafico
| Distanza dalla punta (mm) | Momento (N·m) |
|---|---|
| 0 | 0 |
| 65 | 1,28 |
| 130 | 2,55 |
| 195 | 3,88 |
| 260 | 5,2 |
| 325 | 6,71 |
| 390 | 8,22 |
| 455 | 9,8 |
| 520 | 11,39 |
I numeri del grafico
| Articolazione | Coppia |
|---|---|
| Gomito (Tarot 4008) | 5,2 su 13,9 N·m |
| Spalla (Tarot 4114) | 11,4 su 15 N·m |
Il controllo
Il controllo è a strati, ognuno più veloce di quello sopra. Il più interno regola la corrente nel motore, cioè la coppia: è il controllo a orientamento di campo, FOC, e gira dentro il driver. Sopra ci sono l’anello della velocità e quello della posizione.
La regola è tenere ogni anello da 5 a 10 volte più lento di quello sotto. Nel progetto in Matlab l’anello di corrente ha una banda di 3 kHz, quello di velocità di 50 Hz.
Più in alto, un Teensy 4.1 calcola la cinematica inversa 200 volte al secondo: dalla posizione voluta della punta ricava gli angoli di base, spalla e gomito, con una formula chiusa, senza iterazioni. Un ESP32 riceve i comandi via Wi-Fi.
- 01
Encoder
AS5048A magnetico a 14 bit: 16.384 passi per giro. Legge un magnete sull’albero, a un millimetro di distanza.
- 02
Driver
ODESC 3.6, due motori per scheda, firmware ODrive open source. Esegue il FOC e i limiti di corrente.
- 03
Teensy 4.1
Processore da 600 MHz: cinematica inversa a 200 Hz, traiettorie, limiti dello spazio di lavoro. Parla con i driver via CAN.
- 04
ESP32-S3
Il supervisore: comandi via Wi-Fi, registrazione dei dati, collegamento col Teensy a 3 Mbaud.
- Picco del 16,1% sopra il valore voluto dopo 0,167 ms
- Dentro il 2% del valore voluto dopo 0,30 ms
I numeri del grafico
| Tempo (ms) | Corrente sul valore voluto |
|---|---|
| 0 | 0 |
| 0,025 | 0,324 |
| 0,05 | 0,616 |
| 0,075 | 0,849 |
| 0,1 | 1,012 |
| 0,125 | 1,11 |
| 0,15 | 1,154 |
| 0,167 | 1,161 |
| 0,2 | 1,141 |
| 0,25 | 1,075 |
| 0,3 | 1,018 |
| 0,35 | 0,989 |
| 0,4 | 0,983 |
| 0,45 | 0,988 |
| 0,5 | 0,995 |
| 0,6 | 1,002 |
| 0,8 | 1 |
| 1 | 1 |
- Picco del 27,6% sopra il valore voluto dopo 10 ms
- Dentro il 2% del valore voluto dopo 30,8 ms
I numeri del grafico
| Tempo (ms) | Velocità sul valore voluto |
|---|---|
| 0 | 0 |
| 1 | 0,25 |
| 2 | 0,481 |
| 3 | 0,686 |
| 4 | 0,859 |
| 5 | 1 |
| 6 | 1,109 |
| 8 | 1,24 |
| 9,99 | 1,276 |
| 12 | 1,25 |
| 15 | 1,156 |
| 20 | 1,012 |
| 25 | 0,964 |
| 30 | 0,976 |
| 35 | 0,997 |
| 40 | 1,005 |
| 50 | 1,001 |
| 70 | 1 |
Guidarlo con le mani
Un braccio che lavora accanto alle persone deve anche lasciarsi guidare. In simulazione il gomito stima la coppia che arriva da fuori, senza un sensore di forza, solo da corrente e movimento. Poi cambia comportamento: segue la traiettoria, cede quando qualcuno lo spinge, impara la nuova posizione e la tiene.
Nella prova il gomito sale da 0 a 45 gradi in 2 secondi, con un errore massimo di un centesimo di grado. Poi una persona lo spinge fino a 15 N·m: il braccio cede fino a 157 gradi, e quando la mano lascia impara la posizione a 101 gradi. La tiene con 4,33 N·m.
A 13 secondi un urto lo sposta di 25 gradi: in 1,3 secondi è di nuovo al suo posto, entro mezzo grado. La simulazione usa il modello della prima fase del progetto, con riduttore da 30 a 1 e due motori sul giunto.
- Segue la traiettoria da 0 a 45 gradi in 2 secondi
- Cede alla spinta la persona spinge fino a 15 N·m
- Impara la posizione 101 gradi
- La tiene 4,33 N·m, 3,31 A per motore
- Un urto torna entro mezzo grado in 1,3 secondi
I numeri del grafico
| Tempo (s) | Angolo (°) | Riferimento (°) |
|---|---|---|
| 0 | 0 | 0 |
| 0,5 | 4,65 | 4,66 |
| 1 | 22,5 | 22,5 |
| 1,5 | 40,35 | 40,34 |
| 2 | 45,01 | 45 |
| 2,5 | 45 | 45 |
| 3 | 45 | 45 |
| 3,5 | 45 | 45 |
| 4 | 75,16 | 45 |
| 4,5 | 128,02 | 45 |
| 5 | 155,09 | 45 |
| 5,5 | 152,91 | 45 |
| 6 | 138,5 | 45 |
| 6,5 | 128,14 | 45 |
| 7 | 120,74 | 45 |
| 7,5 | 113,65 | 45 |
| 8 | 97,41 | 97,42 |
| 8,5 | 100,98 | 100,99 |
| 9 | 100,98 | 100,99 |
| 9,5 | 100,98 | 100,99 |
| 10 | 100,98 | 100,99 |
| 10,5 | 100,98 | 100,99 |
| 11 | 100,99 | 100,99 |
| 11,5 | 100,99 | 100,99 |
| 12 | 100,99 | 100,99 |
| 12,5 | 100,99 | 100,99 |
| 13 | 100,99 | 100,99 |
| 13,5 | 75,38 | 100,99 |
| 14 | 91,3 | 91,29 |
| 14,5 | 101 | 100,99 |
| 15 | 101 | 100,99 |
| 15,5 | 100,99 | 100,99 |
| 15,99 | 100,99 | 100,99 |
I numeri del grafico
| Tempo (s) | Spinta (N·m) | Stima (N·m) |
|---|---|---|
| 3 | 0 | 0 |
| 3,2 | 0 | 0 |
| 3,4 | 0 | 0 |
| 3,6 | 0,4 | -0,03 |
| 3,8 | 11,53 | 8,58 |
| 4 | 14,96 | 14,58 |
| 4,2 | 15 | 14,72 |
| 4,4 | 15 | 14,72 |
| 4,6 | 13,95 | 14,02 |
| 4,8 | 11,85 | 11,94 |
| 5 | 9,75 | 9,84 |
| 5,2 | 7,65 | 7,75 |
| 5,4 | 5,55 | 6,18 |
| 5,6 | 4 | 4,31 |
| 5,8 | 4 | 4,27 |
| 6 | 4 | 4,27 |
| 6,2 | 4 | 4,27 |
| 6,4 | 4 | 4,27 |
| 6,6 | 4 | 4,27 |
| 6,8 | 4 | 4,27 |
| 7 | 3,99 | 4,27 |
| 7,2 | 3,89 | 4,2 |
| 7,4 | 3,07 | 3,58 |
| 7,6 | 0,93 | 1,54 |
| 7,8 | 0,11 | 0,45 |
| 8 | 0 | 0,21 |
| 8,2 | 0 | -0,27 |
| 8,4 | 0 | -0,04 |
| 8,6 | 0 | 0,01 |
| 8,8 | 0 | 0 |
| 9 | 0 | -0,01 |
Il modello dell’attuatore
Prima di costruire, la squadra ha scritto il modello matematico completo dell’attuatore: la parte elettrica, quella magnetica, la meccanica, la trasmissione e la temperatura. Sono circa 90 parametri, 55 del primo ordine e 35 del secondo.
Il piano di prova misura prima i parametri che contano di più: resistenza, induttanza, costante di coppia, inerzia, attrito. Gli altri si aggiungono solo se servono. Sono circa 16 ore di prove, con meno di 200 euro di strumenti.
Le traiettorie sono polinomi di quinto grado, a jerk minimo: il braccio parte da qualsiasi velocità e arriva fermo, senza strappi.
τ = (t − t0) / T
q(τ) = c0 + c1·τ + c2·τ² + c3·τ³ + c4·τ⁴ + c5·τ⁵
c0 = q0 c1 = v0·T c2 = a0·T²/2
Δq = qf − c0 − c1 − c2 Δv = −c1 − 2·c2 Δa = −2·c2
c3 = 10·Δq − 4·Δv + 0,5·Δa
c4 = −15·Δq + 7·Δv − Δa
c5 = 6·Δq − 3·Δv + 0,5·Δa
I numeri di questa pagina vengono dal progetto e dalle simulazioni. Le misure sui motori veri sono il prossimo passo.
A che punto siamo
- Prima faseAbbiamo scritto il modello matematico completo dell’attuatore, con circa 90 parametri.
- Aprile 2026Abbiamo presentato il primo modello 3D del braccio, con una mano a cinque dita.
- Maggio 2026Nel CAD è pronto il giunto del gomito, seconda versione: motore Tarot 4008, riduttore cicloidale da 40 a 1, encoder magnetico. In simulazione il controllo del gomito si lascia guidare con le mani.
- Prossimo passoDue braccia umanoidi che svolgono compiti complessi da sole e lavorano accanto alle persone.
Foto
Fonti
- Mathematical Modeling and Parameter Reference, versione 1.0, gennaio 2026.
- Hardware Characterization, versione 1.0, gennaio 2026.
- Analisi del braccio a 3 gradi di libertà, revisione 3, marzo 2026.
- Guida ai parametri FOC e procedure di misura del Tarot 4008, aprile 2026.
- Progetto dei guadagni in Matlab e simulazione del gomito in Python, maggio 2026.
- CAD del giunto del gomito, versione 2, 16 maggio 2026.
- Presentazione del Deep-Tech Showcase, Palazzo della Borsa, 21 aprile 2026.
Vuoi lavorarci?
Non serve esperienza e non serve un curriculum. Scrivici: ti invitiamo al prossimo incontro, dove conosci la squadra.