I have a very simple math problem, but I cannot seem to figure it out. I need to calculate what portion of the ground will be visible when viewed from a UAV mounted camera. I believe I have it solved for looking straight down, but the camera is on a gimbal and will have a full range of motion in all axes.

The inputs to the problem will be the Altitude (m), camera focal length (mm), camera sensor x length (mm), camera sensor y length (mm), and the angle of tilt in each plane.

Here is what I have for when the camera is pointed straight down (Note: this gives me the length of each side of ground coverage. Ideally, I would like to have each point, in this case, the four corners of the rectangle.)

Ground distance in X plane = (Altitude / focal length of lens) * X length of camera sensor

Ground distance in Y plane = (Altitude / focal length of lens) * Y length of camera sensor


1 Answer 1


I got a little carried away with formatting my answer...

enter image description here

enter image description here

This drawing is adaptable and can automatically calculate different scenarios, I'll give LaTeX/Python source to anyone who wants it.

Edit: I've put the source code here. I must warn potential viewers that it's difficult to read and badly formatted because of nesting python inside LaTeX.

  • \$\begingroup\$ Despite the great explanation (+1), there's a new question related to the details of it. Could you please take a look @Ryan? \$\endgroup\$
    – null
    Aug 31, 2016 at 22:43
  • 1
    \$\begingroup\$ I don't think you are using the y-axis gimbal the way you think you are. How can the distance from drone to left of picture be less than the perpendicular distance from the drone to the ground? The length of the hypotenuse of a right triangle can never be less than the length of either side. \$\endgroup\$
    – Michael C
    Sep 1, 2016 at 2:55
  • 2
    \$\begingroup\$ Shouldn't the footprint be a trapezoid when the gimbal angle is not zero? \$\endgroup\$
    – Marvin
    Oct 7, 2018 at 1:09
  • \$\begingroup\$ This answer is incorrect and only works with a 0º gimbal pitch and roll (x, y) \$\endgroup\$
    – dazonic
    Sep 6, 2019 at 2:04
  • \$\begingroup\$ Can you post the Python code as a regular text file on your GitHub page? \$\endgroup\$
    – GBG
    Apr 23, 2020 at 15:04

Not the answer you're looking for? Browse other questions tagged or ask your own question.