El carrito, grupo por grupo
Es el modelo del carrito, el mismo que Lumina abre con «enséñanos quién eres». Al bajar, cada grupo se separa en el orden del riel.
Percepción robótica que inspecciona y cuenta inventario, integrada a una línea de manufactura real donde Visión de línea verifica cada pieza y un pistón expulsa la que no pasa — de principio a fin, un solo sistema.
Es el modelo del carrito, el mismo que Lumina abre con «enséñanos quién eres». Al bajar, cada grupo se separa en el orden del riel.
Panel de MDF de 3 mm, con la ventana por donde sale el fixture, y la cámara Logitech 1080p montada arriba al frente.
Jetson Orin Nano, ESP32 en la placa perforada, elevador de 18 V, reductor, relé y el ramal de cables. La percepción de la demo sigue corriendo en la computadora, no a bordo del carrito.
NEMA del empujador, cremallera, uña con el servo MG90S, y la torre con husillos, plataforma y finales de carrera.
12 V y 24 Ah, en su cuna detrás del marco. De aquí salen el elevador y la rama auxiliar.
Perfil 3030, postes y rodajas, y los dos motores M0601. La estructura se queda en su sitio y la tracción se separa. La navegación por waypoints no está integrada.
Pipeline de percepción en vivo: YOLO detecta y cuenta, lectura de código de barras/QR identifica el producto, ArUco verifica la ubicación (Decisiones 1 y 2).
Presiona "Iniciar cámara" para activar la transmisión en vivo.
Estableciendo conexión…
Esquinas de mira + borde sólido = módulo activo, con interfaz propia. Borde punteado = pendiente de hardware, sin interfaz todavía.
Detección YOLO + lectura de código de barras/QR sobre el flujo de
cámara (Decisión 1). edge/perception/.
Separación Observations (crudo) vs. Declared Inventory (declarado)
(Decisión 5). edge/inventory_engine/.
API REST de solo lectura sobre Declared Inventory, más bitácora de
inspecciones (Decisión 7, Opción B). backend/ +
dashboard/.
Declared Inventory: consultando…
Waypoints con odometría por encoders + detección reactiva de obstáculos (Decisión 3). Depende de la plataforma móvil, hardware que el equipo todavía no tiene integrado.
La cámara clasifica la pieza. PASS si el nombre está en la lista (computadora1, 2 o 3); si no, FAIL. El pistón, en GPIO BCM 8, solo pulsa en FAIL. El avance de la banda es un pulso a la entrada I4 del LOGO, por GPIO BCM 9.
La banda con fixtures posiciona la pieza. Visión de línea dice PASS o FAIL. FAIL dispara el pistón y, cuando regresa, pide el avance. PASS pide el avance sin pistón. El LOGO, no este programa, apaga el sensor infrarrojo unos segundos cuando llega ese pulso.
El LOGO mueve la banda. El programa le pide el avance con un pulso en I4.
PASS si la clase está en la lista. Si el nombre no está, es FAIL.
Solo en FAIL: espera, pulso y regreso, por GPIO BCM 8. En PASS no se mueve.
El carrito ya está modelado. Todavía no recoge la pieza de la línea.
Presiona "Iniciar visión de línea" para activar la transmisión.
Estableciendo conexión…
Comparte la cámara de esta máquina con la sección Percepción — no actives los dos streams a la vez.
8 decisiones cerradas, ADR completo en docs/architecture/decisions/.
| № | Decisión | Resolución | ADR |
|---|---|---|---|
| 1 | Percepción | Híbrido: detección/conteo por YOLO + identificación por código de barras/QR como MVP. Clasificación visual pura de SKU diferida. | ADR 0001 |
| 2 | Localización | Marcadores ArUco para verificación de posición — no es un sistema de navegación. | ADR 0002 |
| 3 | Navegación | Waypoints con odometría por encoders + detección reactiva de obstáculos (no "evasión inteligente"). | ADR 0003 |
| 4 | Hardware de cómputo | NVIDIA Jetson Orin Nano Super 8GB (principal) / Raspberry Pi 5 + AI HAT+ (contingencia). Control de bajo nivel: ESP32 o STM32. | ADR 0004 |
| 5 | Esquema de datos |
Observations (crudo) vs. Declared Inventory (declarado); estados
PARTIAL / COMPLETE /
INVALID.
|
ADR 0005 |
| 6 | Comunicaciones | MQTT para telemetría, REST para el dashboard. La parada de seguridad es independiente de la conectividad de red. | ADR 0006 |
| 7 | Alcance del dashboard | Opción B: Inventario Declarado + Historial y Trazabilidad. Monitoreo en vivo (Opción C) queda como evolución obligatoria posterior al MVP, no como parte de él. | ADR 0007 |
| 8 | Línea de manufactura | Banda + fixtures → visión → pistón (scrap, solo si falla) → Aether Inventory, con un solo punto de decisión y registro pasivo vía MQTT. Sin brazos robóticos ni Learning from Demonstration. Supersede a la resolución original (KUKA + UR5). | ADR 0010 (supersede ADR 0008) |