Video
The main application for small UAVs is video. There are various means to take pictures from the aircraft and transfer them to the ground.
Analog Video
The easiest and most practical way is to transfer video in an analog way either as NTSC or PAL signal. The picture is taken by a camera, put to an analog signal and sent through an FM modulated transmitter.
Cameras
Affordable CCD cameras tend to be better in dynamic range and noise than same price CMOS cameras. On the other side CMOS ones do need less energy and they are more likely to run with 5V.
Small digital handheld cameras do have a much better optical system and sensor than stand alone cameras. There are ongoing efforts to reduce size and weight to be able to implement them.
Recommended cameras
A good selection of miniature cameras can be found at Microcameras.com. If you´re looking for Panasonic KX-xxx cameras find them here: RangeVideo.
- Simple, lightweight camera with good performance
Panasonic KX-141 (a.k.a. Pacific Corp. PC-2005) CCD
- Available at Black Widow AV
- Available here too RangeVideo
Pan/tilt mechanism
For help in building a pan/tilt camera mechanism see our pan/tilt camera page. Code for driving such as system is in /sw/airborne/cam.c
Transmitter
There are various FM transmitters available at 10mW, 50mW, 200mW or even more. Keep them as far away from the GPS receiver/antenna as possible as they might cause severe interference. For the competitions mostly 50mW or 200mW transmitters have been used.
Standard 2.4GHz Wi-Fi antennas can be used as lightweight dipole antennas by breaking the plastic case and removing everything except the coaxial cable and the counter balance soldered to the shield.
Receiver
The most important thing about the receiver is a good antenna. The analog receiver modules itself do not seem to differ very much.
Display
Tube television sets seem to have the best picture. As it blurs out the pixels the human eye can very good adapt to it. We used them whenever transport was not an issue. If not possible small TFT video screens intended for car entertainment were used.
Digital Display
There is a TFT screen in the ground station, so why not use it? For that the picture does need to be digitized and feed into the laptop. In the early days we used a Plextor M402U to digitize and MPEG4 compress the analog video. It was then recorded or decompressed and displayed on screen. The drawback on this nice box is the delay you get through compressing/decompressing plus the size and the need for an external video receiver and power supply. A lot easier to use is the Pollin USB-R1 which includes an analog video receiver and an USB (High Speed) digitizer. It does not need any external component or power supply.
Plextor M402U
This box not really recommended any more. With a recent kernel and driver patches from the Paparazzi cvs it should be possible to get it to run.
Pollin USB R1
Some work is needed to get it to run with Linux as it needs a recent and patched version of the em28xx driver (this will get easier as the patches are integrated to v4l). You need some version control system as well as the kernel headers and video encoders, do as root:
aptitude install mercurial linux-headers-$(uname -r) libxvidcore4 libxvidcore-dev mplayer
Get the video4linux drivers using the (v4l) special version control system, as user:
hg clone http://mcentral.de/hg/~mrec/v4l-dvb-kernel
Copy over the two changed files "em28xx-cards.c" and "em28xx.h" from sw/in_progress/videolizer/v4l-dvb-experimental/ to the v4l-dvb-kernel/linux/drivers/media/video/em28xx/ folder. Then build v4l-dvb as user:
cd v4l-dvb-kernel make
And install as root (you have to do this each time you update the kernel):
make install
Copy as root sw/in_progress/videolizer/em28xx to /etc/modprobe.d as the Pollin USB-R1 does not have an EEPROM for auto detect. Watch video with (maybe adjust the NORM to PAL or whatever your cameras standard is):
mplayer tv:// -tv driver=v4l2:width=320:height=240:norm=NTSC:input=0:device=/dev/video0:noaudio -ao noalsa -nolirc -nomouseinput -really-quiet
Streaming
The USB video converters can be used to do live streams over the internet as seen at 24C3. We use spook to receive the video data from the USB converter, compress it with MPEG4 and send it using the rtsp protocol. Spook needs some patches to work with the Pollin converter. Build it from Paparazzi cvs:
cd sw/in_progress/videolizer/spook ./configure
All encoders should be enabled. Then build it:
make
and start it
./spook -c spook.conf.usbraw
Watch video through vlc from it
vlc rtsp://localhost:7070/webcam
Note: a first time spook user must chose the correct video camera output format i.e. NTSC or PAL, for instance. Navigate to ~paparazzi3/sw/in_progress/videolizer/spook/spook.conf.usbraw/input VL42/InputType PAL; The CVS default is set as PAL
Somehow the standard Debian 4.0 (etch) mplayer does not support rtsp:// video. The debian-multimedia.org mplayer seems to work. It can be installed adding to /etc/apt/sources.list:
deb http://www.debian-multimedia.org etch main
and install with
aptitude install -t stable mplayer
Digital Video
This remains difficult as we are lacking a fast digital telemetry link. There are serial bus cameras that might be hooked up to the autopilot and JPEG encoded pictures be sent through telemetry.