Tutorial · Intermedio · 30 min

Pinza servo: forza, stallo e vantaggio della compliance

Un servomotore comanda una posizione, ma conta la forza: la rigidezza è il rapporto di scambio e con dita rigide la finestra scende sotto un passo.

Un problema di unità, non di regolazione

Ecco tutta la difficoltà di una pinza con servomotore hobbistica, in due righe:

  • All’oggetto importa la forza. Sotto una soglia cade, sopra un limite viene distrutto.
  • Il servomotore riceve una posizione. writeMicroseconds(1300) è un angolo e il servomotore manterrà quell’angolo con la forza necessaria.

Sono unità diverse e a convertirle è la rigidezza in serie di tutto ciò che si trova tra la leva del servomotore e l’oggetto: il cinematismo, il dito, il rivestimento e l’oggetto stesso, tutti in serie. Se questa catena ha rigidezza k, pilotando le mascelle di Δc oltre il primo contatto ottieni

N = k · Δc

e la finestra di forza che devi raggiungere, espressa nei millimetri che puoi effettivamente comandare, è

Δc_window = ( F_ceiling − F_floor ) / k

Tutto ciò che trovi in questa pagina discende da questa singola equazione, incluso il motivo per cui un dito più rigido e stampato meglio rende peggiore la pinza.

Risoluzione reale di un servomotore

La risoluzione utilizzabile di un servomotore hobbistico è di circa un grado, considerando la zona morta, il gioco di inversione del riduttore e la quantizzazione di ciò che genera l’impulso. Questo grado si traduce in corsa della mascella tramite il braccio di leva L:

step = L · (π/180)
Braccio di leva Corsa mascella per passo Forza di stall di SG90 Forza continua (≈70%)
12 mm 0.209 mm 14.67 N 10.27 N
20 mm 0.349 mm 8.80 N 6.16 N
30 mm 0.524 mm 5.87 N 4.11 N
45 mm 0.785 mm 3.91 N 2.74 N
60 mm 1.047 mm 2.93 N 2.05 N

Ci sono due aspetti da notare. Un braccio di leva corto offre sia più forza sia una risoluzione più fine: è migliore su entrambi gli aspetti importanti per la pinza. Il costo è l’intervallo disponibile: la corsa della mascella su un’escursione θ della leva è soltanto L·θ, quindi un braccio da 12 mm su 120° apre 25 mm e non può aggirare una bottiglia da 65 mm.

Due grafici sovrapposti in funzione del braccio di leva del dito, da 10 a 60 millimetri. Il grafico superiore ha due assi verticali: una curva ciano della forza continua sulla mascella diminuisce da 12.5 newton a 2.1 newton all'aumentare della lunghezza del braccio, con valori indicati di 10.3 newton per 12 millimetri, 4.1 newton per 30 e 2.1 newton per 60; una linea ambra della corsa della mascella per passo del servomotore aumenta da circa 0.18 a 1.05 millimetri. Il titolo dice che una corsa breve offre forza e risoluzione. Il grafico inferiore mostra l'apertura della mascella su un'escursione della leva di 120 gradi, che aumenta linearmente da circa 21 a 126 millimetri, con linee di riferimento tratteggiate a 30 millimetri per un blocco, 44 per un uovo e 65 per una bottiglia.

Il braccio di leva è l'unica scelta libera ed è determinato dall'oggetto più largo che devi aggirare. Forza e risoluzione sono ciò che ne deriva: entrambe migliorano al diminuire del braccio, perciò il compromesso riguarda l'intervallo disponibile, non la resistenza. Scarica SVG

Il braccio di leva viene scelto in base all’oggetto più grande che devi afferrare; forza e risoluzione sono ciò che ne deriva. Se ti servono sia l’intervallo disponibile sia la forza, è questo il motivo per usare un cinematismo o una cremagliera.

E il secondo aspetto: un PCA9685 a 12 bit offre circa 0.09° di risoluzione nei comandi, il che sembra risolvere il problema. Non è così. Il limite è la zona morta e il riduttore del servomotore, non la sorgente degli impulsi. Comandi più fini producono un movimento più uniforme, non una forza più fine: è la stessa logica del microstep che migliora l’inseguimento anziché la precisione.

Misurare la finestra

Ora unisci le due metà. Prendi una fragola: 15 g, μ 0.6, resistenza allo schiacciamento circa 3 N e un SG90 su un braccio da 30 mm che eroga 4.11 N in continuo. Per sollevarla di 250 mm in 0.9 s, la soglia di slittamento è 0.29 N e il limite è min(3, 4.11) = 3 N, quindi la finestra di forza è 2.71 N. Dividi per la rigidezza:

