Termin proširena realnost je zajednički termin kojim se opisuju tehnologije Virtuelne realnosti (Virtual reality eng.) - VR, Augmentovane (poboljšane) realnosti (Augmented reality eng.)-AR, i Pomešane realnosti (Mixed reality eng.) -MR.
XR tehnologija trenutno omogućava trenutno najbolju integraciju čovekovih čula sa mašinom.
Sektor za robotiku Lola instituta se bavi primenom tehnologija proširene realnosti u razvoju naprednih sistema za intuitivno, bezbedno i efikasno programiranje programiranje robota, kao i uopštenom primenom proširene realnosti u proizvodnim sistemima.
Reference
Kontakt
Jelena Vidaković Ova adresa el. pošte je zaštićena od spambotova. Omogućite JavaScript da biste je videli.
Andrija Dević Ova adresa el. pošte je zaštićena od spambotova. Omogućite JavaScript da biste je videli.
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:
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:
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
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:
Različiti robotski zadaci zahtevaju različite vrste kretanja robota. Neki robotski zadaci kao što su npr. manipulacija ili tačkasto zavarivanje zahtevaju samo kretanje tačka po tačka (Point To Point - PTP), dok su za neke zadatke potrebna kretanja po matematički definisanim putanjama (Controlled Path, Continous Path - CP). Ovi zadaci su npr. mašinska obrada, elektrolučno zavarivanje, čišćenje odlivaka, montaža, pakovanje, poliranje itd.
Kretanje tačka po tačka ili PTP kretanje je vremenski optimalno kretanje između dve tačke u prostoru. Ose robota kreću se sinhrono od startnih (M1) do krajnjih (M2) pozicija, što rezultuje zakrivljenom putanjom vrha end-efektora u prostoru. PTP kretanja služe za brzo dolaženje robota u ciljnu tačku, gde treba da se izvrši neka robotska operacija ili odakle treba da započne kretanje po matematički definisanoj putanji.
PTP kretanje
PTP kretanje je optimizovano po vremenu i tako da mehanički delovi robota trpe najmanje moguće opterećenje.
Dijagrami profila brzina članova robota kod PTP kretanja
Sistem za programiranje i upravljanje kretanjem robota razvijen u Lola institutu omogućuje i takozvana aproksimativna PTP kretanja. Njima se povezuju bez zaustavljanja i bez naglih promena brzina više PTP kretanja, blok PTP sa blokom CP kretanja, i obrnuto. Zaglađivanje profila brzina članova robota daje i zaglađivanje profila brzine vrha end-efektora.
Putanja vrha end-efektora tokom četiri aproksimativna PTP i jednog kružnog segmenta kretanja i odgovarajuća putanja tokom neaproksimativnih PTP kretanja
Dijagrami brzina dva člana robota tokom četiri aproksimativna PTP i jednog kružnog segmenta kretanja
Dijagrami uzastopnih položaja (uglova) dva člana robota tokom četiri aproksimativna PTP i jednog kružnog segmenta kretanja
Dijagram brzine vrha end-efektora robota tokom četiri aproksimativna PTP i jednog kružnog segmenta kretanja
Kod kretanja po programiranoj putanji (Controlled Path ili Continuous Path - CP) vrh end-efektora se kreće po matematički definisanoj putanji koja može biti prava linija, kružnica ili, parabola u prostoru.
Kod pravolinijskog kretanja vrh end-efektora se kreće po pravoj liniji u prostoru između početne (M1) i krajnje (M2) tačke. Putanja se programira navođenjem koordinata krajnje tačke.
Pravolinijsko kretanje
Kod kružnog kretanja vrh end-efektora se kreće po kružnici u prostoru između početne (M1) i krajnje (M3) tačke. Putanja se programira navođenjem koordinata pomoćne (M2) i krajnje (M3) tačke.
Kružno kretanje
Eliptično kretanje
Kretanja po programiranoj putanji mogu se međusobno povezivati bez zaustavljanja robota tako da se obezbedi ravnomerna promena brzine kretanja. Da ne bi došlo do velikih mehaničkih opterećenja robota usled naglih pomena pravca kretanja end-efektora, potrebno je da prelazi sa jednog na drugo CP kretanje budu tangentni.
Primer putanje vrha end-efektora tokom deset povezanih segmenata CP kretanja dobijene eksperimentalnim putem
Promena brzine vrha end-efektora tokom deset povezanih segmenata CP kretanja robota
Kada je promena pravca vrha end-efektora takva da izaziva velika inercijalna opterećenja robota, CP kretanja se povezuju aproksimativnim CP kretanjima kojima su obezbeđeni tangentni prelazi sa jedne pravolinijske putanje na drugu. End-efektor se tokom aproksimativnog CP kretanja kreće po paraboli.
Aproksimativna CP kretanja
Primer putanje vrha end-efektora tokom šest povezanih segmenata aproksimativnih CP kretanja, dobijene eksperimentalnim putem
Kretanje po paraboli kod koje se žiža nalazi izvan , tj. unutar oblasti aproksimativnog CP kretanja
Putanja vrha end-efektora tokom četiri povezana segmenta aproksimativnih CP kretanja
Dijagram brzine vrha end-efektora pri četiri povezana segmenta aproksimativnih CP kretanja
Orijentacija end-efektora kod pravolinijskog kretanja može biti konstantna ili ravnomerno promenljiva u prostoru, odnosno u odnosu na putanju.
Konstantna orijentacija end-efektora kod pravolinijskog kretanja
Ravnomerno promenljiva orijentacija end-efektora kod pravolinijskog kretanja
Orijentacija end-efektora tokom kružnog kretanja može biti konstantna ili ravnomerno promenljiva u prostoru ili konstantna ili ravnomerno promenljiva u odnosu na putanju.
Konstantna orijentacija end-efektora u prostoru kod kružnog kretanja
Ravnomerno promenljiva orijentacija end-efektora u prostoru kod kružnog kretanja
Konstantna orijentacija end-efektora u odnosu na putanju kod kružnog kretanja
Ravnomerno promenljiva orijentacija end-efektora u odnosu na putanju kod kružnog kretanja
Iskazima kretanja mogu se zadavati kretanja robota tačka po tačka, linearno i cirkularno kretanje. Iskazi kretanja su MOVE MOVE_INC i razlikuju se u pogledu koordinatnog sistema u odnosu na koji se računaju ciljne i pomoćne tačke kojima se definiše putanja.
Usvojeno je da se u naredbama MOVE, veličine geometrijskih izraza, koji imaju u osnovi kartezijanski koordinatni sistem (POSITION, ORIENTATION, POSE, ROBTARGET), odnose na koordinatni sistem korisnika (User Coordinate System).
move ptp ((X,Y,C),(A,B,C),(…)) Brzina, Ubrzanje …;
move lin ((X,Y,C),(A,B,C),(…)) Brzina, Ubrzanje …;
move circle PomoćnaTačka CiljnaTačka Brzina, Ubrzanje …;
U iskazima MOVE_INCvrednosti geometrijskih izraza tipa POSITION, ORIENTATION i POSE, koji određuju tačke programirane putanje, interpretiraju se kao koordinate date u odnosu na koordinatni sistem end-efektora (Tool Coordinate System).
move_inc ptp ((X,Y,C),(A,B,C),(…)) Brzina, Ubrzanje …;
move_inc lin ((X,Y,C),(A,B,C),(…)) Brzina, Ubrzanje …;
move_inc circle PomoćnaTačka CiljnaTačka Brzina, Ubrzanje …;
Za potrebe upravljanja humanom centrifugom koja je modelirana kao troosni manipulator sa rotacionim zglobovima, u L-IRL jezik su ugrađene specifične instrukcije kretanja tzv. GMOVE instrukcije. Ovim instrukcijama se zadaje željeno ubrzanje koje deluje na pilota, priraštaj ovog ubrzanja ili vreme za koje je potrebno dostići željeno ubrzanje, kao i vreme održavanja konstantnog ubrzanja u režimu otvorene petlje.
gmove time:= 4.0 bl_g:= 1.41;
gmove acc_g:= 2.0 bl_g:= 15.0 Gz := 14.1;
gmove time:= 0.7 bl_g:= 15.0 Gz := 14.1;
U postupku definisanja novih komandi ili razvoja novih algoritama za kretanje kompleksnih i masivnih uređaja kao što su industrijski roboti, mašine alatke, humana centrifuga ili uređaj za prostornu dezorijentaciju pilota, nebezbedno je izvršavati testiranja na stvarnoj mašini. Takođe je značajno imati sliku o radu takvih uređaja i pre njihove krajnje realizacije. U Lola institutu su razvijeni 3D simulatori kretanja industrijskog robota Lola 50, kao i uređaja za simulaciju leta (humane centrifuge i uređaja za prostornu dezorijentaciju pilota). Uz pomoć njih se obavlja verifikacija novih komandi i algoritama kretanja. Oni predstavljaju sastavni deo korisničkog sistema za upravljanje industrijskim robotima i simulatorima leta.
Slika po redosledu prikazivanja:
Grafički korisnički interfejs sa 3D virtuelnim modelom industrijskog robota Lola,
L-IRL je jezik strukturiranog tipa i pripada klasi problemski orijentisanih jezika. Sadrži naredbe za programiranje kretanja robota i naredbe za programiranje logičkog toka programa. L-IRL omogućava rad sa promenljivama, rad sa aritmetičkim, logičkim i geometrijskim izrazima, kao i rad sa signalima iz okruženja.
L-IRL je projektovan tako da bude upotrebljiv u industrijskim uslovima. Prilagođen je problemu programiranja robotskih operacija, koje mogu uključivati rad jednog robota sa pratećim senzorima, ali i kooperativni rad više robota i drugih uređaja.
Struktura jezika L-IRL odgovara opštem programskom jeziku PASCAL sa određenim modifikacijama. Kao uzor prilikom realizacije modularnosti i robotskih specifičnih programskih konstrukcija korišćen je predlog standarda za robotske jezike IRL (DIN 66312).
L-IRL sadrži naredbe za sinhronizaciju sa događajima iz okruženja, kao i naredbe za kontrolu programskog toka, pozive procedura i funkcija, petlje i naredbe za zadavanje kretanja. Tipovi podataka mogu biti jednostavni, struktuirani ili geometrijski. Opisivanje položaja robota i objekata je omogućeno geometrijskim tipovima podataka i geometrijskim nizovima. Geometrijskim operatorima je omogućeno sabiranje i oduzimanje vektora, relativna translacija i rotacija koordinantih sistema i slično. Iskazima kretanja (MOVE i MOVE_INC) je omogućeno programiranje putanja robota u koordinatama osnove robota (MOVE) i koordinatama alata, odnosno end-efektora (MOVE_INC). Kretanje robota mogu biti: tačka po tačka (PTP) i kretanje po matematički definisanim putanjama (CP). Matematički definisane putanje po kojima je moguće zadavanje kretanja robota su linija i krug u prostoru i parabola kod zaglađivanja putanja CP kretanja. Moguće je i zadavanje zaglađivanja brzine robota. Za vezu sa okruženjem koriste se promenljive koje se nazivaju signali, a za vezu sa senzorima koriste se logički kanali. Programiranje humane centrifuge u režimu otvorene petlje omogućeno je GMOVE instrukcijama.
L-IRL editor je sastavni deo korisničkog sistema za upravljanje industrijskim robotima i simulatorima leta i služi za programiranje kretanja i prevođenje L-IRL programa na objektni kȏd, koji može biti u obliku P kȏda ili XML kȏda. Objektni kȏd se nakon prevođenja šalje na real-time upravljački sistem, gde se izvršava. L-IRL IDE je razvijen za Linux operativni sistem i korišćenjem Qt tehnologije.
Osnovni podaci o robot kontroleru LOLA RC 3:
3.1. Pripada klasi viših programskih jezika.
3.2. Za programiranje složenih robotskih operacija omogućena je strukturiranost i modularnost.
3.3. Jezik sadrži sve opšte programske konstrukcije koje su potrebne prilikom programiranja robota, pre svega rad sa podacima, izraze, kotrolu programskog toka, procedure i funkcije.
3.4. Postoje konstrukcije kojima se realizuje veza sa okruženjem, putem ulaznih i izlaznih signala kojima se prenose analogne, digitalne i binarne informacije.
3.5. Postoji veza sa senzorima, koji se mogu dodavati robotskom sistemu u zavisnosti od potreba konkretne aplikacije.
3.6. Jezik omogućava realizovanje paralelnih taskova sa mogućnošću međuprocesne sinhronizacije metodom event-a.
3.7. Jezik sadrži robotski specifične konstrukcije, kao što su geometrijski tipovi podataka, geometrijski izrazi i iskazi za zadavanje kretanja robota. Geometrijski tipovi podataka i izrazi omogućavaju opisivanje položaja robota i objekata. Iskazima kretanja je omogućeno programiranje putanja robota.
3.8. Kretanja robota mogu biti: tačka po tačka i kretanja po matematički definisanim putanjama u prostoru. Matematički definisane putanje po kojima je moguće zadavati kretanja robota su linija i krug.
3.9. Povezivanje dva nekolinearna pravolinijska kretanja moguće je izvršiti aproksimativnim CP kretanjem po paraboli.
3.10. Aproksimativnim PTP kretanjima vrši se povezivanje više PTP, PTP i CP kretanja i obrnuto.
3.11. Moguće je zadavanje putanja, brzine, ubrzanja, promene orijentacije alata robota, zaglađivanja putanja i brzina, i drugih karakteristika.