4G Rover

With the prevalence of first person view (FPV) aerial drones I decided to look into the technology, the Majority of hobby to professional grade drones rely on analogue control and video transceivers, these have their advantages in low latency and tolerance to poor signal however whilst their range is adequate for line of sight, their range for the majority of these transmitters is limited to about 80 meters. 4G communication between pilot and vehicle seemed the obvious solution to this issue, there had been other examples of this project but most that I had seen either had unacceptable levels of latency or unrealistic infrastructure setup to allow a novice to participate.

In this project I used a Raspberry Pi, programmed with Node to create PPM signals to control both steering servos and electronic speed controllers on a remote control car. This client program communicates with a service hosted on a server in London via WebSockets. This Server program would negotiate session management between vehicles and pilots and relay commands.

The Raspberry pi also has a camera module connected. Initially to stream video the implementation was to have a video stream available on the client, every 33 milliseconds the program would capture a still image, encode to base64 and send over the websocket to the pilot to be displayed on screen. An issue I had with this approach was data usage, this method would use over 1GB of data within 15 minutes, not much of an issue with modern broadband and Wifi but would be for 4G upload speeds. To solve this I have started looking into WebRTC as a method to stream true video to pilots, this could also open the possibility of streaming audio via a microphone to and from the vehicle.

I also created a full web front end in angular with administration for managing users, cars, guest pilots and piloting. The website is secured with JWT authentication, Touchscreen and GamePad APIs are used to control vehicles, implements 3rd party libraries and dependency injection to manage resource usage and maximize code flexibility.

Future development on this project will be to implement sensor data for tilt, acceleration and GPS into the vehicle client program to give pilots a greater understanding of the state of the car and an integrated 4/5G Modem rather than relying on a hotspotted Phone. 

Also the potential of peer to peer communication rather than relying on a server for all communication is a high priority.