Zadáním bakalářské práce bylo navrhnout, realizovat a otestovat modul pro detekci magnetické pásky pro robot FEKTBOT. Zadání považuji za středně těžké.
Předložená práce zadání dle mého názoru nesplňuje. Z práce vyplývá, že student nesplnil třetí bod zadání, kde měl modul realizovat a ověřit. Naměřené hodnoty a jejich interpretace ukazují nepochopení funkce a obsluhy použitého snímače. Přiložené zdrojové kódy obsahují chyby, ze kterých je zjevné, že navržený systém nebyl dokončen a nemohl fungovat.
Prvním bodem zadání byl návrh modulu pro sledování magnetické pásky a ultrazvukový měřič vzdálenosti. Student bez bližšího rozboru vybral tříosý magnetometr HMC5883L na AMR principu. Vhodnost tohoto výběru lze těžko posoudit, nejsou uvedeny požadované parametry ani srovnání alternativních snímačů. Není řešeno umístění modulu na podvozku robotu, které bude mít vliv na požadovaný detekční rozsah a bude i ovlivňovat samotné měření. Při deklarované schopnosti detekovat pásku 4 cm od její osy uvažovat maximální rychlost robotu 1 m/s je přinejmenším odvážné. Experimentálně naměřené hodnoty (tabulky v kapitole 3.3 na str. 18 a 19) jsou uváděny bez popisu experimentu, bez vysvětlení hodnot (v hexadecimálním tvaru), není uvedeno nastavení interního zesilovače (je použito nejnižší, přestože měřené hodnoty vychází malé). Ze zdrojových kódů soudím, že student přehlédl nebo nepochopil, že data jsou předávána ve formě dvojkového doplňku. Další částí tohoto bodu zadání byla detekce překážek, kterou student vyřešil použitím modulu pro ultrazvukové měření vzdálenosti. Přes chybějící ověření jsem přesvědčený, že ultrazvukové měření je funkční. Vzhledem k chybějícímu rozboru koncepce tento bod zadání považuji za splněný s výhradami.
Druhým bodem zadání byl návrh a realizace komunikačního protokolu mezi modulem a robotem. Student, opět bez rozboru požadavků, navrhl jednosměrnou UART komunikaci, která je ale pro zamýšlené použití postačující. Chybí mi pouze rozpis a význam navržených příkazů, způsob počítání kontrolního součtu a způsob adresování. Tento bod zadání považuji za splněný.
Posledním bodem je realizace a ověření funkce kompletního modulu. Ověření funkce nebylo provedeno, realizaci považuji za nedokončenou. Navržená struktura firmware není vhodná - prakticky všechny části kódu jsou volány v obslužných rutinách přerušení. Firmware pro mikrokontrolér je zjevně neodladěný. Obsahuje spoustu chyb, díky kterým nebude fungovat správně. Například: rozhodnutí, zda má robot zatáčet na jednu nebo na druhou stranu se porovnává s hodnotou, která je mimo rozsah magnetometru. LSB hodnot z magnetometru jsou čteny ze špatných adres registrů. Pro PSD regulátor se měřené hodnoty neaktualizují. Funkce, která má „integrovat“ hodnoty z magnetometru (význam funkce nedává smysl), díky chybějící dereferenci ukazatele nedělá nic. Návrh regulátoru není proveden. Implementace regulátoru obsahuje chyby (sumační složka se neprojeví, rozsah akčního zásahu nejspíš neodpovídá rozsahu deklarované rychlosti robotu). Externí vstup pro zastavení robota nebude fungovat. Z uvedeného výčtu je zjevné, že student se nedostal k odladění navrženého systému, natož jeho ověření. Tento bod zadání považuji za nesplněný.
Předložená práce stavem rozpracování neodpovídá bakalářské práci. Navržené řešení by nejspíš mohlo být funkční – kdyby bylo dokončeno. Vzhledem ke stavu rozpracování práce a nesplnění zadání navrhuji klasifikaci nevyhovující/F.
Topics for thesis defence:
- Vyzkoušel jste navržený modul? Pokud ano, jakým způsobem?
- Co je to dvojkový doplněk? Jaký je rozsah měřených hodnot magnetometru?
- Vysvětlete prosím použitou implementaci PSD regulátoru.
Points proposed by reviewer:
40