ELAI S.r.l.

Un robot morbido può premere troppo? Capire la forza durante il contatto

Un esempio riproducibile spiega rigidità, smorzamento e picchi di forza: perché cedere al contatto non equivale a garantire una forza massima.

Un robot morbido può premere troppo? Capire la forza durante il contatto

Il problema: arrivare al pezzo senza insistere troppo

Immaginiamo un robot che accompagna un componente contro un riscontro durante un assemblaggio. La posizione della superficie non è conosciuta perfettamente: pochi millimetri di errore possono trasformare un movimento corretto nello spazio libero in una spinta indesiderata. Una risposta intuitiva è rendere il robot più morbido, cioè consentirgli di deviare dalla posizione richiesta quando incontra una forza. Ma questa scelta basta a limitare la pressione sul pezzo? Qui studiamo la forza, misurata in newton: per parlare di pressione servirebbe anche conoscere l’area effettiva di contatto.

L’obiettivo è distinguere tre domande spesso confuse: quanto il robot cede, quale forza rimane quando tutto si ferma e quale forza massima compare prima di fermarsi. Costruiremo un modello a un solo asse, ne risolveremo la dinamica e confronteremo tre regolazioni. Il risultato centrale è che una piccola forza finale può convivere con un picco sensibilmente maggiore; inoltre, cambiare la rigidità durante il movimento modifica il bilancio energetico. Sono calcoli didattici su dati sintetici, non prove su un robot né indicazioni di taratura per una macchina reale.

Prima delle formule: che cosa significa impedenza

Una molla oppone più forza quando viene deformata di più. Uno smorzatore oppone una forza legata alla velocità e dissipa energia; la massa, invece, resiste alle variazioni di velocità. Il controllo di impedenza cerca di assegnare una relazione tra movimento e forza che abbia caratteristiche scelte. Nel caso qui studiato programmiamo rigidità e smorzamento, lasciando fissa la massa equivalente: è un caso particolare, spesso chiamato controllo di stiffness. Non occorre immaginare una molla fisicamente montata sul polso: la relazione può essere prodotta dai motori, ma allora dipende anche da sensori, calcolo e attuazione.

Il riferimento storico è il lavoro teorico di Neville Hogan del 1985, che tratta la manipolazione come interazione dinamica con l’ambiente. Le note di Russ Tedrake distinguono il controllo diretto della forza dalla costruzione di una risposta meccanica desiderata. Usiamo queste fonti per il quadro concettuale; l’esempio numerico seguente è costruito qui e non riproduce loro esperimenti. Non presentiamo il controllo di impedenza come una scoperta recente né questo articolo come ricerca originale.

Un asse, una superficie, segni espliciti

Poniamo l’origine x = 0 sulla superficie non deformata e scegliamo positivo il verso che entra nel materiale. x si misura in metri; una piccola penetrazione rappresenta la deformazione elastica equivalente del contatto, non il passaggio impossibile attraverso una parete ideale. La superficie esercita sul robot una forza −Kₑx, mentre il robot esercita sulla superficie F = Kₑx. Kₑ = 20 000 N/m è la rigidità sintetica dell’ambiente. Supponiamo contatto mantenuto, comportamento lineare, nessun attrito lungo l’asse e nessuno smorzamento ambientale.

Il controllo tira verso una posizione virtuale δ = 0,005 m, cinque millimetri oltre la superficie. È un errore di riferimento deliberato per rendere visibile il problema. La massa equivalente m = 2 kg è costante; non coincide necessariamente con il peso totale del braccio. La rigidità comandata K ha unità N/m e lo smorzamento D ha unità N s/m. Partiamo già a contatto, x(0) = 0 e velocità nulla: non simuliamo l’urto di avvicinamento. All’istante iniziale applichiamo il riferimento, che poi resta fermo. Gravità e altre dinamiche sono assenti dal modello o idealmente compensate.

Per sapere come si muove il punto di contatto sommiamo le forze: il richiamo K(δ − x), la resistenza −Dẋ e la reazione −Kₑx. Il simbolo ẋ indica la velocità e ẍ l’accelerazione. La seconda legge di Newton dà:

mẍ + Dẋ + (K + Kₑ)x = Kδ; F = Kₑx

