New usecase - UAV Path Prediction

UAV Path Prediction (Guideline)

1. Introduction

We utilize collected data from unmanned aerial vehicle (UAV) movements in the x, y, and z axes as input for model training. The Long Short-Term Memory (LSTM) architecture is employed to train the model, and the OSC AIMLFW framework is used as the training model framework. Through this process, a model capable of predicting the path of UAVs is trained, providing a solution for various use cases.

Ensure that the Influx database is operational for this use case, which is based on the OSC AI/ML Framework (Release-J).

2. Suggested Requirements





Getting Started (Start from data insertion)

  • Step 1. Query influx token

    # Search the influx "token" value in below output cat bitnami/influxdb/influxd.bolt | tr -cd "[:print:]"



  • Step 2. Create “UAVData” bucket (Inside Influx DB container)

    influx bucket create -n UAVData -o primary -t <token>



  • Step 3. Fill the file config (UAV_insert.py)

    DATASET_PATH = '/path/to/dataset.csv' # Replace to the UAV dataset path INFLUX_IP = 'localhost' # Influx IP INFLUX_TOKEN = 'VJpoNpqeVnjzvhpPm8jZ' # Influx token



  • Step 4. Excute the insert processing to insert data into Influx DB

    python3 insert.py



  • Step 5.  Upload UAV_pipeline.ipynb to aiml-notebook and generate a UAV_pipeline.yaml




  • Step 6. Start a UAV model training job




  • Step 7. Load UAV model



  • Step 8. Start model prediction
    1. obtain Ingress port for Kserve (kubectl get svc istio-ingressgateway -n istio-system)


    2. source uav.sh

File List

  • UAV_dataset.csv (Download) , (NEW)_UAV_dataset(source)
    The file contains collected UAV movement path data.


  • UAV_insert.py (Download)
    The file processes the UAV_dataset and inserts the data into InfluxDB.
    (Changed required: DATASET_PATH , INFLUX_IP , INFLUX_TOKEN)


  • UAV_pipeline.ipynb (Download)
    The file defines the model structure and training process.


  • UAV_deploy.yaml (Download)
    The yaml file is used for deploying model inference service.


  • UAV_input.json (Download)
    The json file is the sample data for the prediction.


  • UAV_predict.sh (Download)
    The script used for excuting the model prediction.


Example

  • Input:
    This input data represents a collection of points in a three-dimensional space, with each point defined by a set of three coordinates corresponding to the x, y, and z axes (After normalization).

    • Example input

      UAV_input

      [ [0.7453425167510083, 0.057188434013895506, 0.3883151002000583], [0.9348491377517286, 0.5797269721343681, 0.15480809966429032], [0.32685562293198867, 0.40325520693639316, 0.37923173514277997], [0.07019999536045685, 0.26259026009845376, 0.2890220776419392], [0.562592860552039, 0.471677885159695, 0.41299704269747306], [0.8156868208972661, 0.6577897226335571, 0.5894501267006358], [0.6789936054809089, 0.5219624142693665, 0.4196227577850472], [0.10702478626584111, 0.3030673792265356, 0.5265722005767963], [0.9762029048313448, 0.30233720269747666, 0.4147831180404825], [0.5277344636914802, 0.1058208829010896, 0.9369119762104259] ]



  • Output:
    The output should be next xyz-axis path prediction (After normalization).


    • Example output

      UAV_output

      Inference Result: [[-0.07196578 0.05871227 -0.00614708]]



Contributors

  • Joseph Thaliath - Samsung

  • Antony Wang - NTUST MITLab

  • Jasmine Lee - NTUST MITLab

  • Tuck-Wai Choong - NTUST MITLab