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.
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.
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.
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.