ELAI S.r.l.

Un braccio solleva lo stesso peso: perché i motori faticano diversamente?

Dalla leva al Jacobiano: un esempio verificato spiega coppie, peso dei segmenti e limiti di carico dipendenti dalla postura, senza prove hardware inventate.

Un braccio solleva lo stesso peso: perché i motori faticano diversamente?

Il peso non racconta tutta la fatica

Tenere una bottiglia vicino al corpo e tenerla con il braccio disteso sono due esperienze diverse, anche se la massa non cambia. In un robot industriale accade qualcosa di simile: il carico dichiarato in chilogrammi non basta, da solo, a spiegare quanto devono lavorare i singoli giunti. La domanda di questo articolo è concreta: come cambia la coppia necessaria a tenere fermo un pezzo quando cambiamo la postura del braccio? Alla fine sapremo calcolarla in un modello semplice e capiremo perché un unico numero di portata non sostituisce l’analisi del compito.

Abstract. Sviluppiamo un braccio planare a due giunti, prima con segmenti privi di massa e poi includendone il peso. Ricaviamo le coppie dal bilancio dei momenti e le colleghiamo alla trasposta del Jacobiano, spiegando il passaggio attraverso il lavoro virtuale. Con un carico sintetico di 2 kg confrontiamo posture, vincoli illustrativi di coppia e due configurazioni che raggiungono lo stesso punto. Verifichiamo inoltre il risultato differenziando numericamente l’energia potenziale. Sono calcoli didattici eseguiti, non prove su robot, stime di consumi elettrici o attestazioni di sicurezza.

Prima della matrice: una forza e il suo braccio

La massa misura quanti chilogrammi contiene il carico; il peso è una forza. Nel nostro esempio assumiamo accelerazione di gravità g=9,81 m/s²: una massa m=2 kg esercita una forza verso il basso di mg=19,62 newton. La coppia, misurata in newton metro (N m), descrive invece la tendenza a ruotare intorno a un asse. Per una forza verticale, il braccio utile è la distanza orizzontale fra asse e linea d’azione della forza. Non è in generale la distanza geometrica completa fra il giunto e il pezzo.

Fissiamo un riferimento con x orizzontale e y verso l’alto. Il primo segmento è lungo L₁=0,4 m, il secondo L₂=0,3 m. q₁ è l’angolo della spalla rispetto all’orizzontale; q₂ è l’angolo del gomito rispetto al primo segmento. Quindi l’orientamento assoluto del secondo segmento è q₁+q₂. Gli angoli positivi ruotano in senso antiorario. Nei calcoli trigonometrici e nelle derivate usiamo radianti; nelle tabelle mostriamo gradi per facilitarne la lettura.

Per sapere dove agisce il peso sommiamo le proiezioni dei due segmenti. La posizione del carico puntiforme all’estremità è:

x = L₁ cos(q₁) + L₂ cos(q₁ + q₂) y = L₁ sin(q₁) + L₂ sin(q₁ + q₂)

Con entrambi gli angoli nulli il braccio è orizzontale: x=0,7 m e y=0. Il peso ha un braccio di 0,7 m rispetto alla spalla e di 0,3 m rispetto al gomito. Le coppie che gli attuatori devono fornire per bilanciarlo sono dunque 19,62×0,7=13,734 N m e 19,62×0,3=5,886 N m. Le due coppie non si dividono semplicemente il peso: ogni giunto deve equilibrare il momento di tutte le forze che agiscono sui segmenti a valle.

Dal movimento infinitesimo alla coppia

Il calcolo delle leve funziona bene in questo caso. Per estenderlo a una forza che non sia soltanto verticale introduciamo il Jacobiano J: una matrice che descrive come piccoli cambiamenti degli angoli producono piccoli spostamenti della punta. Ogni colonna dice che cosa accade muovendo un solo giunto. Derivando x e y rispetto a q₁ e q₂ otteniamo:

J = [ −L₁ sin(q₁) − L₂ sin(q₁+q₂) −L₂ sin(q₁+q₂) ] [ L₁ cos(q₁) + L₂ cos(q₁+q₂) L₂ cos(q₁+q₂) ] δp = J δq

