This repository implements an end-to-end pipeline for detecting hand gestures using the Tapstrap wearable device. It leverages the device's inbuilt accelerometer and IMU sensors to capture motion data associated with different gestures.
The tapstrap_gesture_recorder.py script allows collecting timestamped sensor data streams from the Tapstrap. It preprocesses and saves the data organized by gesture type.
The gesture_recognition.ipynb Jupyter notebook provides exploratory data analysis on the raw sensor data. It extracts statistical and frequency-based features from the time series data.
Multiple machine learning models are implemented and evaluated on the extracted features. The models identify characteristic patterns in the features to differentiate between gesture classes.
The realtime_inference.py script demonstrates a real-time gesture recognition pipeline. It uses a pretrained model to predict gestures as the user performs them while wearing the Tapstrap. You are able to select the model at runtime.
The tools.py module contains the core feature extraction and data preprocessing functions. This implements reusable logic that is used-- mostly feature extraction.
Overall, the repository provides a template that uses Python, TapSDK and scikit-learn to build a gesture classifier on wearable sensor data. It can serve as a starting point for similar projects using the Tapstrap or other motion sensing devices.
The README within the tapstrap folder provides setup instructions, usage examples and ideas for enhancing the project further. Documentation within the code explains the implementation details.
Legacy folder. todo.
This folder is our networking investigations, i.e. sending data around. Will investigate creating a distributed lightweight server.
Let me know if you need any other overview or summary of the repository! I'm happy to provide more details on specific parts as well.
OrangePi Setup ssh [email protected] ssh [email protected] wiki: http://www.orangepi.org/orangepiwiki/index.php/Orange_Pi_Zero_2W#SSH_remote_login_development_board wifi tool: nmcli dev wifi sudo nmcli dev wifi connect wifi_name password wifi_passwd bluetooth tool: bluetoothctl Method to create WIFI hotspot through create_ap
router pw: firefighter, 192.168.8.1
http://www.orangepi.org/orangepiwiki/index.php/Orange_Pi_Zero_2W#SSH_remote_login_development_board https://github.com/oblique/create_ap
jetson: 192.168.0.83 jetson: 192.168.0.81
https://github.com/waterrmalann/NetworkBandwidthMonitor https://github.com/Goldent00thbrush/Bandwidth_Monitor https://openthread.io/guides/thread-primer https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7899530 https://ieeexplore.ieee.org/document/8421863 https://ieeexplore.ieee.org/document/8650222 https://ieeexplore.ieee.org/document/6132771 https://ieeexplore.ieee.org/document/7873617 https://ieeexplore.ieee.org/document/5633776 https://ieeexplore.ieee.org/search/searchresult.jsp?newsearch=true&queryText=BATMAN
BATMAN NS3 sim:https://www.youtube.com/watch?v=wZMTW7vw05Q&ab_channel=NS3simulations
sudo nano /etc/bat/hosts
- Benoni Vainqueur
- on startup, automatically connect to access point
- pull latest git repo
- run the batman-adv network
- run the client to connect to the server. Will continue trying until its connected. server side ;;
- run the server
- from the server, blast messages to the client. switch to olsr, batman-adv, or restart networking, or run iperf
- format iperf data send it over json to the server
- server receives the data, cleans the data and saves it to a file,
batadv-vis sudo alfred -i bat0 sudo batadv-vis -f jsondoc
things to include in the paper how im sshing into the clients how i automated the ssh scripts sshing into batman sshing into olsr running olsr server olsr server parameters batman server parameters how im running the server fping configuration fping data cleaning batman-adv data cleaning how im doing the distributed ocmmunication how im sending data around the network saving the files distributed messages exporting the pi id to the bashrc how im broadcasting to several ports and keep a active list of ports mutex and threading