GeotaggingA GoPro doesn't geotag photos, but it's useful to have geotagged photos when doing surveys, scans, etc. The Geotagging feature in Solex is intended to fill that need. With it, you can take a set of photos gathered during a given flight, and geotag them so they refer to the locations in which they were taken.
SetupThe first thing to do is update your Solo so it lets the app know whenever a picture is taken. Under the "Firmware Updates" item on the main menu, pick the "Photo Events" package, and install it. Reboot your Solo. With the update in place, your Solo will send a message to the app whenever it takes a picture, and its location. This happens whether you manually trigger a photo, or a mission triggers it as part of a Survey, Camera Trigger action, or Take Picture action.
Note that if you're using the latest OpenSolo (3.0.0 as of 1/1/2018), you don't need to include this. It's already part of the build.
CaptureThe obvious next step is to capture some photos. The ideal thing to do here is make sure your camera's SD card is empty to avoid potential confusion later.
A simple intro to this: Put the camera into Photo mode and fly around, taking pictures at various locations. You can also set up a mission with "Take Picture" actions at various waypoints, fly a survey with "Auto-start Camera" turned on, or set a Camera Trigger action on a mission. Any of those will work, but if you're looking to just understand this workflow, taking 10 pictures or so manually on a flight keeps things simple.
Once you've taken your pictures, land your Solo and open the Map view under the flight screen. Click the "Flight Logs" item. You should see a list of flight logs where there was something to save. There should be one named for the current date and time (as of whenever you landed and disarmed). Click that, and you should see a number of "photo" icons, one at each location where you took a picture.
Long-press the flight log in the list, pick "Rename Flight Log" and give it a useful name (e.g. "Flying around" or something). This will come in handy later.
Transfer FilesThe next thing to do is get the pictures into Solex. For this example, I assume you're using a PC (or Mac) for this.
There are 2 ways to do this:
Import over the networkPull the SD card out of the camera and copy the files to your PC. Put them all in a directory together. Inspect them and notice how they don't have any GPS EXIF tags, and the time on the photos is way off. If you don't set the clock on the GoPro, creation timestamps can be off by a couple of years.
Zip all of the photos for a given flight up into a zip file with the images in the root directory of the file (no subdirectories). Call it
The next step is to make this file available to Solex. You can email this file to yourself as an attachment, but there's typically a limit on how big an attached file can be. So a better idea is to use somehing like Google Drive, or (much better) Dropbox. We'll use Dropbox in this example because it's awesome. So make sure you have that installed on your PC and Android device where Solex is also installed. Or you can use something else. The important thing is that you're able to transfer a sizable zip file to your Android device and have some way of opening it by something that can share it with other apps.
flying-around.zipfile to your PC's Dropbox directory. Dropbox will do its thing and after a few minutes, the file will be accessible on your Android device. (Open the folder in Dropbox where you put the file, and pull down on the screen to refresh the list.)
Open the zip file in Dropbox. It will download it if necessary, and then show you a list of installed apps that can handle zip files. Solex will be one of the apps in the list. Click on Solex.
Solex will pop up and ask if you want to import some data. Say yes. Solex will show a progress view and show some files being extracted. When it's done, it will open a screen with a map on it, and a list of flight logs on the left side.
Direct ImportPull the SD card out of the camera and put it in the SD card slot of your device. (If you don't have this slot, see above.) Your Android device will mount the card so it's accessible. On the main menu of Solex, select Import Images. You'll get a file selector where you can pick the location of your files. Pick any file within the desired folder.
Solex will copy the files to a work directory, since an SD card from a GoPro is typically read-only and the files on it can't be altered in place.
GeotaggingThis is the point where you associate a group of photos with the flight where they were taken. If you're following this example to the letter, you should have a flight log named "Flying around" or something. That's the one you want. Click on it, and the map will pan to the location where the flight took place. You'll see markers on the map wherever photos were taken. They're rotated so the little pointer on the top of them is pointing in the direction the copter was flying when the photo was taken. On the right side, there's a vertical list of photos. At this point, if you click on an image, nothing happens. If you click a marker, nothing happens then either, except a little info window showing the time/altitude/heading and some other info.
Ideally, all you have to do at this point is click "Geotag All" and associate the locations with the images.
If the number of locations and the number of photos match, this process is really easy. But just as often (especially with a long flight containing a high number of photos), there's likely to be cases where there will be a mismatch, and it will warn you that the number of locations and the number of image files doesn't match. If that's the case, there's a number of reasons why that could be:
- You picked the wrong flight log.
- You didn't actually put all of the files for that flight into the zip file.
- At some point during your flight, the camera was told to take a picture, and didn't actually do it.
- Something caused the Solo to send an "I took a picture" event to the app, but it didn't really take a picture. (Pretty much the same as the previous item.)
Note that there is literally nothing in the way of information to work with in the pictures, aside from the difference between their creation times. Which is only accurate to 1 second. So what Solex does when geotagging the pictures is based largely on guesswork, following the same kind of process a user might go through when trying to geotag files manually. Solex just does it faster and without getting as annoyed as a user might in the process.
The time-difference inaccuracy means that it's best if you don't take pictures more often than once per second. If you do, and the camera fails to actually take a picture, it gets more difficult for the app to figure out which photo goes with which location. (In cases where the location and photo counts actually match, it's not an issue.) Even then, it can typically figure things out, but it's easier if pictures are at least 1 second apart.
Manual ModeIf you have only a few files you want to tag, you can use Manual mode by clicking "Manual" on the menu in the Geotag screen. The "Geotag all" item becomes disabled. In this mode, you select a picture, and then click the marker on the map that corresponds to it. If it can, Solex will tag the photo. If you pick the wrong marker, you'll end up with the wrong location info tagged in the photo. Just click the right one to fix it.
ValidationOnce you've geotagged the photos, you can click on the marker for a photo and see it in a small inset in the lower right of the screen to check if it looks right. To get a better look, click the inset, and the picture will show larger. At the bottom is some info about the photo: The time, altitude, heading, filename, and how close the file's geotag is to the location. Usually it's no more than a foot away, usually more like 6 inches. (The difference is due to conversions between lat/lng and DMS locations used in EXIF tags.)
You will probably see some spaces where there are pin icons instead of photo icons once you've geotagged the images. This is most often caused by the camera failing to actually take a picture when instructed to. You can at least verify that the surrounding pictures are at the right locations by clicking the images in the list and making sure the markers adjacent to the pins are highlighted.
One relatively quick way to verify the photos are at the correct locations is to use the vertical image list at the right side of the screen. Click the first one, and the first location in the flight path should be highlighted. Click the next one and the next location should be highlighted. You can go down the entire list this way and verify that the highlight moves from one marker to the next in the flight path. If the highlight skips around, then you've hit upon the unlikely case of it getting things totally wrong.
EditingIf things don't look right, the first thing to do is verify that you're looking at the right set of photos for the flight log you're on (which is why it's handy to give flight logs descriptive names). If you're sure about that and things *still* don't look right, then it's because Solex wasn't able to figure things out. In that case, it will geotag what it can, and leave the rest. Here are some steps you can take:
- Manually geotag photos. On the options menu, select "Manual". In this mode, you can click on an image and then click on a location and it will geotag that image with the location you selected. Note that there's nothing stopping you from tagging an image with an obviously wrong location. If you do that, you can always fix things by just switching back to Auto and clicking "Geotag All" again.
- One easy way to verify the photos are in the right place is to use the photo list. Click on each image in turn and the corresponding marker will be highlighted on the map. The images are shown in the order they were created, so clicking each one in the list in order should follow the flight path.