Pixhawk Compatible Camera?

Hello everyone,

I’m working on a project that involves taking high definition geotagged pictures.

Project Requirements:

A. The minimum definition is 16MP.
B. Automatic triggering (as currently supported).
C. All pictures must be geotagged in-flight.

At the moment I am aware and have built multiple uav’s that cover points A,B.
They can be achieved with a CHDK capable camera and a triggering cable.
Point C seems to be elusive however, currently geotagging is only possible through Mission Planner
(flight logs and all that). The procedure is complicated and often unreliable.
Now… what if we had a camera that can achieve a greater level of communication with Pixhawk (I2C, Mavlink…) ?
That would let us do B and C more precisely and effortlessly.

My questions are:

  1. Is there any camera module that can achieve the above?
  2. If (1 != true) Could one be built?
  3. if (2 == true) How would one go about it?

Thank you in advance :slight_smile:

I don’t find GEOtagging in mission planner too burdensome. Pretty simply process in my opinion. However, I have been getting a bad logging error intermittently for the past year, which makes GEO tagging impossible. Despite considerable troubleshooting, I haven’t identified the problem.

There are plenty of GPS enabled cameras that you can use or I read about this product a while back.


I’ve never used any of there products, but have ready favorable reviews.

Well considering that you need to download the log, fetch it form your program files, copy it to the images folder and then run another tool to tag them I’d say it’s a considerable process. On top of that like you said it often fails completely.
The reason I don’t wanna use a gps enabled camera is, firstly the embedded GPS has far lower accuracy, and secondly those are much bulkier and heavier cameras.
I was more looking into a “hackable” camera, one that potentially “talk” to the FC.
I believe this would be beneficial for all DIY mapping projects.

As the issue is the camera and flight software are on different and likely non communicative systems, you would need to enable communication, possibly a camera that accepts inputs to add into the EXIF data when the picture is taken. I am not aware of any cameras with such capabilities.
Another alternative would be for a companion computer to either own the camera, similar to Raspberry Pi with Camera, so it can properly annotate the photos as they are taken. I believe this is essentially what happens in commercial solutions. It may also be possible for the companion computer monitor the camera memory for new files as photos are taken, copy and annotate them in near real time onto the companion memory. An issue with the latter may be that the camera cannot support USB access and photo activity at the same time.
The companion computer could be fully aware of telemetry and other data to know GPS position when shutter event was triggered.

Mostly important, is not to tag photos right in the EXIF.
Cameras that do GNSS EXIF tagging, do so by using the last position data they got at the moment of command to take photo. - most that can get it externally, do so at only a few Hz. - meaning position will be offset by time and groundspeed.
Another solution: If your flight controller know the exact moment it the shutter runs, then it can store a very precise position, based on not only a ~10Hz GPS/Glonass, but also a much more precise, and running at higher frequency EKF position estimate.

That’s the only way to get high precision positions.
There are plenty of ways to achive that, some of the more precise are based on modifications like this: