Inicio/ trabajo/IJS · Control del robot KUKA
Investigación · 2021 · colaboración con IJS

IJS · Control del robot KUKA

Una plataforma de investigación Angular para el Institut Jožef Stefan — una interfaz de control y monitorización basada en navegador para un brazo robótico industrial KUKA, construida sobre una API REST DataProxy diseñada a medida.

Rol Developer (colaboración de investigación)
Año 2021
Institución Institut Jožef Stefan, Liubliana
Dominio Robótica · Investigación · Automatización
Stack Angular 12 · TypeScript · REST · Swagger
Deploy prd.dp.ijs.si (red interna de IJS + OpenVPN)
Servicios API
4 / 4
ADM · PRG · DMS · AUTH
Modos de conexión
3
Ethernet · Serial · Socket
Abstracción de programa
3 niveles
Programa → Rutina → Sentencia
Integración de simulación
KukaSim
previsualización antes de ejecutar

Resumen

Este no fue un proyecto típico con un cliente — fue una colaboración de investigación. El Institut Jožef Stefan es la mayor y más respetada institución de investigación de Eslovenia, y su grupo de automatización y robótica necesitaba una interfaz web para controlar y monitorizar un brazo robótico industrial KUKA. Yo construí la parte frontend de ese sistema en 2021.

La plataforma se llama DataProxy — una capa REST API que se sitúa entre el navegador y el controlador del robot (KUKA KRC), expuesta en el dominio interno de IJS sobre HTTPS. El cliente TypeScript generado por Swagger se dividía limpiamente en cuatro dominios de servicio: ADM (gestión de dispositivos y telemetría de sensores), PRG (programación del robot), DMS (almacenamiento de documentos y esquemas de conexión) y AUTH (gestión de sesiones JWT). Escribí la aplicación Angular 12 sobre esa superficie.

La posición del robot se rastrea como e6pos — el tipo de coordenadas nativo de seis ejes de KUKA (X, Y, Z, A, B, C). Los programas se componen en una jerarquía de tres niveles: los Programas contienen Rutinas ordenadas, que contienen Sentencias ordenadas — instrucciones KRL individuales. Los investigadores construyen secuencias en la UI y luego exportan los archivos .src/.dat en crudo o pasan el programa por KukaSim para una simulación visual antes de la ejecución en vivo.

Arquitectura

~/ijs-kuka/architecture/system-map.svg
01 — UI DEL INVESTIGADOR (Angular 12 · TypeScript)Panelexperimentos · muestrasConstructor de programasrutinas · sentencias · KRLPanel de dispositivostelemetría · notificacionesCámarasdispositivos AXIS · zoomProyectos / DocumentosDMS · esquemas de conexiónDataProxy APIREST · HTTPS · autenticación JWT · cliente TS generado por SwaggerADM — dispositivos · telemetríaPRG — programas · rutinasDMS · AUTH03 — CONTROLADOR DEL ROBOT & SIMULACIÓNKUKA KRCcontrolador del robot · KRL runtimee6pos (X Y Z A B C)KukaSimsimulación · previsualizaciónvalidar antes de ejecución en vivoDispositivos de laboratoriosensores · cámaras · instrumentosEthernet · Serial · SocketRed de IJSOpenVPN · prd.dp.ijs.siHTTPS :844404 — BRAZO ROBÓTICO FÍSICOend-effectorbrazo industrial KUKA6-DOF · controlador KRCbucle de retroalimentación de sensoresvalores de variables de dispositivo → series temporales ApexCharts · notificaciones de umbral

Lectura del diagrama: Cinco módulos de UI (panel, constructor de programas, panel de dispositivos, cámaras, documentos) se comunican exclusivamente a través de la API REST DataProxy — un middleware autenticado con JWT que corre en la infraestructura de IJS. El servicio PRG traduce el modelo de programa de tres niveles (Programa → Rutina → Sentencia) a KRL y lo despacha bien a KukaSim para simulación, bien al controlador KUKA KRC en vivo. El servicio ADM gestiona la telemetría de sensores y las lecturas de variables de dispositivo que fluyen de vuelta al navegador como series temporales de ApexCharts. Todo el tráfico va por la red interna de IJS a través de OpenVPN + HTTPS.

La decisión de diseño más difícil fue dónde trazar el límite de la abstracción — lo bastante bajo para que el robot haga exactamente lo que el investigador pretende, lo bastante alto para que nunca tenga que leer KRL.
Davor Majc, Developer / IJS–KUKA
03 Lo que entregué · desafíos resueltos

Seis cosas entregadas,
tres difíciles resueltas.

Contribuciones clave

  • Construí el frontend en Angular 12 para que los investigadores de IJS pudieran controlar y monitorizar un brazo robótico industrial KUKA.
  • Integré un cliente TypeScript generado por Swagger (DataProxy API) en cuatro dominios de servicio: administración de dispositivos, programación del robot, gestión de documentos y autenticación.
  • Implementé un constructor estructurado de programas de robot — componiendo programas a partir de rutinas reutilizables y sentencias KRL atómicas, con descarga directa de los archivos .src/.dat.
  • Conecté el flujo de simulación de KukaSim para que los investigadores pudieran previsualizar y validar programas antes de enviarlos al brazo físico.
  • Construí vistas de gestión de dispositivos con soporte multiprotocolo (Ethernet REST, Serial, Socket) y monitorización de variables en tiempo real mediante gráficos temporales de ApexCharts.
  • Añadí un panel de cámara (tipo de dispositivo AXIS) con control de zoom, permitiendo retroalimentación visual en vivo durante los experimentos.
  • Integré un sistema de notificaciones con disparadores de umbral configurables vinculados a variables de tipos de dispositivo — proporcionando a los investigadores alertas sobre lecturas anómalas de sensores.

Desafíos resueltos

  • Cerrar la brecha entre una UI de navegador web y un controlador de robot que habla su propio modelo de ejecución — rutinas, sentencias, ejecutores — requería un modelo de dominio fiel en TypeScript.
  • La plataforma debía funcionar sobre la VPN interna de IJS (OpenVPN + entrada personalizada en hosts), añadiendo una capa de restricción de red que moldeó la arquitectura del proxy.
  • Diseñar el constructor de programas para que no programadores (investigadores, no roboticistas) pudieran componer programas KRL a partir de bloques de sentencias reutilizables sin tocar la sintaxis KRL en crudo.
04 Stack tecnológico

Qué hay bajo el capó.

AngularTypeScriptRxJSAngular MaterialApexChartsRESTSwaggerKUKA KRLKukaSimOpenVPNHTTPS
Hablemos

¿Listo para arreglar, construir
o escalar?

30 minutos, conmigo personalmente. Leo tu sistema como un archivo de logs y te digo qué haría primero. Sin presentaciones, sin embudo de ventas.

Davor Majc, fundador, Numen

Qué obtienes en la llamada
→ un diagnóstico de una página
→ 2–3 formas de solución, ordenadas por impacto
→ coste aproximado + plazo para cada una
→ sí/no — ¿soy la elección adecuada?
+386 40 828 474 · Blejska Dobrava, SI