Componente · Chasis

4-DOF Robot Arm Kit

Estructura de cuatro grados de libertad para aprendizaje de cinemática directa e inversa: base giratoria, hombro, codo y pinza servocontrolada.

Qué es

Un kit de brazo robótico de 4 GDL es el esqueleto mecánico de un manipulador de sobremesa: un conjunto de soportes de acrílico o aluminio cortados con láser, una base giratoria y ranuras de montaje para cuatro servos. Por sí solo no hace nada: es el marco que convierte servos en una máquina que alcanza, posiciona y sujeta. Atornilla los servos, manéjalos con un PCA9685 y se convierte en un brazo al que puedes comandar a un punto del espacio.

Vista lateral etiquetada de un brazo robótico de 4 GDL con servos: un servo de base giratoria en la parte inferior, un servo de hombro que eleva el eslabón superior, un servo de codo que dobla el antebrazo, y un servo de pinza en la punta de la herramienta, con el arco de alcance alcanzable dibujado alrededor de la base.
Cuatro articulaciones, cuatro servos: una base giratoria, un hombro y un codo que colocan la herramienta en un plano vertical, y una pinza en la punta. Descargar SVG

Las cuatro articulaciones

Cada grado de libertad es un servo haciendo un trabajo:

  • Base: gira todo el brazo a izquierda y derecha (guiñada), orientando el plano de trabajo.
  • Hombro: eleva el eslabón superior; el primero de los dos que marcan alcance y altura.
  • Codo: dobla el antebrazo; junto con el hombro coloca la herramienta en cualquier punto de un plano vertical.
  • Pinza: abre y cierra las mordazas para sujetar un objeto.

El hombro y el codo son la pareja que resuelve la cinemática inversa de dos eslabones: dado un punto objetivo en el plano de trabajo del brazo, calculan los dos ángulos de articulación que lo alcanzan. La base después gira ese plano hacia la dirección del objetivo, y la pinza hace la recogida.

Cuándo usarlo

Recurre a un kit de brazo de 4 GDL cuando quieras aprender manipulación en lugar de movilidad: recoger y colocar, apilar bloques, dibujar, o montar una cámara en un soporte posicionable. Es el equivalente en brazos de un chasis 2WD: la estructura compartida a la que se atornilla toda una clase de proyectos. Es deliberadamente de poca carga; trátalo como una plataforma de enseñanza, no como una bestia de tiro.

Para trabajo más pesado o más preciso, sube a servos de engranaje metálico, un bastidor más rígido, o un brazo de 5–6 GDL que añada muñeca. Para robots móviles, lo que quieres es el chasis.

Cableado y errores comunes

  • Un servo por articulación, un canal cada uno. Numera los canales (0 = base, 1 = hombro, …) y mantén el mapa en tu código para que una orden de «mover el codo» mueva el servo correcto.
  • Alimenta los servos por separado. Cuatro servos moviéndose juntos dan un pico de corriente; aliméntalos desde el terminal V+ del PCA9685, nunca desde el Arduino.
  • Haz el referenciado antes de montar. Pon cada servo en un ángulo conocido (por ejemplo 90°) antes de empujar las horquillas, para que la pose cero del brazo coincida con el cero de tu código.
  • Respeta el alcance. La herramienta solo alcanza dentro de un anillo delimitado por las longitudes de los eslabones; comandar un punto fuera de él es inalcanzable por muchos que sean los ángulos de articulación. Mira el simulador de brazo robótico.
  • Cuidado con la palanca. La carga útil cae rápido conforme el brazo se extiende; mantén las cargas ligeras o los servos se bloquearán y los engranajes de nailon se romperán.

Las medidas que necesitas antes de escribir una línea de código

La cinemática inversa es aritmética sobre longitudes de eslabón. Si te equivocas, el brazo alcanza con confianza al sitio equivocado, y no hay nada en el código a culpar.

Medida Dónde medir Típico
L1: eslabón superior Del eje de la articulación del hombro al eje del codo 90–105 mm
L2: antebrazo Del eje del codo al punto de agarre de la pinza 80–95 mm
Altura de la base De la mesa al eje de la articulación del hombro 50–70 mm
Desplazamiento de la base Del eje de giro de la base al eje del hombro, en horizontal 0–15 mm

