2
T HE S IMULATED D RONE F LYING C HAMPIONSHIP M UHAMMAD A DIL R AJA ROAMING R ESEARCHERS cbna I NTRODUCTION 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” E XPLAINING T HE S IMULATED D RONE F LYING C HAMPIONSHIP 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. E XPLAINING T HE C HAMPIONSHIP 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. H OW TO E VOLVE C ONTROLLERS FOR S IMULATED D RONES 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.

The Simulated Drone Flying Championship

Embed Size (px)

Citation preview

Page 1: The Simulated Drone Flying Championship

THE SIMULATED DRONE FLYING CHAMPIONSHIP

MUHAMMAD ADIL RAJAROAMING RESEARCHERS

cbna

INTRODUCTIONDrone planes are becoming common by the day.They have a wide variety of applications.Applications domains range from security apparatus to precisionagriculture.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 realityenvironments.And there should be ways to design, test and evolve such drones insimulators.One of the ways to develop such technology is design a competition fordrone planes.In this competitors may be solicited to submit novel designs of drones (orfleets of drones) that perform certain user specified tasks.As more and more people submit their designs, better models can beselected 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 suchinterests.It is a software development competition.Inspiration has been taken from “The Simulated Car RacingChampionship”

EXPLAINING THE SIMULATED DRONE FLYING CHAMPIONSHIPMy inspiration for the simulated drone flying championship ensues frommy interest in the simulated car racing championship.The latter competition is overseen and managed by the GECCO (Geneticand Evolutionary Computation Conference) and the wider community ofevolutionary algorithms practitioners.The simulated car racing championship provides its participants a softwarewhich is essentially a simulation environment for racing cars, or car racing.The simulation environment has everything in it including environments forcar 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 environmentalfactors for the car racing simulator.The physics engine emulates real life factors such as aerial drag, roadfriction etc.Read the TORCS manual.It is important to take such factors into account so as to be able to emulatethe car racing competition as close as possible to the reality.The simulator can also be integrated with third-party software through itsprogramming 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 controllersfor the racing cars.Design parameters for the software controllers are somewhat easy tounderstand conceptually as well.As a matter fact the simplest design goal is to come up with controllersthat 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, tryto solve this problem from a totally different perspective.And that is their perspective.And in order to understand their perspective you would have to understandeither one of these disciplines in a bit more detail.Stated shortly, the idea is to evolve a set of optimum controllers for theracing 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 newercontrollers.I shall explain how a set of controllers can be precisely evolved using anevolutionary algorithm in a subsequent article.Suffice it say for now that if you have understood the basic working of anevolutionary algorithm, you would not find it very hard to learn the wholeidea behind the competition.The simulated drone flying championship can also be designed in a similarway.

EXPLAINING THE CHAMPIONSHIPThere 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 designcontrollers for drone planes with simpler objectives.The objectives could be to fly a drone all over a place and perform somesimple navigation.You can also use this package for genetic programming that I wrote myselffor 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 thischampionship to work.If it all goes well and many people participate in it, the state of the art indrone industry could evolve pretty fast and develop quite sophisticateddrone systems.

HOW TO EVOLVE CONTROLLERS FOR SIMULATED DRONESWhy do we need to evolve controllers?Consider that if you are trying to replace a human pilot in an aircraft withsome sort of artificial intelligence that would fly the plane as well as ahuman 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 abackground in machine learning or artificial intelligence.And this also answers the question on as to why do we need to evolvecontrollers.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 fewreasons.And this is an extremely important question.The answer lies in the question that why do we need to evolve simulateddrones in the first place?The reasons we would prefer to design drones in simulation lies in theexpenditure it may require to test, try, design and evolve controllers fordrones 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 newalgorithms are designed, it is done so at the expense of bad algorithms attimes.And bad algorithms and controllers can result in a lot of crashes, thusmaking employment of real drones for design of their controllers a veryexpensive 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 fordeployment in real drones depends partly on the quality of the controllersthat have been designed and also on the ability of the simulationenvironment to mimic most types of real environments.If you want to design controllers that do other complex tasks besidesordinary flying, such as extinguishing fires or coordinate with other dronesas they perform complex activities, you would have to develop simulationenvironments 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 algorithmsand genetic programming.Both of them are population based algorithms.The latter is a lot more powerful as it allows whole computer programs tobe evolved.Both algorithms generate a huge population of individuals as they start.Then they evolve newer populations of individuals using genetic operatorsof crossover and mutation.They test each individual for its fitness to solve the underlying problem.

Page 2: The Simulated Drone Flying Championship

CONTROLLER EVOLUTION CONTINUEDIn this problem a fitness score could be based on how well the set ofcontrollers evolved allow the drone to perform the prescribed tasks ofcoordination while flying and carrying out the tasks.Once all the individuals of the population have been assigned fitness, acertain 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 thebeginning 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 searchprocess may begin to find better individuals.And eventually, as we can hope, it would find an individual set ofcontrollers that has all the dexterity of an adept human pilot in flying thedrone.The controller can be bench-marked at this stage and employed in realdrones.

AN EVOLUTIONARY ALGORITHM IN A NUTSHELL

FIGURE : Breeding Cycles of a Typical EA

FLIGHT GEAR

FIGURE :

FLIGHT GEAR II

FIGURE :

FLIGHT GEAR III

FIGURE :

UAV PLAYGROUND

FIGURE :

UAV PLAYGROUND II

FIGURE :

THANK YOU!This poster has been developed using LATEXBeamerposter: Frankfurt,crane.