Saltar al contenido principal

Gestión de almacén por voz en hardware perimetral: construcción, despliegue y resultados medidos

Aviso de uso

Esto es una ayuda para el operador, no un libro de inventario certificado. La REST API no tiene cola sin conexión: las solicitudes enviadas durante una caída de red o servicio fallan y no se reejecutan después de la recuperación.

Qué hace esta solución​

Un operador en el muelle de recepción dice "registrar 10 cajas de manzanas". El SenseCAP Watcher en la estantería lo escucha y se escribe un registro de entrada de stock en la base de datos del almacén en una pasarela reComputer en el mismo edificio. Pregunta "cuántas manzanas quedan" y la respuesta se devuelve por voz. Sin teclear, sin menús, las manos permanecen en la mercancía.

Diseñado para ubicaciones donde las transacciones ocurren lejos de un teclado: muelles de recepción, pasillos de estanterías, cabinas de montacargas y pequeños almacenes que nunca adoptaron un WMS porque la formación costaba más de lo que ahorraba.

El habla y la base de datos se conectan mediante MCP (Model Context Protocol). El sistema de almacén publica cada operación de inventario como una herramienta MCP, y el agente de voz en el Watcher se conecta a ese endpoint como un cliente MCP. Añadir una acción de voz significa añadir una herramienta, sin reentrenar el modelo de voz; integrar un ERP/WMS existente significa mapear su interfaz de datos al mismo conjunto de herramientas.

Un operador registra una transacción de almacén hablando con un SenseCAP Watcher montado en la estantería
  • Watcher funciona una vez montado

    El SenseCAP Watcher incorpora el firmware del agente de voz y de reconocimiento facial. Flashea el dispositivo, móntalo en el puesto y los operadores podrán registrar stock por voz con verificación de identidad.

  • Los datos se quedan en el sitio

    La base de datos del almacén se ejecuta en una pasarela reComputer en el sitio. El Nivel 3 también mantiene el reconocimiento, el LLM y la síntesis en las instalaciones y no llama a ningún servicio externo después del despliegue.

  • Código abierto, se conecta a tu ERP/WMS

    El sistema de almacén es de código abierto. Conectar un sistema existente significa mapear su interfaz de datos al mismo conjunto de herramientas MCP, del orden de unas pocas docenas de líneas de código de mapeo.

  • Nuevos comandos sin reentrenar

    Añadir una acción de voz significa registrar una herramienta MCP. El firmware del Watcher permanece sin cambios.

Qué muestra el panel​

Tras una locución, el resultado aparece en el panel de la pasarela. La página de inventario lista la cantidad actual y el último movimiento de cada artículo:

Panel de almacén: stock actual por artículo, último movimiento y estado

La página de transacciones lista cada entrada y salida de stock con número de lote, operador y origen (voz o REST):

Historial de transacciones: número de lote, cantidad, operador y origen por registro

La lista de operadores se mantiene en la página de usuarios, y la verificación facial la utiliza como referencia:

Página de usuarios: la lista de operadores y permisos que la verificación facial utiliza como referencia

Qué hardware necesitas​

Tres roles de dispositivo. Cuáles compres depende de dónde se permita ejecutar los datos y la IA de voz.

① Terminal de voz: SenseCAP Watcher. Necesario en todos los niveles, uno por puesto de trabajo. Tiene dos procesadores: el ESP32 ejecuta el agente de voz Xiaozhi (palabra de activación, grabación, streaming, cliente MCP), y el Himax WE2 ejecuta el firmware de reconocimiento facial para la verificación del operador.

② Pasarela perimetral. Ejecuta el sistema de almacén y, en los niveles autoalojados, también el endpoint MCP. Determina si el reconocimiento facial puede trasladarse a la pasarela y cuántos puestos puede atender un solo host.

③ Host de IA en las instalaciones. Solo necesario cuando el reconocimiento, el LLM y la síntesis deben permanecer todos en las instalaciones.

ModeloRol en este diseñoCuándo elegirlo
SenseCAP WatcherSenseCAP WatcherTerminal de voz, cliente MCP, reconocimiento facial en el dispositivoSiempre, uno por puesto
reComputer R1125-10reComputer R1125-10Pasarela perimetral que ejecuta el sistema de almacénLos datos de inventario se quedan en el sitio, hasta 20 operadores, reconocimiento facial en el Watcher
reComputer Industrial R2135-12reComputer Industrial R2135-12Pasarela perimetral con un acelerador Hailo-8Más de 20 operadores, o se requiere detección de vida
reComputer J4012reComputer J4012Una sola caja que ejecuta el sistema de almacén, el reconocimiento facial y un servicio de voz autoalojado2–3 puestos comparten un host
reComputer Robotics J5011reComputer Robotics J5011LLM y voz en las instalaciones, sin llamadas a servicios externosLa instalación debe permanecer sin conexión

