This is research code for EtherPose: Continuous Hand Pose Tracking with Wrist-Worn Antenna Impedance Characteristic Sensing (UIST 2022). It contains base data collection, regression, and visualization pipeline. More info can be found here (To appear).
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
After installing dependencies, we have two files to change.
First, change line35
of the file venv/lib/python3.*/site-packages/OpenGL/platform/ctypesloader.py
From
fullName = util.find_library( name )
to
fullName = '/System/Library/Frameworks/OpenGL.framework/OpenGL'
Second, we modified pyrender library to visualize hand mesh. Change venv/lib/python3.*/site-packages/pyrender/viewer.py
to etherpose_viewer/viewer.py
.
Download inverse kinematics solver and place files in mano_ik/inverse_kinematics/
.
python etherpose_demo.py -S 1.36e9 -E 1.4e9 -N 21 --plot
-S
is for setting the start frequency. -E
is for setting the end freqeuncy. -N
is for setting the number of data points. --plot
is for turning on the signal plot.
c
: Calibration. It finds the most "local" biggest return-loss value in and centeralizes the corresponding frequency.
t
: Time-domain data visualization.
p
: Trackpad mode.
h
: Hand pose estimation mode.
space
: Recording train data.
enter
: Prediction start / stop.
We used Cloverleaf antenna with a single-layered copper ground plane. After soldering the SMA Female Connector, the antenna was connected to NanoVNA V2 through the 50ohm RF coaxial Cable and some connectors. For more detail on the antenna geometries, please refer to the paper.