Mixed Up Roll, Pitch, and Yaw

All,

I have a payload system that automatically tags image geolocation and orientation (Roll, Pitch, Yaw).

I’ve noticed that when I use images from this system in Pix4D, the initial orientation values depicted in the rayCloud view are not as expected - the images are all pointing forward and oriented incorrectly, as though the values are in a different reference frame.

Reviewing the Gimbal angles in the EXIF data, however, it seems that the embedded data makes sense.
The camera is pointed toward nadir, the aircraft has a slight downward pitch angle, is pointed at 283.290 degrees (relative to magnetic north), and has a slight roll angle.

The initial orientation shown by Pix4D “flips” in yaw for upwind and downwind segments, so there is at least some correlation in yaw.

XMP Toolkit : XMP.Core.5.5.0
About : DJI Meta Data
Format : image/jpg
Latitude : [Redacted]
Longitude : [Redacted]
Absolute Altitude : 120.272
Relative Altitude : 120.272
Gimbal Roll Degree : 5.891
Gimbal Yaw Degree : 283.290
Gimbal Pitch Degree : -6.015
Flight Roll Degree : 0000000000
Flight Yaw Degree : 0000000000
Flight Pitch Degree : 0000000000
Cam Reverse : 0
Gimbal Reverse : 0

What might be wrong at the EXIF data level, that the developer of the system might tweak to make it interpret correctly in Pix4Dmapper?

Hi @evan.williams1010,

As you mentioned, Pix4Dmapper can read the Yaw, Pitch, and Roll in the EXIF. After importing the angles in Pix4Dmapper, they are automatically converted into Omega, Phi, Kappa.

In order for Pix4Dmapper to recognize the angles correctly, the following tags need to be available in the EXIF of images:

  • Xmp.Camera.Yaw
  • Xmp.Camera.Pitch
  • Xmp.Camera.Roll

More information in the EXIF and XMP tag information read by Pix4D.

I would recommend checking that the angles are written correctly in the EXIF. Please attach send over a few images so we can have a look if there is something wrong with the way angles are written.

Best,

@Blaz,

Judging by the exiftool output, the images do not seem to use the Xmp.Camera.X tags, but rather some DJI format Gimbal Roll/Yaw/Pitch tags.

Perhaps the DJI tags are interpreted in a different reference frame from the normal Xmp.Camera.X tags?

I have attached a few images containing the offending tags. They are in a Google Drive link, owing to attachment limitations.

https://drive.google.com/drive/folders/1JVPiY8WiSvF62Pzk1grpK1MZn5hxNaGy?usp=sharing

Thank you

@evan.williams1010,

Thank you for attaching the images. As you mentioned, the angles in the EXIF make sense, and they correspond to the actual flight you did, but the Pitch angle is not imported correctly (images do not point down, nadir).

We believe that the issue is related to the way DJI writes the EXIF tags. To explain further:

  • The pitch angle in the EXIF, Xmp.Camera.Pitch, should be close to 0° in order to be recognized correctly in Pix4D and that the images point down after importing them.
  • DJI is writing the angles using the Xmp.drone-dji.GimbalPitchDegree tag. From our experience, DJI writes the angles differently and uses pitch angle for nadir -90°, instead of 0°. That is why a constant is added when importing images with that tag into Pix4Dmapper.

It looks like the drone you are using has the expected values and is tagging images differently than the majority of DJI drones. Therefore, the added constant does not make sense and changes the orientation of imported images.

Could you please let us know which drone are you using? Which firmware version do you use?

Best,

@Blaz,

Thank you for the insight on how the tags are evaluated by Pix4D.

We are using a custom drone, equipped with a self-contained imaging system.
That should be a pretty easy explanation for why it is tagging differently, as the system is merely taking advantage of the DJI tags already supported by Pix4D.
The hardware in question is from AirPixel - an AirCommander Entire.

I am in contact with the developer of the AirCommander Entire, so I will push this feedback on the added constant when using the DJI tags.

Thanks for the information. Now it makes sense why the angle did not get imported correctly.

The best would be if you use the standard EXIF tags instead of using tags that are specific to the drone manufacturer.

If you use the Xmp.Camera.Pitch they you should have no issues with importing the images.

Best,