Pokušaću, u ovom tekstu, da prikažem jedan pristup u razvoju softvera za robote, koji se zasniva na tzv. ''domenski-specifičnom modelovanj''. Ovaj pristup sa jedne strane koristi prednosti primene grafičkih jezika i modela, kao što su UML jezici, a sa druge strane rešava probleme u izradi i korišćenju formalnih specifikacija u jezicima koji specijalistima u konkretnim poslovnim domenima i krajnjim korisnicima nisu dovoljno razumljivi. Domensko modelovanje, u kombinaciji sa auto-adaptibilnim izvršnim sistemima, omogućava generisanje koda za robotske kontrolere i klijentskih aplikacija bez programiranja, pomoću jezika koje korisnici sami razvijaju. Domenski-specifično modelovanje se izučava na fakultetima širom sveta, a posebno je dobilo na značaju poslednjih godina, sa nastojanjem da se industriji ponudi standardizacija "Industry 4.0".

 

Arhitektura rešenja za domenski-specifično modelovanje

 Sa širenjem područija primene industrijskih i humanoidnih robota otvara se problem brzog razvoja pouzdanog softvera upravljačke logike i učestanih varijacija klijentskih aplikacija. Za efikasnu primenu nije dovoljno da se poseduje samo dobra upravljačka logika opšte namene (dobar kontroler), nego i alati pomoću kojih mogu da se formalno opišu specifični problemi iz okruženja primene. Domensko modelovanje reševa probleme u razvoju softvera za sve nivoe u složenoj arhitekturi sofvera za robotiku, tako što podržava konstrukciju grafičkih jezika, specifikaciju pomoću modela i automatsko generisanje koda:

  • Drajvera i virtuelnih signala, za različite hardverske platforme i operativne sisteme;
  • Upravljačke logike kretanja i akcija tokom kretanja;
  • Klijentskih aplikacija za monitoring i integraciju u okruženje primene;
  • Klijentskih aplikacija za ugrađene sisteme; i
  • Za dokumentaciju o toku izvršavanja zadatih poslova.

 Jedno napredno razvojno okruženje za proizvodnju softvera u robotici sastoji se od:

  1. Odredišnog ran-tajm sistema (eng. RTS), koji, slično operativnom sistemu i programabilnom kontroleru ( eng. PLC), izvršava kod upravljačke logike;
  2. Freimvorka ili biblioteke sa funkcijama kretanja i akcija na visokom nivou apstrakcije;
  3. Alata za konstrukciju jezika za modelovanje, što se naziva meta-modelovanje;
  4. Alata za modelovanje, odnosno crtanje modela pomoću konstruisanog jezika;
  5. Generatora koda, koji modele prevodi u izvorni kod nekog programskog jezika opšte namene ili posebnog jezika, kao što je struktuirani tekst IEC 61131-3;
  6. Dinamičkog linkera koji omogućava inkrementalno ažuriranje upravljačke logike bez prekida toka izvršavanja posla koji robot obavlja; i
  7. Generatora klijentskih aplikacija.

 Ovakvo razvojno okruženje omogućuje da se nova verzija koda upravljačke logike dobije za oko 200 milisekundi od trenutka kada se promeni model. Između usaglašavanja specifikacije i implementacije ne prođe ni sekunda, a upravljački proces ne mora da se prekida.

Primer robotske ruke koja crta portret

Slika 1: Primer modela koji opisuje upravljačku logiku robotske ruke koja crta skicu

 Slika 1 je „model koji se izvršava“ i koji inženjersku praksu dopunjuje sa nečim novim što se naziva „vizuelno dibagiranje“ ili „izvršavanje modela“. U odnosu na slične alate pomoću kojih se izvode simulacije, u ovom pristupu ne postoji razlika između koda za simulaciju i izvršnog koda koji se primenjuje na robote u realnom okruženju. Ipak, najbitnija razlika je u tome što u DSM-u korisnik ima slobodu da definiše sopstveni grafički jezik (objekte, relacije, uloge, propertije i ograničenja), sa sopstvenom semantikom. Ne postoji nikakva ograničenja na to za koji se odredišni jezik generiše kod. U kombinaciji sa auto-adaptibilnim RTS-om nisu potrebni nikakvi kompajleri ili linkeri trećih firmi.

 Model sa slike 1 sastoji se iz nekoliko celina:

  • Objektima koji prikazuju topološka svojstva ruke (koreni zglob, segmenti, karpals, distalni karpals, ...);
  • Portretom koji služi kao podloga za definisanje segmenata kretanja (provajder putanja);
  • Prekidači pomoću kojih se dodatno parametizuju tipovi kretanja, napadni uglovi, dozvoljeni stepeni rotacije i elevacije;
  • Funkcijskih blokovi koji za zadatu topologiju ruke, referentni položaj robota i položaj platna za crtanja dinamički proračunavaju uglove rotacije i elevacije zglobova;
  • Prekidača za prelaz na određenu putanju, ukoliko ne želimo sekvencijalno izvršavanje po unapred zadatom redosledu (u donjem delu slike).

 Kompletano rešenje za upravljanje robotima sastoji se od još dva, nešto jednostavnija modela. Prvi opisuje kalibraciju, a drugi veze logičkih varijabli sa hardverskim signalima.

 Domensko modelovanje u robotici provereno je u praksi, a ova napredna metodologija predstavljena je i na:

 Brojni filmovi koji ilustruju sve faze razvoja softvera, od konstrukcije jezika do povezivanja sa hardverom, nalaze se OVDE.

Praktična inženjerska korist

 Praktična inženjerska korist od primene domenski-specifičnog modelovanja u robotici ogleda se u bitnom unapređenju kvaliteta i brzine razvoja softvera. Na osnovu iskustava u proteklih nekoliko godina, produktivnost je desetostruko veća u odnosu na programiranje korišćenjem razvojnih alata opšte namene. Iskustava koja su stečena u primeni domenskog modelovanja na razvoj softvera za robotiku poslužila su u razvoju hardvera, robotskih kontrolera sa auto-adaptibilnim jezgrom upravljačke logike. Prvi prototip je u fazi testiranja, a serijska proizvodnja za tržište očekuje se do kraja prvog tromesečja 2017.godine.

 Domenski-specifično modelovanje u robotici je rezultat rada na unapređenju teorije i prakse razvoja robotskih kontrolera, koji je nastao zajedničkim radom firmi „Djukic Software GmbH“ iz Nemačke (www.djukic-soft.com) i MataCase iz Finske (www.metacase.com), za potrebe korisnika iz Nemačke i Azije.
 

Autor: dr Verislav Đukić, Djukic Software GmbH