← Índice del curso

Robótica y Automatización · Tema 23

Espacio de trabajo y límites articulares

Un brazo no puede llegar a cualquier lado. Entre el alcance de los eslabones, el rango de cada servo, el apoyo, la carga y las singularidades, la zona realmente utilizable es bastante menor que la que sugiere la geometría. Vamos a calcularla, dibujarla y decidir con ella qué objetivos aceptar.

01 · Punto de partida

Qué puede hacer el brazo

En el tema 22 aprendimos a calcular los ángulos para un punto, y vimos que a veces no hay solución. Pero «tiene solución en geometría» no significa «el brazo puede hacerlo». El espacio de trabajo es el conjunto de puntos que el extremo puede alcanzar realmente. Conocerlo antes de programar tareas evita objetivos imposibles y movimientos peligrosos.

Hay varias capas, cada una más restrictiva que la anterior:

  1. la geometría de los eslabones (alcance mínimo y máximo);
  2. los límites articulares: el rango que admite cada servo y su montaje;
  3. el entorno y la mecánica: apoyo, obstáculos, colisión con el propio brazo;
  4. la carga: el torque que cada articulación puede sostener;
  5. la movilidad: zonas donde el brazo existe pero se mueve mal (singularidades).

Seguimos en el plano y en lazo abierto: los resultados son geometría y estimaciones, no garantías sobre el brazo real.

02 · La capa geométrica

El espacio de trabajo ideal

Si ambas articulaciones pudieran girar sin restricción, el extremo alcanzaría todo punto entre el alcance mínimo y el máximo (tema 22): una corona circular de radios |L1 − L2| y L1 + L2. Su área es:

A = π·[ (L1 + L2)² − (L1 − L2)² ] = 4π · L1 · L2

Con L1 = 10 cm y L2 = 8 cm, A ≈ 1005 cm². Es una curiosa propiedad: el área depende solo del producto de los largos, no de su diferencia. Con L1 = L2 la corona se convierte en un disco completo, sin hueco central.

Un detalle conceptual: con dos articulaciones el brazo controla la posición del extremo, pero no su orientación. La orientación del segundo eslabón queda determinada por φ = θ1 + θ2. Controlar a la vez posición y orientación en el plano requiere un tercer grado de libertad, por ejemplo una muñeca. Con dos articulaciones, un punto dado tiene, a lo sumo, dos orientaciones posibles.

Espacio de trabajo ideal y con límites articulares A la izquierda, una corona circular completa entre el alcance mínimo y el máximo. A la derecha, una forma aproximada con límites articulares: un semianillo superior con un hueco central mayor. Sin límites: corona completaCon límites y apoyo: forma reducida (aproximada)apoyohueco mayor

La figura de la derecha es solo una idea de la forma: el contorno real, con curvas que se comban cerca del hueco, se calcula numéricamente, como hace el laboratorio 1.

03 · Lo que el mecanismo no deja

Límites articulares

Cada articulación tiene un rango [θmín, θmáx]. Las razones son varias: el servo recorre típicamente 180° (tema 15), los eslabones chocan entre sí o contra la base, los cables no admiten cualquier giro, y un tope mecánico puede dañarse si se lo empuja. Estos límites forman parte del modelo del brazo tanto como las longitudes.

Dos efectos concretos con L1 = 10 y L2 = 8:

  • El hueco central crece. Si θ2 solo llega a θmáx, el brazo no se pliega del todo y la distancia mínima a la base pasa a ser rmín = √(L1² + L2² + 2·L1·L2·cos θmáx). Con 135°: √(164 − 113,1) = 7,13 cm, mucho más que los 2 cm ideales. El alcance máximo no cambia mientras θ2 = 0 esté permitido.
  • Se recorta la zona angular. Si θ1 solo abarca de 0° a 180°, el brazo apunta hacia arriba de la base y no hacia atrás ni hacia abajo: pierde, aproximadamente, la mitad inferior de la corona. «Aproximadamente», porque con el codo doblado el extremo puede quedar por debajo de la línea de la base aun con θ1 ≥ 0.

El área alcanzable se reduce, con los números que mide el laboratorio y el ejemplo de Python: si solo se limita θ2 a ±135°, queda cerca del 87 % del área sin límites; con θ1 de 0° a 180°, cerca del 60 %.

