Geotagging Images with Roll and Pitch

Does Mission Planner takes into account Roll and Pitch?

yes it does. However it is platform pitch/roll, so it ok only when you have a fixed camera mount.

That’s what I figure, but on M.P there no option to check if your are using (or not) a gimbal instead of fixed camera mount
How to manage that?

I think it is something that you can set up in your mapping software. The platform roll/pitch data is there regardless of the used mount. As far as I see, mount data is not handles by the geotagging in MP.
Nota bene: A good gimbal keeps the camera at 0/0 pitch/roll regardless of the platform attitude. For angled pictures you should set the angle in the mapping software for a given series…

To be precise, MP can handle adding X,Y,Z and roll pitch yaw values. on the other hand you want Omega, phi and Kappa values (roll, pitch, yaw of the camera).

If you have a gimbal, you need both in order to calculate pivot angles, to calculate XYZ offsets based on center of rotation (Autopilot) or direct GPS antenna base.

To be frank, for mapping, just use MPs values if you hard mount the cam, or don’t use them at all if you use a gimbal! Then just let your GCPs and the Software of choice to do the magic and handle the corrections.

Otherwise, just jump along on the madwagon and start fiddling around with all above mentioned data, along with precise timing issues, precision in log coords logged in POS messages, trigger feedback, Geo vs Ellipsoid heights, base station corrections, etc etc…

Thanks Dimitris, you are absolutely correct. It can be a very deep rabbit hole, but usually, it is just fine to let the software do its magic… :slight_smile:

If you’re looking to include this data into photogrammetry software such as Pix4D, here are more details that you may find helpful.

First - not every photogrammetry software package handles things the same way. Most of my experience is with Pix4D and WebODM. I’m told that Pix4DMatic and MetaShape have better capabilities.

OK - ArduPilot’s native geotagging capability comes from the Mission Planner utility for creating geotags. Other geotagging devices such as AirPixel Entire or products from Emlid have greater sophistication and capability for storing this data.

But the native Mission Planner geotagging capability is two fold: a) The GPS coordinates are stored in image EXIF data. b) An associated CSV file called “location.csv” is created during the Mission Planner geotag process - and this file has the GPS coordinates plus the pitch, roll and yaw data.

Here’s an example of what Mission Planner’s geotag utility will store in an image file’s EXIF:

And here’s the associated location.csv file that Mission Planner careates for the directory of that image file using it’s geotag utility:

It is possible for Pix4D to use the location.csv file for it’s geotag data instead of the EXIF data.


Pix4D and other photogrammetry programs don’t use pitch, roll and yaw. Instead they use “Omega, Phi, Kappa” values. You can read about it here:

Now - here’s a gotcha: If the pitch, roll and yaw values are in the EXIF, Pix4D will automatically convert these to proper Omega, Phi and Kappa values when the image files are read into a project. However if it reads these values from the location.csv file - it will not do this conversion.

So until Mission Planner starts including pitch, roll and yaw values in the EXIF, there’s no (easy) way to get image Omega, Phi and Kappa values loaded into Pix4D.

I’m told that Pix4DMatic can process the pitch, roll and yaw data from the location.csv file. And I have a faint recollection that Agisoft MetaShape can this too. I have not explored if WebODM can or can’t do this.

So - to use this data (at least with Pix4D) - I think you can see that there is a bridge to be crossed.

There are utilities people use to create batch jobs that take the data in the location.csv file and insert it into the EXIF data. It’s possible - but takes some effort figuring out how. (I have it in my notes from a kind shop in England who shared it with me a year or two ago.)

Now - here’s a bit more to consider - I’ve processed photogrammetry jobs of over 1000 images from fixed mounted cameras on quad-copters. Both Pix4D and WebODM automatically calibrates the Omega, Phi and Kappa for each image - so including it may have little value other than maybe slightly faster processing. But maybe not. I’d have to test that.

Here’s a little more insight:

DJI drones include the necessary data in their EXIF so that when their image files are imported into Pix4D, the proper Omega, Psi, Kappa values are computed. The EXIF viewers I have don’t show this data - so I don’t know how its recorded. But here’s an example of how Pix4D imported a directory if image files taken with a DJI Mini 3 Pro:

So as noted in other comments on this thread - there’s a lot to this subject. Good luck exploring - and keep asking questions!

1 Like