Extracting Embedded Metadata for Roll+Pitch+Yaw

I want to extract embedded video metadata for lat, lon, alt, drone roll, pitch, yaw (and hopefully I can get the camera’s relative roll, pitch, yaw). Because I am limited to a Windows environment and don’t have admin privileges, I have been using ExifTool to extract these values. It has worked well enough for my purposes but I am struggling to understand the meaning of some of the Parrot tags and cannot find documentation.

  1. Drone Quaternion- how is this represented [w,x,y,z] or [x,y,z,w]? Any tips for converting to roll, pitch, yaw?
  2. Frame Base View & Frame View- do these represent the roll, pitch, yaw of the camera? Or something else?

Any help appreciated.

Hi

Regarding the photo metadata, the documentation can be found here (although only Anafi Ai is documented at the moment, not Anafi, but most tags are common). No software is provided by Parrot, but as tags are standard Exif and XMP, tools such as ExifTool or exiv2 can be used.

For video metadata, the documentation can be found here. Software components are provided by Parrot to access the metadata both on streams and records, see here.

Quaternions are represented as [w,x,y,z] in a North,East,Down (NED) reference frame. Conversion to Euler angles (roll, pitch, yaw) can be done with a standard implementation, or with the one provided in vmeta_quat_to_euler() in libvideo-metadata.

The “frame” quaternion is the camera orientation, and the “drone” quaternion is the drone orientation, both in NED. You can ignore the “frame_base” quaternion.

Thanks so much! This is very helpful and useful info. I did have some questions about how I can figure out where the drone is heading, say if I want to plot it on a map.

Here is a simple example. I have a drone flying northwesterly. This is the quaternion I got from the metadata: [-0.6268310546875 0.023681640625 -0.0252685546875 0.7783203125]. Using Python/Scipy I got roll pitch yaw as ( -3.95831773, -0.29714286, -102.29630586). Should I interpret the -102.3 as the drone heading at this instance?

Later in the flight, when I have the drone flying back in the opposite direction, I have a quaternion of [-0.6478271484375 0.08319091796875 -0.111572265625 0.7489013671875] and I calculated roll pitch yaw as (15.96091309, 1.14355354, -98.43830868). I’m not quite sure how to interpret these two different headings have the same yaw.

If it helps I posted a picture of my flight path. The camera is pointed toward the left/west towards the white structure during flight.

Thanks again!