- 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):
- AiMotive Kft. (Budapest)
- AVL Hungary Kft. (Budapest, Érd, Kecskemét)
- Bosch: Robert Bosch Kft. (Budapest, Győr, Zalaegerszeg)
- Continental Autonomous Mobility Hungary Kft. (Budapest, Győr, Debrecen)
- Járműipari Kutatóközpont, SZE (Győr)
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