![body-worn sensors](https://private-user-images.githubusercontent.com/4992116/314020078-3519df7c-d93d-40ce-b415-f0e7129ec85e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4MDE4MTgsIm5iZiI6MTcyMTgwMTUxOCwicGF0aCI6Ii80OTkyMTE2LzMxNDAyMDA3OC0zNTE5ZGY3Yy1kOTNkLTQwY2UtYjQxNS1mMGU3MTI5ZWM4NWUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjRUMDYxMTU4WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Nzk4N2RlODM5MDFiYjRlZTQ4ZTA1NmQ5NzJmNjY1ZTk0OTNlNTQ4OGI4MGY5MDMxODhmMWQzNzk4N2U2MWY4MyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.6KIhDSa4qoTSroiYl1Z1LID6y7qEY1MC27NLEZxtZ9g)
![data](https://private-user-images.githubusercontent.com/4992116/314020808-afd31985-249a-4755-98e3-71613f6457f8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4MDE4MTgsIm5iZiI6MTcyMTgwMTUxOCwicGF0aCI6Ii80OTkyMTE2LzMxNDAyMDgwOC1hZmQzMTk4NS0yNDlhLTQ3NTUtOThlMy03MTYxM2Y2NDU3ZjgucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjRUMDYxMTU4WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9Yzg2MjVlMzE4MTc1MzRmYzQxNGZiMzlmOGJhYzI0M2I3MDNlNzdiNmUwOGQyOWU4NzNjNzVhZDRiMjBjNzU5YSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.o2TZy9Uu7dR_sMGqDFFT0PchYsX_jQVp8E7QKSQeh7g)
![result](https://private-user-images.githubusercontent.com/4992116/314022767-e18d7256-b534-4f7d-8613-154a86a16d19.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE4MDE4MTgsIm5iZiI6MTcyMTgwMTUxOCwicGF0aCI6Ii80OTkyMTE2LzMxNDAyMjc2Ny1lMThkNzI1Ni1iNTM0LTRmN2QtODYxMy0xNTRhODZhMTZkMTkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcyNCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MjRUMDYxMTU4WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MWU3NDBjMGZiM2FmODg5NjY0NjE4YWU4NWM4NjQ3NTcwNTkxNmEwZGYzNjA2YTllMGM1NzlkMmNhNTEzNzA2MSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.DmcbhaPcBCbQ3Fb2QrEuxWAw-RveprrHTiqRUSkpnQg)
Quaternion-Based Gesture Recognition Using Wireless Wearable Motion Capture Sensors
Codes for my Master's Thesis
Replace Missing Values.py - Replaces missing values for the Beta angle after conversion from quaternion to Euclidean.
add_headers.py - adds appropriate header columns to each dataset
columnSorter.py - breaks quaternion datasets in four different datasets that hold individual quaternion components
columnSorter_euclid.py - same as above but for datasets with Euclidean components
columnSorter_pStudy.py - same as above but for individual participant dataset
columnJoiner.py - joins every individual quaternion dataset to create a new dataset with homogenous quaternion component
convert2euclidean.py - convert quaternion components to Euclidean components
outlierRemover.py - removes outliers by applying linear interpolation using a 10-point sliding window
sortLeftRight.py - separates the left and right-hand gestures and turns them into individual datasets
*Training, Validation and Test sets were created using Weka 3.6
featureExtraction.py - Extracts five features from every dataset: Variance, Range, Velocity, Angular Velocity, Covariance
test.py, test2.py, test3.py, testFileSize.py, test_covariance.py, test_range.py, test_variance.py, test_velocity.py *Each file has its own description
countDatapoints.py - counts the total number of datapoints in a dataset
were done in Weka 3.6