The USNA X-Plane Machine Learning Plugin

What is it?

A plugin for the the X-Plane 10 flight simulator, allowing it to be used as a Reinforcement Learning domain. It measures data, samples possible state action transitions through defined random actions, and can follow a learned policy. The plugin reads in a user made XML and then uses that information to run the simulator.

How is it used

A researcher can set up the XML, start the plugin, leave for a few hours, and find megabytes of data have been collected. Then the researcher can use a preferred learning algorithm to create a policy. After that the policy can be encoded into the XML and the researcher can see if the plane has learned to fly.

What are the advantages?

Our plugin gives the user a highly customizable and robust simulation with real world scenarios. It gives the researcher all the benefits of a physical system, realistic noise and physics, without the complications of experimenting with actual robots. It also saves any user from having to recompile code and restart X-Plane to change a setting.

How does it work?

The plugin uses the X-Plane SDK C++ API to simulate pressing buttons or keys or turning a joystick. It also accesses X-Planes "Datarefs" which are used to hold state in the simulator, making almost any flight situation possible to learn.
The plugin also uses the TinyXML C++ library for reading the user's config.xml file which controls the plugin.

External Links

USNA Links