diplomová práce

Ruční dálkový ovladač pro robot Perseus

Text práce 4.7 MB Příloha 29.86 kB

Autor práce: Ing. Marek Sabó

Ak. rok: 2018/2019

Vedoucí: Ing. František Burian, Ph.D.

Oponent: Ing. Tomáš Jílek, Ph.D.

Abstrakt:

Táto práca sa zaoberá problematikou návrhu a realizácie aplikácie pre ovládanie mobilného robota. V úvodnej časti je analyzovaná použitá platforma GEARS-SMP, princíp funkčnosti protokolu pre riadenie servomotorov Dynamixel, formát M-JPEG a štandard H.264. Ďalej sa práca venuje analýze tvorby užívateľského rozhrania v robotických aplikáciách, dostupných možnostiach ovládacích zariadení a použitému hardvéru v diaľkovom ovládači. Nasledujúca časť je zameraná na návrh robotickej aplikácie, najmä grafického užívateľského rozhrania a virtuálneho priehľadového displeja a následnou implementáciou vytvoreného návrhu do zariadenia Raspberry Pi. Na záver práca popisuje realizované softvérové riešenie a porovnáva výslednú aplikáciu s vytvoreným návrhom.

Klíčová slova:

Platforma GEARS-SMP, Mobilný robot Perseus, Robotis RX-64, M-JPEG, H.264,
Grafické užívateľské rozhranie, HUD, Diaľkový ovládač, Raspberry Pi, Qt, OpenGL

Termín obhajoby

04.06.2019

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaAznamka

Klasifikace

A

Průběh obhajoby

Student obhájil diplomovou práci. Reagoval na všechny dotazy komise i na připomínky oponenta.

Jazyk práce

slovenština

Fakulta

Ústav

Studijní program

Elektrotechnika, elektronika, komunikační a řídicí technika (EEKR-M1)

Studijní obor

Kybernetika, automatizace a měření (M1-KAM)

Složení komise

doc. Ing. Bohumil Horák, Ph.D. (předseda)
doc. Ing. Václav Jirsík, CSc. (místopředseda)
Ing. Tomáš Macho, Ph.D. (člen)
Ing. Soňa Šedivá, Ph.D. (člen)
doc. Ing. Václav Kaczmarczyk, Ph.D. (člen)
Ing. Lukáš Kopečný, Ph.D. (člen)

Student Marek Sabó měl za úkol realizovat ovládací stanici k dodanému mobilnímu robotu. Jádro práce bylo směřováno na zobrazení videa h264 z kamery a vytvoření jednoduchého průsvitného UI nad obrazovým signálem. Práce měla charakter zjištění proof-of concept této problematiky.
Studentovi dodaný robot byl výsledkem předchozích prací studentů po několik ročníků zpátky, s povšechně chybějící dokumentací, kterou jsme museli dohledávat a rekonstruovat ze střípků. Student tudíž měl za úkol v rámci práce tento robot i stav dodaného hardware rozumně zadokumentovat, což se podařilo.
Student pracoval samostatně, s delšími odmlkami mezi konzultacemi. Konzultoval důležité, dokázal dobře pracovat s dodanými zdroji, a hypotézy o funkcích robotu aktivně ověřoval.
Z odevzdané práce je patrné, že studenta realizace projektu bavila. Místo proof-of-concept řešení student vytvořil a odevzdal plně funkční operátorskou stanici, zobrazující video s nízkou latencí, se zobrazenými veškerými myslitelnými možnostmi měřených informací, které byly na daném hardware dostupné. Student dokonce ve své realizaci zašel až tak daleko, že implementoval i menu, ve kterém lze nastavovat limitní hodnoty či parametrizovat celý zobrazovací systém.
Jediné, co bych mohl vytknout je design UI, který je z velké části inspirován systémem Cassandra (pozice, tvary, velikosti i významy oken, menu), student nevyvíjel vlastního úsilí a invence k vytvoření vlastních ovládacích / zobrazovacích prvků. To ale nepovažuji za závadu, protože v rešeršní části popisuje základy tvorby UI, ze kterých tento design vyplývá. Navíc s přihlédnutím k tomu, že musel být napsán celý od základu v jiném jazyce (student neměl k dispozici běhový kód programu Cassandra, pouze několik volně dostupných obrázků na internetu). Navíc tento systém citoval (21 a 23). Není tedy sporu o autorství díla ve všech směrech, práce je původní. Systém mi byl předveden v plném rozsahu a je plně funkční. Výsledný počet bodů navržený vedoucím: 95

