analizimi dhe krahasimi i algoritmit rapidly-exploring
TRANSCRIPT
University of Business and Technology in Kosovo University of Business and Technology in Kosovo
UBT Knowledge Center UBT Knowledge Center
Theses and Dissertations Student Work
Fall 10-2016
ANALIZIMI DHE KRAHASIMI I ALGORITMIT RAPIDLY-EXPLORING ANALIZIMI DHE KRAHASIMI I ALGORITMIT RAPIDLY-EXPLORING
RANDOM TREES DHE HYBRID A* (STAR) TE MODULI I RANDOM TREES DHE HYBRID A* (STAR) TE MODULI I
PLANIFIKIMIT TË RRUGËS TE AUTOMJETET AUTONOME PLANIFIKIMIT TË RRUGËS TE AUTOMJETET AUTONOME
INTELIGJENTE INTELIGJENTE
Plarent Haxhidauti
Follow this and additional works at: https://knowledgecenter.ubt-uni.net/etd
Part of the Computer Sciences Commons
Programi për Shkenca Kompjuterike dhe Inxhinieri
ANALIZIMI DHE KRAHASIMI I ALGORITMIT RAPIDLY-
EXPLORING RANDOM TREES DHE HYBRID A* (STAR) TE
MODULI I PLANIFIKIMIT TË RRUGËS TE AUTOMJETET
AUTONOME INTELIGJENTE
Shkalla Bachelor
Plarent Haxhidauti
Tetor / 2016
Prishtinë
Programi për Shkenca Kompjuterike dhe Inxhinieri
Punim Diplome
Viti akademik 2013 – 2016
Plarent Haxhidauti
ANALIZIMI DHE KRAHASIMI I ALGORITMIT RAPIDLY-
EXPLORING RANDOM TREES DHE HYBRID A* (STAR) TEK
MODULI I PLANIFIKIMIT TË RRUGËS TE AUTOMJETET
AUTONOME INTELIGJENTE
Mentori: MSc. Shkëlqim Berisha
Tetor / 2016
Ky punim është përpiluar dhe dorëzuar në përmbushjen e kërkesave të
pjesshme për Shkallën Bachelor
I
ABSTRAKT
Planifikimi i rrugës, i trajektores dhe optimizimi i asaj rruge janë çështje problemaktike në
fushën e robotikës. Për momentin veturat autonome janë në krye të hulumtimeve nga
industria për shkak të avantazheve që i ofrojnë. Software-i është elementi kryesorë që e
përfshinë autonominë e ofruar nga algoritmat planifikues që janë përgjegjës për marrjen e
vendimeve të rëndësishme.
Përderisa automjeti transporton udhëtarë ose të mira materiale prej një pike fillestare deri në
destinacion, planifikuesi i rrugës përmbanë metoda si kërkimi i shtegu për ta ndjekur,
shmagja e pengesave dhe gjenerimi i trajektoreve që ofrojnë rehati.
Qëllimi i këtij hulumtimi është analizimi i dy algoritmeve që e bëjnë planifikimin e rrugës.
Mblidhen të dhëna dhe krahasohet mes vete, se çka kanë të përbashkët e çka jo. Janë tri fusha
që një automjet inteligjent duhet të fokusohet, gjetja e rrugës, manovra më e sigurtë për
ekzekutim dhe vendosja për trajektoren më të mirë.
Së pari prezentohet algoritmi Rapidly-Exploring Random Tree. Analizohet se si punon dhe
në çfarë raste vepron më mirë. Shikohet nëse ka ndonjë mënyrë për ta përmirësuar në raste
të caktuara. Pastaj prentohet algoritmi Hybrid A* (Star). Edhe ky analizohet dhe tregohet në
cilat skenare të trafikut ka aplikim. Në fund pasi analizës së detajuar dhe krahasimit mes dy
algoritmeve, arrihet në përfundimin se cili ka ka vlerë më shumë në raste të caktuara.
II
MIRËNJOHJE DHE FALËNDERIME
Dëshiroj të falenderoj mentorin Z. Shkëlqim Berisha për mbështetjen dhe motivimin e tij të
vazhdueshëm për arritjen e objektivit të përfundimit të studimeve Bachelor. Ndihma dhe
durimi i tij gjatë zhvillimit të këtij projekti vlerësohet tej mase. Po ashtu dua të falenderoj
familjen për mbështetjen e vazhdueshme përgjatë viteve të studimit dhe mirëkuptimin e tyre.
III
PËRMBAJTJA
LISTA E FIGURAVE .......................................................................................................... VI
LISTA E TABELAVE ....................................................................................................... VII
FJALORI I TERMAVE ..................................................................................................... VII
1 HYRJE ............................................................................................................................ 1
2 SHQYRTIMI I LITERATURËS .................................................................................... 2
2.1 Hyrje ........................................................................................................................ 2
2.2 Kontrolli i lëvizjeve ................................................................................................. 3
2.2.1 Metodat kinetike të kontrollit ...................................................................................... 3
2.2.2 Sistemi linear i kontrollit ............................................................................................. 5
2.2.3 Metoda parashikuese e kontrollit ................................................................................ 5
2.3 Perceptimi i mjedisit ................................................................................................ 5
2.3.1 Detektimi i rrugës dhe korsisë ..................................................................................... 6
2.3.2 Detektimi dhe njohja e shenjave të trafikut ................................................................. 6
2.4 Lokalizimi ................................................................................................................ 7
2.5 Planifikimi i rrugës dhe marrja e vendimeve ........................................................... 7
3 DEKLARIMI I PROBLEMIT ...................................................................................... 10
3.1 Hyrje ...................................................................................................................... 10
3.2 Motivi prapa projektit ............................................................................................ 11
3.3 Qëllimi dhe objektivat ........................................................................................... 11
3.3.1 Qëllimi i përgjithshëm............................................................................................... 11
3.3.2 Objektivat .................................................................................................................. 12
3.4 Struktura e punimit të diplomës ............................................................................. 12
4 METODOLOGJIA ........................................................................................................ 13
IV
4.1 Hyrje ...................................................................................................................... 13
4.2 Algoritmi Rapidly-Exploring Random Trees ........................................................ 15
4.2.1 Zgjedhja më e mirë e komandës së kontrollit ........................................................... 17
4.2.2 Kërkimi vizual i ngasësit ........................................................................................... 18
4.2.3 Struktura e modulit për planifikim të rrugës ............................................................. 20
4.2.4 Ndërveprimi i RRT me near dhe far point ................................................................ 21
4.2.5 Funksioni metrik ....................................................................................................... 22
4.2.6 Metoda B-Spline për optimizim të rrugës ................................................................. 23
4.2.7 Verifikimi i plotsueshmërisë së rrugës dhe vlerësimi i rrezikut ................................ 23
4.2.8 Disavantazhi i planifikuesit të bazuar në algoritmin RRT ........................................ 26
4.2.9 Simulimi e algoritmit RRT në Matlab ...................................................................... 27
4.3 Algoritmi Hybrid A* (Star) ................................................................................... 30
4.3.1 Analiza e funksionimit të Hybrid A* (Star) .............................................................. 31
4.3.2 Struktura e kërkimit të rrugës .................................................................................... 32
4.3.3 Përmirësimet për Hybrid A* (Star) ........................................................................... 33
4.3.4 Aplikimi i Hybrid A* duke u bazuar në grafe ........................................................... 37
5 REZULTATE ................................................................................................................ 41
5.1 Rezultati pas krahasimit dhe analizimit të RRT dhe Hybrid A* (Star) ................. 41
5.2 Përmbushja e qëllimit kryesorë duke përmbushur objektivat ................................ 42
6 PËRFUNDIME ............................................................................................................. 44
6.1 Përfundimet e arritura për problemin e deklaruar .................................................. 44
6.2 Puna e mëtutjeshme ............................................................................................... 44
7 REFERENCA ............................................................................................................... 46
7.1 Referencat në tekst ................................................................................................. 46
7.2 Referencat në figura ............................................................................................... 50
V
8 APENDIKS ................................................................................................................... 52
8.1 Kodi që simulon algoritmin RRT në MATLAB.................................................... 52
8.1.1 Kodi për startimin e ekzekutimit të algoritmit .......................................................... 52
8.1.2 Kodi që e krijon hapësirën 3D .................................................................................. 53
VI
LISTA E FIGURAVE
Figura 1. Pseudokodi për Rapidly-Exploring Random Trees
Figura 2. Pikat e koncentrimit gjatë ngasjes së veturës
Figura 3. Struktura e përgjithshme e modulit të planifikimit të rrugës
Figura 4. (a) Shpërndarja Gausiane për near point dhe (b) far point
Figura 5. Dallimi mes rrugës pa aplikim të B-Spline (a) dhe asaj me aplikim (b).
Figura 6. Harta me të dhëna që makina e merr si input
Figura 7. Rasti i gjenerimit të rrugës së drejt nga (b) lattices, (c) random sampling dhe (d)
RRT
Figura 8. Rasti i gjetjes së trajektores në rrugë me kthesë. (b) Lattice, (c) random sampling
dhe (d) RRT
Figura 9. Simulimi i gjendjes së parë të RRT në ambient 3D.
Figura 10. Simulimi i gjendjes së fundit të RRT në ambient 3D.
Figura 11. a) A* bashkon pikat në mes të qelive, b) D* bashkon skajet e qelive dhe lejon
shtigje lineare, c) Hybrid A* bashkon gjendjet me koston më të ulët dhe aplikon lëmimin
në kthesa apo ndryshe pruning.
Figura 12. a) Kërkimi në hapësirën 2D i shpalos 20.000 pika. b) Kërkimi në hapësirë pa
pengesa gjen destinacionin me 12.000 pika. c) Nëse e njejta mënyrë si nën b) përdoret në
raste më komplekse, numri total i pikave për të gjetur mbarimin është 37.000.
d) Kombinimi i dy mënyrave në raste kompleke jep rezultat shumë të kënaqshëm. Me
vetëm 11.000 pika gjendet destinacioni.
Figura 13. Planifikimi i pikës së ardhshme
Figura 14. Planifikimi i dy pikave të ardhshme
Figura 15. Pseudokodi për Hybrid A* me planifikim të dy pikave të ardhshme.
Figura 16. Kërkimi inkremental dhe me Reed – Shepp
Figura 17. a) Mjedisi 2D pa përdorimin e grafeve dhe b) mjedisi që përdorë rrjetën e
grafeve. Vendet e theksuara me ngjyrë të gjelbër janë më afër desinacionit, ndërsa vendet
me ngjyrë të kuqe janë ato shumë më larg pikës përfundimtare.
Figura 18. Me vijën rozë është paraqitur aplikimi i Reed – Shepp në grafin me segmente.
VII
Figura 19. Dy imazhe e para lartë nuk e aplikojnë kërkimin në graf. Dy imazhet e tjera poshtë
tregojnë se sa shumë është përmirësuar shpejtësia e kërkimit kur përdoren grafe.
LISTA E TABELAVE
Tabela 1. Rezultatet e fundit të simulimit të algoritmit RRT
Tabela 2. Outputet e algoritmit RRT të testuar në Matlab
Tabela 3. Outputet e algoritmit Hybrid A* të bazuar në studimin e përmendur
Tabela 4. Krahasimi mes RRT dhe Hybrid A*
FJALORI I TERMAVE
AIA – Automjetet inteligjente autonome
DARPA - Defense Advanced Research Projects Agency
RRT – Rapidly-Exploring Random Trees
1
1 HYRJE
Përgjatë viteve fusha e zhvillimit të automjeteve inteligjente ka arritur të bëhet një prej
degëve më të rëndësishme të sistemit të transportit. Këto automjete ofrojnë mundësi për
ndryshime rrënjësore të sistemit transportues. Paisja e makinave me teknologjinë që ofron
autonomi në ngasje, me shumë gjasë do të ulte numrin e aksidenteve në trafik dhe ndotjen e
ambientit nga makinat. Ideja e kalimit të kontrollit nga një drejtues tek vet makina, është një
hap gjigant që do të kërkoj kohë derisa të pranohet nga të gjith. Zhvillimi i kësaj teknologjie
ndikon direkt në progresin e industrive ku përdoren makineritë.
Një automjet autonom mund të definohet si një mjet që e di se cili është veprimi më i mirë i
mundshëm për tu bërë në një moment të caktuar. Tjetër veti e veturave të mençura është
kuptimi i ambientit dhe normalisht ngasja e saj.
Pengesat teknologjike për zhvillimin e një AIA nuk janë shumë të mëdha. Problemi pastaj
qëndron në krijimin e rregulloreve që lejojnë operimin e tyre. Sfida më e madhe e
inxhinierëve është krijimi i software-ve të besueshëm që marrin vendime për manovrimin e
veturës. Sot ka elemente të teknologjisë autonome që aplikohen në veturat e sotme. Duke
filluar prej sistemit anti-lock braking (ABS) deri tek adaptive cruise control. Sfida më e
madhe qëndron në integrimin e një sistemi që merr vendime për veturën duke u bazuar në
faktorët e ambientit. Aftësi tjetër që një AIA duhet të ketë është perceptimi i mjedisit për
rreth dhe lokalizimi i saj në atë mjedis. Njohja e shenjave të trafikut është një domosdoshmëri
në mënyrë që të respektohen rregullat e trafikut.
Paqartësi tjetër është se si një automjet autonom do të reagonte ndaj automjeteve tjera në
trafik që kanë drejtues. Drejtuesit mund të bëjnë manovrime të papritura, dhe ka gjasë
shkaktojnë reaksion zinxhir tek katër ose pesë vetura tjera. Për këtë shkak reagimet e një
veture inteligjente në raste të vështira nuk janë plotësisht të qarta. Testimi i këtij rasti nuk
është bërë në një situatë reale, për shkak se mund të jetë rrezik për drejtuesit e tjerë. Prej të
gjitha teknologjive që e përbëjnë një automjet autonom inteligjent, ajo për planifikim të
veprimeve dhe marrje të vendimeve luan rolin kyq. Kjo për shkak se e bën një veturë “të
mençur” dhe që merr vendimet e duhura në trafik.
2
2 SHQYRTIMI I LITERATURËS
2.1 Hyrje
Sistemet e automjeteve inteligjente autonome janë bërë një fushë premtuese për të ardhmen.
Aftësitë e AIA janë zgjeruar nga një cruise control i thjeshtë, në adaptive cruise control,
mbajtja automatike e korsisë, planifikimi inteligjent i rrugës, navigimi në rrugë të pa
strukturuar (off-road) etj. Teknologjitë e ngarsjes autonome kanë zotësinë të ofrojnë
komoditet dhe siguri për ngasësin. Këtë e bëjnë duke shmangur disa aksidente që i shkaktonte
gabimi i shoferit. Megjithatë ende nuk është zhvilluar një AIA që mund të bashkëveproj me
vetura të tjera në një trafik të ngarkuar [3].
Ende ka probleme në dizajnimin dhe implementimin e disa teknologjive në veturat
autonome. Roli i njeriut në skemën e kontrollit të automjetit autonom është i panevojshëm.
Sistemi pa një drejtues duhet të marr të dhëna nga mjedisi dhe të bëj manovrime në bazë të
tyre. Një ngasës i pranon të dhënat nga ambienti, dhe vendos për veprimin më të mirë. Tani
një AIA duhet ta kryej këtë proces. Ky proces kërkon sensorët për perceptim të ambientit.
Po ashtu kompjuter dhe software që bëjnë procesimin e të dhënave që mirren nga sensorët,
dhe planifikojnë veprimet e veturës. Një mënyrë për përmbledhjen e këtij procesi është
modeli Sense-Plan-Act për zhvillimin e robotikës [4]. Ky është model që mundëson ndarjen
e detyrave për dizajn në fragmente, që mundëson lehtësim në implementim të sistemit.
Çdo sistem robotik duhet të jetë në gjendje të lokalizoj veten, perceptoj mjedisin rrethues, të
merr vendime ndaj reagimeve të mjedisit dhe të kontrolloj lëvizjet e veta [5]. Automjetet
inteligjente autonome nuk bëjnë përjashtim. Për këtë shkak shumë implementime të
sistemeve robotike aplikohen në AIA.
Në kontekst të kësaj teme, përmbledhen katër veti të AIA:
• Kontrolli i lëvizjeve
• Perceptimi i mjedisit
• Lokalizimi
• Planifikimi i rrugës dhe marrja e vendimeve.
3
2.2 Kontrolli i lëvizjeve
Një nga sfidat e që lidhen me robotikën dhe navigimin e veturave autonome është kontrolli i
lëvizjeve. Mund të duket e thjeshtë detyra e ekzekutimit të instruksioneve. Ato merren nga
software-i për planifikim të rrugës, por për shkak të shumë inputeve në software, procesimet
janë të shumta. Detyra e kontrollit të lëvizjeve të një AIA është përgatitja e mjetit për lëvizje
të paracaktuar. Këtu qëllimi është minimizimi i gabimeve të sistemit gjatë lëvizjes prej
gjendjes momentale deri në gjendjen e dëshiruar. Kjo arrihet duke i dhënë inpute makinës që
të komandohet në mënyrë të paramenduar, duke përdorur funksione dhe procedura
matematikore. Ka disa lloje të metodave që janë zhvilluar specifikisht për kontroll të
lëvizjeve [6].
2.2.1 Metodat kinetike të kontrollit
Hulumtimet për sistemet e kontrollit të ndjekjes së rrugës për AIA kanë quar në
implementimin me sukses të metodave kinetike të kontrollit. Një nga metodat e para kinetike
është Pure Pursuit, e zhvilluar në Universitetin Carnegie Mellon [7]. Kjo metodë u
popullarizua për shkak të thjeshtësisë dhe perfomancës që e ka.
Implementimi i algoritmit pure pursuit për ndjekjen e rrugës merr në konsiderim stabilitetin
dhe performancën e automjetit. Ky algoritëm përdoret për kalkulimin e harkut ose lakimit që
automjeti duhet të bëj gjatë lëvizjes. Kjo bëhet duke zgjedhur një pikë të caktuar para mjetit,
dhe duke kalkuluar distancën e rrugës që duhet të përshkruhet për tu arrituar ajo pikë. Këtu
lidhet analogjia me emrin e algoritmit pure pursuit, ku automjeti gjithmonë është duke e
ndjekur një pikë të lëvizshme para tij që gjendet në një distancë të caktuar. Në mënyrë që
makina të mos prejë kthesat përgjatë rrugës, një hark rrethor imagjinohet mes makinës dhe
pikë së caktuar të cilën e ndjek. Automjeti e përcjell vijën tangjente në çdo pikë të harkut.
Pika e caktuar para automjetit, kthimi gjysëmrrethor më i vogël që mund ta bëj dhe këndi i
timonit janë tre parametrat që merren parasysh gjatë lëvizjes. Hapat e algoritmit Pure Pursuit
janë [8]:
1. Përcaktimi i lokacionit të makinës
2. Gjetja e pikës më të afërt mes rrugës (path) dhe makinës
4
3. Gjetja e pikës së caktuar para mjetit që duhet ndjekur
4. Kalkulimi i harkut rrethor përgjat rrugës
5. Përcaktimi i këndit të timonit
Këta pesë hapa përsëriten gjatë tërë kohës sa është automjeti në lëvizje. Rruga ndahet në
segmente. Algoritmi përcakton cili është segmenti më i afërt me makinën dhe më pas
kalkulohet këndi i timonit që të ndjek sa më afër pikën lakoren.
Tjetër metodë kinetike e kontrollit është Vector Pursuit. Kjo metodë u zhvillua nga Jeffrey
S. Witt [9]. Erdhi si tentim për përmirësimin e Pure Pursuit, ku Witt në analizën gjeometrike
konsideron edhe trajektoren më të lehtë për automjetin. Vector Pursuit merr në konsiderim
orientimin dhe distancën e mjetit deri te pika e dëshiruar. Ky algoritëm bazohet në teorinë e
vidhave (theory of screws) [10]. Kjo teori përshkruan lëvizjen e një trupi në një sistem të
koordinatave. Në rastin e AIA, automjeti është trupi në sistem koordinativ. Me këtë teori
përshkruhet lëvizja e makinës prej pozitës dhe orientimit aktual, në pozitën dhe orientimin
përfundimtar. Kjo bën që arrijta në pikën e dëshiruar bëhet në orientimin e duhur. Në
zhvillimin e këtij algoritmi përdoret dy parime të teorisë së vidhave (theory of screws),
transferimi (lëvizja e mjetit) dhe rrotullimi (ndërrimi i drejtimit të mjetit). Ky algoritëm
përmbledhet në tre hapa [11].
Hapi i parë ndahet në dy pjesë. Pjesa e parë llogarit lëvizjen prej pozitës fillestare të makinës
deri të pika që e ndjek makina. Pjesa e dytë llogarit ndryshimin e rrotullimit ose orientimit të
makinës nga pika fillestare deri të pika që e ndjek makina. Orientimi i dëshiruar i makinës
pasi të arrijë te pika që e ndjek, definohet si drejtimi që ka makina në vijën tangjente kur
arrin në atë pikë.
Hapi i dytë i merr outputet e pjesës së parë dhe të dytë, te hapi i parë i algoritmit, dhe kalkulon
rrugën detajisht. Hapi i tretë përcakton pikën përfundimtare në sistemin koordinativ.
Algoritmat Pure Pursuit dhe Vector Pursuit janë teknika gjeometrike që përdorin një pikë
para makinës për llogaritje të lëvizjes në hapsirë. Vector Pursuit ka një avantazh ndaj Pure
Pursuit për shkak të marrjes parasysh të orientimit të automjetit kur arrin në destinacion.
Përparsi tjetër është se vetura e zvogëlon nevojën e ndërrimit të këndit të timonit përgjat
rrugës. Të vetmin avantazh që e ka Pure Pursuit është numri më i vogël i kalkulimeve.
5
2.2.2 Sistemi linear i kontrollit
Sistemet lineare të kontrollit ofrojnë implementim të thjeshtë dhe saktësi të lartë në kontroll
të veturës [6]. Kjo për shkak të testimeve të shumta që janë kryer. Mjetit i jepet komanda të
ndjek një segment rruge të paracaktuar. Lëvizja e mjetit ishte shumë jo stabile për shkak se
shpejtësia ndikonte direkt në të. Sa më e madhe shpejtësia, aq më e vështirë bëhej përcjellja
e rrugës së paracaktuar. Po ashtu vazhdimi nga një segment në tjetrin shkaktonte çorientim
të automjetit.
Kjo metodë u përmirësua dukshëm nga Seibum Ben Choi [12]. Tani parametrat janë
dizajnuar të jenë të ndryshueshëm. Kjo u bë për shkak se gjatë lëvizjes parametrat që pranon
mjeti ndryshohen shpesh. Probleme si çekuilibri i shtypjes së ajrit në goma, erërave anësore,
balancit jo të plotë mes timonit dhe rrotave, shtynë avancimin e kësaj metode. Këtu shihet se
si përdoret një Closed-Loop sistem i kontrollit, i cili ofron rritje të stabilitetit për automjetet
inteligjente autonome.
2.2.3 Metoda parashikuese e kontrollit
Metoda parashikuese e kontrollit është metodë e avancuar që përdoret në industri për
optimizimin e problemeve të kontrollit me shumë kufizime [13]. Një formë e kësaj metode
është kontrolli i largimit të horizontit. Me këtë metodologji, problemi i kontrollit optimizohet
kur në një periudhë kohore të caktuar bëhet kalkulimi se si të shkohet deri tek pika e caktuar.
Kalkulimi bëhet pasi të merren informatat nga sensorët e AIA. Ky proces përsëritet në
vazhdueshmëri. Rezultatet e aplikimit të kësaj metode ishin pozitive, por për shkak të
procesimeve të shumta kompjuterike, nuk aplikohet.
2.3 Perceptimi i mjedisit
Teknologjia e perceptimit të mjedisit është moduli i parë që aktivizohet pas startimit të një
automjeti inteligjent autonom. Kupton strukturën e ambientit rrethues të makinës dhe krijon
një model të saj. Funksionet kryesore të saj janë detektimi i rrugës dhe korsisë, dhe njohja e
shenjave të trafikut [14].
6
2.3.1 Detektimi i rrugës dhe korsisë
Rrugët i ndajmë në dy lloje, rrugë të strukturuara dhe rrugë të pastrukturuara. Rrugët e
strukturuara janë rrugë me shenja të korsive që dallohen lehtë, siç janë autostradat dhe rrugët
urbane. Përderisa rrugët janë të shënuara me vija të bardha kufizuese dhe ndarëse, atëherë
bëhet vetëm detektimi i korsisë. Disa sisteme që përdoren për detektimin e korsisë janë
AutoVue, Ralph, Aurora, Scar dhe Gold. Algoritmet e këtyre sistemeve ndahen në dy
kategori, metoda edge based dhe metoda e bazuar në model të shenjës në rrugë [15]. Metoda
edge based përdoret më shumë për shkak të performancës së lartë që e kanë. Problemi tjetër
që e ka kjo metodë është se bazohen në formën dhe dizajnin e rrugës. Nëse rruga është
komplekse, me shumë kthesa, rritet probabiliteti i mundësisë së gabimeve në llogaritjeve.
Disa nga modelet kryesore të rrugëve janë modeli trekëndësh, vi e drejtë, polinomial i rrugës
[16]. Studiuesit pastaj filluan të përshtatnin rrugën në të cilën është AIA me njërin nga
modelet e rrugëve. Këtë e bënë të provonin nëse ishte më e lehtë ta detektonin korsinë e
rrugës. Metoda ishte efikase, por kërkonte kalkulime të shumta për shkak të iteracioneve.
Rrugët e pastrukturuara janë rrugët e pashtruara që nuk janë të shënuara me shenja në tokë.
Rrugë të tilla janë rrugët e parqeve, rurale, malore etj. Detektimi i këtyre rrugëve është më
problematik për shkak të ndryshimit të madh potencial të mjedisit. Hulumtuesit u fokusuan
në kufijtë anësorë të rrugës dhe detektimin i mjedisit që nuk kishe ndryshim të madh [17].
Automjeti inteligjent autonom lëshon rreze me LASER që reflektohen dhe kthehen prapë.
Rrezet e kthyera procesohen dhe përcaktohet rruga më e lehtë që automjeti mund ta ndjek.
Kjo metodë nuk funksionon në mënyrë optimale nëse shfaqet ndonjë pengesë e papritur para
makinës. Reagimi i AIA mund të jetë i dobët dhe të shkaktoj aksident me pengesën.
2.3.2 Detektimi dhe njohja e shenjave të trafikut
Detektimi i shenjave të trafikut është fusha më e re e zhvillimit të automjeteve inteligjente
autonome. Njohja e shenjave të trafikut ndahet në dy kategori, detektimi dhe kategorizimi
[18].
7
Për detektimin e e shenjave së pari shikohet se cfarë forme ka shenja, dhe më pas
kategorizohet se cfarë lloj shenje është. Metoda më e përdorur për detektim është segmentimi
i ngjyrave [18]. Modeli RGB i ngjyrave është gjerësisht i njohur. Spektri i modelit të ngjyrave
RGB ka ndjeshmëri të lartë ndaj intensitetit të dritës. Kjo është arsyeja e përdorimit të gjerë
të segmentimit të ngjyrave, mundësia e detektimit edhe nga intensiteti i ulët i dritës. Pasi
kryhet ky proces, fillon procesi per njohjen e formës së shenjës. Për njohjen e formave
përdoren teknikat të veçanta për secilën formë, të rrumbullakët, katrore, trekëndëshe, shumë
këndëshe.
Klasifikimi i shenjave të trafikut përdorë metoda për përputhjen e shablloneve siç janë LDA,
SVM, ANN etj. Support vector machines (SVM) përdoren për të klasifikuar pjesën e
brendshme të shenjës, numrin, shkonjën ose figurën. Pas kësaj, shenja futen në njërën nga
kategoritë e shenjave, me numër në qendër, shkronja ose figura.
2.4 Lokalizimi
Lokalizimi i saktë automjetit inteligjent autonom është shumë i domosdoshëm, për shkak se
AIA mund të thyej rregullat e trafikut apo edhe të shkaktoj aksident. Momentalisht për
lokalizim të AIA përdoren Global Navigation Satellite System (GNSS). Megjithatë saktësia
e këtij sistemi nuk është mjaftueshme për hapësira të ngushta, sepse sinjali i GNSS mund të
vonohet. Për zgjidhjen e këtij problemi përdoren algoritma map-mathing, detektimi i
imazheve me LASER, LIDAR etj [19].
Me metodën LIDAR, hartat krijohen si imazhe 2D [20]. Secili pixel i imazhit paraqet një
pikë të caktuar në mjedisin e vërtetë dhe kalkulohet një vlerë për atë pikë. Për t’i kalkuluar
ato pika, duhet të llogaritet pozita e secilës rreze që e ka lëshuar radari. Më pas në hartën 2D
paraqiten pikat e rrezeve të kthyera, dhe gjenerohet lokacioni i saktë i automjetit në atë
mjedis.
2.5 Planifikimi i rrugës dhe marrja e vendimeve
Teknologjia e marrjes së vendimeve gjatë lëvizjes së AIA është kyqe për funksionimin e saj
optimal. Teknologjia e planifikimit të rrugës vie në funksion menjëherë pas asaj të
8
perceptimit të mjedisit. Qëllimi kryesor i teknologjisë së planifikimit të rrugës është t’i
sigurojë automjetit rrugën e sigurtë deri te destinacioni [21]. Ta bëj këtë duke marrë në
konsiderim dinamikën e veturës, aftësitë e manovrimit në prezencë të pengesave, dhe duke
ndjekur rregullat e trafikut. Planifikimi është proces që konsumon memorie dhe kapacitetin
hardware-ik të procesimit. Skenarët e ndryshëm në trafikun e dendur të një qyteti kanë shtyrë
në zhvillimin e teknologjisë për marrjen e vendimeve. Algoritmat që i kryejnë këto procese
pranojnë inpute prej të gjitha teknologjive të tjera të AIA.
Ky lloj i algoritmeve ekziston që një kohë të gjatë dhe është aplikuar në automjete të
shkretëtirës, roverët planetarë, trenat e shpejtë. Në përgjithësi, planifikimi i rrugës për
automjetet inteligjente autonome është i ndarë në tri klasa [21]:
• Planifikimi i rrugës
• Zgjedhja e manovrimit
• Planifikimi i trajektorës së lëvizjes
Këto tri klasa ose ndarje të kësaj teknologjie marrin parasysh dinamikën e veturës, pengesat
në rrugë, gjeometrinë e rrugës dhe veprimet që bëjnë të tjerët në trafik.
Rruga ose path, është shtegu që duhet të ndjek automjeti që të arrij destinacionin pa u ndeshur
me pengesa. Prandaj planifikimi i asaj rruge (path) është gjetja e rrugës më të mirë
gjeometrike prej gjendjes momentale tek gjendja përfundimtare e mjetit duke e llogaritur
parametrin kohë. Përcjellja e rrugës më të mirë të mundshme do të thotë respektimi i
rregullave të trafikut dhe shmangja e pengesave.
Manovrueshmëria është karakteristikë e lëvizjes së makinës, që ka lidhje me pozicionimin
dhe shpejtësinë e automjetit në rrugë. Shembuj të saj janë lëvizja drejtë, kthimi
gjysmërrethor, tejkalimi etj. Manovrimi është i pranueshëm të bëhet nëse respektohen
rregullat e trafikut. Për këtë shkak planifikimi i saj është forma më e lartë e inteligjencës së
një AIA, sepse duhet të marr në konsiderim edhe rrugën në të cilën kalon.
Trajektorja paraqitet si një sekuencë e gjendjeve që makina i ka vizituar ose kaluar nëpër to,
duke marrë paraysh parametrat e kohës dhe shpejtësisë. Planifikimi i trajektores ose
gjenerimi i saj, ka lidhje me planifikimin e transformimit të gjendjeve të mundshme të mjetit.
Kjo bëhet duke plotësuar rregullat e kinetikës së veturës dhe dinamikave të saj. Mbi të gjitha
duke marrë në konsideratë rregullat dhe gjendjen e trafikut e momental.
9
Planifikimi i trajektorës ka dy parametra, shpejtësinë ose nxitimin dhe kohën. Gjatë ciklit të
planifikimit, planifikuesi i rrugës gjeneron disa trajektore prej lokacionit aktual të mjetit.
Gjenerimi bëhet duke u bazuar në distancën e lirë që e ka mjeti përpara, shpejtësinë e mjetit
dhe korsitë e lira që mund t’i ketë. Prej atyre disa trajektoreve të gjeneruara, zgjedhet ajo që
i përmbush rregullat e trafikut dhe është më e sigurtë. Ky planifikim i tërë bëhet në intervale
të caktuara kohore dhe kryesisht varet nga frekuenca e marrjes së të dhënave të reja nga
senzorët e automjetit.
10
3 DEKLARIMI I PROBLEMIT
3.1 Hyrje
Gjatë viteve të fundit industria e automobilizmit dhe teknologjisë kanë bërë hapa të mëdhenjë
në zhvillimin e përgjithshëm të tyre. Këto dy industri kanë filluar të bëjnë të mundur
kompjuterizimin e funksionit, që për gati një dekadë, ka qenë njerëzorë, ngarjen e automjetit.
Sot modelet e reja të automjeteve përfshijnë sisteme që lehtësojnë punën e drejtuesit. Kjo ka
shtyrë që viteve të fundit të krijohet një sektorë i ri i zhvillimit për vetura të menqura.
Automjetet inteligjente autonome janë një pjesë e teknologjisë që shtojnë ngarjen e
automjeteve autonome për shkaqe të sigurisë. Në mënyrë që një automjet inteligjent autonom
të funksionoj në trafikun urban, ku mund të ndodhin situata të pa parashikueshme, poashtu
edhe në rrugët jashtë qytetit ku trafiku mund të parashikohet më shumë, një AIA duhet t’i
ketë disa teknologji të implementuara. Një AIA përbëhet prej katër teknologjive: perceptimi
i mjedisit dhe modelimi i saj, lokalizimi dhe ndërtimi i hartës, planifikimi i rrugës dhe marrja
e vendimeve, dhe kontrolli i lëvizjeve.
Një qështje madhore që lidhet me rritjen e prodhimit të autmjeteve janë rritja e numrit të
aksidenteve në trafik dhe bllokimit të trafikut. Për zgjidhjen e këtyre problemeve qeveritë e
shumë shteteve kanë financuar programe për zhvillimin e infrastrukturës së trafikut, ligjeve
dhe rregullave të trafikut dhe edukimit të shoferëve për rregullat e trafikut. Veç kësaj,
institute të hulumtimit kanë zhvilluar projekte për driver assistance dhe safety warning
systems. Si pasojë, të gjitha këto hulumtime në fushën e automjeteve inteligjente kanë bërë
që sistemet e transportit inteligjent të përmirësojnë sigurinë në rrugë dhe të redukojnë numrin
e aksidenteve në trafik. AIA aplikojnë sisteme siq janë Forward Collison Warning, Adaptive
Cruise Control dhe Lane Departure Warning.
Arsyeja kryesore për numrin e madh të aksidenteve në trafik janë ngarja pa vëmendjen e
plotë në trafik dhe ngarja për periudhë të gjatë ku pastaj ulen aftësitë për reagim në kohën e
duhur. Gjatë ngarjes në korsi me trafik të bllokuar shoferët duhet të kryejnë funksione siç
janë ndërrimi i marshit dhe analizimi i lëvizjes së veturave që i ka afër. Duhet të bëjnë
koordinimin hand-foot së paku dhjetë herë brenda një minuti, dhe ka gjasë që shoferi të bëj
gabime dhe të shkaktoj aksident. Me zhvillimin ekonomik, rritjen e veturave në trafik dhe
11
rritjen e numrit të shoferëve të rinjë, është rritur edhe propabiliteti i ndodhjes së aksidenteve
dhe në përgjithsi numri i tyre. Aplikimi i gjerë i AIA do të tregonte përparim të sistemit të
transportit dhe do të tërhiqte institutet e hulumtimit dhe prodhuesit e automjeteve që të
investojnë në AIA.
3.2 Motivi prapa projektit
Automjetet inteligjente autonome dhe teknologjia të cilën e përdorin janë debati më i
shpeshtë në industrinë e automjeteve. Shumë kompani kanë filluar të zhvillojnë këtë
teknologji. Një nga arsyet e studimit dhe zhvillimit të AIA është përmirësimi i sigurisë në
rrugë.
Sipas Organizatës Botërore të Shëndetit, më shumë se 1.3 milion njerëz vdesin çdo vit si
pasojë e aksidenteve në trafik [1]. Në bazë të C2ES rreth 60% e energjisë totale konsumohet
nga transporti rrugor [2]. Këto statistika tregojnë se automjetet shkaktojnë një numër të lartë
të viktimave dhe janë një prej burimeve kryesore për emetimin e gazit që ndotë ambientin.
Ka patur përpjekje për zgjidhjen e këtyre problemeve por deri më tani nuk ka pasur ndonjë
efekt të madh. Zhvillimi i automjetet inteligjente autonome do të mund të kishte ndikim në
uljen e numrit të fatkeqësive në trafik dhe në mbrojtjen e ambientit.
3.3 Qëllimi dhe objektivat
3.3.1 Qëllimi i përgjithshëm
Zhvillimi i automjeteve inteligjente autonome do të jetë çështja kryesore në të ardhmen e
industrisë automobile. Nga katër teknologjitë që përbëjnë thelbin e AIA, ajo për planifikim
të rrugës dhe vendim marrje është më pak e njohur. Prandaj dhe qëllimi i këtij projekti është
hulumtimi dhe analizimi i algoritmeve që e bëjnë një veturë ‘të menqur’.
12
3.3.2 Objektivat
Për të realizuar qëllimin e përgjithshëm, duhet të arrihen këto objektiva:
• Të analizohet struktura e përgjithshme e AIA.
• Analizimi dhe simulimi i algoritmit Rapidly-Exploring Random Trees.
• Analizimi dhe simulimi i algoritmit Hybrid A* (Star).
• Të simulohen algoritmet duke përdorur veglën specifike për procesim të imazheve
te Matlab.
• Të krahasohen ato algoritme dhe të nxirren përdundime për secilën.
3.4 Struktura e punimit të diplomës
Struktura e këtij punimi të diplomës është e përbërë nga tre pjesë, secila prej të cilave
përqendrohet në një çështje përkatëse dhe të bashkuara, formojnë një pamje të plotë të
projektit. Poashtu, secila pjesë përshkruhet detajisht duke përdorur një numër të kapitujve
përkatës.
• Hyrja dhe shqyrtimi i literaturës
• Hulumtimi dhe analiza
• Vlerësimet dhe përfundimet
Pjesa e parë e cila përfshin hyrjen dhe shqyrtimin e literaturës përqendrohet në konceptet
themelore të projektit. Kjo pjesë e deklaron problemin dhe motivin kryesor që qëndron prapa
tij. Në këtë mënyrë, kapitulli hyrës i ndihmon lexuesit të informohet për projektin dhe të
kuptojë se për çfarë bëhet fjalë në përgjithësi.
Pjesa e dytë vazhdon me analizë të projektit duke hulumtuar të gjitha faktet dhe informatat e
nevojshme, dhe duke studiuar algoritmet e aplikuara. Secili aspekt do të shpjegohet detajisht
nëpër kapituj përkatës. Pjesa e fundit merret me vlerësimin e projektit si dhe ndikimin e tij
në të tashmen dhe të ardhmen e industrisë së automjeteve dhe ngarjes së veturave. Së fundmi,
në këtë pjesë do të arrihet në një përfundim rreth projektit dhe poashtu të ofrohet një rishikim
i punës që do të duhet të kryhet në të ardhmen.
13
4 METODOLOGJIA
4.1 Hyrje
Robotët mund t’i ndihmojnë njerëzimit në mënyra të ndryshme. Janë në gjendje të veprojnë
në hapësira helmuese ose të pa arritshme për një njeri. Aplikimet e robotikës mobile
përfshijnë një diapazon të gjerë, duke filluar nga robotët ndihmues në mjediset industriale e
deri tek robotët për eksplorimin e oqeaneve dhe hapësirës në gjithësi. Veturat inteligjente
autonome po shkaktojnë një evolucion në teknologjinë aktuale të makinave. Sistemet e
avancuara të asistencës për ngarësin po ndikojnë në rritjen e sigurisë rrugore, rrjedhjen
efikase të trafikut dhe uljen e konsumimit të karburantit. Shkaku i këtyre sistemeve, është
përmirësuar lëvizshmëria e mjeteve në trafik. Hulumtimet në fushën e AIA kanë pasur
ndikim edhe në sferën e robotikës, shkencave kompjuterike dhe inxhinierisë. Për më tepër,
duhet të theksojmë se zhvillimet shkencore të bëra nga kompanitë automobilistike nuk
publikohen në tërësi dhe mbrohen edhe me ligj në rast nevoje.
Vendim marrja është kritike dhe pika kyqe në arritjen e autonomisë së veturës [21].
Realizohet përmes algoritmeve të planifikimit, të ndërlidhura me aplikacionet e modulit për
navigim, perceptim të mjedisit dhe detektimit të shenjave rrugore. Pikësynimi kryesorë i
planifikimit është t’i ofroj makinës një rrugë të sigurtë deri në destinacion, duke marrë
parasysh dinamikën e makinës, aftësitë për manovrim në rast pengese dhe rregullat e trafikut.
Planifikimi i rrugës është proces që konsumon memorie dhe resurse procesuese të mëdha.
Kjo për shkak se të gjitha teknologjitë për drejtim të makinës veprojnë në mënyrë paralele
në të njejtën kohë. Inputet dhe outputet e planifikimit të rrugës varen nga modulet e tjera. Në
trafik urban duhet të bëhet planifikim me saktësi të lartë për shkak të distancave të vogla mes
makinave. Për këtë shkak është nevoja e zhvillimit të algoritmeve të avancuara.
Për ekzekutimin e detyrave komplekse të një automjeti autonom nevojiten katër aftësi.
Mapimi i mjedisit rrethues, lokalizimi i saktë, kontrolli i lëvizjeve dhe marrja e vendimeve.
Mapimi përfshinë krijimin e një harte të ambientit rrethues me informata të hapësirave nëse
mund ti arrij ose jo. Lokalizimi përfshinë llogaritjen e gjendjes së veturës në relacion me
hartën. Kontrolli ka për qëllim përkthimin e komandave të drejtimit dhe shpejtësisë në
përshpejtim, frenim dhe ndërrim të drejtimit të rrotave. Tjetër detyrë shumë e rëndësishme e
14
një mjeti autonom, që është dhe fokusi i këtij hulumtimi, është planifikimi i rrugës dhe
lëvizjeve. Për arritjen e funksionimit të këtij moduli, një software merr si të hyra hartën e
mjedisit të makinës, pozitën e mjetit në hartë dhe pikën e destinacionit. Më pas gjenerohet
një trajektore duke filluar nga pika e mjetit deri te pika e fundit. Për një veturë, ajo trajektore
paraqitet si listë e komandave të shpejtësisë, këndit të kthimit të rrotave dhe kohës për sa
realizohet secila. Trajektorja më e mirë është ajo që nuk ka pengesa përgjat udhëtimit dhe
nuk shkakton parehati tek udhëtarët.
Varësisht nga platforma mobile që e përdorë këtë teknologji, planifikimi i rrugës duhet të
llogaris shumë kufizime dhe kjo bën që ky proces të jetë kompleks dhe shumë i kushtueshëm
në resurse kompjuterike. Ështe sfiduese veçanërisht në mjediset me rrugë të pastrukturuar që
nuk kanë hartë të saktë. Në këtë rast mjeti posedon informata të marra vetëm nga perceptimi
i mjedisit dhe kjo e limiton aftësinë ta gjej rrugën e duhur në mënyrë të saktë. Në sajë të këtij
observimi gjysmak, rruga e planifikuar do të ketë trajektore të gabuara. Veç kësaj, planikuesi
ka gjasë të bllokohet për shkak të informatave shumë të pakta.
Tjetër kufizim i rëndësishëm për një planifikim rruge të saktë shkaktohet nga kinetika e
veturës. Normalisht veturat sot e kanë të limituar këndin e kthimit të rrotave, si rrjedhim
ndërrimi i drejtimit në vend nuk është i mundur. Ky limitim duhet merret parasysh në mënyrë
të qartë gjatë planifikimit që të garantohet se rruga e planifikuar nuk përmban trajektore që
mund të jetë e pamundur të ndiqen. Që të aplikohet në trafikun e vërtetë, rruga duhet të
llogaritet disa herë për sekondë që të shfrytëzohen informatat e marra gjatë udhëtimit deri në
destinacion. Në këtë mënyrë, një planifikim rruge efikas dhe i besueshëm duhet të përmbush
kërkesat në kohë reale. Në rastin e veturës autonome planifikimi duhet të bëhet çdo 100
milisekonda [22].
Zgjidhja e problemit të planifikimit të rrugës ka filluar me operimin e mjeteve në mjedise
tërësisht të panjohura. Duke supozuar që makina ka lokalizim dhe perceptim adekuat të
mjedisit, e kanë vendosur në një lagje periferie pa trafik të navigoj. Këtë skenar e bëri Darpa
Urban Challenge (DUC), agjensioni për zhvillimin e hulumtimeve shkencore në SHBA, në
vitin 2007 [23]. Në këtë sfidë, makina me emrin Junior performoi me lehtësi nëpër rrugët e
lagjes, në detyrat e parkimit dhe kthimit gjysëmrrethor. Ky ishte hapi i parë në zhvillimin e
planifikimin e rrugës dhe marrjes së vendimeve.
15
Në nëntor të vitit 2007, shumë vetura autonome inteligjente morrën pjesë në DUC. Ishte hera
e parë që makina të tilla lëviznin nëpër rrugë të strukturuara siç janë udhëkryqe, rreth
rrotullime, vende parkimi dhe autostrada [24]. Pjesa më e rëndësishe ishte kur në ato pjesë
të mbyllura u futën 70 vetura autonome dhe vetura të ngara nga njerëz së bashku. Të gjitha
veturave u kërkua që t’i ndiqnin rregullat e trafikut, të rrinin në korsinë e duhur dhe t’i
përcillnin shenjat e trafikut. Automjetet mund të bënin tejkalime, kthime gjysëmrrethore dhe
të parkoheshin sipas dëshirës në përputhje me rregullat e trafikut. Sfidat kryesore të
dizajnimit të sistemit për planifikim rruge ishin kinetika e veturave jo e njejtë për të gjitha
veturat, kufizime në kuptimin e mjedisit siç janë largësia e pengesave dhe llogaritja e gabuar
e reagimit të veturës.
Disa algoritme përdoren për gjetjen e rrugës më të realizueshme. Ato janë rrjetet neurale,
algoritmi Hybrid A* (A star), D* (D star), algoritmi rapidly exploring random tree (RRT),
algoritmet gjentike etj [25].
Metoda të ndryshme mund të gjenden në literatura për adresimin e këtij problemi. Vetura
është subjekt i kufizimeve kinodinamike dhe të mjedisit. Një trajtim i mundshëm i problemit
është përdorimi i algoritmit për kërkim në hapsirë A* ose D*. Algoritmi mundëson gjetjen e
trajektores deri në destinacion nëpër hapësirën me kufizime. Kjo zgjidhje përdoret sepse
është e shpejt dhe jep rezultat të kënaqshëm. Megjithatë trajektorja ka mundësi të mos ndiqet
në tërësi për shkak se algoritmi potencialisht mund të mos llogaris me saktësi kinodinamikën
e veturës. Një mundësi tjetër është të përdoret një model më i saktë i lëvizjes së veturës dhe
duke perdorur shembuj të bazuar në metodat e kërkimit që mund të përballojnë hapërsira tre
dimensionale për të gjetur një zgjidhje të realizueshme [26]. Shembull për këtë metodë është
algoritmi rapidly exploring trees (RRT), i zhvilluar nga LaValle. Ky algoritëm është
implementuar dhe përdorur në mënyrë të suksesshme në Darpa Urban Challenge në vitin
2007.
4.2 Algoritmi Rapidly-Exploring Random Trees
Planifikuesi i lëvizjeve të një mjeti autonom duhet të garantoj siguri dhe komoditet për
udhëtarët. Po ashtu duhet t’u përmbahet kufizimeve kinematike të lëvizjes që automjeti të
vazhdoj normalisht në rrugën e tij. Një model i lëvizjes për automjetet robotike mund të
16
përshkruhet si në vazhdim [26]. Le të jetë x dhe y lokacioni i veturës, i llogaritur nga mesi i
rrotave të prapme. Orientimi i makinës le të jetë Θ. Le të jetë L distanca në mes aksit të
rrotave të prapme deri tek të përparmet. Shpejtësia le të jetë v, nxitimi i saj a dhe ϕ këndi i
rrotullimit të rrotave të përparme. Nga këto të dhëna mund të nxjerrim gjendjen e veturës dhe
komandën e kontrollit të saj. Gjendja e veturës në një pikë të caktuar kohore është kjo, Zt =
(x, y, Θ, v, ϕ). Ndërsa kontrolli i saj paraqitet me Ut = (v’, ϕ’, ∆t) në një kohë të caktuar. Pas
intervalit kohor ∆t, gjendja e veturës do të jetë në Zt+1 = (x’, y’, Θ’, v’, ϕ’).
Algoritmi RRT është i përbërë nga dy procedura, selektimi dhe zgjerimi. Përshkrimi i
algoritmit Rapidly-Exploring Random Trees (RRT) është si vijon. Selektimi kur gjendja
fillestare e makinës, Xinit, shtohet në pemën boshe T. Për çdo iterim që bëhet, një gjendje e
rastësishme, Xrand, merret nga hapësira e sigurtë prej përplasjeve Xfree. Më pas gjendja më e
afërt me Xrand që ekziston në pemën T, Xnear, identifikohet në pemë. Zgjerimi fillon kur Xnear
transformohet në Xnew. Transformimi bëhet duke zgjedhur një komandë të kontrollit për
makinën, në përputhje me kritere specifike të rregullave rrugore. Qëllimi i komandës është
që prej Xinit të arrihet Xgoal. Komanda aplikohet në Xnear për një periudhë të shkurtër derisa të
krijohet Xnew. Nëse Xnew shtrihet në Xfree, atëherë krijohet një segment me drejtim nga Xnear
tek Xnew. Trajektorja prej pikës fillestare deri tek destinacioni gjenerohet kur Xnew arrin tek
gjendja finale, Xgoal. Ky proces iterativ ekzekutohet derisa të arrihet kriteri që përmbush
kërkesën. Më poshtë është paraqitur pseudokodi për RRT.
Figura 1. Pseudokodi për Rapidly-Exploring Random Trees
17
Algoritmi RRT përdorë kërkimin rritës (incremental) për ndërtimin e pemës T prej pikës
Xinit, duke gjeneruar gjendje në mënyrë të rastësishme. Kërkimi përqëndrohet brenda korsive
që i përdorë vetura dhe bën që ajo të mbaj distancë të sigurtë nga pengesat ose mjetet e tjera
në rrugë. Gjatë çdo cikli të planifikimit të rrugës, algoritmi pranon pesë të hyra (inputs):
1. Një hartë të përditësuar të mjedisit rreth makinës.
2. Gjendjen fillestare (Xinit) ndaj pozitës momentale në hartë.
3. Lokacionin e vijave kufizuese të korsisë në hartë.
4. Një listë të përditësuar të pikave që duhet t’i ndjek gjatë udhëtimit.
5. Trajektoren e ndërtuar në ciklin paraprak.
Më pas algoritmi krijon dhe jep si output një trajektore të re deri te Xgoal. Trajektorja
përshkruhet nga një kontroll i komandës U = (v, ϕ, ∆t).
4.2.1 Zgjedhja më e mirë e komandës së kontrollit
Algoritmi nuk e konsideron vetëm afërsinë e pikës më të afërt por edhe kritere të tjera.
Konsiderohen ambienti rrethues, kufizimet nga ligjet e trafikut, distanca nga pengesat dhe
distanca nga mesi i korsisë. Për çdo kalkulim të komandës së kontrollit, llogaritet edhe
kostoja e asaj komande me formulën më poshtë [24].
u.cost = Σi cost (u, ci) * weight (ci)
ci është kriteri i zgjedhjes së komandës, cost (u, ci) është kostoja që i caktohet komandës.
Ndërsa weight është rëndësia që i përcaktohet një komande për ekzekutim. Kur zgjedhet një
komandë kontrolli për lëvizjen e mjetit, vërtetohet nëse ajo komandë veç është ekzekutuar.
Nëse po, hiqet nga lista e komandës për ekzekutim, përndryshe aplikohet nëse pika Xnew
gjendet ne hapësirën Xfree. Ky planifikues i rrugës i ndjek pesë kushte të plotësimit për
zgjedhjen më efikase.
1. Distanca ndaj pikës Xrand. Komandat që e caktojnë pikën Xnew më larg Xrand kanë
kosto më të lartë se ato që e përcaktojnë Xnew më afër Xrand.
2. Distanca ndaj pengesave. Normalisht kosto më e lartë i shoqërohet komandës që
pikën Xnew e cakton më afër një pengese. Përderisa kosto më e ulët i caktohet
komandës që Xnew e cakton sa më larg prej pengesës.
18
3. Afërsia ndaj qendrës së korsisë. Komanda që e cakton gjendjen e ardhshme të
makinës më larg qendrës së korisë ka kosto më të lartë. Ajo që e zgjeron pemën me
rrugë të reja sa më afër qendrës së korsisë ka kosto të ulët.
4. Kontrolli i limitit të shpejtësisë. Kosto minimale i atribuohet një komande që e mban
shpejtësinë në limit të saj. Kosto rritet me rritjen e diferencës mes shpejtësisë së
komanduar dhe shpejtësisë së dëshiruar.
Ekzekutimi i manovrave të drejtimit të caktuara nga ngasësi. Kosto më e vogël i caktohet
komandës që e bën makinën të lëviz me drejtim përpara. Komanda që e bën makinën të lëviz
me drejtim prapa, ka kosto më të lartë.
4.2.2 Kërkimi vizual i ngasësit
Për zhvillimin e një modeli që rrit edhe më shumë sigurinë dhe saktësinë e RRT mund të
përdoren sjelljet e shoferit të bazuara në pikat që ai i vrojton më shumë gjatë ngasjes.
Ekziston një lidhje mes fushës që shoferi e sheh dhe drejtimit të timonit gjatë ngasjes nëpër
rrugë me kthesa. Si rezultat i kësaj lidhjeje, shoferi përdorë një near point (pikë të afërt) dhe
far point (pikë të largët) që të ngas në mënyrë të sigurtë në rrugë me kthesa. RRT i bazuar në
këto dy pika (near dhe far) ka treguar një përmirësim në simulimet e bëra në rrugë të
mbyllura. Veç kësaj, në fazën e fundit përdoret një metodë e bazuar në B-spline për të
gjeneruar trajektore të lëmuara që të krijojnë një udhëtim më të këndshëm [27].
Pyetja se në cilën pikë të rrugës shikon një shofer gjatë ngasjes ka qenë pa përgjigje për një
kohë të gjatë. Janë zhvilluar studime në lidhje me këtë çështje, që ndihmojnë në kuptimin e
sjelljes së shoferit në rrugë [28]. Konkludimi i përgjithshëm i studimeve ishte se shoferi
përdor near point dhe far point në hapësirën e rrugës që e sheh, në të njejtën kohë. Kjo bën
që ai të manovroj me lehtësi nëpër rrugë me kthesa. Këto dy pika, near point dhe far point,
janë të ilustruara në figurën 2.
19
Figura 2. Pikat e koncentrimit gjatë ngasjes së veturës
Near point është paraqitur me pikën e gjelbër, përfaqëson mesin e rrugës në një distancë
shumë të shkurtër para makinës. Far point e paraqitur me kryqin e kuq, është pika më e largët
e dukshme në horizontin e rrugës gjatë ngasjes. Në figurën 2a është far point në pikën e
zhdukjes, ku nuk mund të shihet dhe përcillet më ajo pikë. Figura 2b e ka pikën tangjente të
kthesës si far point, ndërsa në figurën 2c far point është makina përpara. Near point ndihmon
në mbajtjen e pozitës së veturës në rrugë dhe stabilitetin e saj. Far point ndihmon në
parashikimin e trajektores më të mirë për të ndjekur gjatë kthesës. Duke përdorur këto dy
pika të rëndësishme (near dhe far point), rritet efektiviteti gjatë ngasjes.
Bazuar në studimet për sjelljen vizuale të shoferit, near dhe far point ndihmojnë në zhvillimin
e algoritmit RRT. Ky studimi përdor këto pika për mbledhjen e informatave për RRT dhe
ekzekutim të saj. Kërkimi inkremental në hapësirë përpiqet të jetë sa më efektiv në mënyrë
që trajektorja e planifikuar të jetë sa më komfore për udhëtarët në makinë.
20
4.2.3 Struktura e modulit për planifikim të rrugës
Struktura e përgjithshme e algoritmit RRT është e paraqitur në figurën 3. Ky algoritëm bën
pjesë në modulin për planifikimin e rrugës te automjetet inteligjente autonome.
Figura 3. Struktura e përgjithshme e modulit të planifikimit të rrugës
Moduli pranon informacionet nga mjedisi nga moduli i perceptimit të ambientit rrethues.
Pastaj krijohet një hartë në kohë reale për të ditur se cilat rrugë janë të përshkrueshme. Së
fundmi pranohen pikat e dukshme për ngasësin (near dhe far points). Informacionet e marra
nga moduli i perceptimit dhe lokalizimit pranohen nga algoritmi dhe gjenerohet një
trajektore. Trajektorja është në përputhje me rregullat kinetike të veturës dhe mund të ndiqet
nga ajo pa problem. Para se trajektorja të ekzekutohet nga moduli për kontrollin e lëvizjeve,
ajo përpunohet edhe një herë të fundit. Kjo bën që të gjenerohen lakesa në vendet e trajektores
21
që janë me kthesa më të forta, dhe në përgjithsi të garantohet një rrugë që ofron rehati më të
mirë.
4.2.4 Ndërveprimi i RRT me near dhe far point
Rapidly-Exploring Random Trees e rrisin gjasën e gjetjes së rrugës sa më shumë që e
kërkojnë në hapsirë. Mirëpo nuk mund t’a përcaktojnë se kur nuk ka një shteg deri tek
destinacioni final [29]. RRT garantojnë realizueshmëri të ligjeve kinetike të makinës, mund
të implementohen lehtë në kohë reale dhe mund të përshtaten në mjedise dinamike.
Këto avantazhe të algoritmit RRT janë arsyeja se pse janë përdorur në automjetet inteligjente
autonome. Përparësitë kryesore të RRT janë kërkimi dhe eksplorimi i shpejt në një hapësirë
të lirë boshe. Megjithatë disfavori më i madh qëndron në shtigjet apo rrugët të cilat i gjeneron
pasi që janë me shumë kthesa dhe lakime. Tjetër pengesë e RRT është se secila pikë në tree
T, është e varur në pikën fqinjë më të afërt për tu zgjeruar. Tjetër limitim i RRT përfshinë
kontrollimin e detyruar për secilën pikë në hapësirën e sigurtë se ku mund të ngitet. Në rast
të një trafiku të rëndë ose një mjedisi me shumë pengesa në rrugë, rritet kompleksiteti i
llogaritjes së rrugës. Veç kësaj rrugët optimale komfore mund të hiqen nga lista e
ekzekutimit, në mënyrë që të favorizohet eksplorimi më i shpejt i hapësirës.
Në një ambient të stukturuar me rrugë të shtruara, mbledhja e informacioneve për secilën
gjendje në kohën t, rezulton në një numër të madh të informacionit të pa përdorur. Për ta
optimizuar këtë problem, përdoren near dhe far points të integruara në mënyrën e vrojtimit
të Gausit [30].
Për të qartësuar së çfarë janë near dhe far point, në vazhdim janë definimet. Near point është
një pikë në qendër të korsisë nëpër të cilën lëviz makina, e cila ka distancë 10 metra nga pika
qëndrore e makinës. Ndërsa far point mund të jetë një nga tri rastet:
1. Pika më e largët në një rrugë të drejtë që mund të merret si input nga algoritmi.
Largësia e kësaj pike varet nga shpejtësia e automjetit.
2. Pika tangjente në një kthesë në rrugë.
3. Makina e cila lëvizë para automjetit autonom.
22
Në kushtet e kërkimit në hapësirë me near point, shpërndarja Gausiane është e gjerë dhe e
shkurtër. Kjo shpërndarje bën që të shfrytëzohet e gjith rruga dhe të ruhet hapësira e kërkuar
sepse near point është e shkurtër (10 metra). Në figurën 4a mund të shihet kërkimi në near
point. Ndërsa në kushtet e kërkimit në hapsirën e far point, struktura e shpërndarjes Gausiane
është më e ngushtë dhe e gjatë. Kjo për shkak të kufirit të limituar kërkues dhe rregullave të
ngasjes. Në figurën 4b është paraqitur kërkimi në far point.
Figura 4. (a) Shpërndarja Gausiane për near point dhe (b) far point
4.2.5 Funksioni metrik
Funksioni metrik është funksion i cili për çdo dy pika në hapësirë, vlera e tij është distanca
mes atyre dy pikave [31]. Algoritmi RRT i bashkon dy pika në hapësirë të cilat janë pranuar
të jenë pjesë e trajektores që të dërgon drejt destinacionit. Funksioni metrik ndihmon kur
algoritmi RRT aplikohet në mjetet me kënd të madh të lakores në kthesa ose kthimit
gjysëmrrethor. Distanca Euklidiane është funksioni metrik që aplikohet për krijimin e
trajektores më të butë [32]. Konsiderohet këndi i kthimit mes dy pikave fqinje për shkak të
uljes së nivelit të vështirësisë së manovrimit.
23
4.2.6 Metoda B-Spline për optimizim të rrugës
Ka raste kur moduli për planifikimin e rrugës i bazuar në algoritmin RRT gjeneron rrugë
gjarpërore pa qenë nevoja. Këto rrugë përmbajnë rrezik potencial nëse ndodh ndonjë gabim
sado i vogël në ekzekutimin e tyre. Për zgjidhjen e këtij problemi përdoret metoda e bazuar
në B-Spline [27]. Kjo metodë aplikohet pasi të gjenerohet një trajektore që do të ndiqet. B-
Spline ndahet në dy pjesë. Pjesa e prerjes së degëzimeve të panevojshme në trungun me rrugë
të gjeneruara dhe pjesa e lëmimit ose zbutjes së kthesave që mbesin pasi të përfundoj pjesa
e parë. Më poshtë në figurën 5 është paraqitur se si duket rruga e gjeneruar prej pikës
fillestare deri tek destinacioni. Vija e kuqe prezenton kërkimin e algoritmit RRT, vija e zezë
paraqet pjesën e parë të metodës B-Spline ku shkurtohet rruga e përgjithshme. Ndërsa vija e
kaltër ilustron pjesën e lëmimit dhe zbutjes së kthesave në mënyrë të dukshme.
Figura 5. Dallimi mes rrugës pa aplikim të B-Spline (a) dhe asaj me aplikim (b) [1].
4.2.7 Verifikimi i plotsueshmërisë së rrugës dhe vlerësimi i rrezikut
Moduli i planifikimit të rrugës dhe perceptimit të mjedisit bashkëveprojnë ngushtë që një
automjet autonom të funksionoj normalisht. Të dhënat e modulit të perceptimit janë, zonat
që është e mundur të ngitet, ato që nuk është, pengesat statike dhe dinamike. Të gjitha këto
gjenerohen si imazhe në një hartë. Figura më poshtë e tregon këtë hartë. Pjesa e kuqe në hartë
tregon regjionet e pa arritshme për makinën dhe që nuk do të ketë ndonjë kontakt me to.
Pjesët e bardha tregojnë pengesat statike, kurse pjesa rozë do të thotë se ka një pengesë
24
dinamike. Drejtkëndëshi i gjelbër është pozita momentale e mjetit. Drejtkëndëshi i kaltër
është gjeneruar nga kërkimi në far point dhe paraqet synimin aktual të mjetit inteligjent.
Figura 6. Harta me të dhëna që makina e merr si input
25
Për t’i vërejtur avantazhet e këtij verzioni të algoritmit RRT për automjetet inteligjente në
ngasjen në rrugë, mund ta krahasojmë me disa algoritma të tjerë. Në shembullin më poshtë
RRT krahasohet me lattices dhe random sampling [30].
Figura 7. Rasti i gjenerimit të rrugës së drejt nga (b) lattices, (c) random sampling dhe (d)
RRT [2]
Ngasja në rrugë të drejtë është një nga skenaret trafikore më të shpeshta. Figura 7a paraqet
rezultatin e marrë nga near point (pika e gjelbër) dhe far point (kryqi i kaltër). Figura 7b
tregon performimin e lattices, që siç duket ka krijuar disa kthesa të panevojshme. Figura 7c
na jep rezultatet e random sampling. Edhe pse numri i lakesave të panevojshme është ulur,
prap se prap trajektorja i afrohet skajit të rrugës. Në fund në figurën 7d shihet RRT i cili në
një rrugë të drejtë, ka një trajektore gati perfekte. Kjo i mundëson udhëtim të sigurtë përgjatë
26
gjith rrugës. Figura në vazhdim e ilustron sjelljen e makinës përgjatë një rruge me kthesë.
Figura 8a vizualizon rezultatin e marrë nga near point (pika e gjelbër) dhe far point (kryqi i
kaltër). Në figurën 8b shihet aplikimi i lattices. Trajektorja e planifikuar ka kthesa të tepërta
dhe të panevojshme. Random sampling ka përmirësim ndaj lattices, ku shihet një trajektore
më e mirë. Por prapë i afrohet skajit të rrugës. Në figurën e fundit 10d është rezultati i
algoritmit RRT të bazuar në near dhe far point. Duke u bazuar në këto dy pika, gjenerohet
një trajektore gati perfekte. Veç kësaj metoda B-Spline aplikohet në atë trajektore, e që e bën
trajektoren të mos dallohet nga ajo e ekzekutuar nga një ngasës real.
Figura 8. Rasti i gjetjes sw trajektores nw rrugw me kthesw. (b) Lattice, (c) random
sampling dhe (d) RRT [2]
4.2.8 Disavantazhi i planifikuesit të bazuar në algoritmin RRT
Vlera e informacioneve të disponueshme në lokacionin x, y në kohë t, së bashku me
informacionin mbi interpretimin e fundit të kontrollit të komandës H, përgjatë një periudhe
të caktuar paraqitet me funksionin f (x, y, t, H). Përderisa funksioni f ndryshon në mënyrë të
27
ndjeshme prej një mjedisi në tjetrin, apo prej një rasti në tjetrin, disa atribute si drejtimi i
mjetit mund të mbes i njejtë.
Ndryshimi në mes [f (x, y, t, H) – f (x, y, t+1, H)] do të jetë i vogël [33]. Në shumicën e
kohës vlera e informacionit në një pikë të caktuar nuk do të ndryshoj në mënyrë dramaktike
në një kohë të shkurtër. Në rast të lëvizjes së mjetit në një rrugë urbane të qytetit, sensori do
të marr input në një lokacion në kohën t. Vlera e informacionit në pikën me kohë t+1 do të
pak apo nuk do të ketë asnjë vlerë. Kjo për shkak se nuk mund të ndodh ndonjë ndryshim
drastik në mjedisin rrethues në një kohë shumë të shkurtër. Kjo mënyrë e gjetjes së rrugës
është e sigurtë dhe garanton ekzekutim të trajektores. Në anën tjetër kostoja e planifikimit
dhe llogaritjes kompjuterike rritet drastikisht.
4.2.9 Simulimi e algoritmit RRT në Matlab
Me anë të software-it Matlab i cili ofron mjedis simulues, është simuluar algoritmi RRT në
një mjedis 3D. Pengesat janë programuar paraprakisht, ndërsa duhet të gjindet rruga më e
shkurtër nga pika startuese deri në destinacion.
Figura 9. Simulimi i gjendjes së parë të RRT në ambient 3D.
28
Në këtë ambient tre dimensional pika startuese S është [5, 5, 5] ndërsa pika përfundimtare Z
është [95, 95, 95]. Numri i pengesave është 9. Segmentet e paraqitura me vijë të kuqe janë
trajektoret potenciale nëpër të cilat kalon makina. Pikat e gjelbra janë gjendjet (states) që
automjeti mund ta ketë pas gjetjes së rrugës dhe aplikimit të komandës së kontrollit. Në
figurën 9 është faza e parë e kërkimit të rrugës.
Figura 10. Simulimi i gjendjes së fundit të RRT në ambient 3D.
Figura 10 paraqet fazën e fundit të kërkimit dhe numrin total të segmenteve të kërkuara
përgjat gjetjes së të gjitha gjendjeve deri tek destinacioni. Më poshtë është paraqitur tabela
më të dhënat e simulimit.
Koha totale për gjetjen e rrugës 8.56 sekonda për x, y dhe z 100 metra
Numri i trajektoreve të eksploruara 4000
Numri i gjendjeve deri te destinacioni 21
Numri i kërkimeve për ndryshim të një gjendje 190
Numri i pengesave në rrugë 9
Tabela 1. Rezultatet e fundit të simulimit të algoritmit RRT
29
Më poshtë është tabela me kondita të ndryshme për algoritmin dhe rezultatet e arritura nga
simulimi me veglën e Matlab për procesimit të imazheve.
Gjatësia e rrugës së kërkuar Koha e gjetjes së rrugës
500 metra 42.8 sekonda
1000 metra 85.6 sekonda
2000 metra 171.2 sekonda
3000 metra 256.8 sekonda
Tabela 2. Outputet e algoritmit RRT të testuar në Matlab
Funksioni kryesorë për gjetjen e rrugës më të shkurtër.
function path = findMinimumPath(tree,end_node,dim)
% find nodes that connect to end_node
connectingNodes = [];
for i=1:size(tree,1),
if tree(i,dim+1)==1,
connectingNodes = [connectingNodes ; tree(i,:)];
end
end
% find minimum cost last node
[tmp,idx] = min(connectingNodes(:,dim+2));
% construct lowest cost path
path = [connectingNodes(idx,:); end_node];
parent_node = connectingNodes(idx,dim+3);
while parent_node>1,
parent_node = tree(parent_node,dim+3);
30
path = [tree(parent_node,:); path];
end
end
4.3 Algoritmi Hybrid A* (Star)
Përshkrimi i planifikimit të rrugës është si vijon. Makina pranon si input hartën që paraqet
pengesat potenciale në rrugë, gjendjen fillestare të makinës s0 = (x, y, θ)0 dhe pikën synuese
sg = (x, y, θ)g [34]. Parametrat e pranuar x dhe y janë pozita e makinës në fushën koordinative,
ndërsa θ është drejtimi i makinës. Output-i i dëshiruar është një trajektore e gjeneruar nga
një sekuencë e gjendjeve të makinës s0, s1, s2, s3, s4, … , sn = sg. Trajektorja duhet të
gjenerohet me numër sa më të vogël të gjendjeve që duhet kërkuar, e lëmuar dhe që përmbush
kriteret e kufizimeve kinematike të makinës.
Algoritmi nuk e vendos shpejtësinë e mjetit gjatë kërkimit për rrugën më të mirë [34]. Në një
shpejtësi konstante të makinës, e gjen trajektoren që është më e arritshmja për shpejtësinë
momentale. Pastaj ajo shpejtësi pranohet si parametër për llogaritjen e funksionit që krijon
lakoren e kthesës dhe llogaritjen e afërsisë ndaj pengesave.
Algoritmi aplikohet në hapësirën 3D të gjendjes kinematike të makinës. Pastaj ajo gjendje e
makinës përditësohet nga përpunimi i inputeve të vazhdueshme që i merr algoritmi gjatë
kërkimit. Hybrid A* përdorë funksionin e kërkimit në hapësirë f (x, y, θ, r). Parametri i fundit
r mund të ketë vlerat 0 ose 1 {0, 1} dhe tregon drejtimin aktual të makinës që mund të jetë
përpara ose prapa. Në funksionin e gjetjes së kostos së rrugës përdoret biti i drejtimit të
lëvizjes {0, 1}. Ky bit përdoret për të dhënë penalti kur makina lëviz me drejtim prapa ose
në momentin kur e ndërron drejtimin. Penaltia është rritja e kohës së kalkulimit të rrugës.
Ajo aplikohet në varësi të gjatësisë së segmentit prej një pike në tjetrën. Sa më i gjatë
segmenti aq më e madhe penaltia dhe anasjelltas. Dihet që ka raste kur makinës i duhet të
lëviz prapa, por rreziku për goditjen ndaj pengesave rritet në mënyrë të dukshe. Kjo është
arsyeja pse aplikohet ajo penalti.
31
4.3.1 Analiza e funksionimit të Hybrid A* (Star)
Algoritmi punon si në vijim. Hapësira kërkuese ndahet në qeli të vogla të bashkuara, ku të
gjitha pikat në qendrat e qelive janë të lidhura mes vete. Në këtë mënyrë kërkimi bëhet më i
lehtë kërkimi [34]. Secilës qeli në hapësirë i asociohet një gjendje aktuale (real time) e
makinës. Më pas fillon kërkimi i rrugës. Gjendja e vazhdueshme momentale i shoqërohet një
pike të rëndomt. Algoritmi përmbanë një listë të pikave potenciale për ekzekutim. Gjendjes
momentale i aplikohet një komande kontrolli që të arrij në pikën që është e para në listë.
Nëse arritja tek ajo pikë i përmbahet kufizimeve kinematike të makinës dhe ka kosto të ulët,
atëherë makina kalon në atë gjendje. Ajo pikë futet e para në listë dhe vazhdon i njëjti aplikim
për pikën e dytë në listë.
Në rast se arritja te ajo pikë nuk i përmbush kriteret kinodinamike dhe ka kosto të lartë,
atëherë futet si e fundit në listë. Kështu bëhet sortimi i të gjitha pikave ose gjendjeve
potenciale të makinës. Në fund pikat janë të rradhitura në atë mënyrë që e dërgojnë makinën
nga fillimi deri në destinacion nëpër rrugën më të shkurtër.
Hybrit A* nuk garanton gjetjen e rrugës me koston më të vogël sepse komanda e kontrollit
nuk e ndjek gjithmonë rrugën që mund të jetë prerje e kthesës. Kjo do të thotë se ka raste kur
mund të shkurtohet rruga dhe të ulet kosto e saj. Megjithatë rezultati i gjetjes së rrugës është
gjithmonë i arritshëm brenda kufizimeve kinematike të makinës. Në praktikë gjithmonë ka
zgjidhje të problemit të gjetjes së rrugës. Kjo për shkak të qelive që garantojnë lidhjen e
çfarëdo dy pikave fqinje. Në figurën më poshtë është paraqitur krahasimi mes A*, D* dhe
Hybrid A*.
a) b) c)
32
Figura 11. a) A* bashkon pikat në mes të qelive, b) D* bashkon skajet e qelive dhe lejon
shtigje lineare, c) Hybrid A* bashkon gjendjet me koston më të ulët dhe aplikon lëmimin
në kthesa apo ndryshe pruning.
4.3.2 Struktura e kërkimit të rrugës
Struktura e kërkimit të rrugës është e ndarë në dy mënyra [35]. Mënyra e parë është e
dizajnuar për kërkimin në hapësirë pa pengesa. Mënyra se si funksionon ky lloj kërkimi është
së pari llogaritet rruga më e shkurtër prej secilës pikë deri tek destinacioni. Në mjedisin pa
asnjë pengesë me funksionin f (x, y, θ) kontrollohen të gjitha pikat prej të cilave është e
mundur të krijohen trajektore. Kostoja e këtij kërkimi është e pranueshme, por kostot mund
të jenë të larta pasi që kërkimi mund të bëhet me makinën duke lëvizur prapa. Për shkak se
kjo mënyrë e kërkimit nuk varet nga sensorët për ta gjetur rrugën, mund ta gjej rrugën
paraprakisht (offline). Pastaj vetëm aplikohet komanda e kontrollit për secilën gjendje dhe
arrihet pika e destinacionit.
Mënyra e dytë e bën kërkimin në hapësirën me pengesa. Përdoret harta që i ka pengesat e
theksuara në mënyrë të veçantë. Pastaj llogaritet rruga që përdorë më së paku ndryshim të
gjendjeve për arritjen në destinacion. Duke patur parasysh ndonjë funksion që llogarit koston
e rrugës, si për shembull shmangja e përplasjeve, në një hapësirë f (x, y, θ). Atëherë krijojmë
një verzion 2D të asaj hapësire që paraqitet si në vijim, g (x, y) = minθ f (x, y, θ).
Një gjendje (state) 2D pretendohet të jetë e sigurtë (kostoja e përplasjes zero), nëse ekziston
të paktën një gjendje 3D e sigurtë, e projektuar nga po ajo gjendje 2D [36]. Me anë të
verzionit 2D mund të dihet gjeometria e pengesave. Zbulohen të gjitha pengesat në formë
gjysmërrethore dhe rrugët qorre. Më pas 2D e udhëzon mjetin në hapësirën 3D me katër
parametrat f (x, y, θ, r), t’iu shmanget sa më lart pengesave.
Përderisa të dy këto mënyra janë të pranueshme matematikisht, edhe mund të bashkohen që
ulin kohën e gjetjes së rrugës. Në figurën më poshtë është paraqitur shembulli i përdorimit
të tyre.
33
Figura 12. a) Kërkimi në hapësirën 2D i shpalos 20.000 pika. b) Kërkimi në hapësirë pa
pengesa gjen destinacionin me 12.000 pika. c) Nëse e njejta mënyrë si nën b) përdoret në
raste më komplekse, numri total i pikave për të gjetur mbarimin është 37.000.
d) Kombinimi i dy mënyrave në raste kompleke jep rezultat shumë të kënaqshëm. Me vetëm
11.000 pika gjendet destinacioni. [4]
4.3.3 Përmirësimet për Hybrid A* (Star)
Në mënyrë që algoritmi Hybrid A* të aplikohet plotësisht në rrugët me trafik, janë disa sfida
që duhet të përmbushen. Në këtë pjesë do të përshkruhet limitimi që ky algoritëm e ka dhe
si të kalohet ai problem.
4.3.3.1 Planifikimi përgjatë disa pikave
Në një skenar kompleks nuk është praktike që të kërkohet vetëm pika e ardhshme gjatë
krijimit të rrugës. Operuesi i veturës ka si qëllim që makina të kaloj nëpër një seri pikash
(waypoints) njëra pas tjetrës deri në destinacion. Kjo mund të përbëj problem në raste të
34
caktuara. Nuk mund të garantohet se nëse makina e kalon pikën e parë, do të ketë rrugë që
të arrihet edhe pika e dytë. Prandaj kur planifikohet përgjatë disa pikave nuk është praktikë
e mirë të llogariten vetëm dy pika dhe pastaj ato të bashkohen. Kjo mund të qoj në arritjen e
makinës në rrugë qorre. Në figurën më poshtë mund të shihet se si ndodh kjo. θ
Figura 13. Planifikimi i pikës së ardhshme
Planifikuesi e gjen rrugën më të shkurtër deri te G1, por pastaj ngec për shkak të radiusit të
limituar të kthimit. Ky limitim mund të tejkalohet duke llogaritur jo vetëm pikën e ardhshme,
por dy pikat e ardhshme [37]. Rruga që starton dhe vazhdon drejt G1 duhet të përmbush
kushte shtesë që arrij edhe tek G2. Figura tjetër tregon një rrugë që kalon nëpër të dyja pikat.
Figura 14. Planifikimi i dy pikave të ardhshme
Secilës pikë n i shoqërohet një e dhënë që tregon nëse kjo pikë është shtuar në në setin O të
pikave gjatë planifikimit të G1 ose G2. Procedura e planifikimit fillon me pikën që i asociohet
segmentit të parë s = 1. Kur kjo pikë e arrin destinacionin e parë G1, pasardhësi i tij
gjenerohet dhe shikon nëse mund të arrij tek G2. Vetëm nëse pikës arrihet t’i shoqërohet
35
segmenti s = 2, atëherë konsiderohet se është gjetur rruga për G2. Pseudokodi për këtë
procedurë është i dhënë më poshtë.
Figura 15. Pseudokodi për Hybrid A* me planifikim të dy pikave të ardhshme.
Seti O i pikave përmbanë dy pika të reja sa herë që arrihet një destinacion i rradhës. Në këtë
mënyrë gjithmonë aplikohet kjo mënyrë e gjenerimit të trajektoreve. Për çdo pikë që do të
llogaritet, merret parasysh edhe kalkulimi i pikës së fundit f. Për tu garantuar rradhitja e saktë
e pikave që do të gjenerohen, pikës f i aplikohet distanca Euklidiane ndaj pikës së ardhshme.
Megjithatë ka raste kur distanca Euklidiane nuk është e mjaftueshme për shkak të
kompleksitetit të rrugës dhe pengesave. Atëherë duhet të merren parasysh dy raste dhe të
ndahen:
1. Rasti I – Rruga që të drejton tek gjendja e pikës x në hapësirë ende nuk e ka arritur
G1.
36
2. Rasti II – Rruga që të drejton tek gjendja e pikës x në hapësirë e ka kaluar G2.
Megjithëse kjo mënyrë është e pranueshme, në përgjithsi nuk është plotësisht e besueshme
për shkak të rritjes së kostos kur kalohet prej segmentit të parë në të dytin. Kjo rezulton në
krijimin e më shumë pikave se sa është e nevojshme. Prap se prap mund të ketë implementim
praktik të tyre pasi që makina do të kalonte përmes G1 tek G2 nëpër pikat më të volitshme.
Procesimet kompjuterike do të ishin shumë të larta. Për më tepër, nuk do të merrej parasysh
drejtimi i lëvizjes së makinës, që do të rriste edhe më tepër koston e rrugës. Edhe pse
planifikuesi përgjatë dy pikave është efikas dhe funksionon, kompleksiteti i kalkulimeve
kompjuterike do të ishte shumë i madh për menaxhim efikas. Fakti së planifikimi ndodh në
cikle të shkurta dhe nevojitet kapacitet i lartë kompjuterik ka bërë që të përdoren më pak.
4.3.3.2 Zgjerimi i kërkimit në kohë konstante
Kërkimi i bazuar në qelitë (grid maps) zbërthehet në manovrim të timonit (steering) dhe
gazit. Kjo bën që gjendja përfundimtare e mjetit në lëvizje, nuk do të arrihet asnjëherë me
saktësi të madhe. Saktësia varet nga rezolucioni i grid map. Për t’iu qasur këtij problemi dhe
të përmirësojmë shpëjtësinë e kërkimit, shtohet zgjerim analitik i bazuar në modelin e Reed
– Shepp [38].
Për disa nga pikat në hartë, pika e ardhshme ku do të arrij automjeti llogaritet me modelin
Reed – Shepp. Ajo rrugë e kalkuluar me atë model kontrollohet nëse ka ndonjë pengesë duke
u bazuar në hartën e të gjitha pengesave që e pranon. Segmenti i ri rrugor shtohet në pemën
me rrugë që të qojnë në destinacion, vetëm nëse është collision-free. Kërkimi me modelin
Reed – Shepp kryhet në kohë konstante. Prandaj nuk është e përshtatshme që ky model të
aplikohet në të gjitha pikat gjatë kërkimit. Posaqërisht në pikat fillestare ku mundësia e
gjetjes së pengesave është më e madhe. Përdorimi i një funksioni përzgjedhës është i
domosdoshëm që Reed – Shepp të zbatohet çdo N pika, ku vlera e N zvogëlohet me rritjen e
numrit të pikave të gjetura. Sa më shumë që makina afrohet tek destinacioni, aq më shumë
zbatohet modeli.
Një shembull i Reed – Shepp shihet në figurën më poshtë. Hapësira kërkuese e gjeneruar nga
rritja inkrementale është shënuar me ngjyrë të verdhë dhe të gjelbër. Ndërsa kërkimi me Reed
– Shepp është paraqitur me vijën rozë.
37
Figura 16. Kërkimi inkremental dhe me Reed – Shepp [5]
Dobitë e përdorimit të zgjerimit në kohë konstante me modelin Reed – Shepp janë së tepërmi
të varura në dendësinë e pengesave në mjedis. Në njërën anë, nëse spektri i kërkimit ka
hapësira të mëdha pa pengesa, Reed – Shepp do ta gjej shumë shpejt rrugën. Në anën tjetër,
nëse spektri i kërkimit është i mbushur me pengesa, rruga do të rezultoj në përplasje.
Megjithatë përdorimi i kësaj metode ka avantazhe të mëdha në shpejtësinë e planifikimit.
4.3.4 Aplikimi i Hybrid A* duke u bazuar në grafe
Navigimi nëpër zonat urbane kërkon strukturim më të mirë hartës. Ndihma e strukturës
topologjike është e nevojshe. Ajo është një bashkësi e madhe pikash, ku secila pikë ka si
fqinjë një bashkësi tjetër pikash. Struktura topologjike e ambientit paraqet parkingjet, korsitë
të shënuara me vija dhe lëvizjen e trafikut më detajisht. Që mjeti të lëvizë në ambient më të
komplikuar me shumë pengesa, përdoret një rrjet i detajuar i gjith ambientit i paraqitur në
një graf me segmente të drejtuara [39]. Grafi krijohet nga inputet e modulit të perceptimit të
mjedisit dhe lokalizimit. Në këtë mënyrë nuk është nëvoja e gjenerimit të rrugës dhe
planifikimit në të njejtën kohë. Roli i grafit me segmente të drejtuara është i dyfishtë. Së pari
e modifikon funksionin e kalkulimit të kostos. Rrugët që nuk e ndjekin grafin gjatë tërë kohës
38
iu jepet një kosto më e lartë. Së dyti grafi i krijon hartën e mjedisit me saktësi shumë të
madhe.
Rrjeta e rrugëve paraqitet në një graf me segmente të drejtuara G = (V, E). Definohet distanca
e segmentit E që e dërgon makinën prej gjendjes (x, y) deri tek pika e rradhës me afërt me
anë të distancës Euklidiane. Në figurën më poshtë shihet dallimi në mes planifikuesit që e
përdorë grafin për kërkim dhe atij që nuk e përdorë.
Figura 17. a) Mjedisi 2D pa përdorimin e grafeve dhe b) mjedisi që përdorë rrjetën e grafeve.
Vendet e theksuara me ngjyrë të gjelbër janë më afër desinacionit, ndërsa vendet me ngjyrë
të kuqe janë ato shumë më larg pikës përfundimtare. [6]
Për gjetjen sa më të saktë të rrugës, në planifikuesin e bazuar në grafe aplikohet metoda e
kërkimit në kohë konstante Reed – Shepp. Zbatimi i tij mund të shihet në figurën poshtë ku
korsia e bllokuar kalohet lehtësisht me ndihmën e Reed – Shepp që e aplikon funksionin
përzgjedhës në pikën e bllokuar.
39
Figura 18. Me vijën rozë është paraqitur aplikimi i Reed – Shepp në grafin me segmente. [7]
Simulimi i bërë në DARPA Urban Challenge tregon specifikisht numrin e pikave të
eksploruara përgjatë kërkimit. Shihet përmirësim i dukshëm kur përdoren grafet për kërkim
në hapësirë.
40
Figura 19. Dy imazhe e para lartë nuk e aplikojnë kërkimin në graf. Dy imazhet e tjera poshtë
tregojnë se sa shumë është përmirësuar shpejtësia e kërkimit kur përdoren grafe. [8]
Më poshtë është tabela me kondita të ndryshme për algoritmin dhe rezultatet e arritura nga
simulimi që ka bërë një grup inxhinierësh [40].
Gjatësia e rrugës së kërkuar Koha e gjetjes së rrugës
500 metra 18.15 sekonda
1000 metra 36.3 sekonda
2000 metra 72.6 sekonda
3000 metra 109 sekonda
Tabela 3. Outputet e algoritmit Hybrid A* të bazuar në studimin e përmendur
41
5 REZULTATE
5.1 Rezultati pas krahasimit dhe analizimit të RRT dhe Hybrid A* (Star)
Në strukturën e përgjithshme të automjeteve inteligjente, moduli i planifikimit të rrugës është
ai që e bën të veçantë ndaj mjeteve jo inteligjente. Është analizuar algoritmi Rapidly-
Exploring Random Trees dhe janë nxjerë konkludime mbi avantazhet dhe disavantazhet e
saj. Më pas e njëjta është bërë edhe për algoritmin Hybrid A* (Star). Duke parë të metat e
RRT, varianti tjetër Hybrid A* ofron zgjidhje. Por duke ditur që moduli për planifikimin e
rrugës është më pak i hulumtuar se modulet e tjera, deri tani rezultatet janë premtuese. Në
tabelën më poshtë janë avantazhet dhe të metat e secilit prej këtyre algoritmeve.
RRT Hybrid A*
Përparësitë Përparësitë
• Realizueshmëria në kohë reale • Fuqi e vogël llogaritëse për tu
procesuar
• Kërkim i shpejtë në hapësirë të lirë • Gjenerim i rrugës optimale dhe me
lakesa për zbutjen e kthesave të
forta
• Detektim i përplasjeve të
mundshme
• I përshtatshëm në mjedise
dinamike
Dobësitë Dobësitë
• Kthesa që i afrohen limitit të
kthimit
• Kohë e gjatë e kalkulimit për rrugë
me numër të madh të kthesave
• Varësi e madhe ndaj pikave fqinje
për kalkulim
• Tendencë e ndërrimit të drejtimit
pa ndonjë nevojë specifike
• Teknikat për mbrojtjen nga
përplasjet kërkojnë funksionim të
përsosur të moduleve tjera të AIA
• Ndërrimi i korsisë në mënyrë të
ashpër
Tabela 4. Krahasimi mes RRT dhe Hybrid A*
42
5.2 Përmbushja e qëllimit kryesorë duke përmbushur objektivat
Qëllimi kryesorë ka qenë analizimi dhe krahasimi mes dy algoritmeve që e planifikojnë
rrugën në mënyrën më të mirë. Analizimi i hollësishëm i algoritmeve, mënyrës së
funksionimit, dobësive dhe të mirave të tyre, dërguan në përmbushjen e qëllimit.
Objektivat të cilët u realizan janë:
• Të analizohet struktura e përgjithshme e AIA.
Para se të analizohej struktura e AIA, është shqyrtuar zhvillimi i moduleve që e përbëjnë.
Duke parë që e ardhmja e automjete të menqura duket më premtuese, zhvillimi i AIA do të
ishte benefit i madh. Struktura e përgjithshme e AIA ndahet në modulin për:
1. Kontrollin e lëvizjeve
2. Perceptimin e mjedisit
3. Lokalizimin e mjetit në hartë
4. Planifikimi i rrugës
Moduli i kontrollit të lëvizjeve ka disa metoda që aplikon, për ta vënë në lëvizje makinën.
Ato janë metoda kinetike e kontrollit, sistemi linear i kontrollit dhe metoda parashikuese e
kontrollit. Perceptimi i mjedisit kupton strukturën e ambientit rrethues të makinës dhe krijon
një model të saj. Ndahet në dy pjesë, detektimi i rrugës dhe korsisë dhe detektimi dhe njohja
e shenjave të trafikut. Lokalizimi ndihmon AIA në respektimin e rregullave rrugore. Në
rastin më të mirë, përdorë metodën LIDAR të pozicionimit. Në fund bëhet gjetja e rrugës më
të mirë me ndihmën e RRT, A* etj.
• Analizimi dhe simulimi i algoritmit Rapidly-Exploring Random Trees.
Analizimi i algoritmit, mënyrës se si funksionon dhe të metodave dhe kalkulimeve që mund
t’i shtohet për ta rritur nivelin e saktësisë, e bëjnë të përdorshëm në raste të caktuara. Ofron
implentim të shpejtë me gjetje të garantuar të rrugës që është e arritshme. Por nuk mund të
përcaktoj se kur nuk zgjidhje për gjetjen e rrugës. Simulimi është bërë me softëare-in
MATLAB dhe me vizualizime të qarta është vërejtur cikli i zhvillimit të rrugës.
43
• Analizimi dhe simulimi i algoritmit Hybrid A* (Star).
Pas përfundimeve të nxjerra nga analiza e RRT, studimi po ashtu në thellësi i Hybrid A*
tregoj përmirësim të reagimit në disa stuata në trafik për makinën. Shqyrtohen mundësitë dhe
metodat që e bëjnë edhe më të saktë, por me kosto të lartë të llogaritjes. Kërkimi në dy pikat
e ardhshme në hapësirë duke u bazuar në hartë, përmirëson lëvizjen e makinës. Ndërsa
kërkmi në kohë konstante i bazuar në modelin e Reed – Shepp e rrit performancën e makinës,
do të thotë ulet koha e gjetjes së pikës së ardhshme. Simulimi i këtij algoritmi nuk ka qenë i
mundur për shkak të shumë elementeve ndihmëse që e optimizojnë funksionimin e tij.
• Të krahasohen ato algoritme dhe të nxirren përdundime për secilën.
Simulimi i të dy algoritmeve është performuar me anë të softëare-it MATLAB, softëare
special për krijimin e ambienteve testuese. Pas simulimit janë nxjerrë pikat e forta dhe të
dobëta të secilit algoritëm. Është treguar se në cilat raste, cili algoritëm është më i favorshëm.
44
6 PËRFUNDIME
6.1 Përfundimet e arritura për problemin e deklaruar
Në këtë studim janë paraqitur aplikimet e algoriteve për planifikim të rrugës dhe lëvizjes,
RRT dhe Hybrid A*.
RRT është vlerësuar në performancë duke përdorë simulatorë. Ky algoritëm është bazuar në
sjelljen e syrit gjatë shikimit në rrugë kur një njeri nget makinën. Planifikuesi pranon të dhëna
nga modulet e tjera dhe krijon një hartë gati të përsosur deri tek destinacioni. Karakteristikë
e RRT është bazimi në near dhe far points, që rrit performancën e algoritmit dhe rruga e
gjeneruar është më afër sjelljes reale se si një njeri do të ngiste. Për të garantuar edhe më
shumë trajektoren e përsosur aplikohen distanca Euklidiane dhe metoda B-Spline për
procesim të lakesave të forta. Janë zhvilluar një numër i testeve dhe analizave që e kanë
krahasuar me algoritme të tjera, dhe rezultatet kanë treguar se RRT mund të aplikohet.
Aplikimi mund të jetë në mjedise statike ose edhe dinamike. Megjithatë në rrugë të
strukturuara me shumë trafik, makina ka tendencë të dal nga kufinjtë e rrugës dhe
potencialisht të shkaktoj aksident.
Po ashtu u prezentua edhe aplikimi i algoritmit Hybrid A* për planifikimin e rrugës. Gjatë
kalkulimit të trajektoreve merr parasysh kufizimet kinematike të makinë dhe gjendjen
momentale të rrugës. Ka aftësinë të planifikoj nëpër dy pikat e ardhshme, dhe kështu duke
garantuar arritshmërinë në destinacion. Përdorimi i funksioneve që llogaritin koston e një
rruge lejon përfshirjen e kufizimeve si ndjekja e shiritit.
6.2 Puna e mëtutjeshme
Specifikisht për algoritmin Rapidly-Exploring Random Trees mund të përdoret një kamerë
si input eksta për detektimin e objekteve përpara. Kjo mund të bazohet në syrin e njeriut se
e percjell ai situatën në trafik. Problemi më i madhi është detektimi dhe shmagja e pengesave
dinamike për shkak të paparashikueshmërisë.
45
Duke ditur që automjetet autonome inteligjente janë fushë e re e zhvillimit, ka probleme të
ndërlidhjes së të gjitha moduleve. Algoritmet që i ndërtojnë këto module kanë ekzistuar dhe
janë përdorur për qëllime të ndryshe. Sot ende ka vështirësi të mëdha në implementimin e
tërësishëm të sistemit dhe duhet punë e madhe. Industria e AIA është ende në hapat e parë,
dhe nëse këto makina fillojnë të përdoren më shumë, do ta ulnin numrin e aksidenteve. Duke
marrë parasysh këtë fakt, zhvillimet në përparimin e sistemeve automatizuese në AIA do ta
ndihmonin së tepërmi rritjen e përdoruesve të tyre.
46
7 REFERENCA
7.1 Referencat në tekst
[1] http://apps.who.int/gho/data/node.main.A997 çasja e fundit: Tetor 2016
[2] http://www.c2es.org/technology/overview/buildings çasja e fundit: Tetor 2016
[3] J. Anderson, N. Kalra, K. Stanley, P. Sorensen, C. Samarus and O. Oluwatola,
“Autonomous Vehicle
Technology: A Guide for Policymakers”, Santa Monica: RAND Corporation, 2016
[4] Nils John Nilsson, Artificial Intelligence: A New Synthesis, China: Morgan Kaufmann
Publishers, 1998
[5] D.M. Stavens, “Learning to drive: Perception for autonomous cars”, Ph.D,
Dep.Shkenca Kompjuterike, Universiteti i Stanfordit, San Francisko, 2011
[6] T.C. Galluzzo, “Simultaneous Planning And Control For Autonomous Ground
Vehicles”, Ph.D, Dep. Shkenca Kompjuterike, Universiteti i Floridas, Gainesville, 2006
[7] C. Coulter, “Implementation of the Pure Pursuit Path tacking algorithm”, Ph.D, Dep.
Robotikës, Universiteti Carnegie Mellon, Pittsburgh, 1992
[8] S. Russell, P. Norving, “Artificial Intelligence: A Modern Approach”, USA, Prentice
Hall Publishing, 2009
[9] M. Lundgren, “Path Tracking for a Miniature Robot”, Masters, Dep. Shkenca
Kompjuterike, Universiteti Umea, Suedi, 2003
[10] H. Mortberg, “Artificial Intelligence: A Modern Approach”, Stockholm Suedi, 2006
47
[11] J. S. Wit, “Vector Pursuit Path Tracking For Autonomous Ground Vehicles”, Ph.D,
Inxhinieri Mekanike, Universiteti i Floridas, Florida, 2000
[12] S.B. Choi, “The Design of a Control Coupled Obsever for the Longitudinal Control of
Autonomous Vehicle”, 2008
[13] M. Cannon, “C21 Model Predictive Control”, Dep. Inxhinierisë, Universiteti i
Oxfordit, Oxford, 2016
[14] L. Chen, Q. Li, M. Li, L. Zhang, Q. Mao, “Design of a Multi-Sensor Cooperation
Travel Environment Perception System for Autonomous Vehicle”, Dep. Elektronikës,
Universiteti Wuhan, Kinë, 2012
[15] N. Yung, A. Lai, “Effective Edge-Based Road Lane Detection”, Departamenti
Inxhinierisw Elektrike, Universiteti i Hong Kongut, Hong Kong, 2011
[16] A. Kumar, P. Simon, “Review of lane detection and tracking algorithms in advanced
driver assistance system”, Departamenti Shkencave Kompjuterike, Universiteti i Keralas,
Indi, 2015
[17] W. Zuo, T. Yao, “Road model prediction based unstructured road detection”, Dep.
Inxhinieri elektrike, Universiteti Zhejiang, Kinë, 2013
[18] S.Hossain, Z. Hyder, “Traffic Road Sign Detection and Recognition for Automotive
Vehicles”, Dep. Inxhinieri elektrike, Universiteti Veri Jug, Bangladesh, 2015
[19] J. Levinson, M. Montemerlo, S. Thrun, “Map-Based Precision Vehicle Localization in
Urban Environments”, Dep. Inteligjencës artificiale, Universiteti i Stanfordit, San
Francisko, 2015
48
[20] N. Suganuma, D. Yamamoto, K. Yoneda, “Localization for Autonomous Vehicle on
Urban Roads”, Japoni, 2015
[21] C. Katrakazas, M. Quddus, W. Chen, L. Deka “Real-time motion planning methods for
autonomous on-road driving: State-of-the-art and future research directions”, Dep.
Inxhinierisë automobile, Universiteti Loughborough, Mbretëria e Bashkuar, 2015
[22] J. Petereit, T. Emter, C. Frey, “Application of Hybrid A* to an Autonomous Mobile
Robot for
Path Planning in Unstructured Outdoor Environments”, Karlsruhe, Gjermani, 2012
[23] D. Dolgov, S. Thrun, M. Montemerlo, J. Diebel, “Path Planning for Autonomous”,
Dep. Inteligjencë artificiale, Universiteti i Stanfordit, San Francisko, 2010
[24] Y. Kuwata, J. Teo, G. Fiore, S. Karaman, E. Frazzoli, J. How, “Real-time Motion
Planning with Applications to Autonomous Urban Driving”, IEEE Transaction on control
systems technology, 2009
[25] A. Abbadi, R. Matuosek, S. Jancik, J. Roupec, “Rapidly-Exploring Random Trees: 3D
Planning”, Instituti i Automatikës dhe Shkencave Kompjuterike, Universiteti Teknik i
Bërnos, Çeki, 2016
[26] R. Radaelli, C. Badue, M. Goncalves, T. Santos, A. Souza, “A Motion Planner for
Car-Like Robots Based on Rapidly-Exploring Random Trees”, Dep. Informatikës,
Universiteti Federal Espirito Santo, Brazil, 2011
[27] E. Shan, B. Dai, J. Song, Z. Sun “A Dynamic RRT Path Planning Algorithm Based on
B-Spline”, Dep. Inxhinierisë dhe automekanikës, Changsha, Kinë, 2009
[28] R. Mourant, T. Rockwell “Strategies of Visual Search by Novice and Experienced
Drivers”, Journal Citation Report, 2016
49
[29] E. Frazzoli, “Robust Hybrid Control for Autonomous Vehicle Motion Planning”, Ph.D,
Dep. Aeronautikws, MIT, 2001
[30] M. Du, T. Mei, H. Liang, J. Chen, R. Huang, P. Zhao, “Drivers’ Visual Behavior-
Guided RRT Motion Planner for Autonomous On-Road Driving”, Dep. i Automatikës,
Universiteti i shkencave dhe tekonologjisë, Kinë, 2015
[31] https://en.wikipedia.org/wiki/Metric_(mathematics) çasja e fundit: Tetor 2016
[32] L. Palmieri, K. Arras, “Distance Metric Learning for RRT-Based Motion Planning for
Wheeled Mobile Robots”, Publikimet Spencer, 2014
[33] J. Kwak, P. Scierri, “Path Planning for Autonomous Information Collecting Vehicles”,
Dep. i robotikës, Universiteti Carnegie Mellon, Pittsburgh 2010
[34] M. Montemerlo, J. Diebel, “Path Planning for Autonomous Vehicles in Unknown
Semi-Structured Environments”, Instituti i kërkimit të Toyotas, 2010
[35] M. Montemerlo, J. Becker, S. Bhat, T. Hilden, G. Hoffman, “Junior: The Stanford
Entry in the Urban Challenge”, Laboratori i inteligjencës artificiale, Universiteti i
Stanfordit, San Francisco 2007
[36] G. Guerro-Filha, H. Samet, “A Hybrid Shortest Path Algorithm for Intra-Regional
Queries on Hierarchical Networks”, Dep. Shkencave kompjuterike dhe inxhinieriswë,
Universiteti i Texas, Arlington USA, 2009
[37] J. Petereit, T. Emer, C. Frey, “Application of Hybrid A* to an Autonomous Mobile
Robot for Path Planning in Unstructured Outdoor Environments”, Instituti Fraunhofer,
Karlsruhe, Gjermani, 2013
50
[38] D. Dolgov, S. Thrun, M. Montemerlo, J. Diebel “Practical Search Techniques in Path
Planning for Autonomous Driving”, Instituti i robotikës, Universiteti i Stanford
[39] E. Chow, “A Graph Search Heuristic for Shortest Distance Paths”, Qendra për
aplikimin e shkencave kompjuterike, Livermore, California 2009
[40] L. Santoso, A. Setiawan, A. Prajogo, “Performance Analysis of Dijkstra, A* and Ant
Algorithm for Finding Optimal Path”, Dep. Informatikës, Fakulteti inxhinierisë industriale,
Universiteti Petra Christian, Indonezi, 2012
7.2 Referencat në figura
[1] D. Dolgov, S. Thrun, M. Montemerlo, J. Diebel “Practical Search Techniques in Path
Planning for Autonomous Driving”, Instituti i robotikws, Universiteti i Stanford
[2] L. Chen, Q. Li, M. Li, L. Zhang, Q. Mao, “Design of a Multi-Sensor Cooperation
Travel Environment Perception System for Autonomous Vehicle”, Dep. Elektronikës,
Universiteti Wuhan, Kinë, 2012
[3] L. Chen, Q. Li, M. Li, L. Zhang, Q. Mao, “Design of a Multi-Sensor Cooperation
Travel Environment Perception System for Autonomous Vehicle”, Dep. Elektronikës,
Universiteti Wuhan, Kinë, 2012
[4] D. Dolgov, S. Thrun, M. Montemerlo, J. Diebel “Practical Search Techniques in Path
Planning for Autonomous Driving”, Instituti i robotikës, Universiteti i Stanford
[5] M. Montemerlo, J. Diebel, “Path Planning for Autonomous Vehicles in Unknown Semi-
Structured Environments”, Instituti i kërkimit të Toyotas, 2010
51
[6] J. Petereit, T. Emer, C. Frey, “Application of Hybrid A* to an Autonomous Mobile
Robot for Path Planning in Unstructured Outdoor Environments”, Instituti Fraunhofer,
Karlsruhe, Gjermani, 2013
[7] D. Dolgov, S. Thrun, M. Montemerlo, J. Diebel “Practical Search Techniques in Path
Planning for Autonomous Driving”, Instituti i robotikës, Universiteti i Stanford
[8] E. Chow, “A Graph Search Heuristic for Shortest Distance Paths”, Qendra për
aplikimin e shkencave kompjuterike, Livermore, California 2009
52
8 APENDIKS
8.1 Kodi që simulon algoritmin RRT në MATLAB
8.1.1 Kodi për startimin e ekzekutimit të algoritmit
function startExecRRT
clc;
close all;
clear all;
num_of_runs =1;
run_RRTstar = 1;
dim = 3;
stepsize = [10];
random_world = 0;
radius = 10;
samples = 4000;
show_output = 1;
---------------------------------------------------------------------
if run_RRTstar == 1
time = 0;
avg_its = 0;
avg_path = 0;
for i = 1:num_of_runs
53
[n_its path_n,run_time] =
RRTstar3D(dim,segmentLength,radius,random_world,show_output,samples);
time = time + run_time;
avg_its = avg_its + n_its;
avg_path = avg_path + path_n;
end
---------------------------------------------------------------------
8.1.2 Kodi që e krijon hapësirën 3D
function [its,sizePath,run_time] =
RRTstar3D(dim,segmentLength,radius,random_world,show_output,samples)
if dim == 3
start_cord = [5,5,5];
goal_cord = [95,95,95];
end
Size = 100;
NumObstacles = 100;
if random_world ==1
world = createWorld(NumObstacles,ones(1,dim)*Size,zeros(1,dim),dim);
end
path = findMinimumPath(tree,end_node,dim);
path_4000 = findMinimumPath(tree_4000,end_node,dim);
if show_output == 1
figure;
plotExpandedTree(world,tree_4000,dim);
plotWorld(world,path_4000,dim);
end
54
-----------------------------------------------------------------------------
function world = createWorld(NumObstacles, endcorner, origincorner,dim)
if dim ==3;
% check to make sure that the region is nonempty
if (endcorner(1) <= origincorner(1)) || (endcorner(2) <= origincorner(2)) || (endcorner(3)
<= origincorner(3))
disp('Not valid corner specifications!')
world=[];
% create world data structure
else
world.NumObstacles = NumObstacles;
world.endcorner = endcorner;
world.origincorner = origincorner;
% create NumObstacles
bounds = [endcorner(1)- origincorner(1), endcorner(2)-origincorner(2), endcorner(3)-
origincorner(3)];
maxRadius = min(bounds);
maxRadius = 5*maxRadius/NumObstacles;
for i=1:NumObstacles,
% randomly pick radius
world.radius(i) = maxRadius*rand;
% randomly pick center of obstacles
cx = origincorner(1) + world.radius(i)...
+ (endcorner(1)-origincorner(1)-2*world.radius(i))*rand;
cy = origincorner(2) + world.radius(i)...
+ (endcorner(2)-origincorner(2)-2*world.radius(i))*rand;
cz = origincorner(2) + world.radius(i)...
+ (endcorner(2)-origincorner(2)-2*world.radius(i))*rand;
world.cx(i) = cx;
world.cy(i) = cy;
world.cz(i) = cz;
55
end
end
end
-----------------------------------------------------------------------------
function [world NumObstacles] = createKnownWorld(endcorner, origincorner,dim)
if dim == 3
NumObstacles = 9;
% check to make sure that the region is nonempty
if (endcorner(1) <= origincorner(1)) | (endcorner(2) <= origincorner(2)) | (endcorner(3)
<= origincorner(3)),
disp('Not valid corner specifications!')
world=[];
% create world data structure
else
world.NumObstacles = NumObstacles;
world.endcorner = endcorner;
world.origincorner = origincorner;
% create NumObstacles
maxRadius = 10;
world.radius(1) = maxRadius;
cx = 50;
cy = 50;
cz = 50;
world.cx(1) = cx;
world.cy(1) = cy;
world.cz(1) = cz;
world.radius(2) = maxRadius;
cx = 25;
cy = 25;
cz = 25;
world.cx(2) = cx;
56
world.cy(2) = cy;
world.cz(2) = cz;
world.radius(3) = maxRadius;
cx = 75;
cy = 75;
cz = 75;
world.cx(3) = cx;
world.cy(3) = cy;
world.cz(3) = cz;
world.radius(4) = maxRadius;
cx = 25;
cy = 25;
cz = 75;
world.cx(4) = cx;
world.cy(4) = cy;
world.cz(4) = cz;
world.radius(5) = maxRadius;
cx = 75;
cy = 75;
cz = 25;
world.cx(5) = cx;
world.cy(5) = cy;
world.cz(5) = cz;
world.radius(6) = maxRadius;
cx = 25;
cy = 75;
cz = 25;
world.cx(6) = cx;
world.cy(6) = cy;
world.cz(6) = cz;
57
world.radius(7) = maxRadius;
cx = 75;
cy = 25;
cz = 25;
world.cx(7) = cx;
world.cy(7) = cy;
world.cz(7) = cz;
world.radius(8) = maxRadius;
cx = 75;
cy = 25;
cz = 75;
world.cx(8) = cx;
world.cy(8) = cy;
world.cz(8) = cz;
world.radius(9) = maxRadius;
cx = 25;
cy = 75;
cz = 75;
world.cx(9) = cx;
world.cy(9) = cy;
world.cz(9) = cz;
end
end
end
---------------------------------------------------------------------
function node=generateRandomNode(world,dim)
if dim ==3;
% randomly pick configuration
px = (world.endcorner(1)-world.origincorner(1))*rand;
py = (world.endcorner(2)-world.origincorner(2))*rand;
pz = (world.endcorner(3)-world.origincorner(3))*rand;
58
chi = 0;
cost = 0;
node = [px, py, pz, chi, cost, 0];
% check collision with obstacle
while collision(node, node, world,dim),
px = (world.endcorner(1)-world.origincorner(1))*rand;
py = (world.endcorner(2)-world.origincorner(2))*rand;
pz = (world.endcorner(3)-world.origincorner(3))*rand;
chi = 0;
cost = 0;
node = [px, py, pz, chi, cost, 0];
end
end
end
--------------------------------------------------------------------
function collision_flag = collision(node, parent, world,dim)
collision_flag = 0;
if collision_flag == 0 && dim ==3
for sigma = 0:.2:1,
p = sigma*node(1:dim) + (1-sigma)*parent(1:dim);
% check each obstacle
for i=1:world.NumObstacles,
if (norm([p(1);p(2);p(3)]-[world.cx(i); world.cy(i); world.cz(i)])<=1*world.radius(i)),
collision_flag = 1;
break;
end
end
end
end
-------------------------------------------------------------------
function [new_tree,flag] = extendTree(tree,end_node,segmentLength,r,world,flag_chk,dim)
59
if collision(new_node, tree(idx,:), world,dim)==0
tmp_dist = tree(:,1:dim)-(ones(size(tree,1),1)*new_point);
dist = sqr_eucl_dist(tmp_dist,dim);
near_idx = find(dist <= r^2);
if size(near_idx,1)>1
size_near = size(near_idx,1);
for i = 1:size_near
if collision(new_node, tree(near_idx(i),:), world,dim)==0
cost_near = tree(near_idx(i),dim+2)+line_cost(tree(near_idx(i),:),new_point,dim);
if cost_near < min_cost
min_cost = cost_near;
min_parent_idx = near_idx(i);
end
end
end
end
new_node = [new_point, 0 , min_cost, min_parent_idx];
new_tree = [tree; new_node];
new_node_idx = size(new_tree,1);
if size(near_idx,1)>1
reduced_idx = near_idx;
for j = 1:size(reduced_idx,1)
near_cost = new_tree(reduced_idx(j),dim+2);
lcost = line_cost(new_tree(reduced_idx(j),:),new_point,dim);
if near_cost > min_cost + lcost ...
&& collision(new_tree(reduced_idx(j),:),new_node,world,dim)
before = new_tree(reduced_idx(j),dim+3)
new_tree(reduced_idx(j),dim+3) = new_node_idx;
after = new_tree(reduced_idx(j),dim+3)
end
end
60
end
end
end
-----------------------------------------------------------------
function path = findMinimumPath(tree,end_node,dim)
% find nodes that connect to end_node
connectingNodes = [];
for i=1:size(tree,1),
if tree(i,dim+1)==1,
connectingNodes = [connectingNodes ; tree(i,:)];
end
end
% find minimum cost last node
[tmp,idx] = min(connectingNodes(:,dim+2));
% construct lowest cost path
path = [connectingNodes(idx,:); end_node];
parent_node = connectingNodes(idx,dim+3);
while parent_node>1,
parent_node = tree(parent_node,dim+3);
path = [tree(parent_node,:); path];
end
end