Last year, I and two of my friends, Ben James and Angus Ledesma, decided to create a Raspberry Pi powered robot for a Silver CREST project. I posted an overview of the project last July and have finally got around to converting the CREST report to a blog-friendly write-up!
Background
The ReCoRVVA will help and assist people in many different ways; as the name suggests, it is designed to be used for many purposes.At its simplest it is a vehicle designed to be controlled remotely by an operator with the aid of a live video stream from the robot. It could be used as a security patrol vehicle for surveillance, or to regularly check on an elderly relative remotely. It could also be used to inspect small, hard to reach areas with its camera and lights that humans wouldn’t be able to reach. Young people will benefit by being able to play with the ReCoRVVA or maybe by using it to play espionage or sneak up on their friends and family. Or their hamsters. Though designed for the role of remote access and communication it’s truly adaptable.
Our initial ideas for applications came under 5 main categories: Security, exploration, human safety/communication and remote sensing.
Objectives
The objective of this project was to build an all terrain vehicle which could be used for various applications and controlled from anywhere in the world. We wanted it to be operational in all circumstances, which meant being able to operate in low light/pitch dark conditions and being able to traverse all terrain. It was essential for the user to be able to see from the ReCoRVVA’s point of view in real time. We also wanted the ReCoRVVA to be able to sense when it was about to crash and automatically stop to avoid collisions.- Able to traverse all terrain
- Controllable from anywhere
- Versatile
- Visual feedback
- Automatic stopping
Features
The features of the ReCoRVVA were to be:- Full and completely remote control from anywhere in the world - Objective 2/3
- Live video stream from the the ReCoRVVA so that the operator can see the environment - Objective 4
- Automatic detection of obstacles in its path using ultrasound - Objective 5
- Heavy duty all terrain tracks for maximum capabilities - Objective 1/3
- Pan and tilt camera mechanism - Objective 4
- Ultra-bright spotlights - Objective 4
- Full 360 degrees maneuverability - Objective 1
- Versatility for more user interfaces - Objective 3
Research and Planning
We decided at the beginning of the project that Finnian would specialise in the software, Ben would specialise in the hardware and electronics, and Angus would specialise in the mobility.We also decided later in the project that we would build three other interfaces so that there were the maximum amount of options for the end user:
- TKinter (on a computer)
- Wiimote
- Xbox controller
Research
Before we started to build the early prototypes of ReCoRVVA, we made sure we did lots of research on the very basic components we were using (motor drivers, DC motors, ping sensor etc) so we didn’t get things wrong/break vital components, and fully understood the concepts behind them.We also looked at similar robotics projects which used individual features that we want to use (e.g. camera streaming, WiFi control, ping sensor data collation etc) and learn from them, though there was no project we could find that incorporated all our features at once.
Examples of projects we looked at:
http://makezine.com/2013/07/06/the-raspberry-rover/
http://www.instructables.com/id/Arduino-4wd-robot-with-ping-sensor-J-Bot/
http://computers.tutsplus.com/tutorials/how-to-build-a-wireless-pi-camera-pan-and-tilt-platform--mac-57052
Skills required
We thought we needed electronics and circuit design principles; knowledge of how to correctly layout and update (where appropriate) solid code. We also needed to know how to integrate other functions and modules having already written a finished starting block. We needed knowledge of required hardware and the principles they operate on (eg ultrasound, thermistors, etc). Python programming, command line functions, network programming (IP and network extensions, sockets and VPNs etc). Finally we needed to make extensive use of git and GitHub to update and collectively collaborate on shared code.Things we agreed we needed to know more about
- Electronics for decisions relating to power distribution etc
- How to structure sound, good code
- How threading works