Como regla, definí los límites con el brazo armado, moviéndolo a mano o a baja velocidad hasta el punto de contacto, y dejá un margen respecto de ese extremo. El rango de las hojas de datos describe al servo, no a tu montaje.

04 · Un procedimiento

Decidir si un punto es utilizable

La cinemática inversa del tema 22 da las dos soluciones geométricas. A partir de ahí, un objetivo se acepta solo si pasa una serie de pruebas, en este orden:

  1. Alcance: ¿existe solución? Si no, está fuera del alcance.
  2. Límites articulares: ¿alguna de las dos soluciones cumple los rangos de ambas articulaciones? Si ninguna, es alcanzable en geometría pero no con este montaje.
  3. Apoyo y entorno: ¿el codo y el extremo, y los eslabones entre ellos, quedan en una zona permitida?
  4. Carga: ¿cada articulación sostiene el torque necesario en esa pose?
  5. Movilidad: ¿está lejos de una singularidad y con margen respecto de los límites?

Entre las soluciones que pasen, se elige por margen y por continuidad con la pose actual (tema 22). Y el programa debe informar la razón del rechazo: «fuera de alcance», «fuera de límites» y «bajo el apoyo» son problemas distintos con soluciones distintas.

Esta lógica se escribe una vez, como una función que devuelve un veredicto, y todo el código que genera objetivos (comandos, trayectorias, secuencias) pasa por ella. Un brazo que acepta objetivos sin validar depende de que nadie se equivoque nunca.

05 · Más allá de los ángulos

Restricciones del entorno y de la mecánica

  • Apoyo y obstáculos. El brazo no debe atravesar la mesa o la base. Si el apoyo está en y = 0, exigí que el codo y el extremo cumplan y ≥ 0, y tené en cuenta el espesor de los eslabones y de la pinza: un punto matemático no ocupa lugar, un eslabón sí.
  • Colisión del brazo consigo mismo. Cuando el codo se pliega mucho, el segundo eslabón choca con el primero. El ángulo máximo de plegado es un límite mecánico, que puede ser bastante menor que los 180° de la geometría.
  • Cables y mangueras. Limitan las vueltas y pueden tirar de la herramienta en ciertas poses.
  • Personas y zonas prohibidas. En un entorno compartido, el espacio de trabajo permitido puede ser más pequeño que el alcanzable. Un límite de software es una protección, no una barrera física (tema 4).
  • La trayectoria, no solo el destino. Dos puntos válidos pueden estar unidos por un camino que cruza una zona prohibida o el hueco central. Hay que verificar los puntos intermedios (tema 22).

Estas restricciones pueden formar regiones sin forma sencilla. Por eso conviene evaluarlas muestreando: se barren las combinaciones de ángulos o una grilla de puntos y se anota cuáles cumplen todas las condiciones. Es lo que hacemos en el laboratorio y en el código de Python.

06 · Cuánto puede sostener

Torque y carga

Un servo no sostiene cualquier pose (tema 15). El peso de los eslabones y de la carga genera un torque en cada articulación, que depende de la distancia horizontal a la que actúa cada peso (en un brazo que se mueve en un plano vertical). En el plano, con φ = θ1 + θ2 y centros de masa en la mitad de cada eslabón:

τ2 = g · ( m2·L2/2 + mc·L2 ) · |cos φ|
τ1 = g · [ m1·(L1/2)·cos θ1 + m2·( L1·cos θ1 + (L2/2)·cos φ ) + mc·( L1·cos θ1 + L2·cos φ ) ]

El peor caso es el brazo horizontal y extendido, donde todos los brazos de palanca valen lo máximo. Con eslabones de 0,10 kg y 0,08 kg, una carga de 0,10 kg, L1 = 10 cm y L2 = 8 cm, el brazo extendido horizontal exige τ1 ≈ 0,336 N·m y τ2 ≈ 0,110 N·m. Con el factor didáctico 1,5 del tema 15, 0,503 y 0,165 N·m.

Si el servo de la base admite 0,40 N·m en forma continua y el del codo 0,25 N·m (valores ficticios), el brazo extendido no pasa la prueba de la base, aunque esté dentro de todos los límites geométricos. El efecto es plegarse: con el brazo más recogido, los brazos de palanca bajan y la pose es sostenible.

