niedziela, marca 11, 2012

Jak zmierzyć odległość przy pomocy telefonu? ;-)

Wczoraj w Android Market... wróć w Android Apps on Google Play ;-) była promocja (dziś chyba jeszcze trwa) na programik Smart Tools, który to programik pozwala użyć urządzenia z Androidem jako linijki, kątomierza, ale i dalmierza.
To ostatnie mnie zaskoczyło. Obejrzałem filmik i było w nim pokazane jak można zmierzyć wysokość jakiegoś obiektu i odległość do niego. Z wysokością nie miałem problemu, bo jak znasz odległość do obiektu i jego rozmiary kątowe to znasz i jego rozmiary w metrach, ale ten dalmierz mnie prześladował.

Najpierw myślałem, że może program jakoś rejestruje odbicie dźwięku? [głupi pomysł mi się wziął z tego, że program potrafi też podobno mierzyć właśnie głośność i podobne] Ale po 2-3 sekundach odrzuciłem ten pomysł.
Później mi się w głowie pokazało, że można by było wg. teorii używać równania soczewki, jeśli telefon znałby ogniskową soczewki (zna bo może włożyć te dane do zdjęcia) i odległość obrazu od ogniska (nie zna) to mógłby wyliczyć odległość... ale nie zna odległości obrazu od ogniska (choć pewnie by mógł znać).

Kombinowałem i dopiero jak uruchomiłem program i wstałem (bo wcześniej na leżąco się bawiłem programikiem).... to złapałem o co chodzi i jak to działa ;-)
Programik kłamie ;-) nie mierzy odległości, a jedynie kąt ;-)
Jeżeli wiemy na jakiej wysokości znajduje się telefon (a możemy przyjąć, że np. na wysokości 170 cm) i pod jakim kątem patrzy to zbudowanie trójkąta który to wszystko opisze i policzenie długości drugiej przyprostokątnej (czyli odległości od naszych stóp do podstawy obiektu od którego odległość chcemy znać) to banał.

[na rysunku x to odległość, h to wysokość na której znajduje się aparat, a alfa to kąt przenia]
Wtedy tan(alfa)=x/h, czyli x= tan(alfa)*h, jeśli więc kąt to 45 stopni to obiekt od którego mierzymy odległość jest oddalony o 1.7 metra ;-)
Oczywiście jest problem polegający na tym, że przy dużym błędzie pomiaru konta (a jest duży, odległość też mamy mocno pomyloną ;-))
Ale, że nie chce mi się (chyba bym jeszcze umiał, ale mi się nie chce ;-)) liczyć błędów to pozostawmy to niedopowiedziane ;-)


Podobne postybeta
Focus
Potrzebny mi radar....
Trygonometria trudna
Gouraud = Pseudo Phong :-)
Jak działają Google Glasses?