Experiencia · Sistemas para robots
Software para robots: la capa que decide el movimiento, el módulo de visión y el de audición. Hoy tenemos verificación offline y simulación — no tenemos nada que controle un motor real.
Escribimos cinemática, verificación de trayectoria y simulación física reproducible, con gates que bloquean cuando falta la prueba. Para visión tenemos un prototipo con cámara fija, no en un robot. Para audio en el robot no tenemos nada construido, y la página lo dice en lugar de tomar prestadas pruebas de la telefonía. No trabajamos con ROS.
Oferta, con condicionesAm rulat azi tot ce se poate rula. Stratul de control există și e serios, dar e offline: un modul propriu de cinematică pentru un braț cu șase axe, care a rezolvat 8.400 din 8.400 de puncte de traseu, și un validator de fizică pe MuJoCo 3.10.0 cu 34 de teste trecute, plus 14 teste pe partea de vizualizare. Amândouă declară în propria sursă că nu au transport către hardware și nu pot comanda un robot real. La vedere avem un prototip propriu — detecție și urmărire de persoane pe cameră IP fixă — cu un singur comit și cu directorul de teste gol. La audio pe robot avem zero: tot ce e pe disc e voce de call-center sau bibliotecă terță de telefonie, iar singura lucrare acustică proprie s-a încheiat cu un rezultat negativ, scris în aplicație. ROS: zero instalat, zero scris. Regula cere minimum două implementări proprii pentru „am făcut”; pe control le am, dar niciuna nu atinge hardware, iar celelalte două straturi ale serviciului sunt sub prag. Deci: ofertă cu condiții, cu granițele desenate.
El software de un robot tiene tres capas que se rompen de forma distinta: lo que ve y oye, lo que decide, y lo que envía a los motores. En las dos primeras tenemos trabajos propios con pruebas que se ejecutan. En la tercera — el puente hacia hardware — no tenemos nada, y ese es el límite del servicio, no un detalle de implementación. Dos de nuestros códigos lo dicen en su propio encabezado, en inglés, precisamente para que no puedan leerse mal: el módulo de cinemática no tiene transporte hacia hardware y no puede controlar un robot real.
Lo que existe en la parte de movimiento es verificación antes del movimiento. Un módulo propio calcula la cinemática directa, el jacobiano y la cinemática inversa para un brazo de seis ejes, con una reserva impuesta frente a los límites de cada eje, y se usó para verificar una trayectoria completa: 8.400 puntos solicitados, 8.400 resueltos, con la velocidad máxima por eje quedando por debajo del 8% del límite de catálogo. Por separado, un validador de física se ejecuta en MuJoCo 3.10.0 en procesador, con paso de cálculo de un milisegundo, en seis escenarios, cada uno dos veces, con la misma semilla — y las dos ejecuciones dan huellas idénticas. El determinismo no es una afirmación, es una comparación de sumas de control.
Lo que existe en la parte de visión es menos, y es honesto decir cuánto. Un prototipo propio hace detección y seguimiento de personas en flujos de cámara IP, con un pequeño detector de la familia YOLO, un rastreador multiobjeto, estimación de postura para cinco estados y control de giro-inclinación-zoom de la cámara. Tiene un solo commit y el directorio de pruebas está vacío. Y la diferencia entre esto y la visión de un robot es real, no formal: la cámara de un robot se mueve con él, la escena está cerca, la exposición cambia en cada paso y el presupuesto de latencia es otro, porque la imagen tiene que llegar a una decisión de movimiento, no a una pantalla. No tenemos cámara de profundidad, no tenemos calibración de cámara, no tenemos odometría visual.
En la parte de audio para robots no tenemos nada construido, y no vamos a tomar prestadas pruebas de otro lado. Tenemos trabajos reales de voz para telefonía y para asistentes conversacionales, pero un micrófono en un robot tiene otros problemas: el ruido propio de la máquina, ventiladores y servomotores que arrancan justo cuando el robot se mueve, la dirección desde la que llega la voz, el eco en la habitación y la distancia variable. El único trabajo acústico propio que tenemos terminó con un resultado negativo, escrito en la aplicación, y lo publicamos como tal — porque un resultado negativo medido es más útil que una promesa.