Drupal in the clouds - literally
How and Why?
Given the topic, this would be a reasonable question you'd have right now. Did we really build a drone and install Drupal onboard? And why on earth would you do that? Answers below...
The drone - the how
You can buy a drone in a shop. But not one that you can install Drupal on. To do that, you have to build one yourself. You have to buy all the electronics, you have to buy all the tools. You have to buy the frame, you have to buy a lot of wires. You need engines and props. You need a 3D printer for the bits you can't buy. And you need a lot of patience.
The drone you see below is all of those things and more. Because for a drone that's worth installing Drupal on, you also need a high-powered computer that's not much bigger than a packet of cigarettes. You need an operating system that will host the web server and also provide connectivity to the drone in a way that allows Drupal to do something useful.
So you also need Robot Operating System. And you need some sensors too - this thing needs some eyes and ears. So you need laser rangefinders, sonar and it needs to access the sensors in the flight controller - altimeters, gyroscopes, compass, optical positioning camera, flight camera, GPS and more. And as we've said before - you need a lot of patience too - this stuff is definitely not plug and play. Typically, it's much happier catching fire than just plugging and playing.
As you can see from the picture below - this drone is about as fully featured as you can get. By the time it's powered all the ancillaries, and lifted the weight of all of them, plus itself, flight time is no more than ten minutes. But that's enough. Enough to prove the concept...
Drupal - the why
First, a confession. We built the drone before we ever decided to try 'flying' Drupal on it. But once we'd built it and flown it (it's a pretty good sports quadcopter, capable of hitting 60mph in level flight) we started to get ambitious about adding some automation. That led to us adding a companion computer, hooked up to the flight controller - allowing us to mess with scripts that were capable of identifying objects and following them. And one thing led to another until this moment...
'Why don't we install Drupal on it?'. The companion computer, running a custom operating system, actually had a lightweight web server pre-installed. 'Why would anyone want to do that?' is the question that came straight back 'even if we could do it'. So we thought that through like this: we just need to come up with the use case. Drupal, at its simplest, is a content management system - so we needed a use case that required a CMS. Then we needed to figure out why that use case required Drupal to be installed on the drone itself. After all, the drone has full 4G connectivity to the internet and if the drone needed Drupal, why couldn't we just have Drupal 'in the cloud' rather than 'up in the air'.
Let's try - a use case
The drone is designed to look for illegal logging in a forest. It is capable of picking it's way through the trees following a flight path that sweeps a set area. It registers its absolute position whenever it gets a GPS signal. It navigates from those intermittent position locks using an downward facing camera and its onboard compass. It avoids trees using sonar sensors mounted up front. It keeps its height steady, despite the rise and fall of the ground, by using a laser rangefinder pointed at the ground. Now all it has to do is spot and photograph any tree stumps it finds - but only the ones that are new.
By using Drupal as a media library, with photographs taken on previous surveys and tagged by location and orientation, the drone can identify a tree stump and check through the library to see if it has registered one before at that location. If it hasn't, then hey presto - we have illegal logging and the drone can photograph the scene and add it to the media library, together with location data.
If all this is happening in a forest, it figures you can't use a mobile network to stream data out and back in as you do this. The connection, if there was one at all, would be unreliable. So that's why you need all this stuff happening locally. It simple wouldn't work otherwise. It's a classic example of what's called 'edge computing' - a topic of growing importance as we move computing 'out into the field' using robotics.
We learnt a lot from this project. But the most important thing we learned is this: we have barely scratched the surface of what's possible and what will quickly become normal. It's hard, but it's getting easier. The potential of robotics combined with IT technology is only just being understood.
Oh, and the other thing we learned? It's time to get our feet back on the ground with this innovation game. Because we've been there and done it when it comes to having our head in the clouds.