Známka navržená vedoucím: A

Předložená diplomová práce se zabývá návrhem a implementací softwarového řešení pro dálkový ovladač mobilních robotů. Těžiště zadání práce shledávám především v oblasti návrhu celého řešení, studia potřebných SW knihoven a implementace aplikace pro dálkový ovladač. Všechny úkoly požadované v zadání jsou úspěšně splněny. Textová část práce je v požadovaném rozsahu.

Teoretická úvodní část je ve zcela vyhovujícím rozsahu a uvádí jen potřebné informace související s navazujícím návrhem a implementací. V této části lze nalézt několik tvrzení, se kterými nemohu souhlasit – např. v tabulce na str. 37 je uvedena podpora pro H.265 v GPU Raspberry Pi 2 (žádné v současnosti dostupné Raspberry Pi nedisponuje HW podporou pro H.265), na str. 39 je uvedeno, že operační systém „LibreELEC je od OpenELEC“ (LibreELEC je samostatný projekt, který vznikl štěpením projektu OpenELEC). Celkově lze ale chybná tvrzení považovat za nevýznamná, protože neovlivňují návrh a následnou implementaci. Část zabývající se návrhem aplikace je v některých částech zbytečně detailní a s minimální koncentrací nových informací (např. stav obrazovek pro jednotlivé situace). Naopak část popisující implementované řešení je místy stručnější, než by bylo vhodné vzhledem ke skutečnému rozsahu realizovaných úkolů. V této části např. není vůbec popsán použitý mechanizmus vyrovnání proměnné rychlosti přenosu dat videa (jitter buffer), jenž považuji za velmi důležitou součást řešení, která má významný vliv na použitelnost celého řešení. Pohledem do zdrojového kódu se zdá, že autor práce toto nijak neřešil a ponechal standardní implementované řešení uvnitř použitých knihoven, což je nejspíše příčinou častých výpadků snímků v zobrazovaném videu. Ideálním řešením by bylo, pokud by uživatel mohl ovlivnit délku vyrovnávacího zásobníku a minimalizovat v tomto případě množství nezobrazených snímků, ale na úkor vloženého zpoždění.

Autor práce významně pracuje s dostupnou literaturou, o čemž svědčí i rozsáhlejší seznam použité literatury. Úvodní teoretická část vychází z použité literatury, je ale ovšem formulována autorem. Návrh a popis realizovaného řešení je vlastním dílem autora, některé dílčí postupy řešení (např. instalace součástí) jsou převzaty. Grafická úprava práce je bez výhrad. Jazyková úprava je bez zásadnějších výhrad, některá slovní spojení nepovažuji za vhodná (např. procesor DPS). Gramatickou stránku práce nemohu zcela hodnotit, protože práce je napsána ve slovenském jazyce.

Celkovou zvolenou koncepci považuji za správnou. Z popisu realizovaného řešení je patrné, že autor práce má velmi dobré implementační schopnosti, dokáže nastudovat a do své aplikace integrovat dostupné implementované knihovny s potřebnými funkcemi.

Vzhledem k tomu, že zadání práce je zcela splněno, realizované řešení je funkční a nalezené nedostatky nepovažuji za významné, navrhuji hodnotit tuto práci klasifikačním stupněm A. Otázky k obhajobě:
  1. Popište použitý přístup k vykreslování sekvence jednotlivých snímků videa. Zaměřte se na situaci, kdy kolísá přenosová rychlost kanálu použitého pro přenos paketů videa. Jakým způsobem je synchronizována snímková frekvence? Co se stane v okamžiku, kdy nejsou přeneseny všechny pakety potřebné pro vykreslení snímku, který má být v daném okamžiku právě vykreslen?
  2. Objasněte Vaše tvrzení ze str. 43: „Zapnutie má za následok okamžité zablokovanie kolies spôsobené nabudením vinutí motorov“. Uveďte jaká konstrukce motoru je pro pohon robotu použita a na čem závisí velikost proudu procházejícím jeho vinutím, pokud se robot nepohybuje a hřídele motorů se tedy také neotáčí.
  3. Uveďte důvody, proč jste jako multimediální rámec zvolil GStreamer. Porovnejte jej s dalšími Vámi uváděnými alternativami (tj. FFmpeg a VLC).
  4. Objasněte Vaše tvrzení ze str. 23: „Po dekompresii táto strata informácií má väčšinou za následok menšiu kvalitu videa, ale menší dátový tok.“
Výsledný počet bodů navržený oponentem: 91

Známka navržená oponentem: A

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová