Skip to content
  • Tantárgy neve magyarul: Autonóm járművek és robotok programozása
  • Tantárgy neve angolul: Autonomous robots and vehicles software engineering
  • Neptun tárgykód: GKNB_AUTM078

A tantárgy több mérnöki szakon indul és meglévő minimális programozási tudásra épít. Járműmérnöki (BSc) szakon GKNB_INTM023 Programozás alapjai, Programtervező informatikus (BSc) GKNB_MSTM032 Python programozás, Mérnökinformatikus (BSc) szakon GKNB_INTM114 Programozás, Mechatronikai mérnök (BSc) szakon GKNB_MSTM032 Python programozás, Villamosmérnök (BSc) szakon GKNB_INTM023 Programozás alapjai előkövetleményekkel indul.

A tantárgy célja

A tárgy sikeres teljesítése után a hallgatók átfogó képet kapnak az önvezető (autonóm) járművek szoftver moduljairól és további lényeges összetevőiről.

C++ és python nyelven egyszerűbb ehhez kapcsolódó szoftvermodulokat tudnak fejleszteni. Ezen túlmenően a hallgatók képesek a megfelelő kód alkalmazására, valamint annak funkcióinak értelmezésére és továbbfejlesztésére ROS 2 keretrendszerben.

A tárgy összeállítása során olyan nemzetközileg is elismert egyetemek tananyagát vettük alapul, mint az MIT, ETH Zürich, TU München, Univerisity of Virginia vagy a Stanford University. A megfelelő licenc betarása mellett bizonyos tanangyag részeket át is vettünk, másokat inspirációként használtunk, erről részletesen itt lehet olvasni. 2023-ban a tantárgy az ROS 2 Humble verzióját használja, ez a disztribúció 2027 májusáig támogatott.

A tantárgy teljesítése például következő autóipari / autonóm járműves cégeknél előnyt jelenthet (ABC sorrendben):

További karrierrel kapcsolatos érdekességek például a statista-n, a glassdoor-on, linkedin-en olvashatók.

Note

A tárgyban bemutatott ismeretekre alapozva diplomamunka, szakdolgozat, projektmunka, TDK dolgozat is készíthető, illetve van lehetőség a kötelező szakmai gyakorlat teljesítésére is.

Oktatók .
Dr. Horváth Ernő
Tárgyfelelős
github.com/horverno
Dr. Ballagi Áron
Tematika, nem oktat
github.com/aronball
Krecht Rudolf
Szimuláció, robotika
github.com/rudolfkrecht
Unger Miklós
Környezetérzékelés
github.com/umiklos
Ignéczi Gergő
Szabályozástechnika
github.com/gfigneczi1
Markó Norbert
AI, neurális hálók
github.com/norbertmarko

2024/25 őszi félévében az A2-es teremben (hétfő), illetve a B6-as gépteremben (kedd 8:30) tartunk órákat.

Óra Dátum Tananyag Megj.
1 szept. 9-10. Bevezetés
2 szept. 16-17. ROS 2 alap, telepítés
3 szept. 23-24. Érzékelés
4 szept. 30-okt. 1. ROS 2 haladó
5 okt. 7-8. Transzformációk okt. 13-ig kis beadandó
6 okt. 14-15. Észlelés
7 okt. 21. Szimuláció 22-én B6 terem felújítás
8 okt. 28-29. Tervezés ZH 1
9 nov. 4-5. Szabályozás
10 nov. 11-12. AI
+1 nov. 19.? ZH 2?
+2 - Pót ZH?

Elmélet

Óra Tananyag
1 Bevezetés: A tantárgy felépítése. Robotikai és önvezető járműves ismeretek. Érzékelés, észlelés, tervezés, szabályozás, aktuálás.
2 ROS2 koncepciók: Egyetemi robotok és járművek ismertetése. ROS 2 alapismeretek.
3 Érzékelés: Kamera, LIDAR, GNSS (GPS), IMU, CAN szenzorok működése, jelfeldolgozása, főbb ROS 2 topicok, ROS 2 időkezelés.
4 Féléves beadandó: féléves beadandó ismertetése, osztályzási szempontok, ötletek, kérdések-válaszok
5 Transzformációk: Merev test mozgása, mátrix szorzás ismétlése, homogén koordináták szemléltetése rövid progamkódokkal, quaternion (kvaterniók) fogalma.
6 Észlelés: objektumfelismerés, objektumklasszifikáció, objektum követés és predikció, SLAM és LOAM.
7 Szimuláció: ROS 2 kompatibilis szimulátorok áttekintése (pl Gazebo, Carla, SVL, OSSDC SIM, AirSim, AWSIM, CoppeliaSim, MVSim)
8 Tervezés: Globális tervezés, lokális tervezés. Lokális tervezés: keresztirányú és hosszirányú tervezés.
9 Szabályozás: Járműirányítási megoldások (inverz-modellek, prediktív modellek, zárhurkú modellek).
10 Mesterséges intelligencia: Neurális hálózatok járműves és robotikai fókusszal.

Gyakorlat