Por eso el espacio de trabajo con carga es una versión reducida del geométrico y depende de la masa transportada. Para otras cargas, otro mapa. Los valores reales deben salir de las hojas de datos, de la masa medida del brazo y de pruebas con medición de corriente y temperatura. Esta estimación estática no incluye aceleración ni fricción (tema 17).

07 · Existir no es moverse bien

Singularidades y movilidad

Las velocidades del extremo se relacionan con las de las articulaciones mediante el jacobiano J: v = J · θ̇. Para el brazo de dos eslabones:

J = [ [ −L1 sen θ1 − L2 sen(θ1+θ2),  −L2 sen(θ1+θ2) ], [ L1 cos θ1 + L2 cos(θ1+θ2),  L2 cos(θ1+θ2) ] ]    det J = L1 · L2 · sen θ2

Cuando el determinante es cero (θ2 = 0° o 180°, el brazo extendido o plegado), el jacobiano pierde rango: hay una dirección en la que el extremo no puede moverse, por rápido que giren las articulaciones. En el brazo extendido, esa dirección es la radial, a lo largo del brazo. Eso es una singularidad.

En términos prácticos, la capacidad de movimiento radial del extremo, con el codo a velocidad angular ω, es:

|ṙ|máx = ( L1 · L2 · |sen θ2| / r ) · ω

Con ω = 90 °/s (1,57 rad/s): 9,8 cm/s en θ2 = 90°, 1,2 cm/s en 10° y cero en 0°. La capacidad máxima se da con el codo bastante doblado (cerca de 143° en este brazo, 12,6 cm/s), lejos de las singularidades. Es la otra cara de lo que vimos en el tema 22: cerca del borde, pequeños avances piden grandes giros.

Las singularidades también afectan a las fuerzas: en el brazo extendido, un empuje a lo largo del brazo lo soporta la estructura, no los servos; pero un empuje transversal exige torque. Y cerca de ellas, pequeños errores de ángulo se amplifican, o se atenúan según la dirección.

08 · Margen de seguridad

Una zona de trabajo segura

Con todo lo anterior se define una zona de trabajo más pequeña que el espacio alcanzable, con márgenes explícitos. Una receta típica:

Ejemplo de criterios; los valores se ajustan con el brazo real.
CriterioRegla de ejemploPara qué
Límites articularesMargen de 5° a 10° respecto del topeNo empujar contra topes; absorber la holgura
Singularidad|sen θ2| ≥ 0,2 (θ2 a más de ~12° de 0° y 180°)Mantener movilidad radial y evitar saltos de rama
Apoyo y obstáculosDistancia mínima mayor que el espesor del eslabónEvitar colisiones por tolerancias
TorqueDemanda con factor 1,5 por debajo del continuo del servoDejar margen térmico y dinámico

Los objetivos fuera de la zona se rechazan o se llevan a la frontera con aviso. Recortar en silencio puede ser peor que fallar: el programa que pide una pieza y recibe un punto distinto sin que nadie lo sepa produce errores difíciles de rastrear.

Documentá la zona (un dibujo con los puntos válidos y los límites usados) junto con el código y revisala cada vez que cambien la carga, las longitudes o el montaje. Es parte de la documentación de seguridad del brazo.

09 · Código para la placa

Validar objetivos en Arduino

Este sketch no necesita servos conectados. Recibe un objetivo x y en centímetros y emite un veredicto: fuera de alcance, bajo el apoyo, fuera de límites o aceptado, con la solución elegida (la de mayor margen articular), ese margen y un aviso de cercanía a una singularidad. Reúne la inversa del tema 22 con las pruebas de la sección 4.

const float L1 = 10.0, L2 = 8.0;                 // cm, entre ejes
const float TH1_MIN = 0.0,    TH1_MAX = 180.0;   // límites validados (grados)
const float TH2_MIN = -135.0, TH2_MAX = 135.0;
const float Y_MIN = 0.0;                         // plano de apoyo: ni codo ni extremo por debajo
const float SIN_MIN = 0.2;                       // |sen th2| menor: cerca de una singularidad

struct Sol { bool existe; float th1, th2; };

