Corso di Robotica: 2 Fondamenti di Meccanica e Attuazione

2 – Fondamenti di Meccanica e Attuazione

🎯 Obiettivi (misurabili)

Al termine del modulo lo studente sarà in grado di:

  1. Descrivere i concetti di cinematica (grado di libertà – DoF), tipi di giunto, effettore.
  2. Calcolare posizione e traiettoria su un semplice braccio planare (forward e inverse kinematics).
  3. Scegliere un attuatore adeguato (DC, BLDC, stepper, servo, attuatore lineare) in funzione di coppia, velocità e potenza richieste.
  4. Scegliere trasmissioni (ingranaggi, riduttori, cinghie, vite a ricircolo) valutandone vantaggi/svantaggi.
  5. Assemblare e cablare un robot su ruote con controllo base dei motori.
  6. Eseguire esperimenti di base con servo: controllo angolare, misura risposta, valutazione sovraccarico.

📚 Contenuti teorici approfonditi

1) Concetti base di cinematica

  • Grado di libertà (DoF): numero di coordinate indipendenti necessarie per definire la configurazione. Esempio: robot su ruote differenziali (3 DoF: x, y, θ); braccio con 3 giunti rotazionali → 3 DoF.
  • Tipi di giunti:
    • Revolute (R): rotazione attorno ad asse (angolo θ).
    • Prismatic (P): traslazione lineare (d).
    • Screw, spherical, ecc.
  • Effettore terminale (end-effector): pinza, ventosa, utensile; definisce il compito.
  • Trasformazioni omogenee: concatenano rotazioni e traslazioni in matrici 4×4.

Esempio pratico: arm planare 2-link (forward kinematics)

Link: l₁ = 0.2 m, l₂ = 0.25 m
Angoli: θ₁ = 40°, θ₂ = 50°

Coordinate end-effector (x,y):

x = l₁·cosθ₁ + l₂·cos(θ₁+θ₂)
y = l₁·sinθ₁ + l₂·sin(θ₁+θ₂)

Calcolo passo-passo:

  • cos40° = 0.766, sin40° = 0.643
  • θ₁+θ₂ = 90° → cos90° = 0, sin90° = 1
  • x = 0.2·0.766 + 0.25·0 ≈ 0.1532 m
  • y = 0.2·0.643 + 0.25·1 ≈ 0.3786 m

→ End-effector: (0.153 m, 0.379 m)

Inverse kinematics (2-link planare)

Per trovare θ₂ si usa:

cosθ₂ = (x² + y² - l₁² - l₂²) / (2·l₁·l₂)

e poi θ₁ da trigonometria inversa.


2) Dinamica e coppia

  • Coppia (torque): τ = F·d (N·m).
  • Forza peso: F = m·g (g = 9.81 m/s²).
  • Coppia richiesta: τ = m·g·l.

Esempio: payload 0.5 kg a 0.2 m

  • F = 0.5·9.81 = 4.905 N
  • τ = 4.905·0.2 ≈ 0.981 N·m

Con riduttore G=50:1 e η=0.85:

τ_motore = τ_uscita / (G·η) = 0.981 / (50·0.85) ≈ 0.023 N·m

3) Tipi di attuatori

  • DC brushed: semplici, economici; ma usura spazzole.
  • BLDC: efficienti, potenti, richiedono ESC.
  • Stepper: precisi a bassa velocità, ma rischio perdita passi.
  • Servo: controllo angolare integrato (0–180°).
  • Attuatori lineari: viti, pistoni pneumatici/idraulici.

4) Trasmissioni meccaniche

  • Ingranaggi: compatti, ma gioco (backlash).
  • Cinghie: elastiche, silenziose.
  • Viti a ricircolo: alta precisione.
  • Planetari: rapporto elevato in poco spazio.

5) Robot su ruote – Cinematica differenziale

v = (vR + vL)/2
ω = (vR - vL)/b

Esempio: ruota r=0.03 m, RPM=300

  • ω = 2π·300/60 = 31.416 rad/s
  • v = ω·r = 31.416·0.03 ≈ 0.942 m/s

6) Cingoli vs ruote

  • Ruote: semplici, efficienti, terreno regolare.
  • Cingoli: più trazione, terreno irregolare, ma manutenzione maggiore.

7) Sensori e feedback

  • Encoder (incrementali, assoluti)
  • IMU (accelerometro + giroscopio)
  • Sensori corrente, load cell
  • Lidar / ToF / Ultrasuoni

8) Controllo (introduzione)

u(t) = Kp·e(t) + Ki∫e(t)dt + Kd·de(t)/dt

🧪 Attività pratiche

A — Montaggio robot su ruote

Obiettivo: assemblare robot differenziale base.

  • Telaio kit
  • 2 motori DC + driver TB6612
  • Arduino Uno/Nano
  • Batteria Li-ion
  • Cablaggi, interruttore

Codice Arduino base:

const int AIN1 = 2;
const int AIN2 = 3;
const int PWMA = 5;
void setup(){
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWMA, OUTPUT);
}
void avanti(int pwmVal){
digitalWrite(AIN1,HIGH);
digitalWrite(AIN2,LOW);
analogWrite(PWMA,pwmVal);
}
void loop(){
avanti(200); delay(2000);
}

B — Esperimenti con servo

#include <Servo.h>
Servo myservo;
void setup(){ myservo.attach(9); }
void loop(){
for(int pos=0; pos<=180; pos+=1){ myservo.write(pos); delay(10); }
for(int pos=180; pos>=0; pos-=1){ myservo.write(pos); delay(10); }
}

✅ Valutazione

  • Robot funzionante (0–4)
  • Cablaggio e sicurezza (0–4)
  • Report tecnico (0–4)
  • Demo servo (0–4)

📐 Appendix — Formule rapide

  • F = m·g
  • τ = F·l
  • v = ω·r
  • ω = 2π·RPM/60
  • τ_motore = τ_uscita / (G·η)
  • PID: u = Kp·e + Ki∫e dt + Kd·de/dt

📦 Lista componenti consigliata

  • Arduino Uno/Nano o ESP32
  • 2 motori DC con gearboxes
  • Driver TB6612
  • 1 servo SG90 + 1 servo MG996R
  • Batteria Li-ion 7.4–11.1 V
  • Telaio, viti, cavi, multimetro

Commenti

Post popolari in questo blog

La scienza delle piccole grandi cose: Teoria della doppia copia: gravità e gauge a confronto

Corso di Algebra Elementare e Strutture Algebriche: 1 Polinomi

CORSO DI MECCANICA QUANTISTICA: 2 Misura Quantistica Sovrapposizione e Spin