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.
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