float normalizar(float g) {
  while (g > 180.0) g -= 360.0;
  while (g <= -180.0) g += 360.0;
  return g;
}

Sol inversa(float x, float y, int signo) {
  float d = (x * x + y * y - L1 * L1 - L2 * L2) / (2.0 * L1 * L2);
  if (d > 1.0 + 1e-6 || d < -1.0 - 1e-6) return { false, 0, 0 };
  d = constrain(d, -1.0, 1.0);
  const float t2 = atan2(signo * sqrt(1.0 - d * d), d);
  const float t1 = atan2(y, x) - atan2(L2 * sin(t2), L1 + L2 * cos(t2));
  return { true, normalizar(t1 * RAD_TO_DEG), t2 * RAD_TO_DEG };
}

// Distancia angular al límite más cercano; negativa si alguna articulación lo excede.
float margen(Sol s) {
  return min(min(s.th1 - TH1_MIN, TH1_MAX - s.th1), min(s.th2 - TH2_MIN, TH2_MAX - s.th2));
}

bool sobreElApoyo(Sol s, float y) {
  return y >= Y_MIN && L1 * sin(s.th1 * DEG_TO_RAD) >= Y_MIN;
}

void evaluar(float x, float y) {
  const float r = sqrt(x * x + y * y);
  Serial.print("r="); Serial.print(r, 2); Serial.print(" cm: ");
  const Sol a = inversa(x, y, +1), b = inversa(x, y, -1);
  if (!a.existe) { Serial.println("FUERA DE ALCANCE"); return; }

  const Sol cand[2] = { a, b };
  int mejor = -1;
  float mejorMargen = -1e9;
  for (byte i = 0; i < 2; i++) {
    const float m = margen(cand[i]);
    if (m >= 0 && sobreElApoyo(cand[i], y) && m > mejorMargen) { mejor = i; mejorMargen = m; }
  }
  if (mejor < 0) {
    Serial.println(y < Y_MIN ? "BAJO EL APOYO" : "ALCANZABLE EN GEOMETRIA, PERO FUERA DE LIMITES");
    return;
  }
  const Sol s = cand[mejor];
  Serial.print("OK th1="); Serial.print(s.th1, 1);
  Serial.print(" th2="); Serial.print(s.th2, 1);
  Serial.print(" margen="); Serial.print(mejorMargen, 1); Serial.print(" grados");
  if (fabs(sin(s.th2 * DEG_TO_RAD)) < SIN_MIN) Serial.print(" | CERCA DE SINGULARIDAD");
  Serial.println();
}

void setup() {
  Serial.begin(115200);
  Serial.setTimeout(100);
  Serial.println("Escribi 'x y' en cm, por ejemplo: 10 8");
}

void loop() {
  if (Serial.available() == 0) return;
  const float x = Serial.parseFloat();
  const float y = Serial.parseFloat();
  while (Serial.available() > 0) Serial.read();
  evaluar(x, y);
}

Resultados esperados con estos límites: 10 8 → OK th1=77.3 th2=-90.0 margen=45.0; 12 6 → OK th1=63.0 th2=-84.3 margen=50.7; -5 10 → OK th1=72.6 th2=104.1 margen=30.9; 18 0 → OK th1=0.0 th2=0.0 margen=0.0 | CERCA DE SINGULARIDAD; 30 0 → FUERA DE ALCANCE; 5 -3 y 10 -5 → BAJO EL APOYO.

Esos dos puntos están dentro del alcance geométrico (r ≈ 5,8 y 11,2 cm) pero por debajo del apoyo. El sketch separa los veredictos para que quien manda el objetivo sepa qué corregir.

Aun un objetivo aceptado en esta función no pasa por la prueba de torque: su mapa depende de la carga y conviene calcularlo aparte (sección 6). Y la validación del destino no reemplaza la de los puntos intermedios de una trayectoria. Como en los temas anteriores, parseFloat() espera con un tiempo límite: es aceptable aquí porque el sketch solo calcula.

10 · Exploración interactiva

Laboratorios: el mapa y la movilidad

1. El mapa del espacio de trabajo

