Skip to content

RPI-WCL/pilots

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PILOTS ver 0.6

PILOTS (ProgrammIng Language for spatiO-Temporal data Streaming applications) is a highly declarative programming language for spatio-temporal streaming applications. It is capable of detecting and correcting data errors through user-defined error signatures.

PILOTS has been successfully applied to avionics applications. Most notably, we have shown that PILOTS can fix data errors caused by pitot tube sensor failures which occurred in Air France Flight 447 accident. For more information, visit the PILOTS web site and look at related papers.

Note: The following commands shown for the command line are assumed to be implemented in the bash shell

0. Prerequisite Knowledge

Basics of using a terminal Installing programs for use on the terminal

1. Software Requirements

  • Java JDK 1.8 or newer.
  • Bash shell to run example PILOTS programs.
  • (Optional) JavaCC if you want to modify the PILOTS grammar. For machine learning component of PILOTS:
  • Python 3
  • Python libraries: numpy, scipy, scikit-learn, pickle, and flask Using pip they can be installed using the following line:
pip3 install numpy scipy scikit-learn pickle flask

2. Downloading PILOTS Library

3. Getting Started with PILOTS

  • Setting environment variables / aliases

    • In .bashrc, set the PILOTS_HOME environment variable to store the directory containing this README (i.e., root directory of the PILOTS installation). For example, if this README is installed in /home/user/software/pilots, an export command to set PILOTS_HOME looks as follows:
    export PILOTS_HOME=/home/user/software/pilots
    

    Note that the directory containing this README is referred to as $PILOTS_HOME hereafter.

    • Followed by the above export command for PILOTS_HOME, set the following CLASSPATH environment variable and compiler command aliases in .bashrc:
    export CLASSPATH=.:$PILOTS_HOME/lib/*
    alias plc='java pilots.compiler.PilotsCompiler'
    alias plcsim='java pilots.compiler.PilotsCompiler --sim'
    alias pltserver='$PILOTS_HOME/pilots/util/model/server.sh'
    
  • Building a PILOTS jar file

    In $PILOTS_HOME, run

    $ ./build.sh
    

    pilots.jar will be created under the $PILOTS_HOME/lib directory.

4. Running a PILOTS program

  • First read about PILOTS in the wiki
  • Follow along the README in a simple program: Twice, Twice Sim
  • Try some other programs Aoacheck

5. Running a PILOTS program with machine learning

In PILOTS, the model function is a function which uses a machine learning model to generate an output based on a given input.