El Watcher almacena como máximo 20 plantillas faciales en el dispositivo. Más allá de 20 operadores, el reconocimiento tiene que trasladarse a la pasarela: hasta 20, elige el R1125; por encima de 20, elige el R2135 con Hailo-8.

Otros requisitos previos: el Watcher solo se conecta a Wi‑Fi de 2,4 GHz (un SSID solo de 5 GHz no aparece en el escaneo de aprovisionamiento), y la pasarela debe estar en la misma LAN. El prechequeo de despliegue del Nivel 3 verifica el runtime de contenedores de NVIDIA y alrededor de 10 GB de espacio libre en disco (modelos de voz más archivos del motor LLM).

Límites de selección negativa​

  • Necesidades de LLM totalmente sin conexión: Si se opera en un almacén clasificado o aislado por aire que requiere interacción con LLM sin conexión, evita los niveles dependientes de la nube; selecciona el Nivel 3 con reComputer J4012 (Orin NX 16GB).
  • Cola en caso de caída de red: La REST API del almacén actualmente carece de una cola sin conexión del lado del servidor; los clientes deben almacenar en búfer las transacciones localmente si operan sobre una red inalámbrica intermitente.

Cómo desplegar in situ​

Tres pasos: montar y flashear el Watcher, iniciar los contenedores en la pasarela, conectar la ruta de voz.

Paso 1: montar el Watcher​

Montarlo en el puesto de trabajo

Monta el Watcher en el muelle de recepción, el pasillo de estanterías o la cabina de la carretilla elevadora, donde los operarios realmente registran la entrada y salida de existencias. Si se monta en la oficina, obliga a los operarios a recordar las cantidades y caminar hasta allí para introducirlas.

El flasheo se realiza por USB-C; el dispositivo se enumera como un puente WCH USB-UART (0x1a86:0x55d2). Dos imágenes de firmware, una por procesador: el agente de voz Xiaozhi va en el ESP32, el firmware de reconocimiento facial en el Himax WE2.

Paso 2: levantar la pasarela​

El sistema de almacén es un servicio Docker. Los pasos de despliegue difieren por nivel; elige una configuración en la página de diseño de referencia y descarga el paquete de aplicación correspondiente.


El despliegue puede ejecutarse por SSH hacia la pasarela o directamente en la pasarela. El inventario existente puede importarse en el primer arranque con la plantilla de Excel suministrada.

Tras el despliegue, el panel está en http://GATEWAY_IP:2125, y la comprobación de estado del contenedor es GET /health en el mismo puerto.

Paso 3: conectar la ruta de voz​

Trial, Tier 1 y Tier 2A usan una URL de endpoint MCP emitida por SenseCraft. Los niveles 2B y 3 autoalojan el endpoint MCP en el puerto 18004 y el servidor de voz en 18000 (consola de administración en 18003). El nivel 3 añade EdgeLLM en 8000 y OpenVoiceStream en 8621, y no llama a ningún servicio externo después del despliegue.

Interfaces disponibles​

Dos superficies de integración:

Endpoint MCP (puerto 18004): para el lado de voz. Todo lo que el agente puede hacer es una herramienta en este endpoint. Ampliar el conjunto de comandos significa registrar otra herramienta; el firmware del Watcher permanece sin cambios. Integrar un ERP/WMS existente significa implementar la interfaz de datos de tu sistema contra las mismas herramientas, del orden de unas pocas docenas de líneas de código de mapeo. Las variaciones en la formulación se emparejan de forma difusa con el comando registrado más cercano en lugar de ser rechazadas.

REST API (puerto 2125): para otros sistemas. La lista de inventario, el historial de transacciones y el estado del agente están disponibles sobre HTTP.

InterfazEndpoint / puertoCarga útil
Panel + REST APIhttp://GATEWAY_IP:2125Lista de inventario, historial de transacciones, estado de conexión del agente
Comprobación de estadohttp://GATEWAY_IP:2125/health200 una vez que el servicio de almacén está listo
Endpoint MCP18004Operaciones de inventario publicadas como herramientas MCP
Base de datos de inventarioSQLite en /data/warehouse.db en el volumen warehouse_dataMontar o volcar para un trabajo BI/ERP externo
Servidor de vozWebSocket 18000, consola de administración 18003Flujo de audio del Watcher (niveles 2B y 3)
IA local8000 EdgeLLM (compatible con OpenAI), 8621 OpenVoiceStreamCompletados de chat; reconocimiento, síntesis y huella de voz (nivel 3)

El acceso está delimitado por rol de clave de API y por inquilino. Una clave VIEW en un endpoint de escritura devuelve 403; las lecturas y escrituras entre inquilinos devuelven ambas 403. Ambas se midieron; consulta "Rendimiento y datos medidos".

Rendimiento y datos medidos​


Tiempos de ejecución y parámetros clave​