Ogni termine della prima relazione è una forza. Il controllo e la superficie contribuiscono entrambi alla resistenza allo spostamento, quindi nella dinamica compare K + Kₑ. Questa somma è il dettaglio decisivo: una taratura scelta guardando solo il robot in aria non descrive automaticamente il sistema dopo il contatto. La superficie entra nell’equazione anche se il software non ne conosce la rigidità.

La forza finale: quanto costa un riferimento sbagliato

Cominciamo dal caso più leggibile: dopo che ogni movimento è terminato, velocità e accelerazione sono nulle. Rimangono due molle equivalenti che si oppongono. Risolvendo la precedente equazione otteniamo la deformazione x* e la forza F* all’equilibrio:

x* = Kδ/(K + Kₑ); F* = KKₑδ/(K + Kₑ)

Con K = 200 N/m il punto si sposta di circa 0,0495 mm e la forza finale è 0,9901 N. Non raggiunge affatto i cinque millimetri richiesti: proprio questo errore permette di cedere. Portando K a 1000 N/m, a parità di tutto il resto, lo spostamento sale a 0,2381 mm e la forza a 4,7619 N. I valori sono inferiori a Kδ perché anche la superficie si deforma; quando Kₑ tende a infinito, F* tende proprio a Kδ. Quando K tende a zero, invece, manca il richiamo che doveva mantenere il contatto.

Questa formula rende esplicito un compromesso: ridurre K attenua l’effetto dell’errore geometrico, ma riduce anche la capacità di opporsi a perturbazioni di posizione. Non garantisce da sola la forza richiesta da una lavorazione. Inoltre D non compare nel risultato statico: cambiare lo smorzamento modifica il percorso verso l’equilibrio, non il valore finale in questo modello. Per capire se il pezzo subisce una spinta eccessiva durante quel percorso dobbiamo ora includere il tempo.

Il picco: la superficie cambia lo smorzamento relativo

Una massa accelerata dalla molla può superare il punto in cui le forze statiche si bilanciano, perché in quel punto possiede ancora velocità. Lo smorzatore toglie energia a questo movimento. Per confrontare sistemi diversi usiamo la frequenza naturale ωₙ, in radianti al secondo, e il rapporto di smorzamento ζ, senza unità. Non sono nuovi comandi: riassumono l’effetto combinato dei parametri già introdotti.

ωₙ = √((K + Kₑ)/m); ζ = D/(2√(m(K + Kₑ)))

Per 0 < ζ < 1 la risposta al riferimento applicato di colpo è sottosmorzata: supera il valore finale e oscilla mentre converge. Per ζ = 1 è criticamente smorzata e, nelle nostre condizioni iniziali, sale senza oltrepassarlo. La scelta D = 2√(mK) sarebbe critica nello spazio libero, con Kₑ = 0. Nel contatto con K = 200 N/m dà invece ζ ≈ 0,0995: lo smorzamento non è sparito, ma è piccolo rispetto alla nuova rigidità complessiva.

La tabella confronta A, morbido e tarato sullo spazio libero; B, altrettanto morbido ma con smorzamento critico calcolato includendo la superficie; C, più rigido e nuovamente tarato sullo spazio libero. I picchi A e C sono massimi analitici, non valori stimati scegliendo il campione più alto di un grafico. Per B il valore indicato è il limite asintotico: non esiste un istante finito di picco.

CasoK (N/m)D (N s/m)ζF finale (N)F massima/limite (N)
A20040.0000.09950.99011.7133
B200401.99510.99010.9901
C100089.4430.21824.76197.1207

Nel caso A la forza arriva a circa 1,7133 N dopo 31,42 ms: circa il 73% oltre il valore finale. Non abbiamo stabilito che quel numero danneggi il componente; abbiamo mostrato che il valore statico non è un limite superiore. Nel caso C aumentare K porta sia una forza finale sia un picco maggiori. B elimina la sovraelongazione di questo specifico modello, ma richiede di conoscere Kₑ e di realizzare idealmente un D molto più elevato. Non basta copiare quel numero in un controllore reale.

Risposta analitica con dati sintetici. Osservare i picchi sopra le linee finali tratteggiate; B raggiunge lo stesso equilibrio di A senza superarlo. Non sono misure di un robot.
Risposta analitica con dati sintetici. Osservare i picchi sopra le linee finali tratteggiate; B raggiunge lo stesso equilibrio di A senza superarlo. Non sono misure di un robot.

