/VIP_MRTK3

Primary LanguageJupyter Notebook

Data of "Evaluating the Effect of Interface Types and Immersive Environments on Drawing Accuracy and User Comfort" Project

Environment

  • Python 3.9
  • Basically any libs are used in this project

Status of this repo

  • The accuracy data is not fully updated, but the code is ready to use if the preprocessing step is skipped
  • The code contains legacy code from other projects and may not be well-organized, but it should work
  • The EMG part is the latest version, and the accuracy part will be updated in the future

File structure

  • data folder contains raw Accuracy data files (Waiting for update because I'm travelling and I don't have access to the data)
  • EMG_Data folder contains raw EMG data files and some calculated result files, such as EMG_AR.csv
  • figures folder contains figures may be used in the paper, but most of them are for the testing purpose
  • preprocess.py is the file to preprocess raw data files and generate a JSON file for further usage
  • preprocessed_data.json is the JSON file generated by preprocess.py, the value is as same as the raw data files, but the format is changed to JSON and all data are in one file
  • run.py is the file to run the filtering algorithm and generate the processed_data.json file. This version is implemented a simple filtering algorithm that only consider the distance measurement.
  • processed_data.json is the filtered JSON file generated by run.py, all outliers are removed
  • run_dynamic_noise_gate.py similar to run.py, but this version is implemented a dynamic noise gate style algorithm. Used in the paper.
  • sEMG_Processing_new.ipynb is the file to process and analyse the raw EMG data files
  • utils*.py some useful testing scripts for previewing the data, you can ignore them

Usage

  1. Place the raw accuracy data files in the data/ folder (to be updated)
  2. Place the raw EMG data files in the EMG_Data/ folder
  3. Adjust settings in all executable files to meet your needs
  4. Run preprocess.py to generate preprocessed_data.json
  5. Run run_dynamic_noise_gate.py to generate processed_data.json (result) using the dynamic noise gate algorithm
  6. Use sEMG_Processing_new.ipynb to process and analyze the EMG data

EMG Data Analysis Flowchart

EMG_Flowchart

Disclaimer

This repo is intended for peer-review and research purpose only.