Domov/ delo/IJS · Krmiljenje robota KUKA
Raziskave · 2021 · sodelovanje z IJS

IJS · Krmiljenje robota KUKA

Angular raziskovalna platforma za Institut Jožef Stefan — vmesnik za krmiljenje in nadzor industrijske robotske roke KUKA v brskalniku, zgrajen nad namensko zasnovanim REST DataProxy API.

Vloga Developer (raziskovalno sodelovanje)
Leto 2021
Ustanova Institut Jožef Stefan, Ljubljana
Področje Robotika · Raziskave · Avtomatizacija
Stack Angular 12 · TypeScript · REST · Swagger
Deploy prd.dp.ijs.si (interno omrežje IJS + OpenVPN)
API storitve
4 / 4
ADM · PRG · DMS · AUTH
Načini povezave
3
Ethernet · Serial · Socket
Abstrakcija programa
3-nivojska
Program → Rutina → Stavek
Integracija simulacije robota
KukaSim
predogled pred izvedbo

Pregled

To ni bil tipičen projekt s stranko — bilo je raziskovalno sodelovanje. Institut Jožef Stefan je največja in najuglednejša raziskovalna ustanova v Sloveniji, njihova skupina za avtomatizacijo in robotiko pa je potrebovala spletni vmesnik za krmiljenje in nadzor industrijske robotske roke KUKA. Frontend stran tega sistema sem zgradil leta 2021.

Platforma se imenuje DataProxy — REST API plast, ki sedi med brskalnikom in robotskim krmilnikom (KUKA KRC), izpostavljena na interni domeni IJS prek HTTPS. Swagger-generiran TypeScript odjemalec je bil čisto razdeljen na štiri storitvene domene: ADM (upravljanje naprav in telemetrija senzorjev), PRG (programiranje robota), DMS (shranjevanje dokumentov in povezovalnih shem) ter AUTH (upravljanje JWT sej). Angular 12 aplikacijo sem napisal nad to površino.

Položaj robota se sledi kot e6pos — KUKA-jev nativen šestosni koordinatni tip (X, Y, Z, A, B, C). Programi se sestavljajo v tronivojsko hierarhijo: Programi vsebujejo urejene Rutine, ki vsebujejo urejene Stavke — posamezne KRL ukaze. Raziskovalci sestavljajo zaporedja v UI, nato pa izvozijo surove .src/.dat datoteke ali pa program preusmerijo skozi KukaSim za vizualno simulacijo pred izvedbo v živo.

Arhitektura

~/ijs-kuka/architecture/system-map.svg
01 — RAZISKOVALNI UI (Angular 12 · TypeScript)Nadzorna ploščaposkusi · vzorciGraditelj programovrutine · stavki · KRLPanel napravtelemetrija · obvestilaSlike kamerAXIS naprave · zoomProjekti / DokumentiDMS · sheme povezavDataProxy APIREST · HTTPS · JWT avtentikacija · Swagger-generiran TS odjemalecADM — naprave · telemetrijaPRG — programi · rutineDMS · AUTH03 — ROBOTSKI KRMILNIK & SIMULACIJAKUKA KRCkrmilnik robota · KRL runtimee6pos (X Y Z A B C)KukaSimsimulacija · predogled programavalidacija pred izvedbo v živoLaboratorijske napravesenzorji · kamere · instrumentiEthernet · Serial · SocketOmrežje IJSOpenVPN · prd.dp.ijs.siHTTPS :844404 — FIZIČNA ROBOTSKA ROKAend-effectorindustrijska roka KUKA6-DOF · krmilnik KRCsenzorska povratna zankavrednosti spremenljivk naprav → časovni grafi ApexCharts · pragovna obvestila

Branje diagrama: Pet UI modulov (nadzorna plošča, graditelj programov, panel naprav, kamere, dokumenti) komunicira izključno skozi DataProxy REST API — vmesni sloj z JWT avtentikacijo, ki teče na infrastrukturi IJS. Storitev PRG prevede tronivojski programski model (Program → Rutina → Stavek) v KRL in ga pošlje bodisi v KukaSim za simulacijo bodisi živemu krmilniku KUKA KRC. Storitev ADM upravlja senzorsko telemetrijo in branja spremenljivk naprav, ki se vračajo navzgor v brskalnik kot časovni grafi ApexCharts. Ves promet teče prek internega omrežja IJS skozi OpenVPN + HTTPS.

Najtežja oblikovalska odločitev je bila, kje potegniti mejo abstrakcije — dovolj nizko, da robot natanko stori, kar raziskovalec namerava, dovolj visoko, da mu nikoli ni treba brati KRL.
Davor Majc, Developer / IJS–KUKA
03 Kar sem dostavil · rešeni izzivi

Šest stvari dostavljenih,
tri težke rešene.

Ključni prispevki

  • Razvil Angular 12 frontend za raziskovalce IJS za krmiljenje in nadzor industrijske robotske roke KUKA.
  • Integriral Swagger-generiran TypeScript odjemalec (DataProxy API) skozi štiri storitvene domene: upravljanje naprav, programiranje robota, upravljanje dokumentov in avtentikacijo.
  • Implementiral strukturiran graditelj robotskih programov — sestavljanje programov iz ponovno uporabnih rutin in atomarnih KRL stavkov, z neposrednim prenosom .src/.dat datotek.
  • Povezal cevovod simulacije KukaSim, da so raziskovalci lahko predogledali in validirali programe, preden so jih poslali na fizično roko.
  • Zgradil poglede za upravljanje naprav z večprotokolno podporo (Ethernet REST, Serial, Socket) in nadzor spremenljivk v realnem času prek časovnih grafov ApexCharts.
  • Dodal panel za kamero (tip naprave AXIS) z nadzorom približanja, kar omogoča vizualno povratno informacijo v živo med poskusi.
  • Integriral sistem obvestil z nastavljivimi pragovi, vezanimi na spremenljivke tipov naprav — raziskovalcem nudi opozorila ob nenavadnih meritvah senzorjev.

Rešeni izzivi

  • Premostitev vrzeli med spletnim uporabniškim vmesnikom in robotskim krmilnikom, ki govori v svojem izvedbenem modelu — rutine, stavki, izvajalci — je zahtevala zvest TypeScript domenski model.
  • Platforma je morala delovati prek internega VPN-ja IJS (OpenVPN + lasten vnos v hosts), kar je dodalo plast omrežnih omejitev, ki so oblikovale arhitekturo proxyja.
  • Načrtovanje graditelja programov, da neprogramerji (raziskovalci, ne robotiki) lahko sestavijo KRL programe iz ponovno uporabnih stavčnih blokov, ne da bi se dotaknili surovne KRL sintakse.
04 Tehnološki sklad

Kaj poganja stvari.

AngularTypeScriptRxJSAngular MaterialApexChartsRESTSwaggerKUKA KRLKukaSimOpenVPNHTTPS
Pogovorimo se

Pripravljeni popraviti, zgraditi
ali skalirati?

30 minut, z mano osebno. Preberem vaš sistem kot dnevniško datoteko in povem, kaj bi naredil najprej. Brez prezentacij, brez prodajnega lijaka.

Davor Majc, ustanovitelj, Numen

Kaj dobite na klicu
→ enostranska diagnostika
→ 2–3 obliki rešitve, razvrščeni po učinku
→ okvirni strošek + časovnica za vsako
→ da/ne — ali sem prava izbira
+386 40 828 474 · Blejska Dobrava, SI