Usar cuando un sensor ToF multizona VL53L7CX (o el VL53L5CX hermano) "no anda" o hay que leerlo/configurarlo/calibrarlo/usarlo para posicionar el robot de competencia (Teensy/Arduino, I2C) — distancias raras, loop lento por los ToF, el yaw del BNO se congela cuando los ToF rangean, zonas con status inválido, status 0 en TODAS las zonas, el boot tarda muchísimo, o hay que trilaterar / seguir pared con la matriz de distancias. Cubre resolución 4x4/8x8, modo continuo vs autónomo, frecuencia de ranging, filtrado por target_status, recorte de payload (VL53L7CX_DISABLE_*), coexistencia con el BNO055 en el bus, carga del firmware (~84 KB), calibración de xtalk/offset (cover glass), y posicionamiento por paredes. Triggers - "VL53L7CX / VL53L5CX", "ToF multizona / matriz de distancias", "4x4 / 8x8 / zonas / target_status", "el loop cae a 6 Hz por los ToF", "el yaw del BNO se congela con los ToF", "status 0 en todas las zonas", "el ToF tarda en bootear / carga firmware", "modo continuo vs autónomo", "calibrar xtalk / c
Usar cuando hay que entender, derivar, escribir o DEPURAR la cinemática de un robot omnidireccional de 3 ruedas a 120° — la matriz inversa (vx,vy,ω → 3 ruedas), las convenciones de signo/ejes, el término de giro ω·R, la saturación, o por qué el robot "da círculos en vez de trasladar", "traslada al revés", o "todo PID de rumbo amplifica el error en vez de corregirlo". Es la TEORÍA/matemática del omni-3; remite a la planta MEDIDA y al lazo para tuning. Triggers - "cinemática omni / inverse kinematics", "3 ruedas a 120°", "la matriz de las ruedas", "WHEEL_ANGLES / ángulos de rueda", "descomponer vx/vy/ω", "el robot da círculos / no traslada", "traslada para el lado equivocado", "el giro sale invertido / OMEGA_SIGN", "ω·R / término de rotación", "saturar las ruedas / clamp por rueda vs escalar", "convención +X/+Y, CW/CCW del robot", "convertir velocidad de rueda a PWM". NO es para tunear ganancias del lazo (control-pid-zona-muerta), NO es la planta medida —pisos PWM, deriva, regímenes— (dinamica-omni-3-ruedas), N
Use when calibrating or troubleshooting OpenMV cameras (H7 / H7 Plus) for the soccer robot — LAB color thresholds for orange golf ball (passive IR ball 2026) and cyan/magenta goals, exposure lock under varying field lighting, FOV and mount tuning, multi-camera consistency, frame rate vs accuracy trade-offs. Critical for Incheon where lighting differs from the IITA Salta lab.
Usar cuando el HEADING de un IMU "no anda" en firmware de robótica de competencia — clavado en 0.0, congelado, derivando, saltando, o el diag lee bien pero el firmware no — o al configurar/calibrar/recuperar/diagnosticar uno o dos BNO055 sobre I2C (Teensy/Arduino) con EMI de motores. Cubre modos (IMUPLUS vs NDOF), calibración y guardar/restaurar offsets (el chip NO tiene EEPROM), árbol de diagnóstico, recuperación de fallas y prácticas de competencia. Triggers - "heading no anda / clavado en 0.0", "el IMU se congela / freeze / yaw congelado", "el rumbo deriva / drift", "el heading salta", "el diag anda pero el firmware no", "calibrar BNO055", "guardar/restaurar calibración del IMU", "BNO055", "IMU", "Euler / quaternion", "IMUPLUS / NDOF", "CALIB_STAT / SYS_STATUS / clock stretching", "dos BNO en el mismo bus / 0x28 / 0x29", "EMI de motores / magnetómetro", "Teensy + IMU". NO es para tunear el lazo de heading-hold (control-pid-zona-muerta) ni para fusionar la pose XY (fusion-pose-odometria-landmarks).
Use when a PID/feedback loop oscillates violently, loses to a disturbance, or the actuator can't do small corrections (deadzone, PWM floors, bang-bang, all-or-nothing motors). Symptoms - robot spins on its axis, fishtails/serpentea, correction overshoots and re-corrects opposite, raising or lowering gains both fail, "pierde la pulseada" against parasitic drift. Covers deadzone compensation, PFM/duty-cycling, PI as automatic feedforward, anti-windup, bench tuning titration.
Use when changing ANY motion control on the CENTRAL board (strafe, rotation, heading hold, PID gains, speeds) of the IITA omni-3 robots - or when the robot drifts, rotates parasitically while strafing, moves "aplastado" in diagonal, or behaves differently below/above certain speeds. Contains the measured plant model - wheel geometry, PWM floors, FLOOR_SCALE behavior, parasitic yaw, physical minimums, validated speed regimes from bench data.
Use when implementing/EXECUTING a closed-loop controller on an MCU and the question is about the REAL-TIME and NUMERICAL realization, not the gains — sample-rate choice, continuous→discrete conversion, fixed-point vs float, loop latency / sensor-to-actuator delay, jitter's effect on a loop, multi-rate loops, discrete anti-windup & derivative filtering. Triggers - "frecuencia de muestreo / sample rate", "discretizar el PID / continuo a discreto", "Tustin / Euler / backward difference", "punto fijo / fixed-point / Q15 / Q8", "el dt varía / jitter en el lazo", "latencia sensor a actuador", "lazos multi-rate / lazo rápido y lento", "PID en C para microcontrolador", "el control tiembla por timing". For automotive/aero CONTROL examples see sistemas-criticos-tolerancia-fallas. NOT for TUNING gains on the quantized actuator (control-pid-zona-muerta), NOT for the omni plant model (dinamica-omni-3-ruedas), NOT for the general timing lens (tiempo-real-determinismo).
Use when designing or reasoning about an RTOS / multitasking firmware — tasks, priorities, preemptive scheduling, schedulability (RMS/EDF), priority inversion, mutex/semaphore/queue choice, ISR-to-task handoff, stack sizing, or deciding whether a project needs an RTOS at all. Triggers - "RTOS", "FreeRTOS / Zephyr / TeensyThreads / Zircon RTOS", "tareas / tasks", "prioridades", "scheduler / planificador", "preempción", "inversión de prioridad / priority inversion", "RMS / EDF / planificabilidad", "mutex / semáforo / cola / queue", "context switch", "stack overflow de una tarea", "ISR a tarea", "¿necesito un RTOS?". Covers scheduling theory + practical RTOS patterns and classic bugs. NOT for the general real-time/timing lens (tiempo-real-determinismo), NOT for control-loop discretization (control-embebido-tiempo-real), NOT for fault tolerance/redundancy (sistemas-criticos-tolerancia-fallas).