Skip to content

Commit

Permalink
Kis beadandó és nagy féléves újdonságok
Browse files Browse the repository at this point in the history
  • Loading branch information
horverno committed Mar 22, 2024
1 parent 526c8ab commit 5bdc4b2
Show file tree
Hide file tree
Showing 4 changed files with 237 additions and 109 deletions.
51 changes: 27 additions & 24 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,24 +19,12 @@ A tárgy összeállítása során olyan nemzetközileg is elismert egyetemek tan
{: .highlight }
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.

Érintett témakörök (nem a feldolgozás szerinti sorrendben)
Oktatók | | | .
-----|-----|-----|-----
<img src="https://raw.githubusercontent.com/sze-info/arj/main/docs/_images/okt_he01.png" width="80px"/> | Dr. Horváth Ernő <br/> <i>Tárgyfelelős</i> <br/>[github.com/horverno](http://github.com/horverno) | <img src="https://raw.githubusercontent.com/sze-info/arj/main/docs/_images/okt_ba01.png" width="80px"/>| Dr. Ballagi Áron <br/> <i>Tematika, nem oktat</i><br/> [github.com/aronball](http://github.com/aronball)
<img src="https://raw.githubusercontent.com/sze-info/arj/main/docs/_images/okt_kr01.png" width="80px"/> | Krecht Rudolf <br/> <i>Szimuláció, robotika</i> <br/> [github.com/rudolfkrecht](http://github.com/rudolfkrecht) | <img src="https://raw.githubusercontent.com/sze-info/arj/main/docs/_images/okt_um01.png" width="80px"/> | Unger Miklós <br/> <i>Környezetérzékelés</i> <br/> [github.com/umiklos](http://github.com/umiklos)
<img src="https://raw.githubusercontent.com/sze-info/arj/main/docs/_images/okt_ig01.png" width="80px"/>| Ignéczi Gergő <br/> <i>Szabályozástechnika</i> <br/> [github.com/gfigneczi1](http://github.com/gfigneczi1)|<img src="https://raw.githubusercontent.com/sze-info/arj/main/docs/_images/okt_mn01.png" width="80px"/> | Markó Norbert <br/> <i>AI, neurális hálók</i> <br/> [github.com/norbertmarko](http://github.com/norbertmarko)

- 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

2023/24 őszi félévében az `A2`-es teremben, illetve a `C100`-as gépteremben tartunk órákat.

Expand Down Expand Up @@ -72,20 +60,35 @@ Szabályzás: zárthurkú modellezett jármű, szabályzó építése (pl PID va
10| nov. 22. | [Mesterséges intelligencia gyakorlat](https://sze-info.github.io/arj/mesterseges_intelligencia/practice.html): Neurális hálózatok gyakrolat.


Oktatók | | | .
-----|-----|-----|-----
<img src="https://raw.githubusercontent.com/sze-info/arj/main/docs/_images/okt_he01.png" width="80px"/> | Dr. Horváth Ernő <br/> <i>Tárgyfelelős</i> <br/>[github.com/horverno](http://github.com/horverno) | <img src="https://raw.githubusercontent.com/sze-info/arj/main/docs/_images/okt_ba01.png" width="80px"/>| Dr. Ballagi Áron <br/> <i>Tematika, nem oktat</i><br/> [github.com/aronball](http://github.com/aronball)
<img src="https://raw.githubusercontent.com/sze-info/arj/main/docs/_images/okt_kr01.png" width="80px"/> | Krecht Rudolf <br/> <i>Szimuláció, robotika</i> <br/> [github.com/rudolfkrecht](http://github.com/rudolfkrecht) | <img src="https://raw.githubusercontent.com/sze-info/arj/main/docs/_images/okt_um01.png" width="80px"/> | Unger Miklós <br/> <i>Környezetérzékelés</i> <br/> [github.com/umiklos](http://github.com/umiklos)
<img src="https://raw.githubusercontent.com/sze-info/arj/main/docs/_images/okt_ig01.png" width="80px"/>| Ignéczi Gergő <br/> <i>Szabályozástechnika</i> <br/> [github.com/gfigneczi1](http://github.com/gfigneczi1)|<img src="https://raw.githubusercontent.com/sze-info/arj/main/docs/_images/okt_mn01.png" width="80px"/> | Markó Norbert <br/> <i>AI, neurális hálók</i> <br/> [github.com/norbertmarko](http://github.com/norbertmarko)

## Érdemjegy

- **Aláírás**: Kis beadandó teljesítése (egyszerű otthoni programozási feladat)
- **1 (elégtelen)**: ZH átlag 0% felett
- **2 (elégséges)**: ZH átlag 60% felett
- **3 (közepes)**: ZH átlag 85% felett
- **4 (jó)**: féléves beadandó a [megadott irányelvek](https://sze-info.github.io/arj/feleves_beadando/) mentén, nagyobb hibákkal teljesítve
- **5 (jeles)**: féléves beadandó a [megadott irányelvek](https://sze-info.github.io/arj/feleves_beadando/) mentén, csak néhány kisebb hibával teljesítve
- **4 (jó)**: Nagy féléves beadandó a [megadott irányelvek](https://sze-info.github.io/arj/feleves_beadando/) mentén, nagyobb hibákkal teljesítve
- **5 (jeles)**: Nagy féléves beadandó a [megadott irányelvek](https://sze-info.github.io/arj/feleves_beadando/) mentén, csak néhány kisebb hibával teljesítve


É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

![](https://raw.githubusercontent.com/sze-info/arj/main/docs/_images/technology01.svg)

Expand Down
136 changes: 51 additions & 85 deletions docs/feleves_beadando/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
layout: default
title: Kis beadandó és nagy féléves
nav_order: 4
has_children: false
has_children: true
permalink: /feleves_beadando/
---

Expand All @@ -27,87 +27,53 @@ permalink: /feleves_beadando/

# Kis beadandó és nagy féléves



## Példák

Az alábbi példák nem feltétlenül féléves munkának készültek, de annak elfogadhatóak lennének:
- [github.com/jkk-research/wayp_plan_tools](https://github.com/jkk-research/wayp_plan_tools)
- [github.com/jkk-research/sim_wayp_plan_tools](https://github.com/jkk-research/sim_wayp_plan_tools)
- [github.com/jkk-research/pointcloud_to_grid](https://github.com/jkk-research/pointcloud_to_grid)
- [github.com/jkk-research/urban_road_filter](https://github.com/jkk-research/urban_road_filter)
- [github.com/dobaybalazs/curb_detection](https://github.com/dobaybalazs/curb_detection)
- [github.com/kkira07/Szakdolgozat](https://github.com/kkira07/Szakdolgozat)
- [github.com/szenergy/rviz_markers](https://github.com/szenergy/rviz_markers)
- [github.com/linklab-uva/f1tenth_gtc_tutorial](https://github.com/linklab-uva/f1tenth_gtc_tutorial)
- [github.com/Farraj007/Jkk-task](https://github.com/Farraj007/Jkk-task)

*Megjegyzés*: a tárgyban az ROS 2 Humble verziót használjuk, de a féléves beadandót (indoklással) más verzióban is elfogadjuk.

## A *féléves* feladatnál pozitív hatást kelt:
- 👍 Jól követhető magyar és/vagy angol nyelvű dokumentáció is, képekkel illusztrálva. [Markdown](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax) használata.
- 👍 Alap információk a `README.md`-ben, (opcionális) dokumentáció a `/wiki`-ben.
- 👍 Issue-k.
- 👍 Branch-ek.
- 👍 Gitignore.
- 👍 Licensz.
- 👍 Repository topic-ok, köztük a tárgykód és a SZE. A topic-ok alapján aztán pl itt is listázódik a repository: [github.com/topics/sze](https://github.com/topics/sze).
- 👍 Plusz jegy adható, amennyiben a jelen tananyag kiegészítésre / hibajavításra kerül (temészetesen pull request által).

## *Komoly hibák*, ami miatt a *féléves* akár több érdemjeggyel is rosszabb lehet:
- 😡 Tömörített állomány a GitHub repositoryban (pl. `zip` és még rosszabb, ha `rar`). Kivétel lehet, ha direkt tömörített állománykezelés a cél, de forráskód, kép, stb. soha ne kerüljön így fel.
- 😡 [Nem eredeti munka](#meme), vagy az átvett kód nincs hivatkozva.
- 😡 Csapatban csak egy hallgató commitol. (Ez nyilván nem vonatkozis egyfős feladatokra).
- 😡 Kevés commit. Azért lenne fontos a megfelelő számú commit, mert ebből tudjuk, megítélni, hogyan haladt előre a munkafolyamat, ki, mit és mikor dolgozott.
- 😡 Nincs `README.md`, hiányzik a rövid dokumentáció vagy a képek.
- 😡 A dokumentáció pdf / docx-ként feltöltve a `/wiki` helyett.
- 😡 File upload commit helyett.
- 😡 Forráskód kiképmetszőzve markdown szintaxis kiemelés helyett. (Mivel képként nem másolható, kereshető, stb a kód.)

## Ötletek témaválasztáshoz

- Inspriráció lehet a korábbi vagy jelenlegi szakdolgozatok / diplomamunkák témái: [horverno.github.io/temaajanlatok](https://horverno.github.io/temaajanlatok/)
- Olyan témát célszerű választani, amin szívesen dolgoznál heteken/hónapokon keresztül is. Ha pl. a vizualizáció, az algoritmusok gyakorlata, a 3D vagy épp a mesterséges intelligencia vonzó, akkor ennek megfelelő témát célszerű választani.
- Korábbi szakdolgozatok, félévesek elérhetőek, ezeket igényelni [itt lehet](https://docs.google.com/forms/d/e/1FAIpQLSdtMK--IQl4v5pHiATDP4MJwuU-M0Ycd2keMndQfuuhvlr1rA/viewform?usp=sf_link). Fontos, hogy ezeket **tilos** továbbosztani, csak oktatási céllal állnak rendelkezésre.
- Számos ROS 2 projekt itt: [github.com/fkromer/awesome-ros2](https://github.com/fkromer/awesome-ros2)

{: .new }
Erősen ajánlott a [GitHub Student Developer Pack](https://education.github.com/pack) beszerzése, többek között [Copilot](https://github.com/features/copilot) is jár hozzá.

![](https://github.blog/wp-content/uploads/2019/08/FBLinkedIn_ALL-PARTNERS.png)

## Értékelési szempontok

A szempontok kialakításánaál az [Óbudai Egyetem](https://abc-irobotics.github.io/ros_course_materials_hu/#evkozi-jegy_1) hasonló kurzusának értékelési szempontjait vettük alapul.
- Saját munka és fehasznált kódbázis aránya (megfelelő hivatkozások megléte)
- Értékelhető eredményeket produkáló munka
- A bemutató minősége (ppt, videók, élő demo, bármilyen plusz felhasznált eszköz)
- A megoldás teljessége
- Megfelelő `ROS 2` kommunikáció / best practice alkalmazása
- A program szerkezete
- Az implementáció minősége
- A kód dokumentálása
- Konzultáció
- A választott feladat nehézsége

## Ajánlott módszer a féléves repo létrhozására: `template`

C++ és Python nyelven is létrehoztunk egy úgynevezett template repo-t, amely megkönnyíti az első pacakage-t tartalmazó repository létrehozását:

- [github.com/sze-info/ros2_cpp_template](https://github.com/sze-info/ros2_cpp_template)
- [github.com/sze-info/ros2_py_template](https://github.com/sze-info/ros2_py_template)

{: .new }
Erről [leírás itt](https://sze-info.github.io/arj/onallo/ros2git.html) olvasható.

<img src="https://raw.githubusercontent.com/sze-info/ros2_cpp_template/main/img/use_this_template01.png" width="60%" />

### Meme

<center><img src="meme01.jpg" width="60%" /></center>

Credit: [pycoders](https://www.instagram.com/pycoders/)

<center><img src="meme02.jpg" width="60%" /></center>

Credit: [knowyourmeme](https://knowyourmeme.com/memes/but-its-honest-work)
```mermaid
flowchart TD
K([Kötelező</br>kis beadandó ]):::light ------> |sikertelen| X0
K --> A([Aláírás]):::green
A -->|ZH irány| ZH1([1. ZH]):::light
A --> |féléves irány| N([Nagy féléves]):::light
PZH --> |sikertelen| X1
ZH2 --> |sikertelen| PZH([Pót ZH]):::light
ZH1 --> ZH2([2. ZH]):::light
ZH2 --> |siker| OK1
PZH --> |siker| OK1
N ----> |siker| OK2
X0([Aláírás megtagadás]):::red
X1([1, elégtelen]):::red
OK2([4/5 érdemjegy]):::green
OK1([2/3 érdemjegy]):::green
classDef light fill:#34aec5,stroke:#152742,stroke-width:2px,color:#152742
classDef dark fill:#152742,stroke:#34aec5,stroke-width:2px,color:#34aec5
classDef white fill:#ffffff,stroke:#152742,stroke-width:2px,color:#152742
classDef red fill:#ef4638,stroke:#152742,stroke-width:2px,color:#fff
classDef green fill:#138b7b,stroke:#152742,stroke-width:2px,color:#fff
```

## Határidők, félév beosztása

```mermaid
flowchart LR
H2([2. hét]) --- H2A([Github<br>regisztráció])--- H2B([Copilot regisztráció<br>indítása])
H3([3. hét]) --- H3A([Beadandó Github<br>link elküldése]) --- H3B([Copilot<br>regisztráció kész])
H5([5. hét]) --- H5A([Kis beadandó<br>véglegestése])
H7([7. hét]) --- H7A([1. ZH]) --- H7B([Nagy féléves Github<br>link elküldése])
H10([10. hét]) --- H10A([2. ZH])
H13([13. hét]) --- H13A([PótZH])
V2([Vizsgaidőszak 2. hét]) --- V2A([Nagy féléves<br>véglegesítés])
classDef light fill:#34aec5,stroke:#152742,stroke-width:2px,color:#152742
classDef dark fill:#152742,stroke:#34aec5,stroke-width:2px,color:#34aec5
classDef white fill:#ffffff,stroke:#152742,stroke-width:2px,color:#152742
classDef red fill:#ef4638,stroke:#152742,stroke-width:2px,color:#fff
classDef green fill:#138b7b,stroke:#152742,stroke-width:2px,color:#fff
class H2,H3,H5,H7,H10,H13,V2 white
class H2A,H2B,H3B,H7A,H7B,H10A,V2A light
class H3A,H5A,H13A, red
```
49 changes: 49 additions & 0 deletions docs/feleves_beadando/kisbeadando.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
layout: default
title: Kis beadandó
parent: Kis beadandó és nagy féléves
permalink: /kis_beadando/
---



<details markdown="block">
<summary>
Tartalom
</summary>
{: .text-delta }
1. TOC
{:toc}
</details>

---



# Kis beadandó


## Példák

- [github.com/szepilot/sze_sw1_szinusz](https://github.com/szepilot/sze_sw1_szinusz)

## Ajánlott módszer a kis beadandó repo létrhozására: `template`

C++ és Python nyelven is létrehoztunk egy úgynevezett template repo-t, amely megkönnyíti az első pacakage-t tartalmazó repository létrehozását:

- [github.com/sze-info/ros2_cpp_template](https://github.com/sze-info/ros2_cpp_template)
- [github.com/sze-info/ros2_py_template](https://github.com/sze-info/ros2_py_template)

{: .new }
Erről [leírás itt](https://sze-info.github.io/arj/onallo/ros2git.html) olvasható.

<img src="https://raw.githubusercontent.com/sze-info/ros2_cpp_template/main/img/use_this_template01.png" width="60%" />


# Repo neve
- A repository neve a következő mintát kövesse: `VVV_NNN_opcionalis`, ahol
- a `VVV` a vezetéknév első 3 karaktere
- az `NNN` a neptunkód első 3 karaktere
- az `opcionalis` pedig opcionális kiegészítés
- a fentieket alulvonás `_` karakter válassza el és kisbetű legyen mindenhol
- Pl: Szabó István, F99AXW neptunkóddal egy véletlenszámmal foglakozó kis beadandójának url-je lehet pl: `github.com/szaboistvan/sza_f99_random`.
Loading

0 comments on commit 5bdc4b2

Please sign in to comment.