Mide entre ejes de articulación, no entre bordes de soporte. El eje es el centro del estriado de salida del servo, y suele estar entre 5 y 10 mm dentro del soporte visible. En un eslabón de 95 mm, un error de 10 mm es más del 10%, lo que se manifiesta como un brazo sistemáticamente corto, y que ningún ajuste va a corregir.

Esas dos longitudes te dan el espacio de trabajo directamente:

maximum reach = L1 + L2
minimum reach = |L1 - L2|

Con L1 = 100 y L2 = 90, el brazo alcanza entre 10 mm y 190 mm desde el hombro: un anillo, no un disco. Hay un agujero en el centro que físicamente no puede alcanzar, y es una sorpresa auténtica la primera vez que un objetivo cerca de la base vuelve como inalcanzable. Si los dos eslabones son iguales, el hueco desaparece y el brazo puede plegarse sobre sí mismo.

Par de los servos: por qué el brazo se hunde al extenderse

El servo del hombro carga todo lo que hay más allá de él, y la demanda de par crece con la distancia a la que está la masa desde la articulación.

Para un brazo completamente extendido con L1 = L2 = 95 mm, sosteniendo una carga útil de 30 g, con eslabones que pesan unos 20 g cada uno:

Shoulder torque ~= (forearm+elbow mass x 0.095) + (payload x 0.190)
                ~= (0.05 kg x 9.5 cm) + (0.03 kg x 19 cm)
                ~= 0.48 + 0.57 = 1.05 kg.cm

El par de bloqueo de un SG90 es de unos 1,8 kg·cm a 4,8 V. Sostener 1,05 kg·cm significa funcionar al 58 % del bloqueo de forma continua, que está muy pasado el punto en el que un servo de hobby sigue siendo exacto: se hundirá por debajo del ángulo comandado, zumbará y se calentará.

Configuración Demanda en el hombro SG90 (1,8 kg·cm) MG90S (2,2 kg·cm)
Plegado, sin carga ~0.2 kg·cm Cómodo Cómodo
Extendido, sin carga ~0.5 kg·cm Bien Bien
Extendido, carga de 30 g ~1.05 kg·cm Se hunde visiblemente Al límite
Extendido, carga de 50 g ~1.4 kg·cm Se bloquea Se hunde

Tres consecuencias prácticas. La precisión del brazo es peor a máxima extensión, que es exactamente donde además vive una singularidad, así que planifica trayectorias dentro del límite. Usa servos MG90S de engranaje metálico para el hombro aunque el resto sean SG90: es la articulación que falla primero, y los engranajes de nailon se rompen bajo carga sostenida. Y contrapesa si puedes: una goma elástica desde el eslabón superior hasta la base le quita al servo del hombro una fracción sorprendente de la carga estática, gratis.

Montarlo para que las matemáticas funcionen

El orden importa, y un paso en particular es casi imposible de deshacer.

1. Pon cada servo en su centro antes de montar una horquilla. Alimenta el servo, comanda 90°, y solo entonces empuja la horquilla. Una horquilla de servo es estriada, con unos 20 o 24 dientes, así que solo se puede montar en posiciones discretas, y el ajuste más fino disponible es de unos 15–18°. Si montas el brazo primero y calibras después, puedes encontrar una articulación cuyo rango usable está desplazado 40° y que no se puede corregir mecánicamente en absoluto.

2. Monta las horquillas en la pose que quieras como cero. Para el hombro, eso suele significar el eslabón superior vertical. Para el codo, el antebrazo horizontal. Decide la convención, anótala y construye según ella.

3. Comprueba el recorrido completo de cada articulación antes de apretar nada. Comanda 0° y 180° y confirma que nada choca con el bastidor. Una articulación que golpea su propio soporte a 160° tiene un límite efectivo de 160°, y tu código tiene que saberlo.

4. Anota los offsets y los signos por articulación. Algunas articulaciones girarán al revés de tu convención matemática por cómo esté montado el mecanismo. Captúralo una vez:

struct Joint {
  uint8_t channel;
  int      offsetDeg;   // servo angle when the joint is at its mathematical zero
  int8_t   sign;        // +1 or -1
  int      minDeg, maxDeg;  // mechanical limits, measured
};