Brazo de L1 = 10 cm y L2 = 8 cm. Elegí el rango de cada articulación y si hay un apoyo en y = 0. Cada celda lima es un punto de 0,5 cm que alguna combinación de ángulos dentro de los límites alcanza. Las circunferencias punteadas son el alcance ideal.

Área alcanzable—
Respecto de no tener límites—
Distancia a la base (mín. a máx.)—

Elegí los rangos de las articulaciones.

Con los valores iniciales el área es de unos 452 cm², el 43 % del caso sin límites (1040 cm² por celdas; la corona teórica mide 1005). Poné el apoyo en «No»: sube a 626 cm² (60 %). Poné θ1 de −180° a 180° y θ2 de −135° a 135°: 902 cm² (87 %) y el hueco central pasa a 7,1 cm de radio. Probá θ2 de −10° a 10°: el extremo solo se mueve en una franja de 17,9 a 18 cm de la base: casi una circunferencia, de la que el apoyo y el límite de θ1 dejan una parte.

2. Capacidad de movimiento radial

El codo gira como máximo a ω (°/s). La curva muestra la velocidad radial máxima del extremo según |θ2| (de 0° a 180°). Es una capacidad cinemática ideal: no incluye aceleración, torque ni el límite de velocidad de la base.

Velocidad radial máxima según el ángulo del codoCurva que parte de cero con el codo en 0 grados, sube hasta un máximo cerca de 143 grados y baja a cero con el codo en 180 grados. Un punto marca el ángulo elegido.máx.—0°180°Ángulo del codo |θ₂|
det J = L₁·L₂·sen θ₂—
Distancia base–extremo—
Velocidad radial máxima—
Tiempo para avanzar 2 cm radiales—

Elegí el ángulo del codo y su velocidad.

Con 90 °/s y θ2 = 90° el extremo puede avanzar hasta 9,8 cm/s radialmente. A 10° baja a 1,2 cm/s y a 0° es cero. El máximo (12,6 cm/s) aparece cerca de 143°. Duplicá la velocidad del codo y todo se duplica, pero la forma de la curva y sus ceros no cambian: la singularidad es de la geometría, no de la velocidad.

11 · Código ejecutable

Medir el espacio de trabajo en Python

Barremos el espacio articular de a 1°, anotamos qué celdas de 0,5 cm alcanza el extremo y vamos sumando restricciones: límite de θ2, límite de θ1, apoyo y torque con carga. Cada restricción reduce el área.

Probalo en el navegador. Python se descarga con Pyodide la primera vez y requiere conexión. El código es editable y no controla ningún brazo.

import math

L1, L2 = 10.0, 8.0                        # cm
M1, M2, MC = 0.10, 0.08, 0.10             # kg: eslabón 1, eslabón 2, carga en el extremo
TAU1_MAX, TAU2_MAX, FACTOR = 0.40, 0.25, 1.5   # N·m ficticios y factor didáctico
G = 9.81

def torques(t1, t2):
    a, f = math.radians(t1), math.radians(t1 + t2)
    l1, l2 = L1 / 100, L2 / 100
    tau2 = G * (M2 * l2 / 2 + MC * l2) * abs(math.cos(f))
    tau1 = G * (M1 * l1 / 2 * math.cos(a) + M2 * (l1 * math.cos(a) + l2 / 2 * math.cos(f))
                + MC * (l1 * math.cos(a) + l2 * math.cos(f)))
    return abs(tau1), tau2

def area(r1, r2, suelo=False, par=False):
    celdas = set()
    for t1 in range(r1[0], r1[1] + 1):
        for t2 in range(r2[0], r2[1] + 1):
            a, f = math.radians(t1), math.radians(t1 + t2)
            ex, ey = L1 * math.cos(a), L1 * math.sin(a)
            x, y = ex + L2 * math.cos(f), ey + L2 * math.sin(f)
            if suelo and (ey < 0 or y < 0):
                continue
            if par:
                tau1, tau2 = torques(t1, t2)
                if FACTOR * tau1 > TAU1_MAX or FACTOR * tau2 > TAU2_MAX:
                    continue
            celdas.add((math.floor(x / 0.5), math.floor(y / 0.5)))
    return len(celdas) * 0.25

