After much chasing, and testing, I have found this to be an efficient way of getting low latency high quality HD video out of an Aircraft. The latency is around 0.4 seconds at worst which would be OK for an FPV with an APM doing the hard work.

I will continue to search for methods to drop the latency down further, but this is a lot better than the 6-12 seconds I was getting on my first attempts.

Any comment (with useful instructions) would be appreciated.

For the wireless link, I am using two UBIQUITY ROCKET M 900 with Australian ACMA approved firmware, at the base station, I am using a tracking (yet to built the tracker...) 1.5 meter long X and Y polarised Yagi, and on the plane, two RF Design flexible strip antennas, placed at right angles to each other.

but how you do that bit is up to you.....

the critical bit is getting the Raspberry Pi's to chat to each other.

I have tried to make this as user friendly as possible... good luck.

 

Setting up IP video for Raspberry Pi 1080p video (FPV)

 

You will need 2 B model Raspberry Pi's and 1 Pi Camera. (Element 14, or RS components)

Preparing your Raspberry Pi for first boot…

 

Follow the instructions at http://www.raspberrypi.org/wp-content/uploads/2012/04/quick-start-g...

Install the prepared SD card in the Pi and boot.

Setting up your Pi

Connect the Pi to your router with a network cable.

On Start-up it will resize the FAT partition and present you with a menu.

Set your language, and keyboard layout.

Select Raspbian… then click install.

After this has extracted (will take a while….) it will reboot into the configuration screen (again will take a while for this first boot.)

The important things to change here are

  1. Enable the camera
  2. In advance options…..
    1. Set the host name (camera, for the camera end, receiver, for the viewing end)
    2. Memory split, set the memory for the GPU to 256
    3. Enable SSH ( will come in handy later, as you may need to talk to the Pi in the air.....

Then finish and reboot.

First login

Username: pi

Password: raspberry

Setting up the required programs for video streaming

 

Install the dependencies by running the following in a terminal:

sudo apt-get install mplayer netcat

cd /opt/vc/src/hello_pi

make –C libs/ilclient

make –C libs/vgfont

cd /opt/vc/src/hello_pi/hello_video

make

cd ~

Now repeat this for the other Pi….

 

Streaming…

First set up the receiver….

Ensure the receiver is connected to your network and run

ifconfig

after you press enter, you can find your ip Address.  Note this down.

Then run the following.

mkfifo buffer

nc -p 5001 -l > buffer | /opt/vc/src/hello_pi/hello_video/hello_video.bin buffer

the Pi will now wait for the feed.

On the Camera Pi

Ensure camera is connected to the Pi

Ensure Pi is connected to the network (you can confirm this with ifconfig)

(see instructions at http://www.raspberrypi.org/camera for how to connect the camera)

 

 

In the following command, replace the ip address with the one you just noted down.

raspivid -t 0 -fps 15 -o - | nc 192.168.1.85 5001

if all goes well you should be streaming 1080P video at 15fps with less than 0.5seconds of delay..

now add your wireless bridge between the two, and away you go J

This information has come from the Raspberry Pi foundation website, and other sources, tested and proven by myself..

Views: 108148


Developer
Comment by Jani Hirvinen on October 8, 2013 at 9:48pm

that's really nice setup. I have been wondering when first IP systems starts to arrive in usable way to FPV. And here we are :)


Developer
Comment by Andrew Tridgell on October 8, 2013 at 9:50pm

Nice setup!

I'm curious why you used a Ubiquity Rocket and not a Bullet in the plane as its quite a heavy radio.

Also, what range have you tested this over? We did video between a rocket and a bullet over TCP and it worked fine at short ranges, but once we started getting some loss at higher ranges we could the latency blew out to tens of seconds.


Developer
Comment by Philip on October 8, 2013 at 10:03pm

I am hoping that the latency will be ok when it is point to point both high power rockets, if not, I will try the GPS enable Rocket, as it has the ability to compensate for varying distances. (so the book says :) )

I am sure latency will still be an issue, but as the AC will be flying in FULL autonomous mode, I am less worried about that.  I have a backup Analogue 5.8 on board for the testing anyway.


Moderator
Comment by Alex on October 9, 2013 at 12:59am

Thanks for sharing!.. I am just wondering how useful the FPV will be if its only over Wifi?  I guess performance would degrade if use GSM network?  Or possibly the streamer has some features built in to change quality depending on network?


Developer
Comment by John Arne Birkeland on October 9, 2013 at 1:46am

I recommend that you take a look at gstreamer for a more robust (and potential lower latency) RTP based streaming solution.


Developer
Comment by Philip on October 9, 2013 at 2:00am
The wifi is high power, theoretical limit is around 15km. The other thing is it is legal! In Australia we ate only allowed 3mW on 5.8GHz analogue, 10mW in 2.4 and nothing on 900, but if it's digital we can have a full Watt :)
Would love to use gstreamer, but I can't get it to compile with the hardware encode/decode capability a for raspberry pi.
If you know how to get it working, would love to try it :)

Developer
Comment by Philip on October 9, 2013 at 2:02am
The other advantage of 900mhz is that it is better in dense bush !
Comment by Bim on October 9, 2013 at 3:54am

Looks awesome, I want one too!

Up to what range can you stream 1080p?

Could you please elaborate on the network gear you're using? Antennas, boosters etc (Links would be great).


Developer
Comment by Philip on October 9, 2013 at 4:02am
The wifi gear is as follows
Ubiquity Rocket M 900 at both ends
At the plane end I am using 2x 900MHz flexible antennas from RFDesign.com.au
At the ground station, I an using the ubiquity 900MHz MIMO yagi.
Distance so far tested 10meters :) will do some range checks soon :)
First challenge was getting the pi's talking to each other....
Comment by Stephen Gloor on October 9, 2013 at 4:11am

Hi Philip -  In Australia you are allowed for LAN to use an EIRP of 1W.  If you are using Yagi and other high gain antennas you have to allow for the gain of the antenna when calculating Effective Isotopic Radiated Power (EIRP) to stay legal.

Here is a handy calculator:

http://www.wifinerd.com/wifi-calculators.html#EIRP

Comment

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

Join DIY Drones

Groups

Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2017   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service