Skip to content

revathyramanan/Dynamic-Process-Ontology

Repository files navigation

Process Ontology for Future Factories Assembly Cell

In this repository, we propose Dynamic Process Ontology (DPO) designed and implemented for rocket assembly testbed where four robots are involved to assembly four rocket body parts. During this assembly process, several anomalies could happen which can be detected or predicted using several machine or deep learning models. The Dynamic Process Ontology aids us in analysing these anomalies further by answering questions such as (i) which sensor produced anomalous values and what are the expected values of this sensor? (ii) to which robot the anomalous sensor is attached to? (iii) what was the function of the robot when the anomaly happened? (iv) till which stage in the assembly line the process ran successfully?

Unlike conventional ontologies that consist of interlinked web of concepts, the proposed process ontology captures temporal attribute of assembly line. The ontology is built based on the 21 cycle states which represents a step-by-step stage in the assembly process. Each cycle state consists of (i) respective robot that is involved in the cycle state along with its function specific to this cycle state in addition to other properties (ii) corresponding sensors and their expected normal range as per the cycle state along with other properties (iii) expected anomalies that can happen in a given cycle state. The dynamic nature of the ontology allows updating the properties of entities if the sensors or equipment need to be calibrated for each experiment. A snapshot of the proposed Dynamic Process Ontology can be found below.

Interactive Ontology

The interactive version of the ontology can be found here - https://revathyramanan.github.io/Dynamic-Process-Ontology/graph_viewer/d3_graph.html



An overview of the ontology where the green nodes are cycle states from 1 to 21, red nodes are robots, purple nodes are sensors of respective robots.



A Snapshot of cycle state 4 and its properties. It consists of function of the robot in this cycle state along with possible anomaly types.



Properties of the sensor potentiometer of Robot-2 that is involved in cycle state 4. The minimum and maximum values can be dynamically updated as per the calibration of experimentation set up. The values of other properties can also be changed as required.



Applications

1. User-level Explanations for Anomaly Classification in Real-Time

The dynamic process ontology is deployed as a part of real-time classification system at the rocket assembly testbed site. As the cell runs assembling the rocket, an anomaly classification system gathers and investigates the sensor data in real-time. When the model predicts an anomly, the reasoner is called to produce user-level explanations for the anomaly.

Watch the video

2. User-level Explanations for Anomaly Predictions

The ontology is also integrated as a part of Neurosymbolic Multimodal Fusion for Robust and Interpretable Anomaly Prediction in Assembly Pipelines.

Watch the video

Resources

Acknowledgement
This work was supported in part by NSF grants #2119654, “RII Track 2 FEC: Enabling Factory to Factory (F2F) Networking for Future Manufacturing” and SCRA grant “Enabling Factory to Factory (F2F) Networking for Future Manufacturing across South Carolina”. Any opinions, findings, conclusions, or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the NSF.

Steps to run

  • Download the most recent version of docker as per your OS from here - https://docs.docker.com/desktop/release-notes/ and install the docker on your system
  • In the project folder which is a cloned version of this git repository, change the $USER and $UID in .env file. To find out the values echo $USER and echo $UID from your command terminal
  • Create two folders insider the project folder
    • A folder to save the graph database (graph_data)
    • A folder where the original raw data files are stored (This doesn't exist for now. So create an empty folder named raw_files)
  • Mention these paths in the docker-compose.yml file. Mention full path.
    • <path to raw_folder>:/import
    • <path to graph_data>:/data
  • Download the plugin apoc-5.16.0-extended.jar and put it into a folder named plugins mention full path in the docker-compose file. Better to put this somewhere outside the project folder.
    • <path to plugins>:/var/lib/neo4j/plugins
  • Command to stand up the docker container docker compose up --build
  • Access the notebook and neo4j from ports https://localhost:8888 and https://localhost:7474 respectively. This is just a step if you need to visualize something. So it can be skipped.
  • Username and password for neo4j is in .env file
  • Password for Jupyterlab is in .env file
  • If you want to execute the python scripts, check the isntruction under that section
  • Command to get the docker container down docker compose down -v
  • NOTE: Currently, jupyterlab is commented out in the docker-compose.yml. Uncomment it before starting the docker is needed

Python Scripts

  • The python files are present in the folder python_files
  • Create a virtual environment using python3 -m venv <env_name> . Install the required packages using pip install -r requirements.txt
  • Activate the virutal environment before you have to run the script.
  • The script main.py has the template to input your data and get the explanation behind anomalies
  • The sample input data files are in mfg-data/anomaly_data. Make sure the column names are exactly the same if you plan on using a new file.
  • The sample output files are in mfg-data/results

ERRORS

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors