
La NUC es la computadora del robot. Recibe las órdenes del operador, lee los sensores y reparte el trabajo entre las placas embebidas que mueven los motores.
Sinopsis
Sección titulada «Sinopsis»Una Intel NUC i7 que viaja a bordo del robot: pese al nombre de la sección, no hay ningún servidor externo. Sobre ella corre un único proceso en Python 3.12 con ZeroMQ, sin ROS. Dejar fuera ROS fue una decisión deliberada, registrada en ADR-0001.
Ese proceso hace dos trabajos, cada uno documentado en su página:
- Middleware ZMQ: los cuatro canales con el visor y los dos puentes serie hacia las placas.
- Percepción: el grid y las paredes del LiDAR, y el video y la visión de la RealSense.
Cómo funciona
Sección titulada «Cómo funciona»La NUC procesa solo lo que el modo activo requiere —visión YOLO, grid de LiDAR o pipeline de paredes—, de modo que un modo inactivo no consume ni CPU ni red.
Tampoco reenvía los comandos tal cual: los traduce. Un drive_cmd con
velocidades v/w del modelo uniciclo se convierte en consignas por motor
antes de salir por COM4, y un manip_cmd en grados se convierte en la trama
ASCII POSE que entiende el Controlador
CL57T. El control en
tiempo real —pasos, rampas, PWM— se queda en las placas.
Conexiones
Sección titulada «Conexiones»Todo lo que entra y sale de la NUC. A la izquierda, lo que le llega: las órdenes del operador y lo que miden los sensores. A la derecha, las placas a las que manda. Las puntas de cada línea señalan hacia dónde viaja la información, y lo que viaja se lee debajo con la misma flecha.
NUCIntel i7 · Python 3.12
Meta Quest 3interfaz de usuario- ZMQ por WiFiMeta Quest 3 → NUC: 5002 comandosNUC → Meta Quest 3: 5555 video · 5001 estado · 5007 paredes
RealSense D435icámara RGB-D- USB 3RealSense D435i → NUC: RGB 640 × 480 · profundidad
RPLiDAR C1LiDAR 2D- COM3 · 460 800 baudRPLiDAR C1 → NUC: barridos 2D
Conjunto I²CPuente H ×2 y CL57T- USB-CDC · COM4NUC → Conjunto I²C: tracción · POSEConjunto I²C → NUC: estado
Controlador del gripperESP32-C3- USB-CDC · COM5NUC → Controlador del gripper: m <mm>Controlador del gripper → NUC: GRIPPER_STATE
Por COM4 la NUC habla solo con el Puente H maestro, que reenvía por I²C al Puente H esclavo y al controlador CL57T: es el Conjunto I²C. El gripper queda fuera de ese bus, con su propio USB.
Software
Sección titulada «Software»Archivos
Archivo
Coordinador de la NUC — nuc_master_code.pyCómo se ejecuta
Sección titulada «Cómo se ejecuta»El coordinador es un único proceso de Python que abre los cuatro puertos ZeroMQ, conecta los sensores y mantiene los dos puentes serie. No hay orquestador ni servicio: se lanza a mano.
| Paquete | Para qué | Nota |
|---|---|---|
| pyzmq | Los cuatro canales ZeroMQ | Núcleo del middleware |
| opencv-python | Compresión JPEG y morfología del pipeline de paredes | Se importa como cv2 |
| numpy | Grids, máscaras y nubes de puntos | — |
| pyrealsense2 | RealSense D435i | Requiere el SDK de Intel instalado |
| ultralytics | YOLO en los modos pose y segmentación | Descarga los pesos la primera vez |
| pyserial | Puentes COM4 y COM5 | Import opcional: sin él, el arranque no falla |
| rplidarc1 | RPLiDAR C1 | Con respaldo a un módulo scanner local |
El código tolera que falten pyserial y el módulo del LiDAR: los envuelve en
try/except y arranca igual, sin ese periférico. Eso permite desarrollar
la parte de percepción o de red sin el robot conectado. Sin la RealSense y
el RPLiDAR, el proceso arranca, pero se queda sin percepción.
Puertos fijos
Sección titulada «Puertos fijos»Los puertos serie están fijados en el código (COM4, COM5, COM3),
no son configurables por argumento ni por variable de entorno. En otra
máquina hay que editarlos, igual que los puertos ZeroMQ: 5555, 5001,
5002 y 5007.
Página anterior
VerificaciónPágina siguiente
Middleware ZMQ