La derivazione disponibile per chi vuole verificare

Sottraendo x* dall’equazione dinamica si elimina la forza costante: resta un oscillatore smorzato. Le sue radici sono −ζωₙ ± iωd, con ωd = ωₙ√(1 − ζ²) e i unità immaginaria. Imporre posizione e velocità iniziali nulle fissa i coefficienti della soluzione. Per il caso sottosmorzato risulta:

x(t) = x* [1 − exp(−ζωₙt)(cos(ωdt) + ζωₙ sin(ωdt)/ωd)] tₚ = π/ωd; Fₚ = F* [1 + exp(−πζ/√(1 − ζ²))]

t è il tempo in secondi; tₚ è il primo massimo e Fₚ la forza corrispondente. Il termine esponenziale positivo nella seconda riga misura quanto si supera F*: si ottiene derivando x(t), trovando il primo zero della velocità dopo t = 0 e sostituendo quel tempo. La derivata è proporzionale a exp(−ζωₙt) sin(ωdt); il primo zero utile è quindi π/ωd. Per ζ = 1 la formula precedente va sostituita con x(t) = x*[1 − (1 + ωₙt)exp(−ωₙt)], monotona per t non negativo. Non si divide per ωd = 0.

Energia: stabilità non significa forza piccola

Possiamo ora verificare perché il sistema converge senza confondere questo fatto con un limite alla forza. Definiamo l’energia E come somma dell’energia cinetica della massa e delle energie delle due molle equivalenti. Si misura in joule. Con parametri e riferimento costanti, la derivata rispetto al tempo è particolarmente semplice:

E = ½mẋ² + ½K(x − δ)² + ½Kₑx² dE/dt = −Dẋ² ≤ 0

Per verificarla basta derivare i tre termini: si raccoglie ẋ e dentro la parentesi rimane l’equazione dinamica, cioè −Dẋ. Il sistema dissipa energia quando si muove. Intorno all’equilibrio si può usare anche ½mẋ² + ½(K + Kₑ)(x − x*)²: è la stessa energia a meno di una costante e ha minimo zero. Con D positivo, l’unico stato che resta immobile è l’equilibrio. Eppure A e C hanno un picco. Un sistema può essere stabile e dissipativo mentre restituisce parte dell’energia inizialmente immagazzinata.

La passività riguarda questo bilancio, non l’innocuità di un contatto. Guardando solo il robot, senza includere la molla ambientale, l’energia S = ½mẋ² + ½K(x − δ)² soddisfa dS/dt = Fₑₓₜẋ − Dẋ², dove Fₑₓₜ è la forza dell’ambiente sul robot. Il primo termine è potenza scambiata attraverso il contatto. Questa identità vale nel modello continuo ideale con riferimento fisso; non certifica un robot collaborativo, non include limiti biomeccanici e non dimostra automaticamente la stessa proprietà dopo ritardi, campionamento o saturazione dei motori.

Se l’AI cambia la rigidità, da dove arriva l’energia?

Supponiamo che un sistema di percezione o una politica appresa decida di irrigidire il braccio dopo aver riconosciuto il pezzo. Non stiamo descrivendo un prodotto EL-AI: è una possibile architettura da analizzare. Se K aumenta quando esiste già errore di posizione, aumenta l’energia della molla virtuale anche senza movimento. A x = 0 e δ = 5 mm, passare da K = 200 a 1000 N/m aggiunge 0,010 J. Il calcolo è ½(1000 − 200) × 0,005². Questa energia non è stata fornita dalla superficie attraverso uno spostamento: il cambiamento del controllo introduce un’altra via di alimentazione.

La forma generale chiarisce il punto senza attribuire all’AI un problema che vale per qualunque supervisore. Se K e δ cambiano nel tempo, mentre m e Kₑ restano costanti, derivare E produce due termini aggiuntivi:

dE/dt = −Dẋ² + ½K̇(x − δ)² − K(x − δ)δ̇

K̇ è la velocità di variazione della rigidità, δ̇ quella del riferimento. Entrambi i termini aggiuntivi hanno unità di watt e possono introdurre energia. Non segue che ogni adattamento sia instabile: segue che la precedente dimostrazione con parametri fissi non basta. Occorre analizzare anche l’aggiornamento, eventualmente limitarne energia e velocità, e verificare l’intero sistema. Un valore K sempre positivo non risolve da solo questo problema. Se cambia anche la massa equivalente, il bilancio richiede ulteriori termini, non inclusi qui.