δq raccoglie due variazioni angolari in radianti e δp due spostamenti in metri. J ha quindi coefficienti in metri per radiante. Per esempio, nella postura orizzontale, una piccola rotazione della spalla solleva la punta di circa 0,7 volte l’angolo, mentre la stessa rotazione del gomito la solleva di circa 0,3 volte. “Piccola” conta: questa relazione è locale, non calcola direttamente una rotazione finita di sessanta gradi.

Ora chiediamoci quale coppia corrisponde a una forza di sostegno F applicata dal robot. Per uno spostamento virtuale, cioè immaginato e infinitesimo, il lavoro alla punta è Fᵀδp; quello ai giunti è τᵀδq. Il simbolo ᵀ indica la trasposizione e qui permette di sommare i prodotti delle componenti. Nel modello ideale senza perdite questi lavori coincidono. Sostituendo δp=Jδq e richiedendo l’uguaglianza per ogni δq si ottiene:

τᵀδq = FᵀJδq τ = JᵀF F = [0, mg]ᵀ

Qui F è la forza verso l’alto che bilancia il peso, non il peso verso il basso: usare l’uno al posto dell’altra cambierebbe il segno. La formula dice che ciascuna coppia combina le componenti della forza con i rispettivi spostamenti possibili. Nel caso verticale restituisce proprio le leve orizzontali. La relazione generale è spiegata da Lynch e Park in Modern Robotics, sezione 5.2; il nostro sviluppo e i numeri seguenti riguardano soltanto questo modello planare dichiarato.

Il braccio deve sostenere anche sé stesso

Il primo calcolo trascurava la massa dei segmenti. Aggiungiamo un primo segmento uniforme di massa m₁=1,5 kg e un secondo di massa m₂=1 kg. Uniforme significa che collochiamo ciascun baricentro a metà della sua lunghezza. Per il gomito conta il peso del secondo segmento, con braccio L₂ cos(q₁+q₂)/2; per la spalla contano entrambi. Indichiamo con G le coppie necessarie a sostenere soltanto il braccio:

G₁ = g[m₁(L₁/2)cos(q₁) + m₂(L₁ cos(q₁) + (L₂/2)cos(q₁+q₂))] G₂ = g m₂(L₂/2)cos(q₁+q₂) τ_total = G + Jᵀ[0, mg]ᵀ

Nella postura orizzontale G₁=8,3385 N m e G₂=1,4715 N m. Sommando il carico otteniamo 22,0725 e 7,3575 N m. La differenza è sostanziale: guardare soltanto i 13,734 N m del pezzo sottostimerebbe il fabbisogno della spalla. Queste sono coppie all’uscita dei giunti. Non coincidono automaticamente con quelle all’albero del motore, perché un riduttore può cambiare rapporto, efficienza e attrito. Non abbiamo modellato trasmissioni o freni.

Una postura aiuta la spalla, ma non il gomito

Portiamo q₁ a 60° e q₂ a −60°. Il primo segmento sale, mentre il secondo resta orizzontale perché la somma degli angoli è zero. La punta si trova ora a x=0,5 m e y≈0,34641 m. La spalla vede un braccio orizzontale più corto: il contributo del carico scende a 9,81 N m, quello dei segmenti a 4,905 N m, per un totale di 14,715 N m. Il gomito continua invece a vedere il secondo segmento orizzontale: il totale resta 7,3575 N m.

q₁, q₂ (°)x, y (m)Spalla totale (N m)Gomito totale (N m)
0, 00.7, 022.07257.3575
60, −600.5, 0.3464114.7157.3575
90, 00, 0.700
0, 900.4, 0.314.7150
73.739795, −900.4, 0.311.18347.0632

La terza riga è un caso limite utile: entrambi i segmenti verticali, con il peso allineato agli assi. Le coppie gravitazionali ideali sono nulle; rimangono forze trasmesse alla struttura. Questo non implica carico ammissibile infinito: resistenza dei materiali, cuscinetti, instabilità, deviazioni dalla verticale e dinamica restano fuori da questo conto. Nel JSON gli zeri possono apparire come numeri dell’ordine di 10⁻¹⁵ per arrotondamento del coseno, non come una coppia fisica misurata.

