Jak obliczyć ślad naziemny kamery powietrznej?

9

Mam bardzo prosty problem matematyczny, ale nie mogę go zrozumieć. Muszę obliczyć, która część ziemi będzie widoczna podczas oglądania z kamery zamontowanej na UAV. Wydaje mi się, że udało mi się rozwiązać problem patrzenia prosto w dół, ale kamera jest na przegubie i będzie miała pełny zakres ruchu we wszystkich osiach.

Dane wejściowe do problemu to wysokość (m), ogniskowa kamery (mm), czujnik kamery x długość (mm), czujnik kamery y długość (mm) oraz kąt pochylenia w każdej płaszczyźnie.

Oto, co mam, kiedy kamera jest skierowana prosto w dół (uwaga: daje mi to długość każdej strony pokrycia terenu. Idealnie, chciałbym mieć każdy punkt, w tym przypadku cztery rogi prostokąta).

Odległość od podłoża w płaszczyźnie X = (wysokość / ogniskowa obiektywu) * X długość czujnika aparatu

Odległość od podłoża w płaszczyźnie Y = (wysokość / ogniskowa obiektywu) * Y długość czujnika aparatu

David Jones
źródło

Odpowiedzi:

27

Trochę mnie poniosło formatowanie mojej odpowiedzi ...

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Ten rysunek jest dostosowywalny i może automatycznie obliczyć różne scenariusze, dam źródło LaTeX / Python każdemu, kto tego chce.

Edycja: Umieściłem tutaj kod źródłowy. Muszę ostrzec potencjalnych widzów, że jest trudny do odczytania i źle sformatowany z powodu zagnieżdżenia Pythona w LaTeX.

Ryan
źródło
2
Chciałbym móc dać za to wiele głosów poparcia. +10 za doskonałe diagramy, +100 za opublikowanie źródła LaTeX / Python na github. * klaskać ręką *
scottbb
Pomimo doskonałego wyjaśnienia (+1), pojawiło się nowe pytanie dotyczące jego szczegółów . Czy możesz spojrzeć na @ Ryana?
null
1
Nie sądzę, że używasz gimbala z osią Y tak, jak myślisz. W jaki sposób odległość od drona do lewej strony obrazu może być mniejsza niż odległość prostopadła od drona do ziemi? Długość przeciwprostokątnej trójkąta prostokątnego nigdy nie może być mniejsza niż długość obu stron.
Michael C
1
Czy ślad nie powinien być trapezem, gdy kąt gimbala nie jest równy zero?
Marvin,
Ta odpowiedź jest niepoprawna i działa tylko z nachyleniem
gimbala