Che cosa cambierebbe scegliendo un altro controllo

Un controllo diretto della forza cerca di regolare F verso un valore richiesto, invece di ottenere una forza come conseguenza dell’errore di posizione. Può essere utile quando il processo impone un carico definito, ma richiede un’informazione attendibile sulla forza e una gestione del passaggio tra assenza e presenza di contatto. Un controllo di ammettenza usa invece una forza misurata per generare un movimento richiesto a un anello interno: quella catena aggiunge una propria dinamica. Non sono semplicemente tre nomi per lo stesso software e nessuno elimina automaticamente i picchi di transizione.

Per un’applicazione industriale la decisione parte dal compito: mantenere una posizione, seguire una superficie o applicare una forza non sono obiettivi identici. Un utensile può richiedere rigidità diversa lungo direzioni diverse, mentre qui esiste un solo asse. Su un braccio vero massa equivalente e trasformazione tra forze e coppie variano con la postura. La linea di robotica industriale e collaborativa che EL-AI intende esplorare rende questi interrogativi pertinenti; non costituisce evidenza di controllori, installazioni o prove fisiche già realizzati dall’azienda.

Riprodurre il risultato e riconoscere ciò che manca

Il pacchetto allegato calcola le soluzioni analitiche, non integra un simulatore di contatto complesso. Il grafico campiona quelle soluzioni ogni 0,1 ms; questo intervallo serve solo a disegnare le curve e non rappresenta la frequenza di un controllore digitale. Il codice verifica che la deformazione resti non negativa nei punti calcolati, che il picco analitico coincida con la soluzione nel suo istante e che la derivata dell’energia sia −Dẋ². Non usa casualità né addestra modelli. Con N istanti e tre casi il costo è O(N), così come la memoria necessaria a conservare tutte le tracce; calcolare soltanto i valori di picco richiede un numero costante di operazioni per caso.

Restano fuori deformazioni non lineari, urti con velocità iniziale, attrito, distacco, elasticità dei giunti, filtri, rumore, ritardi e saturazioni. Per passare a una prova fisica servirebbero modello e interfacce della piattaforma, frequenza reale del controllo, calibrazione della misura di forza, configurazione del braccio e protocollo ripetibile. Andrebbero registrati sia transitori sia condizioni iniziali, e verificati i vincoli applicabili con competenze appropriate. Non riportiamo percentuali di sicurezza o prestazioni di schede e robot che non abbiamo misurato.

La risposta alla domanda iniziale

Rendere un robot più cedevole può ridurre la forza causata da un errore di posizione, ma non stabilisce da solo la forza massima del contatto. Bisogna considerare insieme rigidità del robot e dell’ambiente, massa, smorzamento e condizioni iniziali. Nel nostro esempio la regolazione morbida A termina a meno di un newton ma supera 1,7 N durante il transitorio. Cambiare rigidità o riferimento richiede poi un bilancio energetico aggiornato. Il vantaggio della matematica, qui, è trasformare una qualità vaga — “il robot è morbido” — in domande separate e verificabili prima di attribuire al comportamento una garanzia che non abbiamo dimostrato.

Fonti e codice eseguito

Neville Hogan (1985), Impedance Control: An Approach to Manipulation, Part I—Theory, Journal of Dynamic Systems, Measurement, and Control 107, 1–7.

Russ Tedrake, Robotic Manipulation, Manipulator Control: Indirect force control (course notes, 2026).

Kevin M. Lynch and Frank C. Park, Modern Robotics, 11.2.2 Linear Error Dynamics (book companion).

from experiment import run
for r in run()['rows']:
    print(r['case'], round(r['force_equilibrium_N'], 3),
          round(r['peak_force_N'], 3), r['peak_kind'])

Codice, dati e istruzioni · JSON. Calcoli didattici eseguiti con Python 3.14.0; figure con Matplotlib 3.11.2. Analisi con assistenza AI, senza dichiarare peer review o revisione umana. Copertina originale ImageGen, illustrativa: non documenta persone, sedi o installazioni EL-AI. Fonti consultate il 4 ottobre 2026.