Myšlenky automatického hodnocení v předmětu Robotika

  • Snažíme se co nejvíce přiblížit reálné práci inženýra v praxi.
  • Robotika a koneckonců mnoho dalších oborů je velmi náročná na spolehlivost, a to včetně programového vybavení. Robot, obráběcí stroj, automatický jeřáb a další stroje mohou v případě selhání (a to i programového vybavení) způsobit nejen značné škody, ale i ublížení na zdraví. Proto je velmi důležité, aby fungovaly bezchybně i za extrémních situací. Proto klademe na “správnost programů” značnou váhu.
  • Inženýr v praxi vyvíjí nějaké zařízení nebo programový produkt a měl by si být schopen ověřit funkčnost svého výtvoru. Na velkých projektech to bývá samozřejmě práce celého týmu a často testování spotřebuje velké prostředky, někdy i větší než samotný vývoj. Ze základní školy to známe z věty: “Proveďte zkoušku”. V případě malých projektů je vývojář programového vybavení a tester ta samá osoba. Koneckonců než vývojář předá svoje dílo testerovi, musí si být alespoň v základních obrysech jist, že produkt dělá co má. Testování je tedy v samé podstatě inženýrské práce.
  • Návrh testovacích dat, případně návrh testů, kterými má zařízení projít, tak aby se vyzkoušely všechny situace, které mohou v praxi nastat, je pak nejednoduchá, ale nezbytná součást práce inženýra. Připomeňme si, že jedna z definic práce inženýra je “vyvíjet věci, které fungují”.
  • Standardní situace inženýra je, že má zadání, co má dělat, a nemá žádné jiné prostředky pro testování než ty, které sám vytvoří. V tomto předmětu nabízíme tři nástroje, které mají studentovi pomoci:
  1. Vetšina (prakticky všechny) úloh je tvořena dvěma komplementárními úlohami, které transformují data tam i zpět. Pro ladění je tedy možné použít v podstatě jakákoliv náhodná data (ale lépe i data speciálně určená k otestování nestandardních situací) a otestovat, zda po transformaci tam i zpět dostanu původní data. Jeden ze směrů transformace je typicky mnohem lehčí a lze tak snadno získat jeden směr prakticky bez chyb. V praxi toto nebývá pravidlem a často musí být vyvinut speciální program pouze pro testování vyvíjeného programu.
  2. V úlohách na přímou a inverzní kinematickou úlohu (4, 5, 6) je k dispozici samostatný nástroj (checker), který simuluje práci automatického hodnocení na serveru. Je tak možné nejen testovat programy offline s mnohem vyšší efektivitou, ale dozvědět se i výsledky pro každou testovanou polohu zvlášť. Takovou situaci by si v praxi každý vývojář přál. Studentovi zbývá jen vymyslet testovací data.
  3. Třetím stupněm je pak automatická kontrola na serveru, kde jsme se pokoušeli vymyslet všechny možné situace, které mohou nastat. Takovýto komfort nemá vývojář v praktickém životě téměř nikdy.
  • Naším cílem je dobře Vás připravit pro praxi. Stejně jako v jiných profesích, inženýr je často nejvyšší instance, která je schopna problémy řešit, dělník může přivolat k problému mistra, ten může přivolat technologa a ten může přivolat dodavatele. Na místě se tak může ocitnout autor (Vy) a ten už nemá koho přivolat.
courses/a3b33rob/automaticke_hodnoceni.txt · Last modified: 2018/02/06 08:42 (external edit)