Wuji Hand Specifications

Full technical specifications for the Wuji dexterous hand — sensors, JSONL stream format, and platform agent parameters.

Mechanical & Sensing
Fingers5 — thumb, index, middle, ring, little
Joints per finger4
Total joint positions20 (5×4 array, float, radians)
Tactile pressure map24 rows × 32 columns (768 values, float [0, 1])
IMU channels6-axis (3-axis accelerometer + 3-axis gyro), up to 16 slots in stream
EMF channelPer-finger bend + hand-back yaw (dict keyed by finger name)
Hand sidesLeft, right, or auto-detected from first frame
Interface & SDK
USB vendor ID0x0483 (default; pass --usb-vid to override)
SDK packagewujihandpy (Python)
Installpip install wujihandpy numpy
Studio applicationWuji Studio v0.7.0 (Linux amd64 .deb / .tar.gz / .zip)
Stream scriptwuji_hand_sdk_stream.py (emits JSONL to stdout)
Agent modulewuji_glove_agent.py (platform bridge via WebSocket)
Mock streammock_wuji_stream.py (synthetic JSONL, no hardware needed)
Stream & Agent Parameters
Default stream Hz30 Hz (configurable with --hz)
Stream formatJSONL — one JSON object per line to stdout
Platform device typewuji_hand
Agent modulewuji_glove_agent
Backend WebSocket URLws://127.0.0.1:8000 (default; override with --backend)
Telemetry Hz30 Hz (configurable with --telemetry-hz)
Reconnect policyExponential backoff: 1 s min, 10 s max
JSONL Frame Fields (per frame)
FieldTypeShape / RangeDescription
tsfloatUnix secondsFrame timestamp (time.time())
hand_sidestr"left" | "right"Which hand this frame belongs to
bendsdict5 keys, [0, 1]Per-finger normalized bend (thumb, index, middle, ring, little)
joint_actual_position_5x4list[list[float]]5×4, radiansRaw joint positions from wujihandpy, 5 fingers × 4 joints
pressure_map_24x32list[list[float]]24×32, [0, 1]Tactile pressure distribution across hand surface
imulist[float]up to 16 values6-axis IMU: [ax, ay, az, gx, gy, gz, ...] (remaining slots zeroed)
emfdictper-finger + hand_backEMF sensor readings; each entry is float or dict with "bend"/"angle" keys

The bends values are derived from joint_actual_position_5x4 by averaging the 4 joint angles per finger and normalizing from the [0, π/2] range to [0, 1].

wuji_glove_agent.py — Key Flags
FlagDefaultDescription
--backendws://127.0.0.1:8000Platform WebSocket base URL
--session(required)Teleop session ID from the platform
--node-idwuji-glove-nodeIdentifier for this device node in the session
--gloveautoHand side: left, right, or auto (read from first frame)
--device-kindwuji_handDevice type registered with platform
--telemetry-hz30.0Telemetry forwarding rate to platform
--wuji-cmdpython3 wuji_hand_sdk_stream.py --hand-side right --hz 30Shell command that emits JSONL frames to stdout
--reconnect-min-s1.0Minimum reconnect backoff (seconds)
--reconnect-max-s10.0Maximum reconnect backoff (seconds)

Ready to Start?

Follow the setup guide or read the full SDK docs.