Dinàmica i Control de Robots Manipuladors 🦾🧠

Explicació molt detallada, pas a pas i superdidàctica per estudiants de Batxillerat. Amb analogies, exemples senzills, imatges i preguntes per pensar!

1. Introducció: Per què cal la dinàmica dels robots? 🤔

Imagina que tens un braç robòtic industrial (com els de les fàbriques de cotxes). Per moure'l amb precisió, no n'hi ha prou amb dir-li «vés a la posició X». El robot té pes, inèrcia, es mou ràpid i la gravetat l'afecta. Si no tenim en compte aquestes forces, el robot tremolaria, cauria o consumiria energia de més.

La dinàmica és la part de la física que estudia com les forces fan moure els objectes. En robots, ens dona l'equació que relaciona el parell dels motors \(\boldsymbol{\tau}\) amb el moviment real (\(\boldsymbol{q}, \dot{\boldsymbol{q}}, \ddot{\boldsymbol{q}}\)).

Pregunta per pensar: Si el robot està parat a l'aire amb una caixa pesada, què ha de fer el motor per no deixar caure el braç? (Resposta: contrarestar la gravetat!)

2. L'equació màgica de la dinàmica 🎩

El model dinàmic complet d'un robot manipulador (amb n articulacions) és:

$$ \boldsymbol{\tau} = \mathbf{M}(\boldsymbol{q})\ddot{\boldsymbol{q}} + \mathbf{C}(\boldsymbol{q}, \dot{\boldsymbol{q}})\dot{\boldsymbol{q}} + \mathbf{g}(\boldsymbol{q}) $$

Pas a pas, què significa cada cosa?

  1. \(\boldsymbol{\tau}\) → Vector de parells (torques) que han d'aplicar els motors (en Nm).
  2. \(\boldsymbol{q}\) → Vector de posicions articulars (angles o deslocaments, en radians o metres).
  3. \(\dot{\boldsymbol{q}}\) → Velocitats articulars.
  4. \(\ddot{\boldsymbol{q}}\) → Acceleracions articulars.

Aquesta equació ve de la segona llei de Newton aplicada a cada segment, però amb moltes interaccions. És com escriure \(F = m \cdot a\) per a un sol objecte, però aquí la «massa» canvia segons la posició!

3. Exemple pràctic senzill: robot planar de 2 graus de llibertat (2DOF) 📏

Per entendre-ho bé, comencem amb un robot pla (es mou en 2D) amb dues articulacions rotacionals. És com el teu braç: espatlla + colze.

Braç robot 2DOF (model semblant al braç humà)

Figura 1: Model 2DOF planar. q₁ = angle espatlla, q₂ = angle colze.

Paràmetres típics (simplificats, lcᵢ = lᵢ/2):

Matriu d'inèrcia M(q) per 2DOF planar

$$ \mathbf{M}(\q) = \begin{bmatrix} m_1 l_{c1}^2 + m_2 (l_1^2 + l_{c2}^2 + 2 l_1 l_{c2} \cos q_2) + I_1 + I_2 & m_2 (l_{c2}^2 + l_1 l_{c2} \cos q_2) + I_2 \\ m_2 (l_{c2}^2 + l_1 l_{c2} \cos q_2) + I_2 & m_2 l_{c2}^2 + I_2 \end{bmatrix} $$

Amb valors simplificats (I₁ = I₂ = 0): M canvia quan q₂ varia!

4. Anàlisi detallada de cada terme (pas a pas) 🔍

4.1 Matriu d'Inèrcia M(q): «Com de difícil és accelerar el robot?» 🏋️

  1. Pas 1: Imagina un sol link (1DOF). M = moment d'inèrcia I → τ = I · α (com un pendul girant).
  2. Pas 2: Ara amb dos links. El motor 1 ha de moure els dos links → la seva inèrcia «efectiva» és més gran.
  3. Pas 3: Quan el braç està estirat (q₂ = 0), la inèrcia és màxima (com portar una barra llarga). Quan està plegat (q₂ = π), inèrcia mínima.

Analogia quotidiana: Imagina empènyer un carretó buit (inèrcia petita) vs. ple de pedres (inèrcia gran). I si el carretó té rodes giratòries? La inèrcia canvia segons la direcció!

Què passa amb M₁₁ quan q₂ = π (braç plegat)? És més petita → més fàcil accelerar!

