The PILOTS Programming Language
PILOTS is a ProgrammIng Language for
spatiO-Temporal data Streaming
applications, especially designed to be used for building
applications that run on moving objects such as airplanes,
cars, and so on. With very high-level specifications, users
can easily build applications that takes spatio-temporal
data streams as an input and produces streams as outputs for
use by other applications such as actuator controls, data
mining/analyses/visualization, and error correction codes.
These applications can be treated as components of a larger stream processing system.
PILOTS is declarative in nature and follows a syntax similar to Pascal.
The unique language features in PILOTS are first-class support for data selection, data interpolation, and error recovery.
Data selection is used when no data is available at a specific location and time.
By interpolating the selected data, an application can view a set of heterogeneous data streams as a homogeneous data stream.
This enables a separation of concerns: application programmers can focus on their application model.
Error recovery is achieved by measuring an error function over time, and comparing its behavior to error signatures.
The PILOTS programming language was created by Carlos Varela and Shigeru Imai at Rensselaer Polytechnic Institute.
Current administrator(s) of the language are: Shigeru Imai (imais2 AT rpi DOT edu).
For information on PILOTS (such as motivation, specifications, techniques), refer to our PILOTS related publications.
For information on the Worldwide Computing Laboratory, and other working projects, please see http://wcl.cs.rpi.edu.
- (02/28/2019) "Making Flight Systems Safer with Internet of Airplanes", RPI News
- (01/31/2019) "Grant Awarded to Increase Intelligence in Aerospace Systems", The Approach
- (07/25/2014) "Carlos Varela, RPI - Improved Auto-Pilot Technology", The Academic Minute
- (04/10/2014) "Making Autopilot Systems Safer", aviationtoday.com
- (04/06/2014) "RPI research group working on a facet of airline problems currently in news", Troy Record
- (04/04/2014) "Software developed to detect, fix data errors", Albany Times Union
(See the full release list here)
- (3/22/2019) PILOTS version 0.4.1 release
For users and developers
- View the PILOTS tutorials here.
- Developers should direct themselves to the PILOTS GitHub page.
- PILOTS requires the Java 1.6 SE Runtime Environment or newer.
- The PILOTS compiler is developed using JavaCC.
- Output visualization requires JFreeChart to run.
- Documentation for PILOTS is in development. It is beta release software. Comments/suggestions/patches are welcome!
Here is a video that demonstrates how a PILOTS program works with erroneous Angle-of-Attack sensor data such as allegedly observed in accidents involving the Boeing 737 Max 8 (Lion Air Flight 610, Ethiopian Airlines Flight 302)
Here is a video that demonstrates how a PILOTS program works with failed airspeed sensor data from Air France Flight 447 accident.
This project has been partially supported by the DDDAS program of the Air Force Office of Scientific Research, Grant No. FA9550-15-1-0214, an NSF EAGER-Dynamic Data Award, Grant No. 1462342, and a Yamada Corporation Fellowship.
Last modified: March 22, 2019