Óra Tananyag
1 Bevezetés + Linux + Géptermi ismeretek: WSL2 használata Windows operációs rendszeren. Géptermi alapismeretek. Linux parancsok, amelyek szükségesek lehetnek a későbbiekben.
2 Telepítés+ Fejlesztőkörnyezet beállítása + ROS2 kommunikáció: Első ROS 2 node-ok, ROS parancsok használata, build és source.
3 Érzékelés gyakorlat: Szenzor adatok jellemzőbb formátumai: sensor_msgs/PointCloud2, sensor_msgs/Image, geometry_msgs/Pose, stb. Bag .mcap fájlok kezelése, lejátszása. Egyszerű pacakge készítése, amely pozíció adatokra iratkozik fel.
4 Verziókezelés, Git, Copilot, vs code, ROS 2 launch: Copilot használata ROS 2 fejlesztéshez, Template repo ismertetése, használata, launch fájlok írása python nyelven
5 Transzformációk gyakorlat: Node létrehozása, amely transzformációkat hirdet. Markerek megjelenítése, launch önálló feladat.
6 Észlelés gyakorlat: egyszerű LIDAR szűrés, X, Y és Z koordináták szerint.
7 Szimuláció bevezetés: Gazebo Fortress és ROS 2, szimuláció gyakorlat: saját robotszimuláció létrehozása.
8 Tervezés gyakorlat: Polinom alapú lokális tervező megvalósításás. Nav2 használata szimulátorral.
9 Szabályozás gyakorlat: PID hangolás. Trajektóriakövetés Gazebo szimulátorral. Saját fejlesztésű szabályzó és jármű modell.
10 Mesterséges intelligencia gyakorlat: Neurális hálózatok gyakorlat.

Érdemjegy

  • Aláírás: Kis beadandó teljesítése (egyszerű otthoni programozási feladat)
  • 1 (elégtelen): \(0\% \leq ZH_{átlag} < 60\%\)
  • 2 (elégséges): \(60\% \leq ZH_{átlag} < 85\%\)
  • 3 (közepes): \(85\% \leq ZH_{átlag} \leq 100\%\)
  • 4 (jó): Nagy féléves beadandó a megadott irányelvek mentén, nagyobb hibákkal teljesítve
  • 5 (jeles): Nagy féléves beadandó a megadott irányelvek mentén, csak néhány kisebb hibával teljesítve

Konvenciók

  • gyakorlati tananyag
  • elméleti tananyag
  • kiegészítő tananyag, a teljes kép megértéséhez szükséges lehet

Érintett témakörök (nem a feldolgozás szerinti sorrendben)

  • Bevezetés: Önvezető / autonóm járművek bevezetése: az aktuális helyzet, múlt és jövő. Szenzorok, aktuátorok kommunikációs technológiák. (LIDAR, radar, aktív és passzív kamera, GPS, odometria, IMU, CAN) Foxglove studio és saját mérések szemlétetésképp
  • Szoftverrendszer: Önvezető / autonóm járművek szoftverei: érzékelés, észlelés, tervezés, követés. Szimulációs technológiák, felhasználói felületek. Keretrendszerek: ROS/ROS2/MATLAB/LabVIEW szererepe, valós idejű rendszerek (FPGA, real-time operációs rendszerek).
  • Érzékelés: SLAM, objektumdetekció, objektumkövetés és előrejelzés. Padkadetekció, sávdetekció, úthibadetekció, jármű és gyalogosdetekció/követés stb. Mesterséges intelligencia (különösen neurális hálózatok) és hagyományos (pl C++ nyelven készült) algoritmusok előnyei hátrányai, fúziója.
  • Technológiai ismeretek: Linux, Git: Linux ismeretek: Terminal kezelése, Git kezelése, VS code, ROS telepítése
  • Technológiai ismeretek: ROS 2 alapok: topicok és üzenetek, MCAP (Rosbag) visszajátszása, Topicok kezelése, Topic tartalmának elérése pythonból, rviz, rqt_plot, MCAP (Rosbag) készítés. ROS 2 ökoszisztéma és fejlesztés ROS 2 node-ok készítése pythonban és C++-ban: ROS 2 node-ok, rqt_graph, Publisher / Subscriber node pythonban, Publisher / Subscriber node C++-ban. Első egyeztetés az egyéni projektfeladatról.
  • ROS 2 programozás:ROS szenzoradatok feldolgozása C++ node-al: ROS node-ok írása, visualization_msgs, LIDAR szenzoradatok: sensor_msgs/PointCloud2, sensor_msgs/LaserScan, stb.
  • Szimuláció és szabályzás: Szimuláció: ROS node-ok használata szimulációhoz (gazebo) F1/10, rviz, egyéni projektfeladatok véglegesítése. Tervezés blokk: trajektória tervezők típusai, kinematikai kihívások, Szabályzás blokk: járműmodellezés, szabályzók bemutatása, jármű- és aktuátorszintű szabályzás, a mozgás megvalósítása (fékrendszerek, kormányrendszerek…stb)
  • Kitekintés, doktori kutatások, egyetemi hallgatói csapatok: Nissan Leaf, Lexus és Szenergy önvezető projektek, bemutatása, kiragadott kódrészletekkel Érzékelés: pontfelhő kezelés vagy objektum detektálás kamera alapon Észlelés / tervezés: útvonalmeghatározás, szabad terület meghatározás, trajektória tervezés Szabályzás: zárthurkú modellezett jármű, szabályzó építése (pl PID vagy pure pursuit)
  • Mesterséges intelligencia: Önvezető / autonóm járművek szoftverei, összefoglalás, kitekintés neurális hálózatok (mesterséges intelligencia, AI)
  • Technológiai ismeretek: ROS 2 használata, újdonságai ROS-hez képest
  • Projektmunka: Egyéni projektfeladat bemutatása




sze-info.github.io/ajr