Bachelor's Thesis

Multiplatform application for operation and communication with a rover

Final Thesis 4.95 MB

Author of thesis: Bc. David Krejčí

Acad. year: 2025/2026

Supervisor: Ing. Michal Kapinus, Ph.D.

Reviewer: prof. Ing. Adam Herout, Ph.D.

Abstract:

This bachelor's thesis addresses the design and implementation of a cross-platform teleoperation station for remote control of a rover in the context of international robotics competitions. The work analyses the specific challenges of this environment, including the physical isolation of the operator, unstable wireless connectivity, and low-latency control requirements. Based on the conducted analysis, a client-server architecture was implemented, with the server-side component running as a set of ROS 2 nodes and the client application developed in C++ using the Qt framework. The resulting system was validated through expert testing in the Gazebo simulation environment as well as with a physical rover in outdoor terrain. Testing confirmed the reliability of telemetry and control command transmission, while also identifying limitations in the resilience of video streams under degraded wireless conditions.

Keywords:

teleoperation, ROS 2, robot control station, video streaming, GStreamer, Qt, unreliable network, ERC, exploration rover

Date of defence

19.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B.

Topics for thesis defence

  1. Krátce diskutujte výhody a nevýhody využití C++ pro Vaši aplikaci.
  2. Bylo by užitečné mít možnost připojit více instancí aplikace k jednomu vozítku? Jak obtížné by bylo takovou funkčnost navrhnout a implementovat?
  3. Volba GStreameru se neukázala jako příliš šťastná. Provedl jste nějaké testy, které by ověřily, že by WebRTC (nebo jiná technologie) bylo lepší? Jak obtížné by bylo GStreamer nahradit a přenos videa tak učinit odolnějším proti výpadkům?
  4. Proč jste v práci nevyužil většinu literatury doporučené vedoucím?

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Ing. Vítězslav Beran, Ph.D. (předseda)
doc. Ing. Tomáš Martínek, Ph.D. (místopředseda)
Ing. Radek Hranický, Ph.D. (člen)
Ing. Petr Veigend, Ph.D. (člen)
Ing. Filip Orság, Ph.D. (člen)

Supervisor’s report
Ing. Michal Kapinus, Ph.D.

Aktivita pana Krejčího byla ze začátku spíše nižší, nicméně s postupem v práci se výrazně zvyšovala. Výsledkem práce je použitelná aplikace pro vzdálené ovládání robota, jež bude pravděpodobně využita v rámci European Rover Challenge pro řízení roveru Freya.

Evaluation criteria Verbal classification
Information about assignment

Zadání hodnotím jako standardně obtížné. Práce sice zahrnuje testování na reálném robotovi, nicméně jádro práce je především vytvoření uživatelského rozhraní pomocí standardních technologií.

Work with literature

Autor si literaturu vyhledával převážně samostatně.

Activity during solution, consultations, communication

Pan Krejčí byl aktivní především v letním semestru. Svůj postup průběžně konzultoval, na konzultace přicházel připravený a aktivně přinášel nápady na rozšíření výsledné aplikace.

Activity during completion

Přestože autor na aplikaci pracoval průběžně, špatně odhadl náročnost dokončení svého díla a technické zprávy a obojí tak bylo dokončováno ve spěchu na poslední chvíli. Z tohoto důvodu nebylo možné uspokojivě vyřešit problémy, které se ukázaly při závěrečném testování. Technická zpráva byla průběžně konzultována a poznámky vedoucího byly zapracovány, nicméně na konzultaci finální verze již bohužel nezbyl čas.

Publication activity, awards
Points proposed by supervisor: 78

Grade proposed by supervisor: C

Reviewer’s report
prof. Ing. Adam Herout, Ph.D.

Řešitel vytvořil velice dobře použitelnou aplikaci a sepsal stručnou, užitečnou technickou zprávu. Aplikace není ani rozsáhlá, ani mimomřádně dobře odladěná a dotažená – při testování řešitel zjistil některé skutečnosti, které volají po úpravách a které možná mohly a měly být zjištěny a zapracovány během řešení bakalářské práce.

Evaluation criteria Verbal classification Points
The difficulty of the assignment

Evaluation level: moderately difficult assignment

Řešitel vytvořil aplikaci v C++ s uživatelským rozhraním pomocí Qt a kód v Pythonu komunikující s touto aplikací. Řešení vyžadovalo práci se sítí na nízké úrovni, zpracování a zobrazení videa, připojení periferií a další netriviální úkoly. Na druhou stranu vytvořené řešení není zvlášť rozsáhlé ani flexibilní.

Presentation level of the technical report

Technická zpráva je příjemně stručná a jde k věci. Podstatné skutečnosti o řešení jsou vhodnou formou podány. Zdůvodnění volby jazyka C++ není úplně přesvědčivé – práce s periferními ovladači i síťová komunikace jsou bez problémů možny i v modernějších jazycích vyšší úrovně. Na druhou stranu, v roveru je použit jazyk Python, přitom se jedná o zařízení pracující silně v reálném čase a na baterii. Při závěrečném testování řešitel zjistil (a transparentně komunikoval), že zvolená knihovna GStreamer pro danou úlohu není vhodná, protože je příliš citlivá na výpadky komunikace. Takové zjištění možná bylo vhodnější uskutečnit dříve a přejít na WebRTC (nebo jinou technologii) dříve. Překvapivě vytvořená aplikace ani neumožňuje připojení více instancí k jednomu roveru, což se nabízí jako přirozený případ užití.

90
Formal preparation of a technical report

Formální stránka textu je velice dobrá, až na občasné chyby sazby a formátování a odkazování na části zprávy pouze číslem, bez uvedení o jaký druh objektu se jedná.

88
Realisation output

Vytvořená aplikace dobře funguje a plní to, co má. Zjištění o možné nevhodnosti knihovny GStreamer možná mohl řešitel učinit o dost dříve a zvolit technologii správnější. Vytvořená aplikace také není příliš flexibilní.

85
Usability of results

Řešitel přispívá do projektu účastnícího se robotických výzev a jeho řešení patrně bude nasazeno a dále používáno a rozvíjeno.

The extent to which the requirements of the assignment have been met

Evaluation level: assignment fulfilled

Extent of the technical report

Evaluation level: is within the usual extent

Work with literature

Práce s literaturou je velice dobrá a citované zdroje jsou relevantní.

90
Topics for thesis defence:
  1. Volba GStreameru se neukázala jako příliš šťastná. Provedl jste nějaké testy, které by ověřily, že by WebRTC (nebo jiná technologie) bylo lepší? Jak obtížné by bylo GStreamer nahradit a přenos videa tak učinit odolnějším proti výpadkům?
  2. Krátce diskutujte výhody a nevýhody využití C++ pro Vaši aplikaci.
  3. Bylo by užitečné mít možnost připojit více instancí aplikace k jednomu vozítku? Jak obtížné by bylo takovou funkčnost navrhnout a implementovat?
Points proposed by reviewer: 85

Grade proposed by reviewer: B

Responsibility: Mgr. et Mgr. Hana Odstrčilová