If you answered yes to both of those questions, then this post is for you.
I've always had a special fondness for the Sony QX-1 and decided to rig up a contraption that would let me fly her with Solo. For both of you on DIYDrones who are not familiar with the QX-1, it is a light (180 g body), high resolution (20MP), endowed with a large sensor (APS-C, 15x larger than GoPro) body that receives Sony E-mount lenses (including zoom lenses), and can be controlled by an extensive WiFi API.
First, I had to learn how to control the camera via the WiFi API. Jaime Machuca, of Droidika, wrote a nice MAVLink wrapper for the QX-1 API, but I never quite could get it going on Solo. Instead, I deployed the pysony API, which I installed on a RasPi that I taped to Solo's belly. This RasPi connected to QX-1's WiFi upon boot, ingested the mjpeg QX-1 livestream, pipe it over HDMI to Solo App, and triggered the QX-1 to begin shooting. I could control all other QX-1 functions on the ground, but I didn't have an easy way to integrate those controls into Solo herself.
Next, I had to gimbal the camera. At 280g with the 20mm flat lens and a bit more with the 16-50mm Power Zoom, a brushless gimbal was probably out of the question and would have been much more difficult and expensive to build up. Because I was mostly interested in stills, I didn't particularly care about smooth video, but rather wanted a horizontal horizon and the ability to tilt the camera. I selected the RC Timer CM102, which had no problem stabilizing the camera reasonably well and holding the desired pitch.
These two pieces combined succeeded into turning Solo into a reasonable, but kludgy solution to capture truly professional aerial images for either general consumption or the generation of high quality maps or models. However, while this project is functional, it is incomplete. This feat of engineering contains no fewer than two PixHawks, six batteries, 20+ feet of cable, two companion computers, five ESCs, 10+ feet of strapping tape, and two transmitters.
I would love some additional feedback and support from the community to potentially turn this weekend project into something that any Solo owner could enjoy. I have a few full resolution images from both the QX-1 and GoPro along with a video of this thing in action (on my desk) on my blog, to help you answer these questions.
1) Is this something you would generally want?
2) Is a servo gimbal a problem? Servos will never succeed at delivering high quality video, but seem quite capable of stabilizing the camera for stills.
3) Would anyone be willing to help me integrate pysony and appropriate WiFi boot up scripts into the iMX6, eliminating the need to carry a second companion computer?
Comments
I already had implemented a complete suite for manage the Sony payload on Spark using a companion computer ... it work very well but the camera have a lot of limit ... 1 is that the maximum rate is one shot every 6 second it's not accetable for a lot of application . Someone had solve this iusse ? The other is that the control is over wifi ... at 2.4 ghz in my design i use 5.8 ghz for drone control and 2.4 ghz for payload so no problem but in other case could be a problem with standard on board link . The solo use 2.4 ghz on board ... it's not a problem for you ?
Best
Roberto Navoni
Very nice project! I've been interested in these little Sony cameras for a long time, but haven't had time to play with Jaime's code yet.
What is the long-range prospects for the QX-1? Do we have any indication if it's a success in the market likely to be continually developed and supported by Sony? Or is it going to be discontinued?
@UAV_Enthusiast: The WiFi API is shared across all Sony cameras. Specifics for each camera are available at https://developer.sony.com/develop/cameras/
@Kristopher Kabbabe: There are some hacky workarounds for a wired solution, but the API is not officially supported over USB. The QX-1 WiFi network is extremely weak and did not appear to adversely affect Solo's range. The camera saves the stills to the SD card in the body and posts them to a URL that you can use to transmit them to the Pi.