Dito k Finestra Rispetto al passo da 0.524 mm Posizioni del servomotore funzionanti
Dito rigido in PLA stampato 25 N/mm 0.108 mm 5× troppo fine 0
Dito rigido, rivestimento in schiuma 4 N/mm 0.677 mm appena più ampia 1
Molla di trazione in serie 0.8 N/mm 3.386 mm 6× più ampia 7
Dito flessibile stampato 0.35 N/mm 7.739 mm 15× più ampia 15
Due pannelli sovrapposti. Quello superiore è un grafico della forza di presa in newton rispetto alla chiusura della mascella oltre il contatto, in millimetri, per un dito flessibile stampato con rigidezza di 0.35 newton per millimetro. Una retta inclinata mostra la forza che aumenta con la chiusura; una banda rossa sotto 0.29 newton è la soglia di slittamento, una linea rossa tratteggiata a 3 newton è il limite di schiacciamento e la banda verde tra loro è la finestra utilizzabile. Un pettine di brevi segni verticali lungo l'asse inferiore indica un passo del servomotore e quindici di essi cadono nella banda verde. Il pannello inferiore è un grafico a barre orizzontali su un asse logaritmico della finestra utilizzabile, in millimetri, per quattro tipi di dito: rigido stampato a 25 newton per millimetro dà 0.108 millimetri, con rivestimento in schiuma a 4 dà 0.677, con molla in serie a 0.8 dà 3.386 e flessibile stampato a 0.35 dà 7.739. Una linea verticale indica un passo del servomotore a 0.524 millimetri e soltanto la barra del dito rigido stampato non arriva a superarlo.
Sono sempre le stesse due pareti di forza; cambia soltanto la rigidezza. Sotto la linea di un passo del servomotore non esiste alcun comando che cada nella finestra: è il caso del dito rigido stampato, con un fattore pari a cinque. Scarica SVG

La finestra scala esattamente come 1/k. Venticinque su zero virgola cinque fa settantuno, e 7.739 / 0.108 fa settantuno. Non c’è nulla di approssimativo, e puoi vedere i due numeri muoversi in senso opposto trascinando il cursore della rigidezza nel simulatore della pinza.

Sotto un passo del servomotore non esiste alcuna impostazione funzionante. Non è che sia «difficile da regolare»: non esiste un valore di comando che cada nella finestra e nessuna modifica al firmware può raggiungerla. È la cosa più utile da sapere prima di stampare un dito.

Perché una pinza rigida può comunque funzionare?

Perché non cade mai nella finestra. Supera il limite e resta bloccato al limite di forza del servomotore, il che funziona solo finché quel limite resta inferiore alla forza di schiacciamento dell’oggetto.

Fai scorrere gli oggetti nel simulatore con un dito rigido: la colonna «impostazioni funzionanti» è zero per tutti, eppure quattro dei sei vengono trattenuti perfettamente:

Oggetto Limite di schiacciamento Cosa accade con dita rigide
Blocco di legno 500 N trattenuto — servomotore bloccato a 4.11 N
Vite M6 2000 N trattenuto — servomotore bloccato
Uovo di pollo 30 N trattenuto — servomotore bloccato
Bottiglia in PET 8 N trattenuto — servomotore bloccato
Tazza di carta 4 N schiacciata
Fragola 3 N schiacciata

Il servomotore si comporta come una frizione che non hai progettato e che non puoi regolare. È impostata sul valore τ·0.7/L che si ottiene, e tutto ciò che è più debole viene distrutto.

Questa ha una conseguenza davvero controintuitiva: montare un servomotore più grande rende peggiore la pinza. Porta il cursore della coppia di stall da un SG90 verso un MG996R e la frizione accidentale sale oltre il limite di schiacciamento dell’uovo; ora rompi anche le uova. Più coppia è la risposta sbagliata a «lascia cadere gli oggetti» quasi quanto sia quella giusta.

Il costo di trattenere bloccando il servomotore

Un servomotore bloccato contro un oggetto è un servomotore in stall. Non gira, quindi non produce potenza meccanica e tutta la corrente assorbita dall’avvolgimento si trasforma in calore.

  • Un SG90 in stall a 4.8 V assorbe circa 650–750 mA. Al 70% della coppia di stall stai ancora facendo scorrere circa 0.49 A attraverso un motore senza ventilazione e con custodia in plastica.
  • Diventano caldi in decine di secondi e muoiono in pochi minuti. Il sintomo tipico è un servomotore che funziona, poi diventa debole e instabile, poi ronzia senza fare nulla.
  • Un regolatore economico da 5 V che alimenta un paio di questi subisce un calo di tensione, reimpostando il microcontrollore a metà presa.

