Introduction: SOLARBOI - a 4G Solar Rover Out to Explore the World!
Since I was young, I've always loved to explore. Over the years, I've seen many builds of remote control cars controlled over WiFi, and they looked fun enough. But I dreamed of going so much further - out into the real world, far beyond the confines of my house, my street, or even my suburb.
I yearned to build a robot that could go far beyond. To do this, I whipped up a robot kitted out with a camera, a 4G data connection, and a solar power system capable of enabling missions days, weeks, or even months long. I now regularly stream live missions on Twitch.tv, and SOLARBOI does his part in trying to go further into the Australian countryside than any robot ever has before!
SOLARBOI's goal is to be left in an Australian country town, and navigate its way out, into the countryside, and on to further destinations. It can receive no external assistance on its mission, else it is considered to have failed. It must make its way, kilometer by kilometer, over days and weeks, relying only on the sun to charge and the 4G network for communication back to base. While the basics of the project sound easy, pulling it off is incredibly hard!
This guide serves to explain the basics of how SOLARBOI works, and present ideas on how best to create a robot platform that can survive outdoors for weeks on end. It's not an exact step-by-step manual on how to create your own; instead, it's a jumping-off point that you can use to explore your own builds and designs.
Step 1: Step 1: the Hardware
First of all, you'll need a chassis for your robot. While many experiment with 3D printed rover designs, I elected to use a cherished toy from my childhood. The Radio Shack RAMINATOR looked cool, with big tyres, four-wheel drive, and working suspension out of the box. While it's optimised for speed over torque, I decided that this would do nicely as the basis of my rover project. After ripping out the toy-grade RC hardware, I substituted in a Hobbyking brushed ESC for the motor, while I removed the original steering setup and replaced it with a hardy servo. Lithium polymer batteries were installed to give SOLARBOI the power to drive for hours at a time.
With the mechanicals out of the way, command and control is the next major consideration. For this, I settled on a Raspberry Pi Zero. Designed to sip a small amount of energy, it's compatible with USB peripherals and is perfect for an internet-connected project. As a bonus, it works well with the Raspberry Pi camera peripheral, key to giving us a view of the robot's surroundings when we're out in the field. I chose a fish-eye camera lens for SOLARBOI, giving us a nice wide view to help navigate the world at large. For a connection back to home base, we rely on a 4G dongle, which gives us the high bandwidth we need to send commands to the robot and receive video back.
Solar power is key to SOLARBOI's mission, hence the name. A 20W solar panel is fitted to make the most of the sun available, even on days that are more overcast than sunny. It's used to charge up the batteries during the day, so that SOLARBOI can then drive at night, away from prying eyes and malicious interlopers.
Obviously, even with the low-power Pi Zero running the show, we can't leave it running all the time else we'd drain the batteries too fast. Thus, the Pi needs to be powered down most of the time, but turned on at regular intervals to report SOLARBOI's position, and allow us to login and drive the robot when we wish. To achieve this, an Arduino Pro Micro runs a special program that turns SOLARBOI on for the first 5 minutes of every hour. If we login to the robot from Mission Control, it will stay on, allowing us to execute the mission. If it doesn't detect a connection, it powers the Raspberry Pi back down to save energy and make the most of the solar power available.
GPS is also used in order to make sure Mission Control is always aware of SOLARBOI's position. Driving in the countryside in the dead of night, it can be very difficult to navigate by visual cues alone. Thus, the GPS allows us to maintain a fix on the robot's location, and reach our goals deep into regional Australia.
Step 2: Step 2: the Software
Obviously, it's all well and good having a rover, but it needs software to make it work. SOLARBOI's software is under constant development, enabling better performance and improving ease of use over time.
The rover uses Raspbian, the default OS of the Raspberry Pi Zero. Mission Control runs on Windows. This causes some issues with various Linux utilities having to be specially installed at Mission Control. Ultimately, however, this setup has allowed us to drive many successful kilometers with SOLARBOI, and does the job well.
Video is streamed from the robot back to Mission Control via Gstreamer. It's hard to use, and not well documented for the beginner. However, it enables us to have a low latency audio and video stream from the robot that's just about good enough for us to drive without too many problems. Dropouts do occur, and there is some lag, but when you're building world-first robots to explore the countryside, you make the best of what you have! Streaming is done in native H264 from the Raspberry Pi Camera, to avoid putting too much load on the Pi Zero by transcoding on the fly.
Control of the robot is via custom Python code, with a server/client architecture. Using libraries like PiGPIO and Servoblaster, we're readily able to control the robot's drive system and other functions in real time. Installation is a cinch, thanks to the well-developed Raspberry Pi ecosystem.
We use a variety of libraries in Python to display telemetry on the screen. Most important is MatPlotLib, which plots our battery graphs in Mission Control that enable us to monitor SOLARBOI's performance during a live mission.
Step 3: Step 3: the Things You Only Learn in the Field
No plan survives first contact with the enemy, as they say. In just such fashion, SOLARBOI has undergone many trials in its attempts to navigate to an old-fashioned phone box deep in rural New South Wales. These are lessons that can often only be learned in the field, and ones we've learned the hard way.
Stealth is of a primary concern. If the robot stands out from its surroundings, it can easily be found by passers by while charging up during the day. Due to the small size and weight of the platform, SOLARBOI could readily be stolen or destroyed, thus failing its mission. This is a risk we take every time we deploy in the wild. To mitigate this, SOLARBOI is painted in a green drab finish in an attempt to blend in. Finding a safe space to charge with plenty of sunlight but minimal visibility is a continual challenge.
Despite SOLARBOI's stout offroad credentials, it's not able to overcome every obstacle in its path. We've had issues in the past getting stuck on rocks, or crashing into small trees. Most of the time, this is down to a camera with a poor field of view, low light levels at night, and extreme tiredness on the part of the operator. Our upgrades to better headlights and fisheye lenses aim to stave off this problem in future. Slow and steady progress, rather than outright speed, is also a good mantra to live by to avoid crashing into objects when you're driving with a 500ms video delay.
Simply deploying in the country brings its own problems. It means that SOLARBOI's hardware must be in tip top shape, lest a journey of many hours to the deployment area be in vain. This has cost us much petrol and time in missions past, and something we intend to avoid with rigorous testing in future. Nevertheless, it's something to consider when deploying a robot far afield.
Finally, good facilities at Mission Control are a must. Caffiene must be on hand to keep crew sharp and alert, as well as water to maintain proper hydration. Clear and up to date telemetry is also helpful to quickly diagnose problems, and a low-latency video feed free of dropouts is the best for smooth driving in the Australian wilderness.This also allows the driver to make the most of SOLARBOI's speed, where necessary, to evade passing cars, wildlife, or Shackleton the Cat, whom we met in Mission 1.
Overall, SOLARBOI has much farther to go in future missions, and ideally, will spend many months in the field exploring far and wide. To follow SOLARBOI's journey, follow along on Twitch.tv and Youtube, and enjoy the missions below! As always, there will be more adventures to come as SOLARBOI develops and travels further and further from home!
Participated in the
Make it Move Contest 2020