kelio planavimas, navigacija - mif.vu.ltmeglinskas/r/navigacija_2015.pdf · •optimalus planavimas...
TRANSCRIPT
KELIO PLANAVIMAS,NAVIGACIJA
Realus pasaulis
Jutimas
LokalizacijaPozicijaMastymas
Judėjimo valdymas
Mąstymas
Gebėjimas nuspręsti kokie veiksmai yra reikalingi norint pasiekti nustatytą tikslą, duotai situacijai (būsena)
Mąstymas ir planavimas
Dabartiniai industriniai robotai gali veikti be mąstymo ir planavimo, nes jie veikia statinėje ir tiksliai apibrėžtoje aplinkoje (nors pats judėjimas yra sudėtingesnis dėl didesnio laisvės skaičiaus laipsnių)
Mobilūs, autonominiai robotai veikia neapibrėžtoje, kintančioje aplinkoje, kurioje yra reikalingas planavimas - galimų tikslo pasiekimo variantų išskyrimas, jų įvertinimas, pasirinkimas
Vienas pagrindinių mąstymo uždavinių yra saugaus kelio pasirinkimas
Navigacija
Roboto savybė veikti pasinaudojant turima daline informaciją apie aplinką, savo žiniomis ir sensorių reikšmėmis taip, kad efektyviai ir patikimai pasiekti užduotą tikslo poziciją (arba seriją pozicijų)
Pasaulis susideda iš
Kliūčių
Jau užimtų pasaulio erdvių
Robotai negali ten patekti
Laisvų erdvių
Neužimti erdvių pasaulyje
Robotai gali ten patekti
Konfiguracinė erdvė (manipuliatoriai)
Kaip aplenkti ?
b
a
270
360
180
90
090 13545
qA
b
aqB
A
B
Konfiguracinė erdvė (manipuliatoriai)
b
a
270
360
180
90
090 18013545
qB
qA
b
a
A
B
Kiti pavyzdžiai
Mobilaus roboto navigacijos problema
pradžia
tikslas
Kelias
Kliūtis
Klūtis
Klūtis
Laisva erdvė
Navigacijos uždavinio aprašymas
Tikslas: Surasti judančiam objektui kelią (būtinai neliečiant kitų
objektų) nesikeičiančioje aplinkoje
Pradiniai duomenys: Judančio objekto ir kliūčių geometrija
Judančio objekto kinematika (laisvės laipsniai)
Pradinė padėtis ir siekiama padėtis (pradžia ir kur norime atsidurti)
Atsakymai: Seka roboto būsenų vedanti nuo pradinės būsenos iki tikslo
būsenos
Platesnė problema
• Judančios kliūtys• Daug vienu kartu judančių robotų• Judantys objektai• Papildomai tikslai – pvz. surinkti informaciją stebinti• Optimalus planavimas• Dinaminiai apribojimai• Nestabilumo apribojimai• Neholonominis judėjimas • Neapibrėžtumai jutimo ir judėjimo modeliuose
Navigacijos esminės dalys
Globalus kelio planavimas
• Strateginė dalis
• Nustatyti kelią, kuria judant galima pasiekti tikslą
Kliūčių išvengimas
• Taktinė dalis
• Pasinaudojant sensorių duomenimis aplinkti nustatytame kelyje iškilusias kliūtis
Globalus kelio planavimas Kelių žemėlapis
Matymo lauko žemėlapis Voronoi diagrama
Dalinimas elementais Tikslus dalinimas Apytikslis dalinimas
Aprašymas laukų potencialu
Kliūčių išvengimas Vabalo metodas Vektorių lauko diagrama Dinaminio lango metodas
Navigacija
Globalus kelio planavimas
Kliūčių išvengimas
Kas yra būtina
Žemėlapis:
Sakykime, kad jau turime pakankamai gerą žemėlapį: topologinį, matavimais pagrįsta arba jų junginį
Gebėjimas lokalizuotis
- Turime realizuota lokalizacija (bet kuriuo momentu žinome kurioje vietoje esame)
Tolydus žemėlapis
Tolydus linijų žemėlapis
Tolydus linijų žemėlapis
Suskaidytas elementais
Adaptyvus suskaldymas elementais
Andrea Garulli, Mobile robot SLAM for line-based environment representation
Topologinis suskaldymas
Andrea Garulli, Mobile robot SLAM for line-based environment representation
Mišrus topologinis-linijinis
Navigacijai tinkamas suskaidymas
Kelių žemėlapis
• keliai ir susikirtimai (grafas)
Dalinimas elementais
• Padalinimas elementais kurių vieni yra užimti, o kiti laisvi
Aprašymas laukų potencialu
• aprašomas matematine funkcija erdvėje
Kelių žemėlapis
Dalinimas elementais
Aprašymas laukų potencialu
Kelių žemėlapis
Matomumo grafas
• Keliai praeina kuo arčiau kliūčių
Voronoi diagrama
• Keliai praeina kuo toliau nuo klūčių
Reikalinga sukurti kelių žemėlapį, kuris įgalintų robotą patekti į bet kurį erdvės tašką ir kartu minimizuoti kelių skaičių
Matomumo grafas
Sujungiame visas matomas kliūčių viršūnes
Matomumo grafas
Pirmą kartą panaudotas 60-aisiais, Shakey robotui
Sujungiame visas matomas kliūčių viršūnes
Populiarus dėl nesudėtingo įgyvendimo
Trūkumai:
Kelių skaičius sudėtingoje aplinkoje labai greitai auga
Keliai praeina šalia kliūčių
Voronoi diagrama
Voronoi diagrama
Keliai praeina maksimaliu atstumu nuo kliūčių
Trūkumai:
Kelio ilgis yra neoptimalus
Jeigu sensorių matomumas yra ribotas gali iškilti problemų su lokalizacija
Kelių žemėlapis
Dalinimas elementais
Aprašymas laukų potencialu
Dalinimas elementais
Daliname žemėlapį į paprastus, sujungtus regionus
Nustatome, kurie neužimti elementai yra šalimais ir iš jų sudaroma grafą
Surandame kuriose celėse yra mūsų pradinis taškas ir galutinis taškas
Tikslus ir apytikslis padalinimas elementais
Tikslus dalinimas elementais
Apytikslis dalinimas elementais
Tikslus padalinimas elementais
Tikslus padalinimas elementais:
Laisva erdvė F yra padalinama į nesikertančius regionus, kurių sąjunga sudaro tiksliai F
Tikslus padalinimas elementais
Tikslus padalinimas elementais
Naudojamas tik dideliems žemėlapiams su nedideliu detalių skaičiumi
Praktiškai taikomas nedažnai
Trūkumai:
Didėjant kliūčių ir objektų kiekiui žemėlapyje dideliu greičiu auga atvaizdavimo sudėtingumas
Apytikslis suskaidymas elementais
Grassfire
Pradedant nuo tikslo kiekvienas elementas yra sužymimas kiek jis yra toli nutolęs nuo siekiamo tikslo
Dažnai naudojamas
Trūkumai:
riboja turimas atminties kiekis
Paprasta navigacijos funkcija
1
1 22
2 3
3
3
4 5
210
4
Adaptyvus apytikslis suskaldymas elementais
Andrea Garulli, Mobile robot SLAM for line-based environment representation
Kelių žemėlapis
Dalinimas elementais
Aprašymas laukų potencialu
Jėgų lauko atvaizdavimas
Jėgų lauko atvaizdavimas
Robotas traktuojamasi kaip taškas, kurį veikia jėgos
Panašu į kamuoliuko riedėjimą
Tikslas generuoją traukiančią jėgą
Kliūtys generuoja atstumiančią jėgą
Bendras planavimas
Strateginiai spendimai
Taktiniai sprendimai
Netikras realus laikas
Realus laikas
Navigacijos architektūra
Konkreti architektūra
Kelio planavimas (0.001Hz)
Atstumais paremtas kliūčių apvažiavimas (1Hz)
Avarinis sustojimas (10Hz)
PID reguliatorius (150 Hz)
Navigacija
Globalus kelio planavimas
Kliūčių išvengimas
Kliūčių vengimas
Tikslas yra aplenkti iškilusias kliūtis
Nepriklausomas uždavinys
Reikia atsižvelgti į:
užduotą tikslą
roboto greitį ir kinematiką
sensorius
esamą ir būsimą susidūrimo pavojų
Vabalas
Vektorių lauko diagrama
Dinaminis langas
Vabalas
Vektorių lauko diagrama
Dinaminis langas
Bug 1 algoritmas
Vladimir Lumelsky & Alexander Stepanov: Algorithmica 1987
Bug 1 algoritmas• Judėti link tikslo• Jeigu sutikta kliūtis, tai pilnai apvažiuoti ją ir pasižymėti kuriame taške robotas buvo arčiausiai tikslo• Grižtį į tą tašką ir važiuoti toliau
Reikalinga:- Lokalizacija- Žinoti tikslo kryptį
Bug 1 algoritmas (2)
Vladimir Lumelsky & Alexander Stepanov: Algorithmica 1987
Bug 1 algoritmas• Judėti link tikslo• Jeigu sutikta kliūtis, tai pilnai apvažiuoti ją ir pasižymėti kuriame taške robotas buvo arčiausiai tikslo• Grižtį į tą tašką ir važiuoti toliau
Reikalinga:- Lokalizacija- Žinoti tikslo kryptį
Bug 2 algoritmas
Judėti link tikslo
Sutikus kliūti važiuoti link linijos arčiausiai jungiančios pradinį tašką ir tikslą
Tada judėti toliau
Bug 2 algoritmas
Judėti link tikslo
Sutikus kliūti važiuoti link linijos arčiausiai jungiančios pradinį tašką ir tikslą
Tada judėti toliau
Bug 2 algoritmas
Judėti link tikslo
Sutikus kliūti važiuoti link linijos arčiausiai jungiančios pradinį tašką ir tikslą
Tada judėti toliau
Bug 2 algoritmas
Judėti link tikslo
Sutikus kliūti važiuoti link linijos arčiausiai jungiančios pradinį tašką ir tikslą
Tada judėti toliau
Vabalas
Vektorių lauko diagrama
Dinaminis langas
Vektorių lauko histograma (VFH)
• Sudaromas lokalus žemėlapis, pažymimosvietos, kurios manoma, kad gali būti kliūtys
• Identifikuojami visi pravažiavimai pro kuriuos gali tilpti robotas
• Pasirenkamas tas pravažiavimas, kurio kainos funkcija yra mažiausia
Platiems pravažiavimams
Siauriems pravažiavimams
Vektorių lauko kainos funkcija
G = a * tikslo kryptis + b * ratų krypties skirtumas + c * judėjimo krypties skirtumas
tikslo kryptis – tai kiek robotas yra nusisukęs nuo tikslo
ratų krypties skirtumas – skirtumas tarp esamos ratų krypties ir planuojamos krypties
Judėjimo krypties skirtumas - skirtumas tarp esamos krypties ir planuojamos krypties
a, b, c yra derinami parametrai
Vektorių lauko histograma
Trūkumai:
Sunkumai praeinant siauras vietas
Tikslo pasiekimas nėra garantuotas
Neatsižvelgiama į roboto dinamiką
Vabalas
Vektorių lauko diagrama
Dinaminis langas
Dinaminis langas
Trajektorijos: nagrinėjamos tik apskritos trajektorijos. v – judėjimo greitis, w – kampinis(sukimosi) greitis
Galimi leistini greičiai: apribojimas leidžiamam greičiui užtikrina, kad bus pasirinktos tik saugios trajektorijos. Pora (v,w) yra laikoma leistina, jeigu robotas spės sustoti prieš tai kai palies artimiausią kliūtį numatytoje trajektorijoje
Dinaminis langas: dinaminis langas apriboja leistinus greičius iki tokių, kurie gali būti pasiekti per trumpą laiką įvertinant roboto greitėjimo galimybes
Greičio erdvė
G (v,w) = σ ( α * kryptis(v,w) + β * atstumas(v,w) + γ* greitis (v, w) )
kryptis(v,w) – matuoja kiek yra nukrypstama nuo tikslo. Reikšmė maksimali jeigu judama link tikslo
Atstumas(v,w) – atstumas iki artimiausios kliūties trajektorijoje. Kuo atstumas mažesnis, tuo didesnis noras judėti aplink kliūtį
greitis (v,w) – yra greičio funkcija ir palaiko roboto norą judėti dideliu greičiu
Sprendimai