Kis beadandó
A kis beadandó célja, hogy a hallgatók az órán megszerzett kezdő szintű elméleti tudás mellé gyakorlati tapasztalatot szerezzenek ROS 2-ről és GitHub-ról. A kis beadandó viszonylag kevés idő alatt elvégezhető: egy oktató pár óra alatt, egy átlag hallgató pár délután alatt elkészülhet vele. Fontos, hogy a beadandó aláírás feltétel.
Elvárt kvalitások:
- Egy package, 1 vagy 2 node
- Minimum 1 publisher vagy 1 subscriber (több lehet)
- Rövid dokumentáció, ami a build menetét, a node-topic kapcsolatokat tartalmazza, a példák szerinti részletességgel
- Helyes névadás
- Template használata vagy saját megoldás, de a példák szerinti kidolgozottsági szint
- Lehetőleg hiba nélkül forduljon, de a
build warningsok esetben megengedhető, a lényeg a tanulás - Minél több commit, hogy a munkafolyamatot is lássuk
- Terjedelem 30-100 kódsor node-onként + CMakeLists.txt, package.xml, README.md, launch fájlok (nem baj, ha hosszabb, de nem elvárt)
- Lehetőleg képpel illusztrálva (lásd példák)
- Lehetőleg mermaid diagram a node-ok, topic-ok viszonyáról (lásd példák, leírás)
Példák
Példa a kis beadandóra, amit az oktatók készítettek:
- github.com/szepilot/sze_sw1_szinusz: A package két node-ból áll. A
/gen_nodeszínusz jelet és véletlen számokat genertál, amiket kétstd_msgs/float32topicban hirdet. A/sum_nodea összegzi az előállott topicokat és egy újabbstd_msgs/float32topicban hirdeti. MegvalósításROS 2 Humblealatt. - github.com/horverno/hor_d20_batman_turtle: A package egy node-ból áll, ez a turtlesim szimulátorban képes a trajektóra kirajzolásával egy “Batman logo” előállítására. A hirdetett topic
geometry_msgs/twisttípusú. MegvalósításROS 2 Humblealatt. - A package egy node-ból áll. Ez az
/array_sorternode feliratkozik egystd_msgs/msg/float32_multi_arraytípusú topicra, majd hirdeti a szintén ilyen típusú, de növekvő sorrendbe rendezett verzióját. MegvalósításROS 2 Humblealatt. - A package két node-ból áll. A
/sensor_nodeszimulált szenzordataokat generál: hőmérsékletet és páratartalmat, ezeket két különsensor_msgs/Temperatureéssensor_msgs/RelativeHumiditytípusú topicban hirdeti. A/monitor_nodeezen adatokat figyeli, és ha a hőmérséklet meghalad egy bizonyos küszöbértéket vagy a páratartalom meghalad egy másikat, egy riasztást küld egystd_msgs/Stringtípusú topicban. MegvalósításROS 2 Humblealatt. - A package egy node-ból áll. A
/minecraft_nodeegyvisualization_msgs/Markertípusú topicot hirdet. A topicra feliratkozva egy Minecraft karaktert jeleníthetünk meg RViz2-ben. MegvalósításROS 2 Humblealatt. - A package két node-ból áll. Az egyik node egy
geometry_msgs/Pointtípust állít elő, a másik node pedig orientációval kiegészítve ebből egygeometry_msgs/Posetípusút hirdet. MegvalósításROS 2 Humblealatt. - A package két node-ból áll. Az
/sensor_data_generatoregy fiktív szenzorral szimulált adatokat generál, például távolságot és sebességet, ezeket két különsensor_msgs/Rangeésgeometry_msgs/Twisttípusú topicban hirdeti. A másik node, a/control_nodeezeket az adatokat figyeli és vezérlési döntéseket hoz a robot számára, amit kiír a terminalban. MegvalósításROS 2 Humblealatt. - A package két node-ból áll. Az
/imu_data_publishergyorsulásmérő és giroszkóp szenzor adatokat szolgáltat, ezeket egysensor_msgs/Imutípusú topicban hirdeti. A másik node, a/imu_data_analyzerezeket az IMU adatokat elemzi és jelentéseket készít a robot állapotáról egydiagnostic_msgs/DiagnosticArraytípusú topicban. MegvalósításROS 2 Humblealatt.
Érdemes, de nem kötelező a diagnostic_msgs, geometry_msgs, nav_msgs, sensor_msgs, shape_msgs, std_msgs, trajectory_msgs, visualization_msgs közül választani.
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:
Erről leírás itt olvasható.

Repo neve
- A repository neve a következő mintát kövesse:
VVV_NNN_opcionalis, ahol- a
VVVa vezetéknév első 3 karaktere - az
NNNa neptunkód első 3 karaktere - az
opcionalispedig opcionális kiegészítés - a fentieket alulvonás
_karakter válassza el és kisbetű legyen mindenhol
- a
- 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.