teorica = 4 * math.pi * L1 * L2
base = area((-180, 180), (-180, 180))
print(f"Corona teorica: {teorica:.0f} cm2; por celdas de 0,5 cm: {base:.0f} cm2 (el borde suma un poco)")
casos = [
    ("Sin limites (360 x 360 grados)", (-180, 180), (-180, 180), False, False),
    ("theta2 de -135 a 135", (-180, 180), (-135, 135), False, False),
    ("ademas theta1 de 0 a 180", (0, 180), (-135, 135), False, False),
    ("ademas extremo y codo sobre el suelo", (0, 180), (-135, 135), True, False),
    ("ademas torque con factor 1,5", (0, 180), (-135, 135), True, True),
]
for nombre, r1, r2, suelo, par in casos:
    a = area(r1, r2, suelo, par)
    print(f"{nombre:42s} area={a:7.1f} cm2 ({a / base * 100:5.1f} % del caso sin limites)")

t1, t2 = torques(0, 0)
print(f"Brazo extendido horizontal: tau1={t1:.3f} N.m, tau2={t2:.3f} N.m; con factor {FACTOR}: {FACTOR * t1:.3f} y {FACTOR * t2:.3f}")
print(f"Radio minimo con theta2 hasta 135 grados: {math.sqrt(L1**2 + L2**2 + 2 * L1 * L2 * math.cos(math.radians(135))):.2f} cm")

Sin límites: 1040 cm² (celdas de 0,5 cm). Con θ2 de −135° a 135°: 902 cm² (87 %). Con θ1 de 0° a 180°: 626 cm² (60 %). Con apoyo: 452 cm² (43 %). Con torque (factor 1,5, carga de 0,1 kg): 402 cm² (39 %). El brazo extendido horizontal pide 0,336 N·m en la base (0,503 con el factor), por encima de los 0,40 N·m del servo ficticio. El radio mínimo con θ2 hasta 135° es de 7,13 cm.

Probá MC = 0.0 (sin carga) y mirá cuánto del área recuperás, o TAU1_MAX = 0.6 con un servo más fuerte. Cambiá FACTOR a 1,0 para ver el efecto del margen. Los valores de masa y torque son ficticios: lo importante es el método.

12 · Método y diagnóstico

Pruebas y diagnóstico

  1. Medí las longitudes entre ejes y los rangos reales de cada articulación con el brazo armado.
  2. Dibujá o calculá el mapa del espacio de trabajo con esos datos y revisá que tenga sentido físico.
  3. Probá los bordes del mapa con el brazo, a baja velocidad y sin carga, buscando contacto o ruido de esfuerzo.
  4. Probá puntos fuera del mapa y comprobá que el programa los rechaza con la razón correcta.
  5. Con la carga máxima prevista, llevá el brazo a las poses más exigentes (extendido y horizontal) y observá temperatura, corriente y caída de tensión.
  6. Verificá que ninguna trayectoria atraviese el hueco central ni zonas prohibidas, punto por punto.
  7. Repetí las verificaciones cuando cambie la carga, el montaje o los límites.
«Si la cinemática inversa tiene solución, el brazo puede hacerlo»

La inversa solo garantiza geometría. Los límites articulares, el apoyo, la carga y la movilidad pueden impedirlo.

«El alcance máximo es L1 + L2 siempre»

Solo si el codo puede llegar a 0°, los eslabones no chocan y la carga se sostiene en esa pose. En la práctica suele usarse una fracción.

«El hueco central es 2 cm porque L1 − L2 = 2 cm»

Con θ2 limitado a 135°, el hueco pasa a unos 7 cm. El límite del codo es lo que manda.

«Cerca de la singularidad el brazo es más preciso, porque está extendido»

Es al revés en movilidad: pierde la capacidad de moverse en una dirección y los ángulos se vuelven muy sensibles. Además, el error angular de la base se amplifica con el alcance.

«Con un servo más fuerte se agranda el espacio de trabajo geométrico»

No cambia la geometría; cambia la parte alcanzable con carga. Un mejor servo recupera área en el mapa de torque, no en el geométrico.

«Recortar el objetivo al borde es lo más seguro»

Lo seguro es informar y decidir. Recortar en silencio lleva el brazo a un punto distinto del pedido, y a veces al borde, que es la zona menos favorable.

13 · Práctica guiada

Predecí antes de comprobar

