Ročníkový projekt, Softwarová praxe, bakalářky, diplomky, ...
RNDr. David Obdržálek, Ph.D.
Note: Following info is in Czech. All projects ara available for English students too, please use translation tools for this page and contact me if you are interested.
Preferuji projekty:
- robotické (teoretické, virtuální i praktické)
- s hardware
- s mikrokontrolery
- konkrétní softwarová témata
- (ne nutně vše najednou)
Zde je několik předběžných zadání pro různé projekty a práce jako ukázka. Rozhodně to není všechno.
Možné jsou jak velmi hardwarové, tak zcela softwarové a také i teoreticky výzkumné projekty s pilotní „ověřující“ implementací. Pro práci s hardware může být po dohodě k dispozici základní vybavení nástroji, nářadím, zázemím apod.
Některé projekty je možné realizovat jako jednosemestrální bez další návaznosti ve výuce, některé s dalším navázáním na softwarovou praxi, bakalářskou práci atd. Ne všechny všechno.
V případě zájmu mne kontaktujte emailem nebo osobně (Troja, Impakt, 2.p. N238).
Časomíra
Stručné zadání: Časomíra pro robotické soutěže.
Na robotických soutěžích měříme čas, výsledky se zapisují do databáze. To se momentálně děje ručně. Cílem je vytvořit systém, který umožní automatické měření a ukládání výsledků jak pro soutěže jednotlivých robotů, tak i pro více robotů zároveň. Například: a) jeden robot po čáře, start/cíl s "fotobuňkou"; b) více robotů na okruhu, jedou několik kol, postupně se zaznamenají časy v jednotlivých kolech. Zde je možné řešení s použitím kamery shlížející na hřiště shora a nalepením vhodných značek na roboty (resp. toto je očekávané řešemí, ale pokud zájemce vymyslí něco jiného, nevadí).
Lze i pro dva lidi, jeden udělá pořádný software, druhý hardware.
Zpětnovazební řízení reflow pece
Stručné zadání: Vyměnit SW řízení reflow pece za něco, co ji bude skutečně řídit.
Reflow pec dálněvýchodní provenience má poněkud problémy s řízením teploty i s hodinami. Hardwarově v pořádku, za SW by autor u nás zápočet nedostal. Úkolem je její řízení nahradit něčím, co to bude měřit správně, bude to správně měřit čas a bude to správně řídit teplotu. Dá se přeprogramovat už existující řídící deska, nebo se dá nahradit nějakým běžně dostupným mikrokontrolerem.
Pec máme a chceme ji používat.
Elektronické hračky a IoT
S využitím nějaké programovatelné platformy (Arduino, ESP2866/ESP32, BeagleBone, RaspberryPi atd.) vytvořte nějaký zajímavý objekt / projekt, například hodiny lorda Vetinari, herní konzoli, kinetickou sochu, pomůcku pro každodenní život, novou věc do chytré domácnosti (třeba řízení tepelného čerpadla nebo fotovoltaiky, zabezpečovačku atd.), další IoT zajímavost atd.
Fantazii se meze téměř nekladou.
Editor čáry
Stručné zadání: Editor závodní dráhy pro roboty.
Pro soutěže robotů používáme dráhu z klikaté čáry. Dosud jsem ji maloval v "běžném editoru", ale výrazně lepší by bylo mít na to vlastní editor, který by udržoval zadané parametry (např. minimální poloměr oblouku a hladké navázání segmentů).
Robot Nao v akci
Stručné zadání: Využít robota Nao
Získali jsme robota Nao (viz www.aldebaran.com) a je tu prostor pro mnoho různých projektů, které ho využijí. Tento humanoidní robot "umí" spoustu věcí a je možné jej programovat.
Možné jsou jak výzkumné, tak i čistě medializační projekty na ukázku při propagačních akcích MFF
Formule F1:10
Stručné zadání: Autonomní formule v měřtku 1:10.
Máme k dispozici hardware, je třeba vše sesadit a rozpohybovat.
Podvozek RC auta 1:10, NVidia Jetson TX2, 3D kamera Structure Sensor, kamera Sony IMX377. laser rangefinder SICK nebo Hokuyo, případně i u-blox GPS. ROS.
Lze i pro více lidí dohromady.
Hejno robotů
Stručné zadání: Různé projekty týkající se hejna robotů (swarm robotics).
Máme víc miniaturních Ozobotů a další hejno trochu větších BoeBot robotů. Je možné realizovat řadu projektů přímo s nimi nebo na jejich podporu. Například:
- podpůrné: např. sledování scény a poskytování informace o poloze nebo o trajektorii robota(ů) v čase (tj. klasický image processing); centralizované řízení; vyhodnocování "chování" robotů; přenos informace z robotů na PC
- výzkumné: např. kooperace; distributivní rozhodování; multi-agent planning
- demonstrační: např. travel salesman; třídění; formace a tanečky
TSe-tse
Stručné zadání: TS editor - parsing, čistění, editace souborů ve formátu .TS (A DALŠÍCH) bez složitějších úprav. V základní verzi zobrazovat vybraný video stream, označkovat části, které se vypustí a uložit výsledek se zachováním co nejvíce dat z ostatních streamů. Tj. není potřeba (ba ani žádoucí) rekomprese videa/audia.
Předpokládá se nejdřív rešerše již existujících nástrojů, a při tvrobě TSe-tse přiměřené využití již dostupných knihoven/částí (divil bych se, kdyby se nenašlo nic...). Možno rozšiřovat o uživatelsky přítulné funkce ad libitum...
Výhoda i nevýhoda: Hodlám to osobně používat.
I když máme ffmpeg, tak ten vyžaduje textové/číselné zadání parametrů, což pro komfortní značkování částí není zrovna použitelné. Frontendů pár je, ale zatím jsem nenašel vhodný.
Laboratorní robot pro výuku
Stručné zadání: Vytvoření sady úloh pro výuku mobilní robotiky s využitím robotických „kitů“, které máme k dispozici.
Výhoda i nevýhoda: Možnost ale i nutnost práce s hardware. Ne nutně návrh a vyrábění nového, ale v elektrice nejspíš bude potřeba se hrabat.
Ester
Stručné zadání: Znovuoživení robota Ester
Robot Ester se kdysi velmi úspěšně účastnil soutěží Eurobot. Mechanicky stále dobrý, ale řízení by chtělo zmodernizovat.
Šestikolka
Stručné zadání: Vylepšení šestikolového robota
Máme šestikolového robota do lehkého terénu. Platforma je však zastaralá (výpočetně slabý kontroler s malými možnostmi) a trpí mnoha neduhy (nevhodně umístěné senzory, problémy s podkluzujícími koly atd.). Rád bych s použitím moderních komponent robota opět oživil.
Generátor kódu pro editor stavových automatů
Stručné zadání: Doplnění editoru stavových automatů pro řízení
robotů (GFE) o generátor kódu v nějakém vhodném programovacím jazyce. Vygenerovaný kód bude implementací editovaného automatu
pro použití v reálném robotovi. Možnost úprav a dalšího vývoje editoru.
SW podpora lokalizace mobilního robota
Stručné zadání: Máme několik zajímavých senzorů (laser rangefinder, inertial orientation sensor, ultrasonic distance sensor, IR distance sensor...) a několik zajímavých mikroprocesorových/mikrokontrolerových jednotek. Úkol - rozchodit a použít, tj. minimálně správně číst data, lépe i je umět nějak zpracovat.
Především badatelsko-programátorský projekt. Díky systému ROS už to na střední úrovni není potřeba vymýšlet, ale "jen" posbírat zkušenosti ostatních, kdo už daný senzor na dané platformě využili. Zkušenosti s robotikou jsou vhodné, ochota k práci s hardware je velkou výhodou.
Lokalizace mobilního robota
Stručné zadání: V souvislosti s předchozím projektem - zpracování dat získaných z nějakých senzorů a jejich využití (interpretace) pro účely lokalizace robota v nějakém prostředí.
Především badatelský projekt, u kterého bude ale potřeba i programovat. Zkušenosti s robotikou nejsou potřeba, i když by se samozřejmě hodily. Předpokládá se pokračování do bakalářské práce a může to být i téma na dva další levely (Mgr., Ph.D.). Opět, díky ROSu už nějaká základní funkčnost je, čili nebude potřeba to dělat od nuly.
Výhoda: Velký potenciál projektu (věda, zahraniční konference, soutěže...)
Ground Truth
Stručné zadání: Vybudovat do robotické laborky systém pro nezávislé sledování pozice mobilních robotů. Nejspíš pomocí rozmístění kamer a označkování robotů (třeba nějakým QR-podobným tagem).
3D tiskárna
Stručné zadání: Máme mechaniku 3D tiskárny, chybí ovládání
Pro prehistorickou 3D tiskárnu, ke které neexistují drivery (a výrobce nespolupracuje) udělat nové řízení, založené na nějakém běžně používaném free řešení typu RAMPS, Ultimaker, RAMBo apod.
Tohle už je dost "obsolete", ale zkusit by se to i tak dalo.
Autonomní/teleoperovaný robot
Stručné zadání: Postavení autonomního/teleoperovaného robota a jeho řídícího systému.
N+1. takový projekt, ale pořád je něco nového.
Vylepšení navigačního algoritmu LLH
Stručné zadání: Prozkoumání teoretických vlastností navigace robota systémem LLH (low-low-high) a návrh vylepšení pomocí integrace nezávislých dat.
Místo "navigačního" a "LLH" si můžete dosadit libovolný jiný okruh, jiný algoritmus a jiný nápad na vylepšení...
Magická tabulka
Naprogramovat robotické rameno UR-5, aby fungovalo jako magická tabulka, "prstem" v bedničce s pískem. Ovládání buď přes app na Androidu nebo ještě lépe pomocí vlastního ovladače (nejlépe z reálné magické tabulky...)
(prémiový projekt pro zasloužilého robotistu)
Ur-Picasso
Naprogramovat robotické rameno, aby malovalo na papír podle toho, co uživatel prstem matlá na tabletu.
(prémiový projekt pro zasloužilého robotistu)
Ur-Signac
Naprogramovat robotické rameno, aby obraz podle fotky přeneslo v pointilistickém stylu na papír.
(prémiový projekt pro zasloužilého robotistu)
Pro další představu
Bez ladu a skladu, některé starší projekty pro inspiraci, některé je možné přiměřeně recyklovat:
Robot na soutěž
Stručné zadání: Udělat robota schopného soutěžit v nějaké robotické soutěži.
Tenhle projekt se v různých reinkarnacích použil už několikrát, roboti MFF pak byli na řadě mezinárodních soutěžích. Je možné ho zase zopakovat...
Robotické oko
Stručné zadání: Naprogramovat modul, který bude umět zkalibrovat a použít dvě kamery pro získání vzdálenostní informace v obraze. Důraz na to, aby to v konkrétních podmínkách doopravdy fungovalo a dalo se použít. Hardware je k dispozici.
Zobrazovátko
Stručné zadání: Na Robotickém dni probíhá řada soutěží. Aplikace průběžně zobrazuje jejich výsledky na webu a na monitorech v hale.
Datový žrout
Stručné zadání: Je třeba vytvořit první stupeň pro zpracování dat sebraných při testování reálných zařízení. Data pochází ze dvou systémů pro sběr dat, je třeba je sjednotit na základě jejich formálního popisu a požadavků zpracovávající aplikace.
Konkrétně je vyvýjený stavební stroj (bagr například) oblepený senzory, které produkují data. Ta jsou sbírána těmi dvěma systémy, ale výpočty chceme provádět nad všemi daty dohromady.
Výběrčí
Stručné zadání: Testovací stroj generuje proudy dat o průběhu testování nějakého výrobku. Pro účely analýzy je třeba data probrat, především vyhledat
ta, která se vůbec mají dále zpracovávat. To se zatím dělá ručně (oko vidí), ale tak nějak se ví, co chceme zpracovávat. Jen zatím nikdo nepromyslel a nenavrhl, jak by se to mělo dělat.
Dispic
Stručné zadání: Disassembler pro mikrokontroléry PIC.
Cyp3D
Stručné zadání: 3D hra bludišťovitého typu.
G Code optimalizátor
Stručné zadání: Optimalizace cesty nástroje v G Code (čístě softwarové řešení).
3D tiskárny, frézy, CNC apod. používají často jako popis cesty nástroje G Code (pohyby hlavy v osách XYZ, teplota, atd.). Pokud je kód neoptimalizovaný, dochází k častým přejezdům sem-tam, které jsou zbytečné a velmi prodlužují dobu práce. Optimalizací - zkrácením přejezdů na minimum by velmi pomohlo. Vstupem bude nějaká sekvence v G Code, výstupem ekvivalentní zoptimalizovaná.
Výhoda: výsledky své práce fakt můžete vidět. Navíc se můžete dočkat uznání od komunity.
Nevýhoda: od doby, co jsem téma navrhl, došlo k takovému rozvoji slicerů, že aby to k něčemu bylo, muselo by to být fakt dobrý a to by bylo docela těžký.
Gerber Code optimalizátor
Stručné zadání: Optimalizace cesty nástroje v Gerber Code.
Skoro totéž, jako předchozí, akorát vstup bude Gerber file a ne G Code. Ale ono to vyjde nastejno - oba jsou jednoduché textové popisy - takže by to taky mohlo být oboje najednou...
Řídící systém pro mobilního robota
Stručné zadání: Do robota je třeba naprogramovat řídící systém, který umožní jeho „zprovoznění“ a využívání.
Zkušenosti s robotikou jsou potřeba, ochota k práci s hardware je velkou výhodou. Předpokládá se pokračování do bakalářské práce.