Készítette: Gergó Márton Konzulens: Engedy István 2009/2010 tavasz
Az ágens egy olyan környezetben helyezkedik el, amelyről semmiféle információval nem rendelkezik. A cél az, hogy a teljes környezetét megismerje. A szenzorai által szolgáltatott információ alapján képesnek kell lennie létrehozni egy térképet, ezen térképet felhasználva képesnek kell lennie tervet készíteni arról, hol kell újabb adatot gyűjteni, és hogyan tud eljutni az adott helyre.
Az ágenstől az alábbi „képességeket” várjuk el: Alapvető mozgási funkciók Elfordulás Előre haladás Távolságmérés pásztázva Szenzor adott állásba fordítása Távolság mérése
A környezet: Véges kiterjedésű Nem teljesen hozzáférhető Folytonos Statikus Ezen kívül a környezet információt szolgáltat arról, hol helyezkedik el jelenleg az ágens.
Az elrendezés a valóságban: Ágens-pozíció szenzor Környezet MITMOT robot távolságszenzorral Ágens irányítás, adatfeldolgozás
Szimulációs környezet létrehozása Térképezési eljárás kidolgozása Szenzoradatok feldolgozása, és térképezési eljárás implementációja Tervkészítési eljárás kidolgozása Tervkészítés és végrehajtás implementálása (Átültetés a valós környezetbe - ha marad rá idő)
Legyen: Moduláris Jól elosztott absztrakciós szintek Jól paraméterezhető Támogassa a mérési hibákra történő tesztelést is Szem előtt tartva, hogy a szimuláció könnyen átültethető legyen a valós környezetbe.
A térkép nem feltétlenül ember számára is értelmezhető, vizuális leírás! Lehet bármilyen egyéb, absztrakt forma is. Az általunk választott eljárás az occupancy grid mapping, mellyel valószínűség-alapú, foglaltsági térkép állítható elő. Szerencsénkre jól vizualizálható:
Az eljárás formálisan: m – térkép, z – szenzoradatok, x – trajektória, p(m) – az adott pont foglaltságának valószínűsége (folytonos térről van szó) A fenti képlet kiszámítása nyilvánvalóan exponenciális számításigényű – egyszerűsítenünk kell. A megoldás a diszkretizálás: a térképet véges számú cellára osztjuk, azaz egy grid-et képzünk. Forrás: Thrun, Burgard - Probabilistic Robotics
A világ grid-re osztása után a térkép: Ekkor a térképezési eljárás az alábbi módon alakul: A teljes térképet az m i értékek minden cellára megtörténő kiszámítása adja. A térképezési eljárás bináris, statikus problémára egyszerűsödött. Forrás: Thrun, Burgard - Probabilistic Robotics
Az Occupancy Grid Mapping algoritmus pszeudo-kódja: Forrás: Thrun, Burgard - Probabilistic Robotics
A szenzoradatból a környezet állapotára történő következtetés elvégzése. Egy egyszerű inverz szenzor modell távolságmérő szenzor esetén: Forrás: Thrun, Burgard - Probabilistic Robotics
A hiedelmi állapot t időpillanatban: Az adott x állapot valószínűsége: Az ismert l értékből a hiedelmi állapot számításának módja: Forrás: Thrun, Burgard - Probabilistic Robotics
A bináris, statikus Bayes-szűrő algoritmus pszeudo-kódja: Első tag a korábbi l értékek, a második tag az új állapot-, míg az utolsó tag a priori valószínűsége az adott állapotnak Forrás: Thrun, Burgard - Probabilistic Robotics
Hisztogram szűrők alkalmasak arra, hogy az állapotteret véges elemszámú régióba képezzék, és az állapotot az egyes régiók egyszerű valószínűségi értékeiként reprezentálják. A diszkrét terekre értelmezett hisztogram szűrő a diszkrét Bayes-szűrő. Az occupancy grid mapping során egy bináris, statikus problémát szeretnénk megoldani:
Legközelebbi mérési pozíció meghatározásához Occupancy Grid Map tekinthető képnek, ekkor képfeldolgozási feladat: Élkeresés Él súlypontjának meghatározása (egyetlen pontként történő reprezentáció)
Útvonaltervezéshez egy módosított A* keresést használunk. Módosítások : Több lehetséges cél – a cella heurisztikájának értéke a legközelebbi célcellától mért háztömb-távolság Egy cella magassága az adott cellának megfelelő foglaltsági értékek átlaga Bizonyos magasság fölött nem lépünk a cellára, mivel ott fal van A celláknak nem csak magasságuk, veszélyességük is van, ami beleszámít a költségbe – fal közeli cellákat inkább kerüljük el