Construye un robot pick and place con agarre verificado
Un brazo que clasifica piezas de una bandeja en dos tolvas, detecta agarres vacíos, reintenta de forma autónoma y registra el porcentaje de aciertos.
Qué está construyendo
Un brazo que vacía una bandeja. Las piezas van a una de dos cajas según algo que usted pueda comprobar sobre ellas —tamaño, color, de qué fixture salieron— y la máquina funciona sin supervisión hasta que la bandeja se vacía o algo va mal, momento en el que se detiene y dice en qué estado se detuvo.
El robot no es la parte interesante. Los kits de brazo de 4 GDL cuestan 40 € y la cinemática es una página de trigonometría. La parte interesante es que una máquina de pick-and-place se juzga por un porcentaje, y pasar de «funcionó en un vídeo» a «hizo cincuenta seguidos» es un problema de ingeniería distinto del de conseguir que se mueva.
Dos cosas le llevan allí, y ambas están en la pinza.
Las dos decisiones que importan
1. El dedo no debe ser rígido
Esta es la que sorprende a la gente, así que conviene decirla sin rodeos antes de que imprima nada.
El mando de su pinza es una posición: un ángulo de servo. Los límites del objeto son fuerzas:
un suelo por debajo del cual se le cae de las manos, un techo por encima del cual queda destruido. La
tasa de cambio entre ambos es la rigidez en serie k de todo lo que hay entre la horquilla y el objeto,
así que la ventana que realmente tiene que apuntar es
window (mm) = ( min(F_crush, F_servo) − F_slip ) / k
Un dedo impreso rígido anda en torno a 25 N/mm. Un servo de hobby sobre una palanca de 30 mm resuelve unos 0.524 mm de recorrido de mordaza. Haga las cuentas con una fresa y la ventana es de 0.108 mm: cinco veces más fina que un paso, lo que significa que no hay ninguna orden que funcione y que ninguna cantidad de ajuste encuentra una.
| Dedo | k | Ventana | Posiciones de servo que funcionan |
|---|---|---|---|
| Impreso rígido | 25 N/mm | 0.108 mm | 0 |
| Almohadilla de espuma | 4 N/mm | 0.677 mm | 1 |
| Muelle en serie | 0.8 N/mm | 3.386 mm | 7 |
| Flexura impresa | 0.35 N/mm | 7.739 mm | 15 |
Ponga un muelle de extensión de 40 peniques entre la horquilla y el dedo y el problema desaparece. Dimensione el suyo en el laboratorio con su propio objeto y su propia palanca antes de comprometer filamento, y lea fuerza de pinza de servo, calado y compliancia para el argumento completo.
2. Tiene que haber un paso de verificación
El ciclo es aproximación, descenso, agarre, verificación, elevación, transferencia, colocación. Sin el estado de verificación, cada fallo es silencioso: la pinza cierra sobre nada, el brazo lleva aire por encima de la mesa y abre sobre la caja, y el contador dice que funcionó.
Un microinterruptor de palanca en la cara interior de uno de los dedos cuesta cincuenta peniques y un
pin de entrada, y es la pieza de mayor valor de toda esta construcción. Léalo tras una permanencia de
300–400 ms —un dedo compliante oscila después de cerrarse, y muestrear durante la oscilación le da una
moneda al aire—, filtre el rebote sobre tres lecturas consecutivas, y dele a la máquina de estados un
estado RECOVER con un reintento acotado.
El tutorial de la máquina de estados tiene todo esto.
La construcción, en orden
- Decida el efector final. Si sus piezas son planas y alcanzables desde arriba, presupueste primero una ventosa y una bomba pequeña: superará a cualquier cosa que imprima. Si no, dos dedos. Tipos de pinza y fuerza de agarre.
- Mida su objeto. Masa en una báscula de cocina, fuerza de aplastamiento en esa misma báscula con unas cuantas piezas sacrificables, y μ con un dinamómetro de equipaje arrastrado por el material de las almohadillas. Estos tres números deciden el diseño, y los que encuentre por internet son incorrectos para su pieza.
- Compruebe el cierre por fuerzas. Si las caras donde apoyan las almohadillas están inclinadas
más de
atan(μ), nada de lo que haga con fuerzas la sostendrá, y necesita una ranura en V o un punto de agarre distinto. Fricción y cierre por fuerzas. - Dimensione la pinza en el laboratorio. Palanca a partir del objeto más ancho, y después compruebe la ventana frente al paso del servo. El simulador de pinzas.
- Imprima la pinza con una flexura o un muelle en serie, almohadillas de TPU, un tope duro y un microinterruptor. Pinza de servo.
- Cablee cinco servos como toca. PCA9685 por I²C, raíl de servos aparte, desacoplo. Haga esto antes de escribir firmware o se pasará un día depurando reinicios que son un problema de alimentación.
- Escriba la máquina de estados, no bloqueante, con
VERIFYyRECOVER. Máquina de estados de pick-and-place. - Acote la aceleración con un perfil de movimiento, para que el agarre que ha dimensionado sobreviva a la transferencia.
- Ejecute cincuenta y cuéntelos.
La medición
Cincuenta ciclos consecutivos, sin supervisión, con un contador y un registro de fallos que anote en qué estado ocurrió cada fallo. Ese es el entregable, y es mucho más exigente que un vídeo.
| Resultado | Qué significa |
|---|---|
| Por encima del 95% | Tiene una máquina. Pase a sensar la postura en vez de fijarla a mano |
| 80–95% | Normalmente la pose de aproximación, o poco tiempo de asentamiento antes de la verificación |
| Por debajo del 80% | Normalmente la alimentación, o un agarre dimensionado sin el término de aceleración |
| Falla solo al final de la pasada | Calentamiento de los servos, o almohadillas sucias. Ambos son reales y ambos parecen fantasmas |
La tabla de fallos del tutorial de la máquina de estados mapea la mayoría de los síntomas a sus causas.
Lo que este proyecto no es
No hace visión, y no planifica sorteando obstáculos. La bandeja está en un sitio conocido, las cajas están en sitios conocidos, y el brazo va donde se le dice. Eso es deliberado: el punto de esta construcción es que el agarre es un problema aparte, más difícil de lo que parece, respecto al posicionamiento, y confundir los dos es la razón de que los primeros montajes de pick-and-place se estanquen.
Cuando quiera que el brazo encuentre la pieza en vez de que le digan dónde está, eso es calibración de cámara y pose de marcador, y se apoya encima de un ciclo de agarre que funcione en vez de sustituirlo.
Hoja de ruta del proyecto
La ruta de construcción
Sigue el árbol tecnológico desde las piezas hasta un robot que funciona. Cada nodo se desbloquea cuando completas sus requisitos previos, y tu progreso se guarda en este dispositivo.
0 / 21 completados
Componentes
- Chasis4-DOF Robot Arm KitEl brazo manipulador de 4 grados de libertad para dominar la cinemática articular y el pick-and-place.
- ActuadorPinza con servoUn servo, dos dedos y el dato crucial que nadie te dice en la tienda.
- ActuadorSG90 Micro ServoEl ligero actuador rotativo de 9 gramos con control de ángulo absoluto mediante PWM.
- DriverPCA9685 16-Channel PWM DriverEl multiplicador de servos de 16 canales con resolución de 12 bits mediante bus I2C.
- ControladorArduino UnoLa tolerante placa de 8 bits con la que la mayoría descubre la robótica.
- SensorBump SwitchDetección táctil por contacto mecánico directo: infalible, instantánea y de coste mínimo.
- AlimentaciónBattery Power PackLa fuente de energía determinante: por qué la química y la resistencia interna importan más que los voltios.
Tutoriales de esta ruta
- Principiante · 30 minTipos de pinzas robóticas y cómo dimensionar la fuerza de agarreElige el tipo de pinza y dimensiona la fuerza con el término que todos olvidan: la aceleración.
- Intermedio · 25 minFriccion, cierre de fuerza y el riesgo de dos contactosPor que el objeto sale disparado por mucho que aprietes, y que dice realmente el cono de friccion.
- Intermedio · 30 min de lecturaFuerza, bloqueo y flexibilidad en pinzas con servomotorEl mando es una posición, las paredes son fuerzas y la rigidez es la tasa de cambio entre ambas.
- Intermedio · 35 min de lecturaMáquina de estados para Pick-and-Place tolerante a fallosAproximar, agarrar, verificar, elevar y depositar: y cómo reaccionar cuando la verificación falla.
- Avanzado · 22 min de lecturaCinemática inversa de un brazo robótico planar de dos eslabonesPor qué un brazo de dos eslabones tiene dos soluciones, qué puntos puede alcanzar y qué es realmente una singularidad.
- Intermedio · 18 min de lecturaControla servos con el PCA9685 (driver PWM por I2C)Ajusta la frecuencia, pasa ángulos a anchuras de pulso y mueve 16 servos con dos pines I2C, bien alimentados y calibrados.
- Intermedio · 40 min de lecturaPerfiles de movimiento: aceleración trapezoidal y curva en SAplica una rampa en lugar de un escalón: perfiles trapezoidales, límite de tirón (jerk) y el coste real de una curva en S.
- Principiante · 17 min de lecturaMaquinas de estados finitos para el comportamiento de robotsSustituye los condicionales enredados de un robot por estados, eventos, transiciones, tiempos de espera y recuperacion explicitos.
- Principiante · 30 minPor qué tu robot se reinicia cuando arrancan los motoresEl reinicio que parece un fallo de código casi siempre es la batería. Presupuesta la corriente y mide la caída.
- Principiante · 30 min de lecturaPor qué delay() rompe los robots: temporización con millis()Un robot atrapado en un delay() está ciego. Sustitúyelo por millis() y realiza bien la comparación ante desbordamiento.
Practica antes de cablear
Ajústalo en el simulador en vivo
La ruta de construcción pasa por un laboratorio en el navegador. Consigue aquí el comportamiento correcto y luego traslada tus ajustes al robot real.
Preguntas frecuentes
¿Cuál es el mayor reto al construir un robot pick-and-place?
No reside en la articulación del brazo ni en la cinemática, sino en que el actuador comanda posición angular mientras que el objeto manipulado reacciona a fuerzas de apriete. Con dedos rígidos de plástico impreso, la tolerancia admisible entre soltar la pieza por falta de apoyo y aplastarla ronda una décima de milímetro, mientras que un solo micropaso de un servomotor comercial desplaza la mordaza cerca de medio milímetro: no existe ninguna orden digital que caiga dentro de la ventana útil. La solución es dotar al mecanismo de deformabilidad elástica en serie (compliance con resorte o flexión), multiplicando el margen disponible. Calibra esta rigidez en el simulador de pinzas antes de imprimir las piezas.
¿Por qué el brazo robótico deja caer el objeto cuando inicia el movimiento?
Porque se dimensionó la fuerza de prensión considerando únicamente el peso estático, ignorando las fuerzas de inercia dinámicas. La fuerza normal exigida viene dada por m(g + a)·SF/(μ·n), donde la aceleración lineal del brazo puede superar con facilidad a la gravedad. Un agarre suficiente para retener una masa de 58 g en reposo con 1.63 N requerirá 1.93 N al elevar en 0.9 s y 2.59 N en un movimiento ágil de 0.35 s; al soltarse a los 40 ms de arrancar, parece un fallo del actuador cuando es una limitación de cálculo mecánico. Limita las aceleraciones mediante perfiles trapezoidales o incrementa la fuerza de apriete.
¿Cómo confirma el robot si la pinza ha atrapado efectivamente la pieza?
Mediante un microinterruptor de palanca ubicado en la cara interna de una de las mordazas, conectado a un pin digital con resistencia pull-up. Es una solución de bajo coste que ofrece una respuesta lógica directa. Debe situarse en la sección deformable del dedo para conmutar a una fuerza repetible, filtrarse contra rebotes por software (tres lecturas consecutivas) y muestrearse tras un breve reposo (dwell) de 300–400 ms para evitar las oscilaciones mecánicas del impacto inicial. La medición de corriente del servo también es posible pero varía con el desgaste y la caída de tensión de la batería.
¿Es imprescindible implementar cinemática inversa (IK)?
No de forma estricta: es factible memorizar posiciones fijas ajustando manualmente los ángulos articulares si la bandeja de origen y los contenedores de destino son siempre idénticos. Sin embargo, la cinemática inversa resulta obligatoria cuando se precisan aproximaciones y retiradas en línea recta vertical. Descender en trayectoria curva golpea y desplaza lateralmente los objetos contiguos antes de agarrarlos, por lo que casi cualquier montaje práctico exige trayectorias cartesianas lineales calculadas mediante cinemática inversa.
¿Cuántos servomotores se necesitan y cuánta potencia eléctrica demandan?
Cinco actuadores: base, hombro, codo, muñeca y prensor (pinza). Constituyen más canales PWM de los que una placa Arduino Uno puede generar con precisión estable mediante temporizadores internos, por lo que se recomienda un módulo PCA9685 por bus I²C. En cuanto a potencia, cinco servos moviéndose simultáneamente generan picos de varios amperios; el regulador lineal integrado de 5 V de Arduino entrará en caída de tensión (brownout) reseteando el microcontrolador. Alimenta los actuadores mediante una fuente independiente con masa común y condensadores de filtro.
¿Qué criterio define que el proyecto está completado satisfactoriamente?
Completar cincuenta ciclos consecutivos desatendidos con registro automático de fallos e historial de estados. Es una métrica mucho más rigurosa que registrar una grabación aislada de un único agarre afortunado, ya que obliga a perfeccionar la etapa de verificación de carga, la rutina de reintento controlado y la estabilidad eléctrica de la fuente. Lograr un rendimiento superior al 95% garantiza que el robot opera como un sistema productivo fiable.