Soaring Goals: A Neural Net in Every Glider
Delivery is a powered practical pursuit for drones, but other applications might take advantage of intelligent silent soaring sailplanes.
Join the DZone community and get the full member experience.Join For Free
Birds do it but bees don't. I've done it, a little. It is definitely fun!
Of course, I'm talking about piloting a sailplane, which is what soaring aficionados call their craft (almost everyone else calls it a glider). The entire point of a sailplane is to gather its energy from warm rising air currents. Sailplanes have no engines, but they do have the usual aircraft flight controls: rudder, elevator, ailerons, and almost always spoilers. (
poiler Alert: you need them in order to land safely.)
When you think about it, the idea of controlling a sailplane with a neural net seems like a very simple and straightforward application. Any Machine Learning application requires a reward function which is a measured value to be maximized (or minimized) and for a soaring application, the penultimate goal is to get as high as you can get. (The ultimate goal is to land safely.) FYI: Sailplane pilots use the word soaring because it suggests the ups and downs of the activity whereas gliding connotes going down (e.g. coming in for a landing).
It's standard procedure for most Machine Learning to use a hill climbing iterative approach. (Cloud climbing?) So for this application, the reward function is simply the altimeter output. More altitude equals good, less altitude equals bad.
Before you get worried that I'm just off on a hypothetical rant about robot sailplane's in your future, rest assured that a group of serious scientists has actually tackled this problem. They write about it in a detailed letter published September 19 this year in the periodical Nature: Glider Soaring Via Reinforcement Learning in the Field. The simple part of the problem is to adjust the flight controls of the sailplane (rudder, elevator, ailerons). These are the outputs of the neural net. Of course, the neural net requires inputs but those are pretty simple also. We want to maximize the altitude (our reward function) and we can do that best if we can find places where the air is rising the fastest. So one of our inputs is the rate of climb. A second input is a bit more subtle although you could probably guess what it is by watching a condor or an albatross for a while. Since birds and sailplanes can't see the rising air column (thermal) they must feel for it. The strategy for birds and sailplane pilots is to fly straight until one of your wingtips feels a little more lift and tilts your plane (pilot vernacular is to roll). If you feel the right wing tip rise then you turn gently to the right to enter the invisible rising column of air. Once you've entered the column you circle within it as long as you can gain altitude. Eventually, the column dissipates and you soar on until you find another one. That's pretty much all there is to it.
This wasn't a computer simulation of flight. I him _t was an actual robotic sailplane model with a 2 m wingspan. And it flew over real Southern California terrain.
If you look at the flight path, you can actually see the rising thermals that were found and the corkscrew spirals that were followed to gain altitude. In the course of the experiment, the researchers did discover that a few more things about the orientation of the craft were him useful/necessary to calculate successful flights. Nothing is ever as simple as we imagine, but on the other hand, there were only a handful of other variables necessary to finally tune the flight.
Once these additional inputs were instrumented, the craft and the neural net were ready to be set free to maximize the altitude reward function. At that point, it became apparent that one further improvement was necessary. One characteristic of a bird or a plane that is going to soar efficiently is that it has a very light wing loading: the ratio of total weight divided by wing area. That means that the smallest of eddies in the air (turbulence) cause significant jostling (noise) around the average flight path. As you can imagine a lot of jostling would cause the wing tilt (role) instrumentation output to be relatively noisy. You wouldn't want the system to learn to react to every little bump since every correction using the control surfaces creates drag and consumes some of your precious kinetic/potential energy. So, just as with every other Machine Learning problem one of the most time and resource consuming components is characterizing the noise and then implementing a data cleaning protocol. Here's an example of some of the noise for the sailplane pitch and rate of climb:
Recall that this entire flight methodology is completely blind. The sailplane was simply feeling its way through the thermals. I would imagine the next steps for them would be to add a simple vision system. Sailplane pilots learn to head towards freshly plowed fields or large parking lots covered with asphalt. Those surfaces are preferentially heated compared to their surroundings and generate thermals. In fact, an asphalt country road on a calm day will generate a thin ribbon-like thermal which one can fly back-and-forth following the road for some substantial altitude gains. So a simple camera could detect dark areas that would most likely be warmer. Or perhaps an infrared camera that could actually measure the temperatures of different patches of ground would be even better. So with the additional variable of a navigational bearing toward the next hot spot one could improve on the random search for rising thermals. I suspect that's 97% of all the input that birds and pilots need.
If these devices can be made practical they may be very useful for aerial monitoring (traffic, crops, pollutants, etc.) or relaying Wi-Fi and cell service. Zero power and very quiet.
When the day of the robot uprising comes, be sure to look up in the sky. I'm certain that some of these robots will...fly like an eagle.
Opinions expressed by DZone contributors are their own.