Obraz z kamery je 2D projekce 3D světa a každý bod x v obraze je projekcí skutečného bodu X ležícího kdekoliv na polopřímce (paprsku) vedoucí ze středu kamery C bodem x. Vzdálenost |CX| nelze z jednoho obrazu zjistit (pokud nemáme další informace o pozorované scéně). Pro změření vzdálenosti potřebujeme více obrazů z různých pozic. Pro zjednodušení nás zajímá pouze vodorovná vzdálenost.
AVbot má dva stupně volnosti. Posuvem d a otočením stolku
θ můžete řídit relativní posun i otočení mezi jednotlivými
pozicemi. Na robotu je přimontovaná kamera o neznámé ohniskové
vzdálenosti f.
Předpoklad 1: osa pohybu robota a osa otáčení
se protínají a střed kamery C leží v ose otáčení.
Na začátku se robot nachází v pozici
[d0,θ0] a v zorném poli jeho
kamery je bod X, známe obrazové souřadnice jeho projekce do kamery.
Úkolem je změřit vodorovnou
vzdálenost od kamery
v počáteční pozici C0 k bodu X.
Předpokládejte, že po pohybu robota do pozice
[di,θi]
budeme opět schopni nalézt projekci bodu X v obraze.
Nápověda
Uvažujte pouze v rovině, ne v prostoru – robot se pohybuje pouze
v rovině a nás zajímá jen vodorovná vzdálenost. Vystačíte se standardní
geometrií, teorii z robotiky nemusíte použít. Ke zmeřenému bodu
v obrazu kamery potřebujeme umět přiřadit paprsek v prostoru. Souřadnice
obrazového bodu v pixelech bez znalosti ohniskové vzdálenosti paprsek
nedají, s vyjímkou jednoho bodu, kde paprsek nezávisí na ohniskové
vzdálenosti. Nakreslete si popisovanou situaci, bude vám zřejmé, který
bod to je.
Nezapomeňte, že kamerou můžete otáčet a můžete tedy dostat měřený bod
v obraze tam, kam potřebujete.
Odevzdávaná úloha
Upřesnění: Jde o teoretický rozbor, stačí napsat postup (formát txt/html/pdf). Předpokládejte, že metodu/funkci pro nalezení měřeného bodu v obraze máte k dispozici. S robotem zatím nijak pracovat nemusíte, ani nemusíte v popisu používat přesné příkazy pro jeho ovládání, stačí slovní popis.
Součástí řešení je náčrtek (můžete ho udělat na papíře a vyfotit nebo naskenovat) se zakreslenými pozicemi robota, vzdálenostmi a úhly. Zapište do něj označení, které použijite.