DespliegueLLMTTS / ASRRed
Nube SenseCraftAlojado por SeeedAlojado por SeeedRequiere Internet
Tu propia APICualquier endpoint compatible con OpenAI (p. ej. DeepSeek)OpenAI · Azure Speech · Volcano Engine · Alibaba Cloud · Edge TTSRequiere Internet
Jetson localEdgeLLM: Qwen3.5-4B, perfil qwen35-4b-gdn-mtp, motor 8kOpenVoiceStream (reconocimiento + síntesis + huella de voz)Solo LAN

Las imágenes locales están construidas para JetPack 6.2 / TensorRT 10.3.

  • BUSINESS_RATE_LIMIT: límite de velocidad para stock-out y otros endpoints de negocio, por defecto 600 solicitudes/minuto, contado por identidad autenticada (clave de API / sesión) y por IP de origen solo cuando no hay identidad disponible. Los límites anti-enumeración en registro, recuperación de contraseña y verificación de dispositivo cuentan por IP.
  • Número de lote batch_no: formato YYYYMMDD-NNN, asignado de forma atómica, por lo que las escrituras de stock-in concurrentes se serializan.

Mediciones de la REST API de almacén​

Dispositivo: reComputer R2000 serie (arm64) ejecutando el contenedor de almacén. Condiciones: 60 s por nivel, 1 almacén, 50 materiales sembrados, backend SQLite; las solicitudes viajan sobre un enlace WAN Tailscale.

OperaciónNivelResultado
GET /api/materials/listconcurrencia 10p95 404 ms, p99 2.7 s, 0% errores
GET /api/materials/listconcurrencia 20p95 824 ms, p99 5.3 s, 0% errores
GET /api/materials/listconcurrencia 50p95 5.5 s, p99 8.7 s, 0% errores
POST /api/materials/stock-inconcurrencia 5 / 10 / 200% errores en los tres niveles; 1481 lotes creados, 0 números de lote duplicados; p95 634 ms – 4.96 s
POST /api/materials/stock-outconcurrencia 10 / 20 / 50, dos claves de API compartiendo una IP de salida0 HTTP 429 dentro del valor por defecto de 600 solicitudes/minuto; unas 5–6 solicitudes/s por identidad
Interrupción del serviciounos 10 req/s de tráfico de consulta, 34 s de interrupción por un reinicio de contenedor100% de las solicitudes fallan durante la interrupción, sin colas ni reintentos; recuperación completa en unos 1 s, sin acumulación, sin datos sucios
Aislamiento por rol e inquilino4 sondeos de un solo disparo4/4 como se esperaba: escritura con clave VIEW 403, lectura 200; escritura entre inquilinos 403, lectura 403

Reproducir: runs/2026-09-05-load/, evaluation/runs/2026-09-06-a2-retest/results.md

Rendimiento del LLM local​

DispositivoModeloRendimientoCondiciones
reComputer Robotics J5011EdgeLLM Qwen3.5-4Bunos 16 tokens/sCifra de referencia, sin registro de ejecución adjunto

Degradación conocida​

  • La latencia de consulta de inventario se degrada a partir de concurrencia 20. El p95 sube de 404 ms en concurrencia 10 a 824 ms en 20 y 5.5 s en 50, lo cual es demasiado lento para uso interactivo.
  • La REST API no tiene cola offline. Las solicitudes enviadas durante una interrupción de red o servicio fallan y no se reintentan; la reconexión y el backoff solo cubren el canal WebSocket de voz MCP. Mitigaciones: mantener disponible la red de la pasarela (priorizar cableado, alimentación por SAI, servicio y clientes en la misma LAN) para que la ventana de indisponibilidad se reduzca al tiempo de reinicio del dispositivo; o añadir una cola de escritura en el lado del cliente que reproduzca en orden tras reconectar y desduplique por número de lote (la cola del lado del cliente no está implementada).

Próximos pasos​

  • Ejecutar las pruebas de carga de la REST API de almacén en la pasarela reComputer R1125-10.

Fuentes de datos y recursos​

  • Cifras de pruebas de carga, condiciones de prueba y límites conocidos: upstream sensecraft-solutions@smart_warehouse description.md, "Measured Boundaries" y "Known Limitations".
  • Rendimiento del LLM local (unos 16 tokens/s, reComputer Robotics J5011): la sección "Preset: Tier 3 · Premium" del guide.md upstream.
  • Roles de dispositivos, composición de niveles y requisitos de acelerador: intro.device_catalog e intro.presets en el solution.yaml upstream.
  • Código fuente del sistema de almacén: github.com/suharvest/warehouse_system.
  • Imágenes de producto: catálogo de productos de Seeed Studio (media-cdn.seeedstudio.com).
  • Imágenes de escenas: recursos de soluciones de Seeed Studio (files.seeedstudio.com).
Loading Comments...