dronedeploy

required libraries:

$ pip install geopy
$ brew install gdal
$ brew install opencv3
$ brew install scipy

running the script:

To run the script you must have installed the above libraries. This script has only been tested with python 2.7. The script will download the 'example' data. If there is no internet connection, you must put the 'example' directory at the same level as the 'mosaic.py' script.

$ python mosaic.py

Notes on yaw, pitch and roll

Drone coordinate system

Summary of coordinate system for drone position

  • yaw will be positive in the NE direction and negative in the NW direction
  • pitch will be positive in the upward direction
  • roll will be positive as the left wing lifts and right wing dips

Notes on image coordinate system in relation to yaw, pitch and roll

OpenCV image coordinate system

In the image, if the camera is oriented with the top of the photo in the direction of the flight path:

  • positive pitch means that the position of the drone will be lower in the image

    • this means a higher y pixel value for the drone's position relative to center of image
    • center_y = height / 2.0
    • shift_y = FOCAL_LENGTH_MM * math.tan(roll_radians) * (height / CCD_HEIGHT_MM)
    • drone_y = center_y + shift_y
  • negative pitch means that the position of the drone will be higher in the image

    • this means a lower y pixel value for the drone's position relative to center of image
  • positive roll means that the position of the drone will be to the right in the image

    • this means a higher x pixel value for the drone's position relative to center of image
    • center_x = width / 2.0
    • shift_x = FOCAL_LENGTH_MM * math.tan(roll_radians) * (width / CCD_WIDTH_MM)
    • center_x + shift_x
  • negative roll means that the position of the drone will be to the left in the image

    • this means a lower x pixel value for the drone's position relative to center of image