Ci sono diverse soluzioni, grossomodo in ordine di costo:

  1. Non trattenere ciò che non devi trattenere. Apri la pinza appena il componente è posizionato. Il bug più comune è una macchina a stati che lascia le mascelle chiuse su una pinza vuota per tutto il ritorno.
  2. Riduci il comando dopo la presa. Chiudi con forza, poi diminuisci il comando di uno o due passi. Con la compliance in serie conservi gran parte della forza; senza, la perdi tutta: un altro motivo per usarla.
  3. Alimenta il servomotore con un’alimentazione dedicata, non con il regolatore della scheda, con qualche centinaio di µF vicino.
  4. Aggiungi un fermo meccanico o un cinematismo over-centre per le prese lunghe. È ciò che fanno le pinze industriali e non assorbe corrente.
  5. Misura con un dito la temperatura della custodia dopo un minuto di tenuta. Tiepida va bene. Se è troppo calda per tenere il dito, ti resta circa una settimana di funzionamento.

Introdurre la compliance

La compliance risolve entrambi i problemi contemporaneamente: amplia la finestra e toglie il servomotore dal bloccaggio. Ci sono quattro modi per ottenerla, dal più economico:

Un rivestimento in schiuma o TPU (k ≈ 4 N/mm)

Schiuma EVA autoadesiva oppure un rivestimento in TPU stampato spesso 3–4 mm. Non costa nulla, richiede cinque minuti e ti porta da zero impostazioni funzionanti a circa una. È la correzione minima praticabile, ma da sola non basta per lavori delicati.

Una molla di trazione in serie (k ≈ 0.8 N/mm)

Metti la molla tra la leva del servomotore e il dito, con una sede e un perno che consentano al cinematismo di assorbire il gioco. Ora il servomotore comanda una deflessione della molla, cioè una forza con una tolleranza reale. È un attuatore elastico in serie realizzato con un componente da 40p e la modifica con il miglior rapporto qualità-prezzo dell’intera pinza.

Le regole di progettazione: scegli una molla la cui deflessione operativa copra la finestra, qualche millimetro, caricala leggermente in modo che al primo contatto non ci sia una zona morta e aggiungi un fermo fisso, così un comando incontrollato non può farla avvitare su sé stessa e trasmettere comunque l’intera coppia di stall al cinematismo.

Un dito flessibile stampato (k ≈ 0.35 N/mm)

Un dito con una sezione deliberatamente sottile che flette. È gratuito in fase di stampa, non richiede componenti aggiuntivi e offre la finestra più ampia delle quattro soluzioni. Stampalo in PETG o nylon anziché in PLA: il PLA scorre sotto carico prolungato e il flessore assume una deformazione permanente entro poche settimane di utilizzo.

La dominante è lo spessore: la rigidezza di una trave inflessa cresce con il cubo dello spessore, quindi 2 mm rispetto a 1.5 mm è un fattore di 2.4. Stampa una striscia di prova, appendi dei pesi noti, misura la deflessione e in dieci minuti avrai il tuo k. Nel simulatore va inserito proprio questo valore misurato, non quello predefinito.

Dite Fin Ray

Le dita intere sono un traliccio che avvolge l’oggetto mentre si carica. Offrono contemporaneamente la compliance e una parziale chiusura di forma, motivo per cui hanno preso il sopravvento nelle pinze hobbistiche per oggetti irregolari. Sono più difficili da modellare, perché la rigidezza efficace cambia mentre le dita si avvolgono: misura invece di calcolare.

Cosa costa la compliance

Non è gratuita e vale la pena essere onesti riguardo al compromesso:

  • Precisione posizionale rispetto all’oggetto. Il componente finisce dove l’ha messo la compliance, non dove hai comandato. Se l’attività richiede un posizionamento a 0.2 mm, la compliance lavora contro di te e ti serve una pinza rigida con un vero sensore di forza.
  • Tempo di assestamento. Un dito morbido oscilla dopo un movimento rapido. Aggiungi una breve pausa dopo la chiusura, prima di sollevare, altrimenti misuri l’oscillazione invece della presa.
  • Fluenza del materiale. Qualsiasi elemento plastico sotto carico costante si deforma lentamente. Le molle e i flessori in PETG sono molto migliori del PLA in questo caso.
  • Non puoi sentire l’oggetto. La compliance rende la posizione del servomotore un indicatore peggiore di ciò che accade sulla punta del dito, quindi per rilevare la presa ti servono un interruttore o un sensore: vedi la macchina a stati per il prelievo e il posizionamento.

I quattro valori da conoscere prima di stampare

  1. L, il braccio di leva — determinato dall’oggetto più largo. Tutto il resto segue.
  2. k, la rigidezza in serie — misurata appendendo pesi a un dito di prova stampato.
  3. F_crush — misurata con una bilancia da cucina e alcuni componenti sacrificabili.
  4. step = L·(π/180) — aritmetica.

Poi verifica (min(F_crush, τ·0.7/L) − F_floor)/k > step. Se la condizione non è soddisfatta, nessun firmware farà funzionare la pinza e la correzione è sempre ridurre k, mai aumentare la coppia.

Prossimi passi

Esplora il grafo

Fa parte di queste costruzioni

Progetti e percorsi di apprendimento che includono questo tutorial.

Per approfondire

Fonti