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 take spatio-temporal data streams as an input and produce 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, fault detection and recovery, and declarative machine learning. 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. Fault detection is achieved by measuring an error function over time, and comparing its behavior to expert-created error signatures. Whereas fault recovery uses corrects data in specific ways according to what type of fault is detected. PILOTS also has a simple and extensible machine learning system which allows data scientists to create, train, and validate machine learning models for their applications.
The PILOTS programming language was created by Carlos Varela and Shigeru Imai at Rensselaer Polytechnic Institute. Current administrator(s) of the language are Sinclair Gurny and Shigeru Imai.
Open Source Software
- (5/1/2020) PILOTS version 0.6 has been released. Download as .tar.gz or .zip
- See full release list and PILOTS tutorials
- Developers should direct themselves to the PILOTS GitHub page.
- The PILOTS compiler is developed using JavaCC.
- PILOTS requires the Java 1.6 SE Runtime Environment or newer and JFreeChart to run.
- Documentation for PILOTS is in development. It is beta release software.
- Comments/suggestions/patches are welcome!
DemoHere is a video that demonstrates how a PILOTS program works with estimates the weight of aircraft during take-off roll using only the velocity curve and atmospheric conditions from the 2014 accident of Cessna 172R N4207P.
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.
- Article on PILOTS in IEEE Aerospace and Electronics Systems Magazine (pdf, online publication, bibtex)
- Article on PILOTS in Cluster Computing Journal (pdf, bibtex)
- Publications on Cyber Physical Systems
- (04/08/2019) "Too many airplane systems rely on too few sensors", The Conversation
- (03/24/2019) "Researchers at RPI study causes of fatal air crashes", Albany Times Union
- (02/28/2019) "Making Flight Systems Safer with Internet of Airplanes", RPI News
- (03/04/2019) "$325K airplane safety grant to RPI computer scientists", AP 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