const Joint BASE     = {0,  90, +1,  -85,  85};
const Joint SHOULDER = {1,  90, -1,  -10, 120};
const Joint ELBOW    = {2,  90, +1, -120,  10};
const Joint GRIPPER  = {3,  20, +1,    0,  55};

int servoAngle(const Joint &j, float jointDeg) {
  float clamped = constrain(jointDeg, j.minDeg, j.maxDeg);
  return constrain((int)(j.offsetDeg + j.sign * clamped), 0, 180);
}

Ese struct es todo el puente entre la cinemática y el hardware, y tenerlo explícito es la diferencia entre un brazo en el que puedes razonar y otro en el que sigues improvisando.

Cómo alimentar cuatro servos

Cuatro microservos moviéndose a la vez están muy por encima de lo que un microcontrolador puede suministrar, y el modo de fallo del brazo lo empeora: cuando el brazo golpea su propio bastidor o agarra algo sólido, todos los servos de la cadena se bloquean a la vez.

Situación Corriente
En reposo, manteniendo posición ~40 mA en total
Moviéndose, sin carga ~600 mA – 1 A
Los cuatro bloqueados ~2.6 A

Dimensiona la alimentación para la cifra de bloqueo. Una alimentación aparte de 5–6 V al terminal V+ del PCA9685, con un condensador de 470–1000 µF en paralelo, y las masas unidas al controlador. Pasar cualquiera de esto por el pin de 5 V del Arduino dejará sin tensión la placa, y como solo ocurre cuando el brazo llega a una posición concreta, se lee de forma convincente como un fallo de software.

Muévelo con suavidad

Un servo comandonado a un ángulo nuevo va allí a máxima velocidad. En un robot móvil eso simplemente es brusco; en un brazo es un problema de verdad: un movimiento violento, un pico de corriente y un golpe mecánico a través de engranajes de nailon, con la palanca del propio brazo multiplicándolo.

// Interpolate every joint together so the tool moves in a straight-ish line
// and no single servo takes the whole load at once.
void moveTo(float base, float shoulder, float elbow, int steps, int stepMs) {
  static float cur[3] = {0, 0, 0};
  float target[3] = {base, shoulder, elbow};

  for (int s = 1; s <= steps; s++) {
    float t = (float)s / steps;
    for (int j = 0; j < 3; j++) {
      float a = cur[j] + (target[j] - cur[j]) * t;
      pwm.setPWM(JOINTS[j].channel, 0, countsFor(JOINTS[j], a));
    }
    delay(stepMs);
  }
  memcpy(cur, target, sizeof(cur));
}

Interpolar todas las articulaciones a la vez importa tanto como el suavizado. Mover las articulaciones una por una envía la herramienta por un camino extraño a través del espacio de trabajo, lo que es más lento y mucho más propenso a chocar con algo por el camino.

Resolución de problemas

Síntoma Causa probable Solución
El brazo alcanza a un punto completamente equivocado Horquilla montada en un ángulo arbitrario Referencia cada servo a 90° antes de montar las horquillas
El rango de una articulación está desplazado ~20° La horquilla está un diente de estriado desviada Quítala y vuélvela a montar: esto no se arregla por software
La placa se reinicia cuando se mueve el brazo Corriente de servos pasando por el controlador Alimentación V+ aparte, masa común, condensador grande
El brazo se hunde a máxima extensión El servo del hombro pasa de su par cómodo MG90S en el hombro; contrapesa; reduce la carga útil
Zumba mientras mantiene una pose El servo luchando contra una carga en su límite Reduce la carga, o usa detach() cuando no necesite mantener
Alcanzar cerca de la base falla Objetivo dentro del anillo de alcance mínimo Geometría esperada: |L1 − L2| es inalcanzable
La CI devuelve NaN Objetivo más allá de L1 + L2 Comprueba la alcanzabilidad antes de la trigonometría
Alcanza de forma distinta según el sentido Holgura del reductor, amplificada por la longitud del eslabón Acerca cada objetivo siempre desde el mismo sentido
Movimiento violento con una orden nueva El servo va a máxima velocidad Interpola el movimiento en varios pasos
La pinza aplasta o se le cae lo que sujeta Sin realimentación de fuerza Limita el ángulo de cierre; añade espuma a las mordazas

