Skydio 2/2+ and Skydio X2 camera and metadata overview
Published: Updated:
Each time you take a photo, you capture information that is referred to as metadata. This data is extremely useful when creating 3D reconstructions.
Metadata is stored in two types of files:
- EXIF (Exchangeable Image File): contains information about the specific camera settings used when capturing a specific image. This information includes details such as GPS position, camera make and model, date and time, shutter speed, focal length and more.
- XMP (Extensible Metadata Platform): the data standard for Adobe’s Extensible Metadata Platform
The information included in metadata files consists of camera intrinsics and camera extrinsics.
- Camera intrinsics refers to the focal length and optical center of the camera
- Camera extrinsics refers to the camera’s physical location and the direction it is pointing.
Using the extrinsic parameters, we can create camera coordinates which are mapped into the image plane using the intrinsics parameters.
[accordion heading="Skydio Camera Information"]
Photo Camera Intrinsics
Below are example values from EXIF/XMP data relevant to camera intrinsics. The values are from our “prototype” calibrations which should be very close for a drone of that type. Image files from a specific drone will have factory-calibrated values that will be even more accurate.
Skydio 2/2+ and X2 Color
Calibrated Focal Length X |
2376.5625 |
Calibrated Focal Length Y | 2376.5625 |
Calibrated Optical Center X |
2027.5000 |
Calibrated Optical Center Y | 1519.5000 |
Dewarp Data | 0.13000, -0.24000, 0.10400 |
Image Width | 4056 |
Image Height | 3040 |
Focal Length | 3.7 mm |
Focal Length in 35mm Format | 21 mm |
Focal Length | 3.7 mm (35 mm equivalent: 21.0 mm) |
Hyperfocal Distance | 0.92 m |
Horizontal Field of View | 80° |
Vertical Field of View | 64° |
Diagonal Field of View | 94° |
Resolution | 4056 x 3040 (12.3 MP) |
X2 Color/Thermal
Calibrated Focal Length X |
4848.1875 |
Calibrated Focal Length Y |
4832.3438 |
Calibrated Optical Center X |
2027.5000 |
Calibrated Optical Center Y |
1519.5000 |
Dewarp Data |
0.00000, 0.00000, 0.00000 |
Image Width |
4056 |
Image Height |
3040 |
Focal Length |
7.5 mm |
Focal Length in 35mm Format |
41 mm |
Focal Length |
7.5 mm (35 mm equivalent: 41.0 m) |
Hyperfocal Distance |
3.73 m |
Thermal sensor size |
3.84mm x 3.072mm |
Horizontal Field of View |
45° |
Vertical Field of View |
35° |
Diagonal Field of View |
55° |
Resolution |
4056 x 3040 (12.3 MP) |
Computing pixel from point
The model we use is a simplification of the standard OpenCV model with the denominator coefficients and tangential coefficients omitted. This is a similar to the model from A Flexible New Technique for Camera Calibration, 1998.
Below is an example of how to compute the projection of a point from the example Skydio 2 calibration in Python:
[/accordion]
[accordion heading="EXIF/XMP Tag Descriptions"]
To access EXIF or XMP data, use a metadata reader tool such as https://exif.tools/
Coordinate Conventions
GPS |
Latitude and longitude are in WGS84 coordinates. Altitude is geoid (or orthometric). Height/altitude (roughly equivalent to height above mean sea level) in EGM96 computed by interpolation from a 10 deg x 10 deg grid. |
FLU | Front left up coordinates |
NED | North East Down local cartesian coordinates relative to an arbitrary GPS linearization point. Yaw north is zero, yaw east is 90 degrees |
Reference frames
Visual Frame |
From our visual system, relative to where the drone turned on |
World Frame |
GPS based reference frame, linearized about an arbitrary point near where the drone is turned on |
Hybrid Frame |
From our visual system, transformed into the world frame |
Standard EXIF GPS Field |
GPSVersionID GPSProcessingMethod GPSLatitude GPSLongitude GPSAltitude GPSAltitudeRef GPSTimeStamp GPSSatellites GPSHPositioningError GPSImgDirection GPSImgDirectionRef GPSSpeed GPSSpeedRef GPSTrack GPSTrackRef |
Images captured in Skills and 3D Scan
VehicleID |
Unique vehicle ID |
VehicleName |
Drone name
|
ReleaseKey |
Software release key |
FlightId |
Unique flight ID |
LogHandle |
Log name |
TakeoffUtime |
Drone time since boot [microseconds] |
CaptureUtime |
Photo capture time [microseconds] |
Latitude |
Drone latitude [degrees] |
Longitude |
Drone longitude [degrees] |
AbsoluteAltitude |
Absolute altitude above sea level [meters] |
VehiclePositionNED |
Position of the drone in the hybrid frame (north-east-down) [meters] |
VehicleSpeedNED |
Velocity of the drone in the hybrid frame (north-east-down) [meters /second] |
VehicleOrientationNED |
Orientation of the drone in the hybrid frame (roll, pitch, yaw) [degrees] |
VehicleOrientationQuatNED |
Orientation of the drone in the hybrid frame [quaternion] |
CameraPositionNED |
Position of the gimbal in the hybrid frame (north-east-down) [meters] |
CameraOrientationNED |
Orientation of the gimbal in the hybrid frame (roll, pitch, yaw)[degrees] |
CameraOrientationQuatNED |
Orientation of the gimbal in the hybrid frame [quaternion] |
VehiclePositionFLU |
Position of the drone in the visual frame (forward-left-up) [meters] |
VehicleSpeedFLU |
Velocity of the drone in the visual frame (forward-left-up) [meters /second] |
VehicleOrientationFLU |
Orientation of the drone in the visual frame (roll, pitch, yaw) [degrees] |
VehicleOrientationQuatFLU |
Orientation of the drone in the visual frame [quaternion] |
CameraPositionFLU |
Position of the gimbal in the visual frame (forward-left-up) [meters] |
CameraOrientationFLU |
Orientation of the gimbal in the visual frame (roll, pitch, yaw) [degrees] |
CameraOrientationQuatFLU |
Orientation of the gimbal in the visual frame [quaternion] |
CalibratedFocalLength |
Focal length of the user camera lens [pixels] |
CalibratedOpticalCenter |
Optical center of the user camera lens [pixels] |
DewarpData |
Vector of distortion coefficients specific to the camera model used We can provide the distortion polynomial these correspond to |
Images captured in 3D Scan
ScanSkillStateId |
UUID of this scan |
The polygon prism is a bounding prism that defines the volume being scanned. It is defined by a list of 2D lat/lon points, and a min and max altitude. | |
PolygonPrismLatitudes |
Comma-separated list of polygon vertex latitudes Example: "34.711897674098346, 34.711934502374667, 34.711825992904018" |
PolygonPrismLongitudes |
Comma-separated list of polygon vertex longitudes Example: "-86.654600276271509,-86.654718602075093, -86.654606026734086" |
PolygonPrismMinAltitude |
Minimum altitude of the polygon prism |
PolygonPrismMaxAltitude |
Maximum altitude of the polygon prism |
The GPS position of the linearization point used as an ENU Euclidean frame for poses:
|
|
Position and orientation (RDF) of the gimbal in the linearized GPS frame. These poses are the most accurate photo poses as determined by 3D Scan
|
[/accordion]
Explore More
Explore related articles for additional information:
How to create 3D reconstructions
What Is Camera Calibration? by MathWorks
Skydio, Inc. A0088
Was this article helpful?