Professional Documents
Culture Documents
Jupiter2010-Sistemi Otvorene Arhitekture
Jupiter2010-Sistemi Otvorene Arhitekture
Trgovevi1)
1) Marija Milievi, dipl. in. el, LOLA Institut, (mmilicevic@li.rs ), Jelena Vidakovi, dipl. ma. in, LOLA Institut,
(jvidakovic@li.rs ), Zoran Dimi, dipl. in. el, LOLA Institut, (dimic@li.rs ) Sanja Trgovevi, dipl. ma. in, LOLA Institut,
(sanja@li.rs).
U tabeli 1. su prikazane razliite strukture i pristupi razvoju hardvera i softvera upravljakih sistema
maina alatki i robota. U varijanti a) uz analogni interfejs na strani aktuatora, svaki izvrni modul poseduje
svoj procesor, to vodi ka korienju specifinog hardvera za razliite procese. Kombinovanje softverskih
modula vodi ka korienju specifinog hardvera za razliite procese. Kombinovanje softverskih modula vodi
ka znaajnom smanjenju broja procesora. U varijanti b) prikazana je struktura upravljanja koja integrie
inteligentne digitalne pogone visokih performansi, to doprinosi manjoj kompleksnosti sistema. U varijanti
v) prikazan je upravljaki sistem zasnovan na PC monoprocesorskoj upravljakoj arhitekturi i operativnom
sistemu sa real-time ekstenzijom. U ovoj varijanti sve kontrolne funkcije se izvravaju kao softverski procesi
na PC real-time platformi. To, pored ve opisanih prednosti OAC-a, povlai za sobom nisku cenu hardvera
upravljake jedinice i namee pravac u razvoju naeg upravljakog sistema otvorene arhitekture.
) Standardan interfejs
ka analognim
aktuatorima
Procesor 1
(nivo korisnika)
Procesor 2
(nivo upravljanja)
Procesor 3
(nivo upravljanja)
Procesor 4
(nivo upravljanja)
Procesor 5
(Nivo aktuatora)
HMI , NC i PLC
programski sistem
) Upravljanje
koncentrisano na
aktuatorskom nivou,
digitalni interfejs ka
aktuatorima
HMI , NC i PLC
programski sistem
) Upravljanje
koncentrisano na
korisnikom nivou
(softverski
CNC)
HMI , NC i PLC
programski sistem,
planer putanje,
kontroler procesa
kontroler pozicije
Planer putanje,
kontroler pozicije
PLC
kontroler
procesa
Kontroler brzine,
strujni kontroler,
pojaava snage
Kontroler brzine,
strujni kontreler,
pojaava
snage
Iako rad na razvoju CNC sistema pod Linux-om nije tako zastupljen koliko istraivanja na Windows
platformi, razvoj softverski orjentisanog CNC otvorene arhitekture na Linux/RTLinux osnovi treba da
donese viestruke prednosti u odnosu na eventualne Windows sisteme. Izmeu zajednikih zahteva koji se
danas postavljaju pred softverske sisteme otvorene arhitekture, a koji treba da karakteriu softverski otvoreni
CNC na Linux-u, istiu se:
1.
2.
3.
4.
5. Razliitost opcija i pripadajuih alata za izabranu distribuciju real-time Linux operativnih sistema;
6. Standardan API (application programming interface) koji omoguava jednostavan transfer razvijenog
softvera na embedded sisteme.
3. EMC2 ZA PROGRAMIRANJE VIEOSNIH MAINA ALATKI U PYTHON VIRTUELNOM
GRAFIKOM OKRUENJU
Deo aktivnosti Nacionalnog instituta za standarde i tehnologiju SAD-a, poznatijeg kao NIST ( National
Institute of Standards and Technology) odnosi se na razvoj mernih metoda i standarda za inteligentne
upravljake sisteme u proizvodnji. Kao rezultat dugogodinjeg istrivanja u ovoj oblasti, NIST je
promovisao RCS (Real-time Control System) softversku biblioteku, koja danas prestavlja standardnu,
referentnu osnovu za razvoj inteligentnih upravljakih sistema. RCS biblioteka je evoluirala tokom godina i
rezultirala razvojem brojnih upravljakih aplikacija ukljuujui i Enhanced Machine Controller poznatiji kao
EMC. EMC nudi real-time upravljaki softver otvorene arhitekture, koji se uz korisnike modifikacije i
nadgradnje moe iskoristiti za upravljanje najrazliitijih maina alatki i robota. Prisustvo ovakvog
softverskog sistema, na svetskoj sceni, svakom ko eli da se upusti u avanturu izgradnje sopstvenog
upravljakog sistema, jasno pokazuje pravac u kome mora delovati. Neprocenjiv rad i iskustvo koji su
godinama ulagani u RCS i EMC, daju nam vie nego dobru tehnoloku osnovu za razvoj sopstvenog sistema.
Nova verzija ovog softvera, EMC2, donela je velike novine. Postojei grafiki interfejsi koji prikazuju
putanju alata unapreeni su mogunou prikaza kretanja kompletne maine u virtuelnom 3D okruenju.
Znaajne novine EMC-u donose HAL (Hardware Abstraction Layer) komponente koje omoguavaju
jednostavnu integraciju funkcija inverzne i direktne kinematike u sistem za upravljanje, kao i uniformni
interfejs za povezivanje sa dodatnim hardverskim komponentama.
Konfigurisanje virtuelnih modela ostvareno je programiranjem u programskom jeziku Python. Postupak
modeliranja virtuelnog modela se ovde svodi na programiranje koordinata, za definisanje elementarnih
geometrijskih tela. Da bi se posao olakao dobro je izmodelirati uproeni model u nekom CAD paketu,
odakle se mogu preuzeti potrebne koordinate za definisanje primitiva. Virtuelni model maine u Python 3D
okruenju koji se integrie sa grafikim interfejsom Axis i upravljakim jezgrom EMC2. U prozoru virtuelne
maine moe se videti kretanje segmenata maine i robota prema programu upravljanja (G-kodu), kao i
putanja alata koja se pri tome ostvaruje.
Virtuelna simulacija se ovde razmatra u cilju testiranja i verifikacije programa pre odlaska na obradni
sistem. Ona omoguava off-line programiranje sa testiranjem i verifikacijom programa na udaljenom
programerskom mestu bez angaovanja samog robota. Rad u ovakvom virtuelnom okruenju je pogodan i sa
aspekta obuke i edukacije programiranja ovakvih obradnih sistema.
Slika 1. Primer virtuelne simulacije obrade pingvina na strugarskom obradnom centru sa funkcijom
glodanja
4. OROCOS - OKRUENJE ZA UPRAVLJANJE ROBOTIMA I MAINAMA ALATKAMA
OROCOS (Open RObot COntrol Software) je evropski projekat koji je poeo sa razvojem 2001. godine
na Katolikom univerzitetu u Leuvenu, u Belgiji, a na kojem je uestvovala i Laboratorija za analizu i
arhitekturu sistema (CNRS/LAAS) iz Francuske i vedska laboratorija KTH (Kungl Tekniska Hgskolan).
Pored ovih institucija na razvoju i dizajnu ovog projekta uestvuju i mnoge druge laboratorije i instituti.
Osnovni cilj ovog projekta je razvoj softvera sa slobodnim kodom (open source) koji prua funkcionalnu
osnovu za kontrolu robota i maina alatki. Ovaj softver je zamiljen kao nezavistan od platforme i aplikacije.
Osnovne osobine ovog projekta su:
1. Izvorni kod je slobodan i dostupan za prouavanje, upotrebu i modifikovanje.
2. Izuzetno je modularan i fleksibilan, tako da i korisnici mogu da izgrade svoj sistem po elji, a i sami
programeri mogu da doprinesu izgledu komponenti, bez ulaenja u dubinu koda celokupnog sistema.
3. Ima veoma visok kvalitet, kako sa tehnike take gledita, tako i to se tie dokumentacije i
softverskog inenjeringa.
4. Nezavistan je i kompatibilan sa komercijalnim proizvoaima robota.
5. Ima mogunost konfigurisanja korisnikog interfejsa na svim jezicima.
6. Ima u sebi ugraene komponente za kinematiku, dinamiku, oitavanje senzora, upravljanje, interfejs
prema hardveru. Komponenta u ovom kontekstu oznaava meusoftver (CORBA, DCOM, RIM), ili
neki softverski objekat koji moe biti dinamiki dodat ili uklonjen iz mree a koji prua svoje usluge
kroz neki neutralni interfejs, nezavistan od programskog jezika (kao to je CORBA Interface
Description Language, IDL).
elja ovog projekta je da omogui razvoj slobodnih biblioteka, koje su nezavisne od platforme,
implementaciju samostalnih primera komponenti koje krajnji korisnik moe prilagoditi i proiriti za svoju
4
aplikaciju i razvoj konfigurabilnog run-time okruenja iz kog se moe simulirati i upravljati razliitim
robotskim sistemima. Rezultat treba da zadovolji potrebe svih robotiara, bilo da su oni studenti koji ele da
unaprede svoje prve, amaterske, robote, bilo da je u pitanju tim inenjera koji se veoma ozbiljno bavi
razvojem robotskih sistema.
Sama baza koda OROCOS-a je podeljena na module ili biblioteke. Postoji okvirno tri glavna tipa modula:
1. Moduli za podrku. To su softverski moduli bez funkcionalnosti robotskog sadraja ali ipak
neophodni za izgradnju sistema za upravljanje robotom. Na primer, 3D vizualizacija i simulacija,
numerike biblioteke, softverski alati za konfiguraciju komponenti, real-time operativni sistem,
meuprocesna komunikacija, alati za pisanje dokumentacije, itd.
2. Robotski moduli. To su softverski moduli koji u sebi imaju implementirane robotske algoritme,
kinematiku i dinamiku (optih i posebnih) kinematikih lanaca, servo kontrolere, estimatore za
Bajesove i Neuralne mree, planere putanje, serijske i paralelne manipulatore, itd. Robotski moduli
koriste jedan ili vie modula za podrku.
3. Komponente. To su CORBA objekti sa svojim IDL opisom. Ove komponente su konstruisane od
modula dva prethodna tipa i one su gradivni blokovi sa kojima krajnji korisnici sastavljaju svoje
okruenje za upravljanje robotom.
Ovaj softver ne namee standarde za programski jezik. Moe se koristiti C za real-time upravljanje, C++
za numerike algoritme, jezik za skriptovanje za grafiki intefejs ili robotske programe, itd. U svakom
sluaju, meusoftver CORBA omoguava rad u okruenju sa vie razliitih programskih jezika.
Otvoreni standardi (u programskim jezicima, formatima podataka, komunikacionim protokolima i pisanju
dokumentacije) su od velike vanosti za zajedniko korienje softvera i za kooperativni razvoj. Jedino
open-source projekti mogu da garantuju optimalnu upotrebu i potovanje otvorenih standarda, dok su
komercijalni proizvoai softvera esto u iskuenju da uvode sopstvene protokole zbog konkurencije na
tritu. Najvaniji standardi koje OROCOS podrava su:
1. CORBA IDL, za ugraivanje objekata. Kroz IIOP (Internet Inter-Orb Protocol), sve razliite
implementacije CORBE su interoperabilne. CORBA takoe ima real-time ekstenziju, koja je veoma
bitna za upravljanje robotima, TAO, open source implementacije.
2. Struktuirani jezik tekstualnih dokumenata, XML, za konfiguraciju i datoteke sa podacima.
3. Modelica, za modelovanje dinamikih sistema. Veina komercijalnih paketa za simulaciju dinamikih
sistema podravaju ovaj format modeliranja.
4. DocBook i LATEX za pisanje dokumentacije. Oba su open source i nezavisni su od platforme. Mogu
biti prevedeni na razliite formate i kao takvi su pogodni za obradu dokumentacije Linux projekata.
DocBook je pogodan za pisanje korisnikih uputstava, dok je LATEX pogodan za pisanje
matematikih formula koje se pojavljuju svuda u robotici.
Gotovo svi moduli za podrku OROCOS softverskog sistema su na raspolaganju i u drugim open source
projektima. Neki od projekata koji se mogu ugraditi u OROCOS su:
1. Octave, veoma bogata numerika biblioteka, koja je kompatibilna sa Matlab paketom. Takoe sadri
ODE i DAE raunarske alate.
2. Real-Time Linux i/ili RTAI, koji je real-time ekstenzija kernela za Linux, ili Linux nezavisni eCos.
3. Xenomai, real-time okruenje za razvoj i debagovanje kooperativan sa Linux jezgrom.
4. Comedi, biblioteka za real-time drajvere za IO ureaje, kao to su AD/DA kartice.
5. Razliiti paketi otvorenog formata za 3D vizualizaciju kao to su VRML, Java 3D, Open GL i
OpenInvertor, ili Coin3D, itd.
Postoje etiri bibliote OROCOS sistema:
1. OROCOS RTT (Real-Time Toolkit), koja sama po sebi ne predstavlja aplikaciju ve obezbeuje
infrastrukturu i funkcionalnosti za razvoj aplikacija za upravljanje u C++. Naglasak je na real-time,
on-line interaktivnim aplikacijama baziranim na komponentama.
2. OCL (OROCOS Component Library) obezbeuje neke gotove komponente za upravljanje, spremne
za upotrebu.
3. KDL (Kinematics and Dinamics Library) je C++ biblioteka koja omoguava raunanje kinematskih
lanaca u realnom vremenu.
4. BFL (Bayesian Filtering Library) obezbeuje aplikaciono nezavisni okvir za realizaciju dinamikih
bajesovih mrea, npr. rekurzivnu obradu i estimaciju algoritama zasnovanih na bajesovom pravilu
(kalmanovi filtri, itd.).