Published: by
Rohan Baijal

XPlaneROS : ROS Wrapper for Autonomous Fixed Wing Applications

Today, manned and unmanned vehicles are separated, limiting the utility and flexibility of operations and reducing efficiency. One area that is particularly challenging for autonomous aircraft are airport/heliport operations where conflicts between aircraft are common and need to be resolved. Mastering visual flight rules (VFR) operations for autonomous aircraft has significant operational advantages at unimproved sites, as well as in achievable traffic density compared to instrument flight rules (IFR) or completely separated operations between manned and unmanned systems.

As is the case with such systems, we need the ability to verify the safety of the algorithms before deploying them in the real world. There exist realistic simulators for testing driving cars (CARLA) and autonomous drones (AirSim) which makes testing and deployment more efficient and safe. A number of high-fidelity flight simulators exist, such as Microsoft Flight Simulator and X-Plane, but natively do not integrate with traditional deep learning and robotics pipelines.

In this work we present XPlaneROS that integrate a high-fidelity simulator with a state-of-the-art autopilot. The complete system enables the use of high-level or lower-level commands to control a general aviation aircraft in realistic world scenarios anywhere in the world. We chose X-Plane 11 as our simulator because of its open API and realistic aircraft models and visuals. For the lower-level control, we’ve integrated ROSplane as the autopilot. ROSplane is control stack for fixed-wing aircraft developed by the BYU MAGICC Lab.

XPlaneROS integrates XPlane 11 with ROSplane to enable higher-level autonomy in general aviation.

XPlaneROS Overview

XPlaneROS interfaces with XPlane 11 using NASA’s XPlaneConnect. With XPlaneROS, the information from XPlane is published over ROS topics. The ROSplane integration then uses this information to generate actuator commands for ailerons, rudder, elevator, and throttle based on higher-level input to the system. These actuator commands are then sent to XPlane through XPlaneConnect.

A pictorial overview of the XPlaneROS.

ROSplane uses a cascaded control structure and has the ability to follow waypoints with Dubin’s Paths. XPlaneROS provides additional capabilities to follow a select set of motion primitives. There have also been some extensions to ROSplane like employing a proper takeoff, additional control loops for vertical velocity rates and a rudimentary autonomous landing sequence.

The video below shows an aircraft taking off from a general aviation airport.

Repository Access

The repository for XPlaneROS can be found here. The accompanying README gives details on how to setup and run the codebase.

Controller Tuning Tools

Tuning the controllers can also be challenging and slow. To tackle this, a simple GUI utility is available via which users can give specific commands for roll, pitch etc and can tune the PID parameters based on the performance.

rqt_plot visualizes the commanded values and the real values. The rqt_reconfigure behaves as the GUI for ease of giving commands and tuning


The following video gives a tutorial on how to implement pattern following with XPlaneROS.

Future Work

We hope this tool enables research in higher-level autonomy for general aviation aircraft. Extensions to this work include integrating real-world traffic data to enable social navigation and coordination, as well as testing vision-based detect and avoid systems. Extensions might also include adding language as a modality for safe navigation within the national airspace.

Additional Info


  title={XPlaneROS : ROS Wrapper for Autonomous Fixed Wing Applications},
  url={},  publisher={Carnegie Mellon University},
  author={Baijal, Rohan and Patrikar, Jay and Moon, Brady and Scherer, Sebastian and Oh, Jean},


Term of use

BSD 4-Clause License