Triggering the GoPro on board the 3DR Solo for Mapping missions

*** Note this Blog post was done a long time ago, this is no longer needed with the latest Solo updates. Current Solo firmware will trigger the GoPro during an auto mission correctly, and the cam trigger messages on the data flash logs can be used for geotagging the images via mission planner or directly in software like Pix4D ***

There have been a lot of questions about how to this in several forums, I posted a solution a while ago on the Facebook Solo Mod Club page, but with all the demand I think I should also post it here. 

First understand that this is a hack that modifies some files inside the Solo and that you may or may not need to do a factory reset before you upgrade to the next version of the firmware which seems it will contain something similar to this modification. So do this at your own risk and only if you know what you are doing. 

From the comments bellow, I think this explains it better:

"With the current Solo update system, user modified files will not be updated during a software update. To get the update, either a patched version of the new file will need to be manually installed (taken from a "clean" updated copter) or a "factory/settings reset" needs performed to get the copter back into a clean state before updating.

As with any software mods, it's always best to back-up the original file before modifying it (use something like "cp file.py file.py.date.back"). The backup can then be restored before a software update and then the updated file can be patched/modded again." -- Angus Peart

The Pixhawk firmware in Solo already has everything that is needed to trigger the GoPro for survey missions. It has the logic to trigger the GoPro based on distance or by using a explicit trigger waypoint. What is missing is for the companion computer inside Solo to interpret this messages and send a command to the GoPro to take a picture. This is what my mod does. Also it creates a log file for each flight where it stores the positions of any still pictures you take with the GoPro, not just during surveys, but anytime you trigger a still. 

Here are the steps:

1. Connect your computer to the Sololink WiFi network

2. Use an FTP Client to connect to Solo (root:TjSDBkAu@10.1.1.10)

3. Make a backup of /usr/bin/shotManager.py

4. Replace /usr/bin/shotManager.py with this file:

shotManager.py

5. Reboot you Solo

From now on whenever the Pixhawk sends a trigger command the Solo will trigger the GoPro and take a still. If the GoPro is in video mode it will switch it to still, take a pic and then put it back to video. Please note that everytime the GoPro takes a still you will loose video or see artifacts on the video. This is normal, and is related to how the GoPro works. If you fly too fast the GoPro may not respond to the trigger commands fast enough. Also if it has to switch between video and still it will take longer to take a picture and you may miss pics. So set the camera to still mode before starting the flight.

Once you have finished your flight you can use FTP to pull the georef log file from the solo. You should find them in /log/geoRefxx.log where xx is the number for the log and is incremented each flight. Have fun mapping with Solo.

PS. The picture above uses something similar but with the QX1 Edison Camera trigger on an earlier article I wrote. Since Solo is Pixhawk based you can use that too.

Views: 6638

Comment by Arnaud Vandecasteele on November 10, 2015 at 6:31am

Thanks Jaime, really useful :)

Comment by Kelly Ness on November 10, 2015 at 2:27pm

Any Idea what port should be used?  I am having some trouble connecting...

Comment by Kelly Ness on November 10, 2015 at 2:44pm

Port 22 worked.  FYI if anyone else is having trouble connecting.  Other sources also mention port 53 - But I haven't tried that one.

Good luck.


Developer
Comment by Jaime Machuca on November 10, 2015 at 5:28pm
I have used several sftp clients the default port for sftp works. Regular ftp does not work.
Comment by Angus Peart on November 12, 2015 at 5:25pm

A word of caution to people replacing files (especially for ShotManager) on Solo;

With the current Solo update system, user modified files will not be updated during a software update. To get the update, either a patched version of the new file will need to be manually installed (taken from a "clean" updated copter) or a "factory/settings reset" needs performed to get the copter back into a clean state before updating.

As with any software mods, it's always best to back-up the original file before modifying it (use something like "cp file.py file.py.date.back"). The backup can then be restored before a software update and then the updated file can be patched/modded again.

Have fun!


Moderator
Comment by Hai Tran on November 24, 2015 at 5:00am

Just successfully tested a autonomous mapping mission using  Solo+Gimbal+GoPro4 without needing to "hack" the file as described by this article. 

Comment by Azhar T. Pangesti on November 24, 2015 at 5:25am

@HaiTran: How?


Moderator
Comment by Hai Tran on November 24, 2015 at 5:37am

I'm currently on a closed beta for a Android mapping app called Cloud Raven.  It's compatible with Pixhawk for fixed wing, but the developers have just added support for Solo.  My Solo was the guinea pig today, and it just worked out of the box.  I don't know how it worked, but the process was.

1.  Turn on gopro, controller, solo

2.  Launch Cloud Raven app

3.  Selected survey, and created a rectangle

4.  Got GPS lock

5.  Pressed upload mission

6.  Pointed camera straight down

7.  Pressed launch button

The solo took off, and started mapping.  I wasn't sure if the camera was triggering so I launched the solo app, and the live view showed the camera taking photos.  When it was done, the solo came back, landed and powered off the motors.

The guys plan on releasing a beta to the DIY Drones community soon.  Stay tuned.

Comment by Eben N. Broadbent on December 6, 2015 at 7:08pm

The new tower update triggers the GoPro automatically based on distance to ensure the % side and front overlap requested. However, geotagging these images after downloading them is super challenging. Hence, I hope that Jaime's fix will continue allowing this Tower auto image acquisition which works great, but also have the easy geotagging output. It would be ideal if this was in the format of a dataflash so we could automatically geotag using mission planner?

Comment by Eben N. Broadbent on December 6, 2015 at 9:24pm

so, tried the modified py script on the solo with the latest updates and it is not working correctly anymore as far as I can tell. I am unable to change settings on the GoPro or manually trigger photos. However, once going back to the original then it works fine as expected. I am going to take a peek at the py code, perhaps the geotag.log script can just be copied into the new code? - update - not so easy :)

Comment

You need to be a member of DIY Drones to add comments!

Join DIY Drones

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service