Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
The Simulated Drone Flying Championship
1. THE SIMULATED DRONE FLYING CHAMPIONSHIP
MUHAMMAD ADIL RAJA
ROAMING RESEARCHERS
cbna
INTRODUCTION
Drone planes are becoming common by the day.
They have a wide variety of applications.
Applications domains range from security apparatus to precision
agriculture.
There should be a way to design efficient, smart and human-competitive,
self-coordinating, intelligent cooperative drones.
Such drones should be present in real-world as well as in artificial reality
environments.
And there should be ways to design, test and evolve such drones in
simulators.
One of the ways to develop such technology is design a competition for
drone planes.
In this competitors may be solicited to submit novel designs of drones (or
fleets of drones) that perform certain user specified tasks.
As more and more people submit their designs, better models can be
selected and kept, and bad ones can be littered.
And the process of designing nice drones can be made evolutionary.
“The Simulated Drone Flying Championship” exactly addresses such
interests.
It is a software development competition.
Inspiration has been taken from “The Simulated Car Racing
Championship”
EXPLAINING THE SIMULATED DRONE FLYING CHAMPIONSHIP
My inspiration for the simulated drone flying championship ensues from
my interest in the simulated car racing championship.
The latter competition is overseen and managed by the GECCO (Genetic
and Evolutionary Computation Conference) and the wider community of
evolutionary algorithms practitioners.
The simulated car racing championship provides its participants a software
which is essentially a simulation environment for racing cars, or car racing.
The simulation environment has everything in it including environments for
car racing, such as different types of laps on different types of terrains,
different types of cars with different specifications etc.
It also has a so called physics engine which emulates other environmental
factors for the car racing simulator.
The physics engine emulates real life factors such as aerial drag, road
friction etc.
Read the TORCS manual.
It is important to take such factors into account so as to be able to emulate
the car racing competition as close as possible to the reality.
The simulator can also be integrated with third-party software through its
programming interfaces.
It is an open source project.
And this is where the fun begins.
Competitors are invited to plug in and test their own software controllers
for the racing cars.
Design parameters for the software controllers are somewhat easy to
understand conceptually as well.
As a matter fact the simplest design goal is to come up with controllers
that can help a car to win a race.
That is quite simple to state and understand at this level.
And this is where the whole competition becomes a lot more fun.
Machine learning, and specially chauvinists of evolutionary algorithms, try
to solve this problem from a totally different perspective.
And that is their perspective.
And in order to understand their perspective you would have to understand
either one of these disciplines in a bit more detail.
Stated shortly, the idea is to evolve a set of optimum controllers for the
racing cars that would help the car win the competition.
People have tried plenty of algorithms.
One may as well cook up new algorithms along the way to design newer
controllers.
I shall explain how a set of controllers can be precisely evolved using an
evolutionary algorithm in a subsequent article.
Suffice it say for now that if you have understood the basic working of an
evolutionary algorithm, you would not find it very hard to learn the whole
idea behind the competition.
The simulated drone flying championship can also be designed in a similar
way.
EXPLAINING THE CHAMPIONSHIP
There are plenty of simulators for drone flying available online.
You can try either one of them.
I have particularly liked UAV Playground.
This is written in Java and can also be found on google.
This is open source and quite modular.
It also allows integration with third party software as well.
It also emulates virtual reality quite well.
You can integrate it with a machine learning package and try to design
controllers for drone planes with simpler objectives.
The objectives could be to fly a drone all over a place and perform some
simple navigation.
You can also use this package for genetic programming that I wrote myself
for symbolic regression.
This is written in java and works pretty well.
Of course you are free to use your own software package and run it.
And obviously everyone would have to try something different for this
championship to work.
If it all goes well and many people participate in it, the state of the art in
drone industry could evolve pretty fast and develop quite sophisticated
drone systems.
HOW TO EVOLVE CONTROLLERS FOR SIMULATED DRONES
Why do we need to evolve controllers?
Consider that if you are trying to replace a human pilot in an aircraft with
some sort of artificial intelligence that would fly the plane as well as a
human being would.
This can be a great idea.
This is also a central theme behind designing drones.
And in order to accomplish this task you would either have to develop a
background in machine learning or artificial intelligence.
And this also answers the question on as to why do we need to evolve
controllers.
Now let us answer one more question:
Why evolve controllers for simulated drones?
The answer for this question is simple, although there could be quite a few
reasons.
And this is an extremely important question.
The answer lies in the question that why do we need to evolve simulated
drones in the first place?
The reasons we would prefer to design drones in simulation lies in the
expenditure it may require to test, try, design and evolve controllers for
drones while employing real drones.
Most of the machine learning algorithms employ hit and trial methods.
This is quite natural to suppose and understand as well that as new
algorithms are designed, it is done so at the expense of bad algorithms at
times.
And bad algorithms and controllers can result in a lot of crashes, thus
making employment of real drones for design of their controllers a very
expensive expedition to undertake.
So as a result controllers for drones have to be designed in simulation.
Whether or not the simulated controllers would be good enough for
deployment in real drones depends partly on the quality of the controllers
that have been designed and also on the ability of the simulation
environment to mimic most types of real environments.
If you want to design controllers that do other complex tasks besides
ordinary flying, such as extinguishing fires or coordinate with other drones
as they perform complex activities, you would have to develop simulation
environments that can allow your drones to do exactly that.
How to evolve controllers for simulated drones then?
This is our final question.
I would like to draw your attention to the tutorials about genetic algorithms
and genetic programming.
Both of them are population based algorithms.
The latter is a lot more powerful as it allows whole computer programs to
be evolved.
Both algorithms generate a huge population of individuals as they start.
Then they evolve newer populations of individuals using genetic operators
of crossover and mutation.
They test each individual for its fitness to solve the underlying problem.
2. CONTROLLER EVOLUTION CONTINUED
In this problem a fitness score could be based on how well the set of
controllers evolved allow the drone to perform the prescribed tasks of
coordination while flying and carrying out the tasks.
Once all the individuals of the population have been assigned fitness, a
certain number of good individuals are kept and bad ones are littered.
The good ones are used to make a new parent population of individuals.
And a new evolutionary cycles begins.
At this stage it must be fairly intuitive for you to imagine for you that in the
beginning the algorithm would generate a lot of bad and naive controllers.
And they might result in a lot of crashes if real drones were employed.
So we need nice simulation environments.
It is only when a certain number of generations have elapsed, the search
process may begin to find better individuals.
And eventually, as we can hope, it would find an individual set of
controllers that has all the dexterity of an adept human pilot in flying the
drone.
The controller can be bench-marked at this stage and employed in real
drones.
AN EVOLUTIONARY ALGORITHM IN A NUTSHELL
FIGURE : Breeding Cycles of a Typical EA
FLIGHT GEAR
FIGURE :
FLIGHT GEAR II
FLIGHT GEAR III
FIGURE :
UAV PLAYGROUND
FIGURE :
UAV PLAYGROUND II
FIGURE :
THANK YOU!
This poster has been developed using LATEXBeamerposter: Frankfurt,
crane.