Stesso punto raggiunto, distribuzione diversa dello sforzo

Le ultime due righe raggiungono entrambe (0,4; 0,3) m, con il gomito in due posizioni diverse. Il contributo del solo carico alla spalla è identico, 7,848 N m: il suo braccio orizzontale non è cambiato. Ma la massa dei segmenti è distribuita diversamente, e quindi cambia G₁. Il totale della spalla passa da 14,715 a 11,1834 N m; quello del gomito passa da zero a 7,0632 N m. Abbiamo spostato lo sforzo, non migliorato universalmente il robot.

Il confronto impone soltanto la posizione della punta. L’orientamento del secondo segmento nelle due configurazioni è diverso: se il compito richiede la stessa orientazione dell’utensile, un braccio a due giunti non soddisfa necessariamente quel vincolo aggiuntivo. Anche ostacoli e limiti articolari potrebbero eliminare una delle soluzioni. È precisamente per questo che un criterio di coppia va inserito nel problema di pianificazione completo, non usato come scorciatoia isolata.

Trasformare un limite di coppia in un limite di carico

Supponiamo, esclusivamente per l’esempio, limiti simmetrici di coppia ai giunti pari a 18 N m alla spalla e 8 N m al gomito. Non sono dati di un robot commerciale. La postura orizzontale con 2 kg supera il primo limite, mentre la postura (60°, −60°) rispetta entrambi nel nostro modello statico. Per calcolare una massa massima dobbiamo prima sottrarre la coppia che serve a sostenere il braccio stesso.

a₁ = L₁ cos(q₁) + L₂ cos(q₁+q₂) a₂ = L₂ cos(q₁+q₂) |Gᵢ + mg aᵢ| ≤ τ_lim,i m_max = minᵢ [(τ_lim,i − Gᵢ)/(g aᵢ)] (aᵢ > 0, Gᵢ ≥ 0)

aᵢ è il braccio orizzontale del carico rispetto al giunto i, in metri. L’ultima riga vale per i nostri due casi con bracci positivi e gravità concorde; in altre posture bisogna risolvere la disuguaglianza con valore assoluto, non dividere alla cieca per un numero negativo o nullo. In orizzontale la spalla consente circa 1,407 kg e il gomito 2,218 kg: governa il valore minore. Nella postura piegata la spalla consente circa 2,670 kg, ma il gomito resta a 2,218 kg e diventa il vincolo dominante.

Calcoli sintetici con carico di 2 kg e masse dei segmenti incluse. Qui il gomito resta diritto (q₂=0): salendo verso la verticale entrambe le coppie diminuiscono. Le linee tratteggiate sono limiti ipotetici, non specifiche hardware.
Calcoli sintetici con carico di 2 kg e masse dei segmenti incluse. Qui il gomito resta diritto (q₂=0): salendo verso la verticale entrambe le coppie diminuiscono. Le linee tratteggiate sono limiti ipotetici, non specifiche hardware.

Il grafico esplora una famiglia diversa dalla postura (60°, −60°): mantiene q₂=0 e varia solo la spalla da 0° a 90°. Leggere un punto significa confrontare la coppia richiesta con la linea limite dello stesso giunto. Il grafico non dice che quella postura sia raggiungibile senza collisioni, né che il percorso per arrivarci rispetti i limiti. Un equilibrio ammissibile è una condizione puntuale; un movimento richiede di verificare anche il percorso e la dinamica.

Una verifica indipendente attraverso l’energia

Possiamo controllare i segni e i coefficienti con un altro percorso. Sollevare una massa aumenta l’energia potenziale U=mgy. Sommiamo l’energia dei due segmenti, ai loro baricentri, e quella del carico. La coppia di sostegno è la variazione di questa energia per una piccola rotazione del giunto. Indicando con ∂ la derivata rispetto a una sola variabile:

