Overview: The completed Virtual Reality glove allows the user to easily record gestures and bind them to key commands. All gestures are supported: the device is not limited to single fingers or fully bent fingers. It runs on an Arduino-compatible, 5V Pro Micro, uses a total of four flex sensors, and features a custom thumb button in order to suspend gesture recognition mode and activate the user interface. The glove customizes itself to each user's hand flex pattern for optimal performance.
Technical: The sensors are polled by Arduino at 20Hz. Data is sent via USB serial to the laptop and is read via Python. However, a major problem of this approach was the buildup of serial data not being consumed in the python program. The quick fix for this was to place Python's serial reading code in another thread and poll at 50Hz, which still has negligible impact on CPU usage. Gestures are recorded and recognized via a simple 4D Euclidian distance search. Keypresses associated with each gesture are emulated via AppleScript. The Python UI is fairly clean and very user friendly.
Technical: The sensors are polled by Arduino at 20Hz. Data is sent via USB serial to the laptop and is read via Python. However, a major problem of this approach was the buildup of serial data not being consumed in the python program. The quick fix for this was to place Python's serial reading code in another thread and poll at 50Hz, which still has negligible impact on CPU usage. Gestures are recorded and recognized via a simple 4D Euclidian distance search. Keypresses associated with each gesture are emulated via AppleScript. The Python UI is fairly clean and very user friendly.