Regisztráció és bejelentkezés

Objektumelkerülési algoritmus megvalósítása mesterséges intelligencia alkalmazásával

Egy LIDAR (Light Detection and Ranging), magyarul lézer alapú távérzékeléses objektumkerülő algoritmust terveztem Python nyelven. A LIDAR technológia nagyon elterjedt a távolságmeghatározásban, a definíciója nem más, mint hogy egy saját jelforrással rendelkező, aktív távérzékelési rendszer. Eltérően a radartól, a LIDAR az ultraibolya, a látható, vagy az infravörös tartományban működik. A műszer lézerfényt vagy energiaimpulzust bocsát ki, ami a terjedés irányában lévő tárgyakról, objektumokról visszaverődik. A rendszer rögzíti az egyes impulzusok kibocsátása és visszaverődése között eltelt időt. Az elektromágneses energia terjedési sebessége ismert, így a kibocsátás és a tárgy által visszavert jel visszaérkezése idejének különbségéből meghatározható a tárgyaknak a műszertől való távolsága.

Tehát a feladat egy leegyszerűsített autonóm „jármű” amely érzékeli a környezetét, és a kezdő és célpont között egy biztonságos utat talál magának. Mik azok a dolgok, amikhez egy ilyen robotnak szüksége lehet, hogy a feladatát meg tudja valósítani?

• Először is egy adott térben, jelen esetben egy síkban, tudnia kell a célpozíciót, hogy hova kell eljutnia.

• Tudnia kell továbbá a saját helyzetét, és tudnia kell frissítenie a pozícióját az adott térben.

• Észlelnie kell a környezetét, és ehhez szenzorokra van szükség, több féle szenzor is szóba jöhet, de én a LIDAR-t alkalmaztam.

• Az utolsó kérdés pedig, hogy éri el a robot a célját biztonságban? Ehhez pedig a mesterséges intelligencia (Artificial Intelligence, AI) szükséges.

A megerősítéses tanulás remek opciónak tűnt a feladat elvégzéséhez, ezért kezdtem el ezzel foglalkozni. Másnéven Reinforcement learning, egy speciális eset tanítóval történő tanulások között, amikor az adott bemenethez tartozó kívánt válasz korrekt értékei nem áll a rendelkezésünkre, csak annyit kapunk válaszként, hogy a bemenethez tartozó válasz helyes, vagy helytelen. Ez a válasz nem használható arra, hogy megmondjuk mennyivel kell módosítanunk a modellt, csak arra, hogy kell-e vagy sem az a módosítás. Általában a visszajelzést jutalomnak (reward) szokták nevezni, ami lehet pozitív jutalom, és negatív jutalom (büntetés) is, attól függően, hogy a várt értéket kaptuk, vagy nem. Tehát iteratív módon, minden egyes lépésnél kapunk egy visszajelzést (reward) az adott állapotra (state), ami alapján tudjuk a cselekedet (action) helyességét. A sikeres cselekedetek sorozatából egy olyan eljárásmódot kell kialakítani, amit az ágensnek (agent) meg kell tanulnia, hogy a lehető legjobb döntést hozza az adott helyzetben, vagyis a legnagyobb megszerezhető jutalom értéket érje el, mint az adott pillanatban, mint összesítve. Nálam ezt az ágenst az OpenAI Gym biztosította, és ennek megfelelően épül fel a program struktúrája. Ez egy nyílt forráskódú interfész, ahol reinforcement learning algoritmusokat lehet fejleszteni és összehasonlítani. Különböző környezetek (Environments) vannak (inverz inga, stb), de saját környezetet is létre lehet hozni.

szerző

  • Orgován László
    Járműmérnöki
    alapképzés (BA/BSc)

konzulens

  • Dr. Aradi Szilárd
    egyetemi docens, Közlekedés- és Járműirányítási Tanszék

helyezés

Jutalom