====== Zadání semestrální práce ====== ===== Přehled ===== V závěrečném projektu jsou na výběr dvě možnosti: - reorganizace kostek, který zahrnuje prácí s kamerou a vidění, pomocí něhož se provede sběr a umisťování kostek, - kreslení pomocí robota, kde bude mít robot za úkol kreslit dle zadaného vzoru na papír. Musíte si vybrat jeden z projektů. Pro každou možnost je připraveno několik variant s různou obtížností (tj. maximálním počtem bodů). Závěrečný projekt je ukončen odevzdáním technické zprávy, která popisuje vaše řešení, a předvedením požadovaných schopností jednomu ze cvičících. **Tým:** Na závěrečném projektu budete pracovat v týmu složeném ze dvou studentů. Spolupracovníka si můžete vybrat sami. **Rezervace robotů.** Je třeba si zarezervovat časový slot, abyste mohli pracovat s robotem. Rezervační systém je k dispozici v aplikaci BRUTE. **Konzultace.** Cvičící jsou připraveni konzultovat vaše řešení a technické problémy. Existují dvě možnosti: (i) v době konání cvičení (út 12:45-16:00, st 14:30-16:00) čekáme v našich kancelářích, zavolejte na níže uvedená telefonní čísla a cvičící za vámi přijde do laboratoře; nebo (ii) pro jiný čas nám prosím napište předem e-mail, že byste rádi diskutovali o závěrečném projektu, a navrhněte několik časových termínů pro schůzku. Telefonní čísla do našich kanceláří (pokud jeden ze cvičících nezvedá telefon, zavolejte prosím dalšímu v seznamu): Pavel Krsek, +420-22435-4194 Vladimír Smutný, +420-22435-7280 E-mailové adresy pro sjednání konzultace (pošlete prosím e-mail na všechny adresy): vladimir.smutny@cvut.cz, pavel.krsek@cvut.cz **Závěrečná ukázka.** Pro demonstraci vašich závěrečných řešení připravíme rezervační systém na poslední týden semestru a na zkouškové období. Pokud byste chtěli předvést své řešení dříve, kontaktujte nás na výše uvedených e-mailových adresách. Před zkouškou je třeba semestrální práci odevzdat a předvést. Technickou zprávu je nutné odevzdat minimálně 48 hodin před termínem odevzdání. Video nahrávka přednášky na téma **"Psaní technické zprávy"** naleznete na darese: [[https://youtu.be/eZF6jhuBbRU]] ({{ :help:common:krsek_tz_obsah_cs.pdf | prezentace ve formátu PDF}}) ===== Reorganizace kostek (s viděním, maximálně 20 bodů) ===== **Přehled.** Pomocí průmyslového robotického manipulátoru přeneste všechny kostky z jedné desky do druhé. Vzorová deska je zobrazena na Obr. 1. Parametry desky pro umísění kostek jsou: * Deska s otvory pro umístění kostek má rozměr 240 × 200 mm. * Deska je v protilehlých rozích označena ArUco značkami (DICT_4X4_50). * Značky mají po sobě jdoucí ID. * Střed ArUco značky s nižším ID je počátkem soustavy souřadnice na desce. Osa X je rovnoběžná s delší hranou desky, osa Y je rovnoběžná s kratší stranou desky. * Osy směřují od ArUco značky s nižším ID ke značce s vyšším ID. * Stěny kostek (otvorů) jsou rovnoběžné s osami soustavy souřadnic. * Stěny sousedících kostek umístěných v otvorech jsou vzdáleny min. 40 mm. * Pro každou desku je k dispozici CSV soubor, který definuje polohu otvorů v desce: * Sloupce jsou na řádku oddělené čárkou. * Oddělovač desetinných čísel je tečka. * Na každém řádku souboru jsou vždy dvě čísla. * Na prvním řádku jsou uvedeny ID ArUco značek na desce. * Na druhém a dalších řádcích jsou uvedeny souřadnice středů jednotlivých otvorů pro umístění kostek. Souřadnice jsou uvedeny vždy v pořadí x, y. * Souřadnice jsou uvedeny v milimetrech. Pro vaše testování máte k dispozici 4 různé desky, podklady jsou k dispozici https://data.ciirc.cvut.cz/public/projects/2024CTURoboticsData/final_project/. Pro záverečnou ukázku přineseme desky jiné, je tedy potřeba informace o desce načítat z priložených csv souborů. **Ovládání robota:** Pro ovládání robota můžete použít rozhraní https://github.com/CTURobotics/ctu_crs, které je na počítačích již nainstalováno. **Práce s kamerou:** Pro získání obrázku z kamery použijte rozhraní a ukázkový kód z [[courses:b3b33rob1:common:camera_crs|CourseWare Wiki]]. **Varianta A, rovinný problém, jedna deska (7 bodů):** V pracovním prostoru robota máte pouze jednu desku, kterou vám cvičící umístí tak, aby byla viditelná v kameře. Vaším cílem je sebrat kostky z desky a umístit je na libovolné místo mimo desku. Deska s podstavcem bude položena na rovině pracovní desky. Základní podstavec tvoří molitan o tloušťce přibližně 48 mm, což odpovídá vzdálenosti vrchní stěny desky s otvory od pracovní plochy. Hloubka otvorů pro kostky činí 10 mm, takže spodní stěna kostek se nachází 38 mm nad pracovní plochou. **Varianta B, rovinný problém, reorganizace kostek (10 bodů):** V pracovním prostoru robota budou umístěny dvě desky. Vaším cílem je přenést všechny kostky z jedné desky na druhou. Kostky nejsou označeny a je jedno, která kostka bude vložena do kterého otvoru. Cvičící před spuštěním programu určí, na které desce se kostky nacházejí. Úkolem robota je poté bezpečně sebrat kostky z této desky a přesunout je na druhou desku. Deska s pružným podstavcem bude položena na rovině pracovní desky. **Varianta C, nerovinný problém (15 bodů):** Stejné jako u varianty B, ale desky mohou být umístěny v různých výškách. Jsou umístěny paralelně s pracovní deskou robota. **Varianta D (max. 20 bodů):** Stejné jako varianta C, ale deska se může natáčet o 7 nebo 15 stupňů okolo horizontálních os. **Obr. 1:** CRS robot s kostkami. {{ :courses:b3b33rob1:crs_taskboard.png?nolink&600 | }} ===== Kreslení s robotem (maximálně 15 bodů) ===== **Přehled.** Vaším úkolem je nakreslit obrazec, který je zobrazen na vstupním černobílém obrázku, pomocí robota BOSCH, jenž je znázorněn na Obr. 2. Počet bodů bude přidělen na základě odhadované složitosti problému kreslení, přičemž složitost závisí na komplexnosti obrazce a jeho umístění v pracovním prostoru robota. Detailní bodové hodnocení je uvedeno v následujících variantách. **Ovládání robota:** Pro ovládání můžete využít rozhraní v Pythonu https://github.com/CTURobotics/ctu_bosch_sr450, které je na počítačích již nainstalováno. **Mapování obrazce na pracovní prostor robota:** Na Obr. 3 vidíte pracovní prostor robota. Na vstupu vašeho programu obdržíte PNG obrázek o rozměrech 1000 x 1000 px. Střed obrázku odpovídá ose otáčení prvního kloubu robota. Každý pixel představuje jeden milimetr v pracovním prostoru robota. Čára o tloušťce 1 px odpovídá jednomu tahu pera. Tento formát umožňuje reprodukci obrazce v rámci pracovního prostoru robota. Testovací příklady máte k dispozici https://data.ciirc.cvut.cz/public/projects/2024CTURoboticsData/final_project/. **Varianta A-1 (4 body):** Nakreslete jednu spojitou křivku. Je zaručeno, že křivka bude ležet v průsečíku červené a zelené oblasti znázorněné na Obr. 3, tj. v oblasti, kde existují obě řešení inverzní kinematiky. **Varianta A-N (6 bodů):** Stejně jako v předchozí variantě, ale v obrázku bude více křivek. **Varianta B-1 (6 bodů):** Nakreslete jednu spojitou křivku. Je zaručeno, že polygon leží buď v červené, nebo v zelené oblasti znázorněné na Obr. 3. Je nutné zjistit, které řešení inverzní kinematiky použít, aby nebylo nutné měnit konfiguraci robota. **Varianta B-N (7 bodů):** Stejně jako v předchozí variantě, ale v obrázku bude více křivek. **Varianta C-1 (8 bodů):** Křivka může být umístěna kdekoli v červené oblasti, zelené oblasti i jejich průsečíku. Může se stát, že část křivky bude v červené oblasti, část v zelené oblasti a část v průsečíku obou oblastí. Je důležité zjistit, které řešení inverzní kinematiky použít v závislosti na umístění jednotlivých segmentů křivky, aby bylo možné efektivně pracovat s různými konfiguracemi robota. Pokud na sebe křivky při změně konfigurací navazují (jejich vzdálenost je menší než 3 mm), získáváte za řešení o bod navíc. **Varianta C-N (10 bodů):** Stejně jako v předchozí variantě, ale v obrázku bude více křivek. Také je možné získat bonusový bod za navazující křivky. **Varianta D-1 (max. 14 bodů):** Křivka může být umístěna kdekoli v pracovním prostoru robota, který je vymezen modrou hranicí na Obr. 3. **Varianta D-N (15 bodů):** Stejně jako v předchozí variantě, ale v obrázku bude více křivek. **Obr. 2:** Robot BOSCH. {{:courses:b3b33rob1:bosch1.jpg?400|}} {{:courses:b3b33rob1:bosch2.jpg?400|}} **Obr. 3:** Pracovní prostor robota BOSCH. {{:courses:b3b33rob1:bosch_workspace.png?nolink&600|}}