4.2 Termes Coriolis i centrífugs C(q, \dot{q})\dot{q}: «Forces màgiques del moviment ràpid» 🌀

  1. Pas 1: Força centrífuga → «volar cap a fora» quan gires ràpid (com a la atracció de fires).
  2. Pas 2: Força de Coriolis → apareix quan un link es mou respecte a un altre que gira. Exemple: si el colze es mou ràpid mentre l'espatlla gira, apareix una força lateral.
  3. Pas 3: Matemàticament són termes en \(\dot{q}_i^2\) (centrífuga) i \(\dot{q}_i \dot{q}_j\) (Coriolis).
Girs oceànics per efecte Coriolis

Figura 2: Els girs oceànics són un exemple real de força de Coriolis a gran escala.

Analogia: Quan condueixes ràpid i gires el volant bruscament, sents una força lateral que et tira cap a l'exterior. És el mateix!

4.3 Vector de gravetat g(q): «El pes que sempre tira cap avall» ⬇️

  1. Pas 1: Quan el braç està horitzontal, el motor ha de fer molt esforç per no deixar caure la càrrega.
  2. Pas 2: Quan el braç està vertical cap amunt, g(q) ≈ 0 (equilibri).
  3. Pas 3: Cada component gᵢ depèn del sinus/cosinus dels angles → canvia amb la postura.

Analogia: Sostenir una motxilla pesada amb el braç estès (molt esforç) vs. amb el braç plegat (menys esforç).

5. Com controlem el robot? Control per Inversa Dinàmica (Computed Torque) 🎮

El truc és cancel·lar totes les no-linealitats amb el model i deixar només un sistema lineal simple.

  1. Pas 1: Mesurem la posició actual q, \dot{q}.
  2. Pas 2: Calculem la trajectòria desitjada q_d(t), \dot{q}_d(t), \ddot{q}_d(t).
  3. Pas 3: Calculem l'error e = q_d - q.
  4. Pas 4: Apliquem un controlador PD a l'error:
$$ \ddot{\boldsymbol{q}}_c = \ddot{\boldsymbol{q}}_d + \mathbf{K}_v (\dot{\boldsymbol{q}}_d - \dot{\boldsymbol{q}}) + \mathbf{K}_p (\boldsymbol{q}_d - \boldsymbol{q}) $$

\(\mathbf{K}_p\) = guany proporcional (com una molla), \(\mathbf{K}_v\) = guany derivatiu (com un amortidor).

  1. Pas 5: Calculem el parell amb el model (nota el ^ = model estimat):
$$ \boldsymbol{\tau} = \hat{\mathbf{M}}(\boldsymbol{q})\ddot{\boldsymbol{q}}_c + \hat{\mathbf{C}}(\boldsymbol{q}, \dot{\boldsymbol{q}})\dot{\boldsymbol{q}} + \hat{\mathbf{g}}(\boldsymbol{q}) $$

Resultat màgic ✨

Si el model és perfecte (\(\hat{} = real), el robot es comporta com si fos un sistema lineal:

$$ \ddot{\boldsymbol{e}} + \mathbf{K}_v \dot{\boldsymbol{e}} + \mathbf{K}_p \boldsymbol{e} = 0 $$

Això és exactament l'equació d'un ressort amortit! Podem triar K_p i K_v per tenir resposta ràpida sense oscil·lacions (amortiment crític: \(K_v = 2\sqrt{K_p}\)).

Per què és tan potent aquest mètode? Perquè transforma un sistema complicat i no lineal en un de lineal que coneixem perfectament des de 1r de Batxillerat!

6. Exemple complet amb números (2DOF simplificat)

Suposem q = [π/2, 0] (braç estirat horitzontal), velocitats 0, volem accelerar amb \ddot{q}_d = [0,0] (mantenir posició). Amb valors anteriors, g(q) ≈ [20 Nm, 5 Nm] → els motors han de donar aquest parell només per no caure!

7. Conclusió i consells per Batxillerat 🚀

Amb aquest control, els robots poden seguir trajectòries suaus a alta velocitat. A la pràctica, s'afegeixen controladors adaptatius o robustos quan el model no és perfecte. Prova de simular-ho amb Python (SymPy o MATLAB) per veure-ho en acció!

Espero que t'hagi quedat clar! Si tens dubtes, pregunta al professor o prova de derivar les equacions tu mateix. La robòtica és física + matemàtiques + creativitat! 🤖❤️