← Vissza a projektekhez

Autonóm mobilrobot-navigáció ROS 2-ben

A lezárt záróéves szakdolgozati projektem. Autonóm útvonaltervezést valósít meg egy mobilrobothoz ROS 2 (Jazzy) és Gazebo szimulációs környezetben.
A robot egy 2D-s foglaltsági rácson (occupancy grid) tervez, amely a szenzoradatokból dinamikusan épül fel, és amelyben a cellák futásidőben válthatnak szabad és foglalt állapot között. A felépítés két részre oszlik: egy függőségmentes, tiszta Python Core könyvtárra, amely a klasszikus keresőalgoritmusokat — A*, Dijkstra, BFS és DFS — egyetlen közös interfész mögött fogja össze, valamint az erre épülő ROS 2 integrációs rétegre. A súlyozott tervezők (A* és Dijkstra) figyelembe veszik a cellánkénti gradiens költségtérképet, és nem engedik a sarkok levágását, így az útvonalak valósághűek maradnak egy fizikai kiterjedéssel rendelkező robot számára.
Egy letisztult adapterréteg végzi az átalakítást a ROS nav_msgs üzenetek (OccupancyGrid ↔ Path) és a Core adatszerkezetei között, így a Core tiszta és egységtesztelt marad. A helyességet egységtesztek, ROS-mentes egyenes / C-akadály / labirintus forgatókönyvek, valamint Gazebóban végzett viselkedési ellenőrzések igazolják.
A lenti GitHub-tárolókban a szakdolgozat kész, lezárt változata érhető el bárki számára; a szakdolgozat keretein túli továbbfejlesztést GitLabon folytatom.

Core könyvtár ROS 2 szimuláció
Autonóm mobilrobot-navigáció ROS 2-ben — kép 1 Autonóm mobilrobot-navigáció ROS 2-ben — kép 2