Professional Documents
Culture Documents
ETF - Latex - Template - BSC - Zavrsni - Rad - (1) - Radna - Verzija
ETF - Latex - Template - BSC - Zavrsni - Rad - (1) - Radna - Verzija
Z AVRŠNI RAD
- P RVI CIKLUS STUDIJA -
Student:
Almir Garić
Mentor:
Red. prof. dr. Jasmin Velagić
Sažetak
Grafički interfejs upravljanja je napravljen pomoću frameworka Qt za izradu Desktop aplika-
cije koja je univerzalna za sve platforme operativnih sistema, dok je kod pisan u programskom
jeziku C++. Pri čemu je za upravljanje aktuatorima mobilnog robota x100 korišten ROS opera-
tivni sistem . Namjena završnog rada jeste da se opiše postupak izrade softverskog rješenja koji
simulira upravljački modula, sa idejom da se mobilni robot može upravljati bežično.Pomoću
Qt Creatora razvijen je i korisnički interfejs za upravljanje. Aplikacija omogućava upravlja-
nje brzinom mobilnog robota i smjerom mobilnog robota.Hardverski sistem obuhvata računar
na kojem je korisniči interfejs, te elektronika koja dolazi u sklopu platforme mobilnog robota
x100. Cilj je pripremiti sistem za upravljanje u otvorenom, kako bi nakon očitanja sa senzora
i aktuatora mobilnog robota, sistem mogao zatvoriti negativnom povratnom spregom i na taj
način bilo omogućeno upravljanje u zatvorenom, te omogućen automatski mod kretanja vozila.
Ključne riječi: QT creator, ROS operativni sistem, programski jezik C++, mobilni robot
x100,
Abstract
The graphical management interface was created using the Qt framework for creating a Desktop
application that is universal for all operating system platforms, while the code is written in the
C++ programming language. The ROS operating system was used to control the actuators of
the x100 mobile robot. The purpose of the final work is to describe the process of creating
a software solution that simulates a control module, with the idea that a mobile robot can be
controlled by a wireless connection. Using Qt Creator, a user interface for control was also
developed. The application enables the control of the speed of the mobile robot and the direction
of the mobile robot. The hardware system includes the computer on which the user interface is
located, and the electronics that come as part of the x100 mobile robot platform. The goal is
to prepare the system for outdoor control, so that after reading from the sensors and actuators
of the mobile robot, the system could be closed with negative feedback and in this way, indoor
control would be enabled, and the automatic mode of vehicle movement would be enabled.
Keywords: QT creator, ROS operating system, programming language C++, mobile robot
x100,
Elektrotehnički fakultet, Univerzitet u Sarajevu
Odsjek za Automatiku i elektroniku
Red. prof. dr Jasmin Velagić, dipl.el.ing
Sarajevo, 15. januar 2023.g
• pregled literature;
• analiza QT-a,
Polazna literatura:
[2] H. Funacubo, Actuators for Control (Precision Machinery and Robotics), CRC Press,
1991.
[5] N. Manring, Hydraulic Control Systems, John Willey and Sons, 2005.
ii
iii
[6] I.L. Krivts & G.V. Krejnin, Pneumatic Actuating Systems for Automatic Equipment,
CRC Press, 2006.
[7] Daniel Watzenig, Martin Horn, “Automated Driving: Safer and More Efficient Future
Driving”, Springer International Publishing Switzerland 2017.
[9] Guillaume Lazar, Robin Penea, “Mastering Qt5”, Packt Publishing Ltd 2016.
[10] Robert Oshana and Mark Kraeling , “Software Engineering for Embedded Systems:
Methods, Practical Techniques, and Applications”, Elsevier 2013
Potvrd̄ujem:
• da sam pročitao dokumente koji se odnose na plagijarizam, kako je to definirano Statutom
Univerziteta u Sarajevu, Etičkim kodeksom Univerziteta u Sarajevu i pravilima studiranja
koja se odnose na I i II ciklus studija, integrirani studijski program I i II ciklusa i III
ciklus studija na Univerzitetu u Sarajevu, kao i uputama o plagijarizmu navedenim na
web stranici Univerziteta u Sarajevu;
• da sam svjestan univerzitetskih disciplinskih pravila koja se tiču plagijarizma;
• da je rad koji predajem potpuno moj, samostalni rad, osim u dijelovima gdje je to nazna-
čeno;
• da rad nije predat, u cjelini ili djelimično, za stjecanje zvanja na Univerzitetu u Sarajevu
ili nekoj drugoj visokoškolskoj ustanovi;
• da sam jasno naznačio prisustvo citiranog ili parafraziranog materijala i da sam se referi-
rao na sve izvore;
• da sam dosljedno naveo korištene i citirane izvore ili bibliografiju po nekom od prepo-
ručenih stilova citiranja, sa navod̄enjem potpune reference koja obuhvata potpuni bibli-
ografski opis korištenog i citiranog izvora;
• da sam odgovarajuće naznačio svaku pomoć koju sam dobio pored pomoći mentora i
akademskih tutora/ica.
Potpis:
(ime)
iv
Sadržaj
1 Uvod 1
1.1 Obrazloženje teme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Struktura rada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
4 Izrada QT aplikacije 20
5 Eksperimentalni rezultati 21
Prilozi 23
SADRŽAJ vi
Literatura 29
Indeks pojmova 29
Popis slika
Uvod
uključujući Linux, Windows i MacOS. Originalni ROS je bio ograničen samo na Linux.ROS 2
podržava više jezika za programiranje, uključujući C++, Python i Ruby, dok je originalni ROS
bio ograničen samo na C++.ROS 2 ima novi sistem paketa za lakše održavanje i razvoj apli-
kacija, uključujući bolju podršku za kontinuirani integritet i testiranje. Ukratko, ROS 2 donosi
poboljšanja u performansi, pouzdanosti i fleksibilnosti u odnosu na originalni ROS, što ga čini
popularnijim izborom za razvoj aplikacija za upravljanje robota. Postoje mnoge kompanije i
organizacije koje koriste ROS u različite svrhe. Neki od primera su:Willow Garage je bio prva
kompanija koja je koristila ROS u komercijalne svrhe. Oni su koristili ROS za razvoj mobilnog
robota PR2, koji se koristi u istraživanju i razvoju novih tehnologija.Toyota je koristila ROS za
razvoj sistema za autonomno vod̄enje vozila.NASA je koristila ROS u svojim projektima sve-
mirskih letelica, kao što su projekti Robonaut i Mars Curiosity Rover.Dajie Robotics je koristio
ROS za razvoj mobilnog robota za upravljanje proizvodnjom.Google je koristio ROS u svojim
projektima za razvoj mobilnih robota, kao što je projekat Street View. Ovi su samo neki od pri-
mera kompanija i organizacija koje koriste ROS u svojim projektima. ROS je postao standard
u industriji robota i kontinuirano se razvija i unapred̄uje od strane velike zajednice korisnika i
developera širom sveta. Postoje mnoge koristi od korišćenja ROS-a u razvoju robota. Neki od
glavnih razloga zbog kojih se ROS često koristi su: Modularnost: ROS omogućuje modularno
dizajniranje aplikacija i lako dodavanje ili uklanjanje delova sistema bez potrebe za ponovnim
kompajliranjem cijelog sistema. Ovo olakšava razvoj i održavanje aplikacija. Standardizacija:
ROS pruža standardizovane alate i protokole za komunikaciju i razvoj softverskih paketa, što
olakšava integraciju različitih delova sistema i smanjuje vreme potrebno za razvoj. Zajednica:
ROS ima veliku zajednicu korisnika i developera širom sveta, što omogućuje lako pronalaženje
resursa i podrške u slučaju problema. Alati za vizualizaciju i debagovanje: ROS pruža alate za
vizualizaciju i debagovanje, što olakšava razvoj i održavanje aplikacija. Podrška za više jezika
i operativnih sistema: ROS 2 podržava više jezika za programiranje i operativnih sistema, što
omogućuje razvoj aplikacija na više platformi.ROS ima klijentsko-server arhitekturu, u kojoj se
klijenti povezuju sa serverima preko mreže i koriste servise i objavljuju podatke. ROS mreža
se sastoji od nodova, koji predstavljaju jedinstvene procese u sistemu. Nodi se povezuju po-
moću poruka, koje se mogu poslati izmed̄u nodova putem kanala poznatih kao topik. Nodi
mogu takod̄e da objave podatke na topik ili da primaju podatke sa topika.ROS takod̄e sadrži
sistem paketa, koji se sastoji od skupova nodova, biblioteka i dokumentacije, koji se koriste za
razvoj aplikacija. Ovo omogućuje modularno dizajniranje i lako dodavanje ili uklanjanje delova
sistema bez potrebe za ponovnim kompajliranjem cijelog sistema.
Nazivi u ROS-u
Nazivi resursa grafova u ROS-u pružaju hijerarhijsku strukturu imenovanja koja se koristi za
sve resurse u ROS računskom grafikonu, kao što su čvorovi, parametri, teme i usluge. Ova
imena omogućavaju enkapsulaciju i izolaciju različitih dijelova sistema, što smanjuje moguć-
nost sukoba izmed̄u resursa i olakšava integraciju različitih dijelova sistema. Imena se takod̄er
rješavaju relativno, tako da resursi ne moraju biti svjesni u kojem imenskom prostoru se nalaze,
što pojednostavljuje programiranje. Imena se sastoje od putanje koja se sastoji od segmenta
imena razdvojenih kosom crtom, a globalni imenski prostor je reprezentiran kosom crtom. Na
primjer, /stanford/robot/name je ime resursa s imenom ’name’ unutar imenskog prostora s ime-
nom ’robot’ unutar imenskog prostora. U ROS-u, postoje četiri tipa imena resursa grafikona:
Bazna imena su ona koja nemaju nikakve kvalifikatore prostora imena i podrazumijevaju se da
su relativna imena. Ova imena se najčešće koriste za inicijalizaciju imena čvora. Relativna
imena su ona koja se razriješavaju u odnosu na imenski prostor čvora. Na primjer, ako je čvor
/wg/node1 u imenskom prostoru /wg, onda će se ime čvor2 razriješiti u /wg/node2. Globalna
imena su ona koja počinju sa "/" i smatraju se potpuno razriješenim. Ova imena treba izbjegavati
jer ograničavaju prenosivost koda. Privatna imena su ona koja počinju sa " " i pretvaraju ime
čvora u imenski prostor. Na primjer, čvor1 u imenskom prostoru /wg/ će imati privatni imenski
prostor /wg/node1. Ova imena su korisna za prosljed̄ivanje parametara odred̄enom čvoru preko
servera parametara.
za dinamičko učitavanje biblioteka u C++ kodu, i "filteri" paket za obradu podataka pomoću
niza filtera. "Urdf" paket takod̄er definira XML format za predstavljanje modela robota i obez-
bjed̄uje C++ parser.
Parametarski Server
Parametarski server je komponenta ROS sistema koja se nalazi u ROS Master-u i služi za skla-
dištenje i preuzimanje parametara različitih tipova podataka. API parametarskog servera je
implementiran putem protokola XMLRPC, što omogućava laganu integraciju sa ROS klijent-
skim bibliotekama i veću fleksibilnost u skladištenju i preuzimanju podataka. Parametarski
server može pohraniti osnovne XML-RPC skalare, liste i binarne podatke kodirane base64. On
takod̄er može pohraniti rječnike, ali oni imaju posebno značenje jer se koriste za predstavljanje
imenskih prostora u hijerarhijskoj strukturi. Koristeći XMLRPC API, moguće je upućivati po-
zive parametarskom serveru i koristiti njegove funkcije, čak i bez potrebe za korištenjem ROS
klijentske biblioteke. Detaljan popis API-ja parametarskog servera može se naći u dokumenta-
ciji.
Čvor
ROS čvor je softverska jedinica koja se izvodi na računalu i koja se koristi za odred̄enu funk-
cionalnost u okviru ROS sistema. Čvorovi se mogu komunicirati jedni s drugima koristeći
ROS mehanizme za objavljivanje i pretplaćivanje na teme, te takod̄er mogu koristiti ROS us-
luge za med̄usobnu komunikaciju. Čvorovi se spajaju na ROS glavni poslužitelj (Master), koji
služi kao početna točka za uspostavljanje komunikacije izmed̄u čvorova. ROS čvor ima više
API-ja, uključujući podred̄eni API koji se koristi za primanje povratnih poziva od glavnog i za
Transport Topic-a
U ROS-u, postoje različiti načini za slanje podataka izmed̄u čvorova, od kojih svaki ima svoje
prednosti i nedostatke, ovisno o specifičnoj aplikaciji. TCP je široko korišten zbog svoje jed-
nostavnosti i pouzdanosti, ali može biti neprikladan za mreže s velikim gubitkom podataka
poput WiFi-ja ili ćelijskih modema. U takvim situacijama, UDP je bolji izbor jer ne pokušava
ponovno slati izgubljene pakete. ROS ne preferira niti jedan transport, već dopušta čvorovima
da pregovaraju o vezi preko XMLRPC-a i koriste odgovarajući transport za razmjenu podataka
o temama. Ovaj transport može biti TCP ili UDP, a oba imaju svoje specifične protokole za pri-
jenos podataka. XMLRPC se koristi samo za pregovaranje o vezama, a ne za prijenos podataka
izmed̄u čvorova. Kada se dva čvora povežu, oni razmjenjuju informacije o tipu poruke i nazivu
teme, a zatim izdavač počinje slati serijalizirane podatke poruke direktno preko veze koristeći
odgovarajući transport.Ukratko, ROS omogućava čvorovima da koriste različite transporte za
komunikaciju, a XMLRPC se koristi samo za pregovaranje o vezama izmed̄u čvorova. Čvorovi
se direktno povezuju i razmjenjuju podatke, bez posredovanja od strane Mastera. To omogućava
fleksibilnost u odabiru transporta i prilagodljivost različitim mrežnim okruženjima.
vizualizirali podaci laserskog skeniranja, pokreće se rviz čvor i pretplaćuje se na temu skeni-
ranja. Nakon pretplate, rviz čvor počinje da prima LaserScan poruke i prikazuje ih na ekranu.
Oba čvora su nezavisna od jedna drugog i mogu se pokrenuti, ugasiti i ponovo pokrenuti u bilo
kom redoslijedu bez ikakvih grešaka. Da bi se povezali čvorovi laser_viewer i hokuyo_node,
koristi se usluga imena koja se obezbjed̄uje od strane master čvora. Master čvor ima dobro poz-
nati XMLRPC URI koji je dostupan svim čvorovima. Prije nego što se tema objavi po prvi put,
čvor se oglašava da želi da objavi na toj temi i šalje masteru, putem XMLRPC-a, informacije o
publikaciji, uključujući tip poruke, naziv teme i URI čvora za objavljivanje. Master održava ove
informacije u tabeli izdavača. Kada se čvor pretplati na temu, komunicira sa masterom putem
XMLRPC-a i šalje mu iste informacije (tip poruke, ime teme i URI čvora). Master održava ove
informacije u tabeli pretplatnika i vraća pretplatniku trenutnu listu URI-ja izdavača. Pretplat-
nik će takod̄er primati ažuriranja od mastera kako se lista izdavača mijenja. Na osnovu liste
izdavača, pretplatnički čvor spreman je da pokrene veze specifične za transport.
* * *
U ovom poglavlju su opisani osnovni koncepti ROS-a. U nastavku će biti opisani osnovni
koncepti QT tehnologije.
2.2 QT tehnologija
Qt se koristi za razvoj različitih vrsta aplikacija, uključujući grafičke korisničke interfejse (GUI)
za desktop aplikacije, igre, mobilne aplikacije i embedded sisteme. Okvir pruža veliki broj
alata i biblioteka za razvoj aplikacija, uključujući widgete za korisnički interfejs, alate za rad
sa podacima, podršku za različite grafičke formate i mnoge druge. Qt takod̄e uključuje QML,
jezik za razvoj interaktivnog korisničkog interfejsa za mobilne aplikacije i embedded sisteme.
Qt je dostupan pod različitim licencama, uključujući GPL i komercijalnu licencu.
2.2.5 QT widgets
Qt Widget modul omogućava razvoj korisničkih interfejsa pomoću standardnih widget-a kao
što su dugmad, polja za unos teksta, izbornici i drugi. Qt Designer je alat za dizajn korisnič-
kih interfejsa koji se može koristiti za izradu GUI-ja zasnovanih na widgetima. On omogućava
vizuelno dizajniranje prozora i formi sa widgetima i automatski generiše kod za njih. Qt De-
signer se može koristiti samostalno ili se može integrisati u Qt Creator da bi se olakšao razvoj
projekata. On takod̄e omogućava promjenu izgleda widget-a pomoću stilova i tema.
• 7 inčni ekran na dodir: X100 dolazi sa 7 inčnim ekranom na dodir, što omogućava koris-
niku da interaktivno kontroliše robota.
• Nominalno vrijeme rada od 4 sata: X100 ima vrijeme rada od 4 sata, što omogućava dulje
vrijeme rada bez potrebe za punjenjem.
itemDimenzije od 40 cm širine: X100 je kompaktnog oblika sa širinom od 40 cm, što
omogućava lakše kretanje po različitim prostorima.
• Baterije: X100 dolazi sa dva seta baterija koje se mogu zamijeniti u vrućem stanju za
samo nekoliko sekundi bez isključivanja robota, što omogućava produženu upotrebu i
neprekidan rad.
• Korisna opterećenja: Dizajn šasije robota omogućava montiranje tereta na gornju, straž-
nju i prednju stranu robota bez ugrožavanja stabilnosti. Šasija je dizajnirana s niskim
težištem koje pomaže da robot bude stabilan i siguran s različitim veličinama i konfigu-
racijama nosivosti, što omogućava maksimalnu fleksibilnost prilikom postavljanja tereta
na robota.
• Compute Power: Nvidia Xavier NX - X100 dolazi sa Nvidia Xavier NX, moćnim ugrad̄e-
nim računarom koji je prilagodljiv za intenzivno mašinsko učenje i aplikacije mašinskog
vida.
• Softver: ROS - X100 podržava ROS iz kutije, što omogućava lako pokretanje projekata.
• Dodaci: Senzori, aktuatori i kamere se mogu lako povezati sa X100. Ovo omogućava
fleksibilnost prilikom postavljanja dodatnih komponenti za različite aplikacije.
• Dvaput kliknuti na x100.php.html kako biste otvorili web pretraživač i kliknite na start
teleop.
Nadalje, Ovo su upute za povezivanje robota x100 na internet. Korisnik može koristiti ekran
osjetljiv na dodir da isključi hotspot i poveže se na svoju WiFi mrežu. Da biste to učinili, klik-
nite na wifi simbol u gornjem desnom kutu, kliknite na prekid veze i odaberite svoju wifi mrežu
i unesite lozinku. Takod̄er se navodi korištenje CLI-ja za uključivanje i isključivanje hots-
pota. Da biste to učinili, idite u /etc/NetworkManager/system-connections, kopirajte naziv vaše
mreže i upišite naredbu "sh hotspot_off.sh –ssid="vaš WifiSSID" za isključivanje hotspota ili
"sh hotspot_off.sh –ssid="vaš WifiSSID" za ponovno uključivanje. Korisnik može koristiti CLI
da uključi i isključi hotspot. To se radi tako što se navigira do /etc/NetworkManager/system-
connections direktorijum kucanjem "cd /etc/NetworkManager/system-connections" i zatim ku-
canjem "ls" da se vide poznate mrežne veze. Korisnik treba da kopira ime svoje mreže i kuca
naredbu "sh hotspot_off.sh –ssid="vaš WifiSSID" da bi isključio hotspot ili "sh hotspot_off.sh
–ssid="vaš WifiSSID" da ga ponovo uključi. Robot x100 se takod̄e može koristiti u simuli-
ranim okruženjima koristeći ROS i Gazebo simulaciju. Da bi se to uradilo, korisnik treba da
klonira x100_gazebo repozitorijum u svoj catkin_ws/src/ ili u postojeći x100_robot/ radni pros-
tor. Zatim treba da pokrene naredbu catkin_make iz foldera catkin_ws, i naredbu "roslaunch
x100_gazebo x100_sim.launch" u novom terminalu da bi pokrenuo x100 u Gazebo-u. Korisnik
sada treba da može da vidi x100 u Gazebo-u. Pokrenite datoteku X100_base.launch i pretplatite
se na sljedeće teme:
Objavljene teme:
2.4 QT Creator
2.4.1 Hello World program
Nadalje pokazat cemo u nastavku kako napraviti jednostavan "Hello world!" program u QT
creator.
• Sada se pritisne na dugme za kreiranje novog projekta. Te se dobije sljedeci prozor. 2.5 b
(a) (b)
Slika 2.5
• Sada se definiše ime projekta te, što će ujedno biti i naziv direktorije gdje je sačuvan
projekat.2.6 b
(a) (b)
Slika 2.6
(a) (b)
Slika 2.7
(a) (b)
Slika 2.8
• Nakon klika na dugme za završetak otvoriće se glavni program. Kao što se može vidjeti
na donjoj slici.2.9 a
• Kada se pokrene aplikacija dobije se rezultujući prozor kao na slici. 2.9 b
(a) (b)
Slika 2.9
• Otvorena vitičasta zagrada : Ovo označava početak bloka koda glavne funkcije.
• QApplication a(argc, argv); : Ova linija kreira novi QApplication objekt nazvan a,
proslijed̄ujući argc i argv kao argumente. Ovo inicijalizira Qt aplikaciju i postavlja petlju
dogad̄aja.
• Zatvorena vitičasta zagrada: Ovo označava kraj bloka koda glavne funkcije.
• return a.exec(); : Ova linija pokreće petlju dogad̄aja za QApplication objekt i čeka da se
korisnički dogad̄aji dogode. Kada korisnik zatvori prozor aplikacije, petlja dogad̄aja se
zaustavlja i ova linija vraća izlazni kod aplikacije.
Izrada QT aplikacije
Eksperimentalni rezultati
Sadržaji koji se mogu uključiti u Priloge su: izvod̄enje jednačina i formula, detalji važnijih
softverskih programa, razne tabele i dijagrami, karkateristike i performanse ili opisi opreme i
komponenti koje su korištene u disertaciji/radu. Mogu se takodjer uključiti konstrukcioni crteži
ili električne sheme.
U ovom prilogu prikazane su neke od funkcije koje se mogu koristiti prilikom oblikovanja
rada i prikaza rezultata istraživanja korištenjem LATEXa.
T : xB 7→ xA ⇔ T (xB ) = xA . (A.1)
Matematičke relacije se u LATEXrazvojnom okruženju automatski numeriraju. Med̄utim, da
bi se pojedina relacija (slika, tabela) referencirala u tekstu, potrebno je da se svakoj relaciji
(slici, tabeli) dodijeli pogodna labela npr. \label{MojaRelacija}, a potom referencira
u .tex fajlu sa \ref{MojaRelacija}. Na taj način će se LATEXpobrinuti za odgovarajuće
kros-referenciranje.
A.2 Slika
Slika A.1 služi kao primjer uključivanja slike u tekst. Relacije, slike i tabele se automatski
numeriraju u LATEXu, i to sa oznakom brojpoglavlja.brojslike (npr. u Poglavlju 3 se numeriraju
sa 3.1, 3.2, ... neovisno od toga u kojoj sekciji ili podsekciji se nalaze).
A.3 Tabela
Formiranje tabele prikazano je na primjeru u Tabeli A.1. Za razliku od naslova slika, naslov
tabela stoji iznad odgovarajućih tabela u tekstu.
A.4 Landscape
Postavljanja stranice u prikaz landscape prikazano je umetanjem izduzene Slike A.3 u lands-
cape format papira.
Slika A.1: Primjer naslova slike - uputstvo za traženje bibiografskih referenci na Google Scholar.
Slika A.2: Primjer dijagrama - veličina i tip fonta na slici bi trebao odgovarati veličini i tipu fonta u
tekstu
red 1 1 2 3
red 2 3 2 1
red 3 E = mc2 2 3
[1] Hajnal, J. V., Hill, D., Hawkes, D. J., (ur.), Medical Image Registration. Boca Raton, USA:
CRC Press LLC, 2001.
[2] Sampat, M. P., Markey, M. K., Bovik, A. C., “Computer-Aided Detection and Diagnosis
in Mammography”, in Handbook of Image and Video Processing, Bovik, A., (ur.). Amster-
dam: Elsevier Academic Press, 2005, str. 1195-1217.
[3] Sim, T., Baker, S., Bsat, M., “The CMU Pose, Illumination, and Expression Database”,
IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 25, No. 12, Decem-
ber 2003, str. 1615-1618.
[4] Wirth, M. A., Choi, C., Jennings, A., “A Nonrigid-Body Approach to Matching Mammo-
grams”, in Seventh International Conference on Image Processing and Its Applications,
Manchester, UK, July 1999, str. 484-488.
[5] Williams, J., “Narrow-band Analyzer”, Doktorski rad, Harvard University, Cambridge,
MA, SAD, 1993.
[6] Jones, J., “Networks”, dostupno na: http://www.atm.com (28. srpnja 2012.).
[7] R Core Team, R: A Language and Environment for Statistical Computing, R Foundation
for Statistical Computing, Vienna, Austria, 2012, dostupno na: http://www.R-project.org
uključivanje slike, 24