U = g[m₁(L₁/2)sin(q₁) + m₂(L₁ sin(q₁)+(L₂/2)sin(q₁+q₂)) + m(L₁ sin(q₁)+L₂ sin(q₁+q₂))] τᵢ = ∂U/∂qᵢ ≈ [U(q+h eᵢ) − U(q−h eᵢ)]/(2h)

eᵢ modifica soltanto l’angolo i, h è il piccolo passo in radianti. Il codice usa h=10⁻⁶ e confronta questa differenza centrale con le coppie analitiche, richiedendo un errore inferiore a 10⁻⁷ N m. Il controllo passa nelle cinque posture della tabella e in 91 posture della scansione. Verifica anche l’uguaglianza delle potenze per una forza con componenti (3; 19,62) N e velocità articolari (0,02; −0,03) rad/s. Non è una validazione hardware: è una verifica numerica della coerenza del modello e dell’implementazione.

Che cosa aggiungere prima di usare il risultato su un robot

Il modello assume segmenti rigidi, carico puntiforme, giunti ideali e assenza di accelerazione. Un utensile reale ha massa e baricentro propri; un pezzo disassato può applicare anche un momento alla flangia. In movimento entrano inerzia e accelerazioni, oltre ad attriti e forze di contatto. Un limite di picco non equivale a una coppia sostenibile per un lungo ciclo; qui abbiamo scelto limiti astratti senza convertirli in temperature o durata di servizio. Non abbiamo dunque ricavato una portata certificata.

Un’altra distinzione riguarda l’energia: un robot fermo ha velocità articolare nulla e quindi potenza meccanica τᵀq̇ nulla, pur potendo richiedere coppia. Da questo non segue consumo elettrico nullo. Per calcolarlo occorrerebbero il motore, la trasmissione, il controllo e gli eventuali freni. Analogamente una coppia gravitazionale bassa non dimostra sicurezza in collaborazione con persone: contatto, velocità, arresto e valutazione dell’intera applicazione sono problemi diversi.

Risposta: contano geometria e distribuzione del peso

Lo stesso pezzo richiede coppie diverse perché cambia il suo braccio di leva rispetto ai giunti e perché il robot deve sostenere anche i propri segmenti. Nel nostro esempio accorciare la leva della spalla riduce il suo carico, ma lascia invariato quello del gomito; perfino raggiungere lo stesso punto con un’altra postura redistribuisce lo sforzo. Un sistema AI che propone una presa o un percorso dovrebbe quindi incontrare vincoli fisici espliciti: una proposta geometricamente plausibile può superare una coppia disponibile. È una possibile integrazione progettuale, non una funzionalità EL-AI già realizzata. L’interesse dichiarato dell’azienda per la robotica industriale e collaborativa resta una direzione da esplorare.

Il codice breve calcola le prime tre posture; il pacchetto completo aggiunge le due soluzioni dello stesso punto, i limiti di massa, la scansione e le verifiche energetiche. Ogni postura richiede un numero costante di operazioni in questo modello a due giunti; una scansione di n posture costa O(n), con O(n) memoria perché salviamo i risultati. Non esiste campionamento casuale, quindi il seed non è applicabile. La fonte seguente sostiene il legame generale fra forza e coppia; dati, ipotesi e confronti numerici sono esplicitamente nostri esempi didattici.

Bibliografia e codice riproducibile

Kevin M. Lynch, Frank C. Park — Modern Robotics, 5.2: Statics of Open Chains (transcript).

from math import cos, radians
g, L1, L2, m1, m2, payload = 9.81, .4, .3, 1.5, 1., 2.
for angles in [(0, 0), (60, -60), (90, 0)]:
    q1, q2 = map(radians, angles)
    c1, c12 = cos(q1), cos(q1 + q2)
    own1 = g * (m1 * L1/2 * c1 + m2 * (L1*c1 + L2/2*c12))
    own2 = g * m2 * L2/2 * c12
    tau1 = own1 + payload*g*(L1*c1 + L2*c12)
    tau2 = own2 + payload*g*L2*c12
    print(angles, round(tau1, 4), round(tau2, 4))

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 3 ottobre 2026.