1. Hueco central con límite

Con L1 = 10 cm, L2 = 8 cm y θ2 limitado a ±120°, ¿cuál es la distancia mínima a la base?

Ver solución

r² = 164 + 160·cos 120° = 164 − 80 = 84, r ≈ 9,17 cm. Con 135° eran 7,13 cm.

2. Área de la corona

Calculá el área ideal para L1 = 12 cm y L2 = 9 cm, y para dos eslabones iguales de 10 cm.

Ver solución

4π·12·9 ≈ 1357 cm². Con 10 y 10: 4π·100 ≈ 1257 cm², un disco completo de radio 20 cm (sin hueco).

3. Veredictos

Con los límites del sketch (θ1 de 0° a 180°, θ2 de −135° a 135°, apoyo en y = 0), ¿qué veredicto da cada uno: (30; 0), (5; −3), (−5; 10)?

Ver solución

(30; 0): r = 30 cm > 18, fuera de alcance. (5; −3): y < 0, bajo el apoyo. (−5; 10): se acepta con θ1 = 72,6° y θ2 = 104,1°, margen de 30,9°.

4. Torque de la carga

Una carga de 0,1 kg está a 18 cm de la base, con el brazo horizontal. ¿Qué torque pone sobre la base? ¿Y si el brazo se recoge y la carga queda a 9 cm horizontales?

Ver solución

0,1 × 9,81 × 0,18 ≈ 0,177 N·m. A 9 cm: 0,088 N·m, la mitad: el torque es proporcional a la distancia horizontal.

5. Singularidad y velocidad

Con el codo a 90 °/s, ¿qué velocidad radial máxima da θ2 = 10° frente a 90°? ¿Cuántas veces menor es?

Ver solución

|ṙ| = L1L2|sen θ2|/r · ω. A 10°: 80·0,1736/17,73·1,571 ≈ 1,2 cm/s. A 90°: 80/12,81·1,571 ≈ 9,8 cm/s. Unas 8 veces menos.

6. Margen articular

Una solución resulta (θ1 = 3°; θ2 = 100°) con θ1 en [0°, 180°] y θ2 en [−135°, 135°]. ¿Cuál es el margen? ¿La aceptarías con una regla de 10°?

Ver solución

Margen: mín(3, 177, 235, 35) = 3°. Con una regla de 10° se rechaza, aunque esté dentro de los límites: está demasiado cerca del tope de θ1. Se busca la otra solución o se pide otro punto.

7. Zona útil

Proponé tres criterios para definir la zona de trabajo segura de un brazo con servos de 180° y carga variable.

Ver solución

Por ejemplo: (1) margen de al menos 10° respecto de cada límite articular; (2) |sen θ2| ≥ 0,2 para evitar singularidades; (3) demanda de torque con factor 1,5 menor que el continuo del servo para la carga máxima. Se completan con la distancia al apoyo y la verificación de trayectorias punto por punto.

14 · Síntesis

Ideas para recordar

  • El espacio de trabajo real es menor que el geométrico: cada restricción lo reduce.
  • Sin límites es una corona de área 4π·L1·L2; con dos articulaciones se controla la posición, no la orientación.
  • Limitar θ2 agranda el hueco central; limitar θ1 recorta sectores.
  • Un objetivo se acepta tras pasar alcance, límites, entorno, carga y movilidad, y se informa la causa del rechazo.
  • El torque de cada articulación depende de la distancia horizontal de los pesos; el brazo extendido es el peor caso.
  • El jacobiano pierde rango en θ2 = 0° y 180°: hay una dirección en la que el extremo no puede moverse.
  • Una zona de trabajo segura combina márgenes respecto de límites, singularidades, entorno y torque.
  • Validar el destino no basta: también los puntos intermedios de la trayectoria.

¿Listo para el tema 24?

Antes de avanzar, medí los largos y los rangos reales de un brazo (o definí los que usarías), dibujá su zona de trabajo y marcá cuatro puntos: uno inalcanzable, uno fuera de límites, uno cerca de una singularidad y uno cómodo. Escribí qué diría tu programa de cada uno.

En el próximo tema juntamos todo en un proyecto: un brazo robótico con servomotores, que posiciona el extremo en coordenadas X–Y con cinemática inversa.