Cuándo pasar de este kit

Un kit de acrílico de 4 GDL es una plataforma de enseñanza, y es honesto al respecto. Sus límites, en el orden en que te los vas a encontrar:

Carga útil. Decenas de gramos. Algo más pesado y el servo del hombro no puede sostenerlo.

Repetibilidad. La holgura en los reductores de los servos, más la flexión de los eslabones de acrílico, hacen que volver a la misma pose comandada caiga unos milímetros desviada. Cuatro grados de juego en el hombro sobre un alcance de 190 mm son más de 13 mm en la herramienta.

Orientación de la muñeca. Con cuatro grados de libertad puedes colocar la herramienta en algún sitio, pero no elegir independientemente el ángulo desde el que se acerca. Un brazo de 5 o 6 GDL añade una muñeca, que es lo que hace posible «coger esto desde un lado».

Mejora Qué aporta
Servos MG90S en todo el brazo Engranajes metálicos: aguanta golpes, menos holgura
Eslabones de aluminio Mucha menos flexión, mejor repetibilidad
Servos MG996R + bastidor mayor Carga útil real, cientos de gramos
Brazo de 6 GDL Orientación independiente de la herramienta
Brazo con motor paso a paso o BLDC Repetibilidad medida en décimas de milímetro

Nada de eso cambia las matemáticas. La cinemática de dos eslabones que escribes para este kit es el mismo solucionador que usa un brazo mejor, y por eso el bastidor barato merece ser la primera cosa sobre la que construir.

Explora el grafo

Se usa en estos montajes

Proyectos, rutas de aprendizaje y simuladores que incluyen 4-DOF Robot Arm Kit.

Preguntas

Preguntas frecuentes sobre 4-DOF Robot Arm Kit

¿Qué es un brazo robótico de 4 DOF?

Un brazo robótico de 4 DOF (cuatro grados de libertad) tiene cuatro articulaciones controladas de forma independiente: normalmente una base giratoria, un hombro, un codo y una pinza. Esos cuatro movimientos permiten que la herramienta alcance distintas posiciones sobre la mesa y recoja objetos. Es el brazo más pequeño que se siente como un manipulador de verdad sin dejar de ser barato y fácil de controlar.

¿Cuántos servos necesita un brazo robótico?

Uno por articulación. Un brazo de 4 DOF usa cuatro servos: giro de la base, hombro, codo y pinza. Los brazos más grandes añaden inclinación y giro de muñeca para llegar a 5 o 6 DOF. Como cada servo necesita su propio canal PWM, los brazos son el motivo clásico para añadir un driver PCA9685 en lugar de cablear los servos directamente al microcontrolador.

¿Qué es el MeArm?

El MeArm es un popular kit de brazo de 4 DOF de código abierto, de acrílico cortado por láser y movido por cuatro microservos. Es el arquetipo del brazo robótico de escritorio barato: muchos de los kits que se venden hoy son clones del MeArm o variantes muy parecidas. Todos se cablean y se programan igual, así que lo que aprendes de cinemática y de drivers te sirve para cualquiera de ellos.

¿Cuánto puede levantar un brazo robótico de aficionado?

No mucho: decenas de gramos en la pinza. El límite es el par del servo multiplicado por la palanca. Los ~1.8 kg·cm de par de bloqueo de un SG90 parecen mucho hasta que los repartes a lo largo de un brazo de 15 cm, donde la carga útil aprovechable cae a unas pocas decenas de gramos. Los servos con engranajes metálicos y un brazo más corto ayudan; para levantar cargas de verdad necesitas un brazo más grande y con reductora.

¿Necesito un PCA9685 para un brazo robótico?

No estrictamente, pero es la herramienta adecuada. Cuatro servos funcionarán desde los pines PWM de un Arduino si los alimentas por separado, pero un PCA9685 libera los temporizadores del microcontrolador, mueve todas las articulaciones desde dos pines I²C y lleva la corriente de los servos por su propia alimentación, que es exactamente lo que necesita un brazo de varias articulaciones.

Lecturas adicionales

Referencias