JU Univerzitet u Tuzli Fakultet elektrotehnike Postdiplomski studij, 2013. Modul: Automatika i Robotika Predmet: Robotika, Mehatronika i Automatizacija, ti ij 2013. Navigacija prema cilju Vanr.prof.dr. Lejla Banjanović-Mehmedović
Zadaci mobilnih robota Da bi uspješno izvršio zadatak navigacije robot mora biti sposoban u svakom trenutku izvesti četiri fundamentalne navigacijske radnje: Gradnja mape robotske okoline Lokalizacija robota Planiranje putanje Upravljanje kretanjem
Navigacija Problem navigacije mobilnog robota može se podijeliti u dva potproblema: kretanje prema cilju i izbjegavanje prepreka. Problem izbjegavanja prepreka može se riješiti korištenjem lokalnih informacija. U slučaju neprediktabilnog okruženja ovaj problem se ne može unaprijed riješiti budući da robot treba osjetiti prepreke prije njihovog obilaženja. Problem kretanja prema cilju je globalni problem i ne može se riješiti samo na osnovu lokalnih informacija.
Navigacija U robotici, navigacija je čin kretanja robota sa jednog mjesta na drugo uz izbjegavanje prepreka. Pri navigaciji, roboti ili: Idu prema cilju/evima ili slijede fiksnu putanju (poznatu unaprijed) Kada se kreće prema cilju, robot se obično oslanja na senzorska očitanja i koriguje lokaciju i smjer prema najboljem izboru, koji vodi ka cilju.
Planiranje kretanja Postoje dvije fundamentalne paradigme za planiranje putanje s izbjegavanjem prepreka: Lokalni pristup se obavlja on-line korištenjem malog broja poznatih informacija o prostoru. Moguće je reagirati na nepredviđene promjene i ne zahtijeva se velik iznos računarskog vremena. Na ovaj način nije moguće dobiti optimalnu putanju. Globalni pristup koji generiše putanju off-line korištenjem poznatih informacija o okolini. On zahtijeva precizno specificiran model okoline i znatan iznos vremena računanja. Ovim pristupom nije moguće reagirati na nepredviđene promjene u okolini.
Planiranje kretanja Jedan od ključnih problema u mobilnoj robotici je sposobnost generisanja plana vlastitog kretanja s ciljem izvršavanja nekog zadatka. Proces kojim se određuje skup slobodnih putanja kretanja (engl. collision free paths) robota do željenog cilja naziva se planiranje kretanja.
Planiranje putanje Kada je obezbjeđena fiksna putanja prema kojoj se navigira, putanja je obično proračunata (planirana) ranije. Planiranje putanje je metodologija ispitivanja poznatih informacija o okruženju i proračun putanje koja zadovoljava jedan ili više uslova: Izbjeći prepreke, p najkraća, najmanje j okretaja, sigurna, Ključ za plan laniranje putanje je efikasnost kod realnih robota, optimalno rješenje nije uvijek praktično apro proksimativna rješenja su često dovoljna i poželjna.
Ciljevi Tehnike navigacije robota prema cilju Algoritmi ik koji rade u okruženju sa poznatim lokacijama prepreka nepoznatim lokacijama prepreka Različite forme mapa Navigacija korištenjem mape bazirane na značajkama Navigacija korištenjem potencijalnih polja
Sadržaj Ciljno usmjerena Navigacija Navigacija i planiranje putanje Navigacija prema cilju Navigacija u nepoznatom okruženju Bug Algoritmi (Bug1, Bug2, Tangent Bug) Vector Field Histograms Navigacija u poznatom okruženju Navigacija bazirana na mapama značajki Navigacija bazirana na potencijalnim poljima
Navigacija ij u nepoznatom okruženju
Strategije Strategije navigacije prema cilju kada su lokacije prepreka nepoznate: Robot mora osjetiti prepreke Robot koristi reaktivnu navigaciju (ide prema cilju i koriguje putanju) Strategije: Bug 1 algoritam Bug 2 algoritam Tangent Bug algoritam Vector Field Histograms (VFH)
Bug Algoritmi
Bug Algoritmi Ciljna lokacija je poznata ali su prepreke nepoznate GPS je raspoloživ => robot zna svoju lokaciju unutar okruženja ili robot ima efikasne metode dead reckoning. Robot ima senzore da detektuje i slijedi granice prepreka Jednostavni algoritmi i za ovaj scenario: Bug1 Bug2 Tangent Bug
Bug1 Algoritam Bug1 Strategija ija: Kretanje prema cilju dok ne naiđe na prepreku, obići prepreku i naći najbližu tačku cilju. Kretanje nazad prema najbližoj tački te kretanje prema cilju. Podrazumjeva se da robot zna ciljnu tačku ali je ne može vidjeti ili detektovati. Robot pronalazi granične tačke najbliže cilju Cilj (g x, g y ) Start (r x, r y ) Robot okrenut prema cilju Robot obilazi cijelu prepreku
Bug1 Algoritam Uvijek pronalazi ciljnu tačku (ako je dosegljiva). Izvršava iscrpnu pretragu najbolje j tačke u kojoj j napušta g prepreku i ide prema cilju. p 3 m 3 m 2 r p 1 p 2 m 1 g p m r
Bug2 Algoritam Varijacija algoritma a koji će omogućiti robotu da izbjegne kretanje duž SVIH putanja oko prepreke. Bug2 Strategija ija: Kretanje prema cilju dok ne naiđe na prepreku, onda ide oko prepreke. Robot se sjeća linije na kojoj je naišao na prepreku prema cilju, prestaje sa slijeđenjem, kada ponovo naiđe na liniju. Robot slijedi samo dio prepreke Cilj (g x, g y ) Start (r x, r y ) Robot pronalazi graničnu tačku koja presjeca liniju prema cilju i napušta je ovdje, krećući se prema cilju.
Bug2 Algoritam Uvijek pronalazi ciljnu tačku (ako je dosegljiva). Izvršava pohlepnu p pretragu najbolje j tačke u kojoj j napušta prepreku i ide prema cilju. p 3 m 2 m 3 g p 2 m 1 r p 1
Bug2 Algoritam Bug2 algoritam je brži, kad su prepreke jednostavnije ali je sporiji od Bug1 u kompleksnom okruženju. Ova dva algoritma podrazumjevaju da robot samo detektuje prisustvo prepreka kontaktom ili pri bliskom susretu. Možemo unaprijediti algoritam kada je robot opremljen sa 360 range senzor orom, om, koji određuje distance do prepreka.
Tangent Bug Algoritam Podrazumjeva se da robot ima senzor kojima detektuje distance prema preprekama oko njega: Praktično: Broj detektalivnih uglova je fiksan (npr. svakih 5) Operativno područje senzora je ograničeno Neke prepreke su iza opsega senzora. Iako su prepreke u opsegu, sensor ne može detektovati neke uglove.
Tangent Bug Algoritam Definisanje isanje tački diskontinuiteta kao tački u kojima je senzorsko očitanje izgubljeno (zbog radijalnog dometa): prepreke izvan opsega prepreke nejasne Interval kontinuiteta je definisan sa dvije tačke diskontinuiteta. Interval kontinuiteta
Tangent Bug Algoritam Algoritam sličan Bug2 algoritmu: robot se kreće ć prema cilju dok ne osjeti obje bjekt tdi direktno između sebe i cilja. - U tom slučaju, linija ija od robota do cilja presjeca interval kontinuiteta. Robot se pomjera do diskontinuit ontinuiteta (e 1 or e 2 ) intervala tako da maks ksimalno umanjuje heurističku estimaciju do cilja. g - e.g., MIN( re 1 + e 1 g, re 2 + e 2 g ) e 1 r e 2
Tangent Bug Algoritam Robot se nastavlja kretati prema tački diskontinuiteta sve dok više ne može umanjivati heurističku estimaciju prema cilju. tj. dosegao je lokal alni minimum. Robot potom slijedi granicu, idući prema tački diskontinuit ontinuiteta u istom mjeru. Napušta granicu idući prema cilju ponovo.
Tangent Bug Algorithm Bug algoritmi planiranja imaju sljedeće prednosti: Jednostavni i intuitivni Lagana implementacija Garantovano (teoretsko) dosezanje cilja (kad je moguće) Imaju praktične probleme: Predpostavljau perfekto pozicioniranje (nije stvarno moguće) Predpostavljaju senzaciju bez greške (nije uvijek moguće) Stvarni roboti imaju ograničenu ugaonu rezoluciju p 1 p 2 g r
Vector Field Histogrami
Vector Field Histogrami Vector Field Histogrami se koriste za brzu navigaciju oko prepreka. Kao i tehnika potencijalnih polja, ova tehnika upravlja u najboljem pravcu koji vodi do cilja. Svaka lokacija u mrežnoj mapi predstavlja vektor, baziran na tekućem ć senzorskom očitanju. Vektori se kombinuju kao potencijalna polja da bi proizveli ukupan vektor smjera koji se koristi da usmjeri robota.
Vector Field Histogrami 2D mreža reducirana na histogram iz kojeg su ugao usmjeravnja j i brzina robota proračunati č. Veći broj: veća izvjesnost prepreke Ciljna lokacija 3 2 4 1 4 1 1 3 2 1 1 1 2 4 3 1 3 4 1 2 2 2 3 1 3 1 1 4 2 1 3 3 4 5 5 1 1 4 5 3 Tekuća lokacija i smjer
Vector Field Histograms U cilju pojednostavljenja proračuna, koristi se samo dio (prozor) umjesto cjele mreže tzv. aktivna mreža. Mjenja se sa kretanjem robot bota. Histogram proračunat samo za ćelije u prozoru. Robot ispituje samo lokalne informacije, ne globalne kao kod metode potencijalnih polja. 1 2 4 3 1 3 4 1 Aktivna mreža 3 2 4 1 4 1 1 3 2 1 1 2 2 2 3 1 3 1 1 4 2 1 3 3 4 5 5 1 1 4 5 3
Vector Field Histogrami Za svaku ćeliju je proračunat vektor: Direktno iz ćelije trenutne robotske lokacije Magnitude koja korespondira izvjesnosti prepreke (tj. trenutne vrijednosti ćelije
Proračun vektora (c ij x, c ij y) lokacija ćelije na poziciji (i, j) u mreži sa izvjesnosti c ij val.. (r x, r y ) robotska tekuća lokacija Proračun vektor tora v ij za ćeliju c ij : Konstanta normalizacije (npr., 12) Konstanta korištena za normalizaciju. (npr., 1.5) Distanca od centra ćelije do centra robota v ij = ij mag (c val val) 2 ij x, ij ) (Ф σ dist((c x c y), y (r x, r y ))) v ij dir = atan((c ij y - r y ) / (c ij x - r x )) )) Dodaje 180 kada je c ij x -r x >= 0 x x
Proračun sektora Given an angular resolution α,, the vectors are grouped into a specified number of angular regions (i.e., sectors). e.g., if α = 24, then each sector represents angles within a 15 wedge. If α = 16 then wedges are 22.5 etc Sector s ij of cell c ij computed as: s ij = (int) v ij dir / (360 / α) Multiple vectors are grouped within this 22.5 sector.
Proračun histograma Proračun histograma sa α bin-ova (tj. jedan bin za svaki sektor). Proračun h k za sektor (0 k < α), nazvan polarna gustina prepreka, kao sume magnituda svih vektora sa istim s ij ij. h k = (v ij mag s ij = k) i, j Svi vektor tori ćelija v ij adekvatne sektore. su distribuirani irani u ij su
Proračun histograma Generisanje histograma: α = 16 400 350 300 Dolina indicira otvaranje Pikovi indiciraju prepreke Magnitude 250 200 150 100 50 0 0 45 90 135 180 225 270 315 Radial Degrees α = 72 250 200 Rezolucija sektora bolja: Razlika u otvaranju između dvije prepreke tude 150 100 50 0 0 25 50 75 1 00 25 50 75 200 225 250 275 300 325 350 Magnit 1 1 1 Radial Degrees
Proračun histograma Usrednjavanje histograma 250 200 150 100 50 0 80 70 60 50 40 30 20 10 0 0 25 50 75 100 125 150 175 200 2 225 2 250 2 275 2 300 3 325 350 Magnitude 3 3 0 25 50 75 100 125 150 175 200 225 250 2 275 2 300 325 350 Magnitude 3 3 3 Radial Degrees Radial Degrees Bez usrednjavanja Usrednjavanje 4 susjeda (jednom) 80 70 Magnitud de 70 60 50 40 30 20 10 0 Magnitud de 60 50 40 30 20 10 0 prag 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 Radial Degrees Radial Degrees Usrednjavanje 4 susjeda (dvaput) Usrednjavanje 4 susjeda ( četiri puta)
Korištenje histograma Kada je histogram kreiran, određivanje Sektor tora koji sadrži vektor od robotske lokacije do ciljne lokacije: s g = (int) (atan(( atan((g y - r y )/( (g x - r x )) / (360 / α)) 70 Naći dolinu 60 s i, s i+1,, s k 50 koja je 40 najbliža sektoru s g 30. 20 Primjeniti prag! Magnitude 10 0 0 25 50 75 100 125 150 175 200 225 250 275 300 325 350 Radial Degrees
Korištenje histograma Sektori s i, s i+1,, s i+k dolina moraju imaju magnitude < praga ε. s c je ili sektor s i ili s i+k, koji je najbliži sektor toru s g. Klasifikacija dolina kao: široka: : if k > prag max s f = sektor s c max (koji leži u dolini) s c+max max = 2 S i+4 S i+3 S i+2 S i+1 S i s c uska: : if k max s f = ili s i ili s i+k koji nije s c
Korištenje histograma Robot se kreće u smjeru θ = (s f + s c ) / 2 S f S c
Problematika Ako je prag ε postavljen visoko robot može doći previše blizu preprekama može se kretati suviše brzo da bi prevenirao sudar Ako je prag ε postavljen nisko robot može izbjeći samo neke moguće doline Generalno no, prag je samo bitan kada se robot kreće brzo pored usko postavljenih prepreka.