Filozofija implementacije sistema za upravljanje i monitoring višeosnih sistema prihvaćena u Lola institutu zasniva se na distribuciji upravljačkih funkcija na dva računara:
- Korisnički računar, U-PC (User PC);
- Sistemski računar, S-PC (System PC).
Ova dva računara međusobno komuniciraju preko CORBA protokola. CORBA je akronim za Common Object Request Broker Architecture, definisana od strane OMG (Object Management Group) sa ciljem da se premosti jaz imeđu programa pisanih na različitim programskim jezicima, koji se izvršavaju na različitim računarima sa različitim operativnim sistemima i uz to povezanih različitim mrežnim protokolima.
Postavlja se pitanje zašto je izabrana distribuirana arhitektura sistema za upravljanje? U distribuiranim sistemima zahtevni taskovi se izvršavaju na različitim platformama, pa ne moraju da se takmiče za jedno procesorsko vreme. Robot kontroleri su upravo takvi, zahtevni sistemi koji moraju da se izbore sa mnoštvom taskova u realnom vremenu. Sa druge strane, distribuirana arhitektura pruža i druge prednosti, kao što su: otvorenost, mogućnost dinamičkog proširenja, odvojeni memorijski resursi, fizička udaljenost korišćenih računara i tako dalje. Ova poslednja osobina je od posebnog značaja, jer omogućava da se monitoring kretanja robota obavlja sa udaljenog računara. Tako U-PC računar može biti van laboratorije u kojoj se nalazi robot. Naravno S-PC je fizički usko vezan sa robotom i nalazi se u upravljačkom ormanu.
Obe računarske arhitekrure su bazirane na real-time Linux platformi na kojoj je instaliran OROCOS. Na U-PC računaru su dodatno instalirani Qt i OpenGL. Upravljačka arhitektura, koja podrazumeva konfiguraciju OROCOS komponenti na S-PC računaru, može konfigurisati statički ili dinamički u toku dve faze:
- Statička faza konfiguracije: Off-line ACS (Architecture Configuration Stage);
- Dinamička faza rekonfiguracije: On-line ARS (Architecture Reconfiguration Stage).
Statička faza konfiguracije: Off-line ACS
Na početku off-line ACS, definišu se zahtevi arhitekture upravljačkog sistema za tačno određeni višeosni sistem. U toku off-line ACS, na S-PC računaru sistem integrator može da konfiguriše arhitekturu upravljačkog sistema dodajući ili modifikujući OROCOS komponente. Na primer, izmenom koda mogu se modifikovati komponente odgovorne za generisanje putanje ili servo kontrolu, može se modifikovati OROCOS real-time mašina stanja ili program za kalibraciju. Sa druge strane mogu se dodavati nove OROCOS komponente. U ovoj fazi, više konfiguracija upravljačke arhitekture može biti definisano i zapamćeno u vidu XML fajla. Svaka definisana konfiguracija u okviru XML fajla sadrži instrukcije koje komponente treba deaktivirati, a koje aktivirati. Nakon toga, koristi se U-PC računar.
U-PC računar je upošljen kako u toku off-line ACS, tako i u toku on-line ARS. U toku off-line ACS, prvo se bira kojim robotom će se upravljati. Zatim aplikativni programer piše program koji sadrži instrukcije na L-IRL jeziku, kako bi se dobili odgovarajući parametri kretanja potrebni za upravljanje industrijskim robotima ili uređajima za trening pilota.
S obzirom da U-PC računa kinematiku odabranog robota, ovaj računar omogućava i proveru da li, prema napisanom programu na L-IRL jeziku, robot izlazi iz svog radnog prostora, da li su ose prekoračile ograničenja, omogućava prikazivanje planiranih putanja end-efektora i članova robota i prikazivanje dijagrama njihovih brzina i ubrzanja, a može se pogledati i 3D simulacija kretanja robota. Na kraju se prevođenjem generiše objektni P ili XML kod.
Ulaz L-IRL kompajlera predstavlja program napisan na L-IRL jeziku. U toku kompajliranja programa generišu se tabele koje sadrže vrednosti uglova u toku kretanja, za svaku osu industrijskog robota, humane centrifuge ili uređaja za dezorijentaciju pilota, u razmacima od 5 ms. Pored tabela u toku kompajliranja se generiše fajl koji sadrži objektni kȏd i koji se dalje šalje na real-time upravljački sistem putem CORBA protokola. Tabele sa vrednostima uglova se koriste u toku simulacije kretanja uređaja. Te vrednosti se postavljaju na 3D modelu za svaku osu, u intervalu od 20 ms. Na taj način je omogućeno testiranje, modifikacija i unapređivanje razvijenih komandi i algoritama kretanja bez učestvovanja stvarne mašine.
U-PC računar
Dinamička faza rekonfiguracije: On-line ARS
Ako je više konfiguracija upravljačke arhitekture definisano u toku off-line ACS, na početku on-line ARS bira se jedna konfiguracija. Onda se u toku on-line ARS upravljačka arhitektura može dinamički rekonfigurisati odabirom željene konfiguracije iz prethodno definisane familije konfiguracija u XML fajlu. Izbor nove konfiguracije se izvršava iz Linux terminala na S-PC računaru. Ova promena je implementirana u okviru stanja Reconfig OROCOS mašine stanja, gde se čita odgovarajući XML fajl i na osnovu njega se neželjene komponente deaktiviraju, a željene konfigurišu i aktiviraju.
U toku on-line ARS faze sve komponente se izvršavaju u realnom vremenu. U slučaju sa slike se upravlja 6-osnim robotskim manipulatorom Lola 50 i njegov 3D virtualni model se posmatra na U-PC računaru. Real-time upravljačka logika je implementirana korišćenjem jedne supervizorske konačne mašine stanja (S-FSM), a sam upravljački sistem se sastoji od različitih komponenti koje su prethodno razvijene i verifikovane nezavisno od ostalih komponenata u toku off-line ACS.
Arhitektura distribuiranog sistema u toku on-line ARS
S-PC računar u ovoj on-line ARS fazi omogućava učitavanje izabrane konfiguracije upravljačke arhitekture, izvršavanje objektnog P koda generisanog od strane U-PC računara u off-line ACS fazi, upravljanje robotom, promenu konfiguracije upravljačke arhitekture zahtevanu od strane korisnika iz Linux terminala na S-PC računaru i slanje pozicija ka U-PC računaru preko odgovarajuće komande.
U-PC omogućava interaktivan korisnički interfejs. Korisnik može da ga personalizuje uključujući parametre koje želi da posmatra, kao što su pozicije motora, osa ili end-efektora, 3D monitoring kretanja robota i tako dalje. U-PC računar je implementiran u integrisanom okruženju uključujući:
- Qt razvojno okruženje za kreiranje GUI interfejsa u kome se prikazuju trenutne pozicije motora, osa ili end-efektora, 3D simalacija kretanja robota, a postoje i odgovarajuća kontrolna dugmad;
- OpenGL biblioteke, koje se koriste za crtanje i povezivanje osnovnih geometrijskih primitiva kao što su kvadar, valjak ili lopta, ali i za translaciju i rotaciju delova robota kako bi se implamentirao virtualni model stvarnog robota;
- OROCOS softver i biblioteke, koji su iskorišćeni kako bi se procesirale pristigle komande od strane S-PC računara.