We built an FPV system for our quadcopter and to really enjoy the scenery, avoiding the huge lag resulting from servoed cameras, opted to gimbal the image in software, instead. On our quad we have a stabilized GoPro and a video transmitter. At the ground station the video is received, captured to a laptop with a cheap USB stick, distortion corrected (remember, GoPro), virtually rotated to match the HMD orientation, augmented by virtual instrumentation and predistorted for the Oculus Rift. The resulting system has the minimal orientational lag possible for Oculus Rift (perhaps 30 ms, dominated by the frame rate, buffering at both ends and the LCD response) and totally acceptable minimal sway. Naturally the lag of the actual video content from sky to eye is larger, but much less obvious.While FOV of the Rift is sweet indeed (bringing us back to the golden age of VR), the FOV of the GoPro is larger still. Which is excellent, as we now have a source image that can completely fill the view for the pilot. There is even some room to look around before noticing the edge of the camera view, or the virtual cockpit window, which it really is. Alert readers have already noticed that we have only one camera onboard, yet we present a stereo view. The justification for this is that we intend to fly high, instead of skimming the surface or flying indoors, and the first order estimate of the maximum distance the Rift can differentiate from infinity is around 30 m. The estimates of maximum distance for human stereo vision vary from 5 m to 1 km (depending on which source you believe), after that everything is 'far'. The definition is very complicated and that is why there are so different estimates. In practice, the image pair generated from the single video corresponds to the case where everything is comfortably distant. And if the objects are not distant in reality, the alternative interpretation of the virtual view is that the pilot is infinitely small and indeed indoors scenes appear to be filmed in the houses of giants. Nevertheless, this latency minimizing scheme is equally applicable to the two camera case.
The basic framework of the quad was the Bumblebee from HK. As it turned out during several hours of first-time flying practice with a 3 DOF controller (it's very hard), the concept of using carbon fiber tubes and boards connected with fragile plastic joints is not for beginners. An accidental drop from 0.5 m always broke something. Slowly the parts got replaced with something more forgiving and also the amount of test electronics constantly increased, so the mound of rainbow spaghetti (figure 1) resembled the Bumblebee less and less.
Figure 1. The quad weighted down for magnetic deflection testing
The GoPro (Hero 3) was fixed to the X-Cam X100B gimbal which was found to stabilize it very well. The original plan was to non-critically rotate the camera in the general direction of viewing, report the actual current direction in the telemetry data and then use this to draw the image at the laptop. It turned out that there was no documented way to read the direction and the turning was extremely slow to begin with, so we decided to hold the camera in a fixed forward direction. The obvious solution would had been to rewrite the software of the gimbal, but that never got the top priority. Maybe the FOV of the GoPro was already too good to motivate us. In hindsight, mounting the GoPro sideways tilted down to cover both front and below views could had given a still more enjoyable experience. We'll do that in the next version soon.
The video link was a 1 W 2.4 GHz Tx/Rx pair from HK, the operation of which improved significantly after replacing the original whip antennas with very rough handmade clover leaf ones. The tutorial here was crucially important. My co-worker even measured them and found them very, very good (she said, and she's a pro). At the receiving end there was an Targa USB video grabber (from local Lidl, EUR 20) connected to a...
Read more »
This is an excellent idea. I just bought a Phantom 2 with a GoPro Hero 4 black. I've already made some sweet FPV videos with it:
I'm using the GoPro in "Narrow" view here, then correcting the FOV in Final Cut Pro X using the Alex4d plugin with the 90 degree setting to turn the GoPro's fisheye lens into a nice clean rectilinear lens.
I prefer "narrow" mode for FPV because it makes the GoPro super wide lens more like a telephoto lens. It's easier to see objects I'm approaching and avoid collisions.
Essentially what you've done is move "Narrow" mode from the camera into the laptop on the other end of the link. This allows you to look around inside the whole super wide view using head tracking technology. That's a great idea! However, how do you transmit a full HD signal in real time with minimal lag via radio? I know DJI's Lightbridge is capable of this, but even Lightbridge seems to have a fairly high amount of lag.
I became interested in this because I am considering buying a pair of FatShark Dominator HDs, but then I thought, "man, an Oculus Rift headset would be so much cooler." I'm a software engineer by trade, so the challenge intrigues me.