P-102: Remote Drone: Long Range Communications and Control
One of the most interesting and complex parts of this project has been figuring out how to send and receive data to and from the Robot.
Originally, I had planned to use a conventional radio system. I was going to have a transmitter connected to an Arduino. I would use this to send commands from my computer to a receiver on the Robot, also connected to an Arduino. I would then use a wireless camera (on a different frequency) to beam back video from the Robot to a receiver on my computer. This is the standard setup that a remote flying drone would use, it can be very effective. It is also possible to get decent range out of it, if high power transmitters/receivers are used, as well as high-gain antennas.
However, my objective was always to extend the range as much as possible, as well as increase the versatility of the robot by allowing it to be controlled over the internet. This would allow mobile devices, such as phones and tablets, to control it as well as any PC with an internet connection. I wouldn’t be restricted to a single “base station” computer with the relevant hardware.
To implement this functionality, the simplest thing to do is to create a Wifi robot. These kinds of robots are common, and have access to a lot of powerful features. The idea would be to add an IP camera to the robot, with an ethernet port, as well as a Raspberry Pi or another microcontroller with a network interface. I would then connect these two devices to a long-range omni-directional antenna using a network switch. This saves me from having to connect a separate antenna to both devices. This antenna would then connect to my home wifi network, allowing me to control the robot from any network-connected device.
I looked into several other solutions to control the robot before I decided on this one, in addition to my original radio idea. One of the best ideas I had was to connect the robot to the GSM or 3G (cell phone) network. If I could do this, the robot would essentially have unlimited range, since it could operate anywhere where it could receive a mobile phone signal. GSM cards and breakout boards do exist, and my plan was to buy two: one for the robot, and one for the robots control computer. Using this approach, however, has a few problems. It is complicated, first of all, it is also expensive, since every time you connect to the robot to control it, you are essentially making, and paying for, a phone call. This approach also has bandwidth issues, I am not sure if the mobile phone network could handle even standard definition streaming video in addition to data signals, it really isn’t designed for that. I decided to postpone this approach in favour of a simpler option.
When I decided to use an IP camera setup, I first looked into wireless bridges. Wireless bridges are long range communications solutions which are designed primarily to share an internet connection or connect networking hardware over long distances. Some of the higher power models have ranges in excess of six miles! The problem with these is that they require directional antennae on both ends, which means that they only work when the two points being connected are fixed. They also require Line of Sight, which means they really wouldn’t suitable.
The idea that I am going to implement now is simple, and can be quite cheap, depending on the hardware used. I intend to buy a low-cost outdoor IP camera with Pan/Tilt/Zoom, and a cheap network switch. I already own a Raspberry Pi 2. I can then buy a long range omnidirectional antenna, and possibly a long range wifi access point. This should give me decent range for the robot, in addition to the advantages that a network-connected robot would have.