Skip to main content

Product Overview

Wuji Hand is a bionic dexterous hand with 20 active degrees of freedom developed by WUJI TECH, designed for various application scenarios such as scientific research, robot integration, and human-computer interaction.

Product Parameters

The Wuji Hand core technical parameters table covers structural design, drive control, load performance, dynamic response, and electrical characteristics for product selection, simulation modeling, and application integration.
Parameter CategoryParameter ItemTypical Value or Description
Structure and Degrees of FreedomActive Degrees of Freedom20, 4 per finger
Number of Joints
Finger ConfigurationFull opposable, supports lateral swing
Kinematic ConfigurationSerial direct drive rotary joints, no nonlinear kinematics
Maximum Grasping Diameter100 mm
Dimensions and WeightSelf-weight (excluding cables)580 ± 10 g
Dimensions201 mm × 75 mm × 50 mm
Drive ModeDrive ModeSelf-locking rotary direct drive joints
Control AlgorithmFOC vector control drive
Control and CommunicationControl Frequency1000 Hz × 20 axes
Communication InterfaceUSB 2.0
Control ModePosition control
Communication ProtocolSelf-developed protocol
Communication Rate480 Mbps (theoretical value)
Load PerformanceFingertip Force15 N
Single Finger Maximum Load (Hook Grip)3 kg
Maximum Static Load for Whole-hand Grasping10 kg
Maximum Static Load of Whole-hand Hook Grip10 kg
Maximum Static Load for Whole-hand Vertical Grasping5 kg
Max Hanging Weight5 kg
Dynamic PerformanceMinimum Opening and Closing Time≈ 0.3 s
Repeat Opening and Closing Speed≥ 2 times/s
Thumb Flexion/Lateral Swing Speed≥ 100 rpm
Four-finger Bending Speed≈ 0.25 s
Precision and LifespanPositioning Repeatability± 1 mm
Idle Grip Life≥ 300,000 times
Backlash≤ ± 7 mm
Electrical PerformanceOperating Voltage12V - 20V DC
Static Power12 W
Included Adapter SpecificationsRated Output: 12V 20A
Peak Power: 420 W (10 ms transient)
Cable: 14 AWG
Materials and ProtectionShell MaterialAluminum alloy
Protection ClassIP40

Product Structural Features

This section introduces the overall structural design of Wuji Hand, communication and power interface layout, as well as the naming conventions and motion parameters of each degree of freedom, helping users understand the mechanical structure and usage specifications of the product.

Structural Schematic

Wuji Hand adopts a five-finger bionic structural design, with each finger containing multiple joints for flexible motion. The figure below shows the overall structure and main components:
Structural Schematic
Structural Schematic
  • A to E in the figure correspond to:
    • A: Thumb
    • B: Index
    • C: Middle
    • D: Ring
    • E: Little
  • Numbers 1 to 5 correspond to commonly used anatomical region identifications:
    • 1: Distal phalanges
    • 2: Intermediate phalanges
    • 3: Proximal phalanges
    • 4: Metacarpals
    • 5: Carpals

Wuji Hand DOF Configuration

The figure below shows the anatomical naming and corresponding positional relationships of each joint of Wuji Hand, helping users understand the functional positioning of each degree of freedom.
DOF Configuration
DOF Configuration
Numbers 1 to 6 in the figure correspond to:
  • 1: CMC1
  • 2: CMC2
  • 3: MCP1
  • 4: MCP2
  • 5: PIP
  • 6: DIP

DOF Motion Direction and Range

The four-finger structure is consistent, with a single finger full length of approximately 157 mm. The thumb module structure is slightly different, with a single finger full length of approximately 130 mm. The figure below uses the thumb and little finger as examples to illustrate the motion direction and angle range of each degree of freedom:
DOF Motion Direction and Range
DOF Motion Direction and Range
  • Thumb
    • 1: Carpometacarpal abduction/adduction, motion range approximately 100°
    • 2: Carpometacarpal lateral swing, motion range approximately 80°
    • 3: Flexion/extension, motion range approximately 130°
    • 4: Flexion/extension, motion range approximately 130°
  • Little Finger
    • 1: Flexion/extension, motion range approximately 125°
    • 2: Lateral swing, motion range approximately 60°
    • 3: Flexion/extension, motion range approximately 130°
    • 4: Flexion/extension, motion range approximately 130°

Communication and Power Interface Schematic

Wuji Hand achieves data communication with the host computer through a USB-C interface while supporting external power supply. The figure below shows the communication and power interface positions and connection methods of Wuji Hand:
Communication and Power Interface
Communication and Power Interface
  • Numbers 1 to 3 in the figure are:
    • 1: USB data cable connection end (plugged into the dexterous hand device)
    • 2: USB data cable other end (connected to host computer or robot controller)
    • 3: XT30 power interface for external power supply
Note: Use the original cables to maintain stable communication and safe power delivery

Product Electrical Characteristics

Pin Definition

Pin Definition
Pin Definition

Indicator Light Reference Table

An RGB status indicator sits on the lower back of the hand. It provides real-time feedback on power supply and system operation.
Indicator Light Position
Indicator Light Position
The meanings corresponding to each status are shown in the table below:
Indicator Light ColorStatus SymbolSystem Phase DescriptionDescription
No LightNo LightOFFPowered off/unpowered statePower supply not connected or main power failure
Blue SolidBlue SolidBootloaderFirmware update or bootloaderDevice is in bootloader. If device is performing firmware upgrade, strictly prohibit power disconnection or cable reconnection to avoid system damage
Green FlashingGreen FlashingStandbyNormal standbyPower supply normal, system normal, not connected to host computer or SDK
Green SolidGreen SolidRunningNormal operationPower supply normal, system started, connected to host computer or SDK
Yellow SolidYellow SolidWarningDevice warningSystem detected warnings such as high temperature, power fluctuation, and other non-fatal faults. Pause debugging and investigate the warning cause
Red FlashingRed FlashingPre-faultFault warningWarning of impending fault, such as temperature approaching overtemperature threshold
Red SolidRed SolidFaultCritical faultSerious hardware/software fault (such as main MCU abnormality, communication out of sync, etc.). Disable immediately and troubleshoot via host computer (observe indicator light, terminal log, reset/factory restore)

Product Accessories Introduction

Product Accessories Table

ImageNameDescription
12V 20A Power Adapter12V 20A Power Adapter12V 20A Power AdapterPower supply
Power Adapter AC CablePower Adapter AC CablePower Adapter AC Cable
Impact-resistant AdapterImpact-resistant AdapterImpact-resistant AdapterSee Impact-resistant Adapter
Direct-mount AdapterDirect-mount AdapterDirect-mount AdapterConnects Wuji Hand to user equipment (such as robot arm flange)
ToolkitToolkitToolkit
  • Hex wrench
  • Pry bar: for separating the latched impact-resistant adapter
Accessory KitAccessory KitAccessory Kit
  • Socket head cap screws: M4x6, M5x10, M6x10
  • XT30 female connector
USB A to USB C CableUSB A to USB C CableUSB A to USB C CableFor communication between host device and Wuji Hand
Tactile Sensing GloveTactile Sensing GloveTactile Sensing Glove (Optional)See Tactile Sensing Glove
Whether it ships with Wuji Hand, and the left- or right-hand fit, depend on your order

Tactile Sensing Glove

The Tactile Sensing Glove is an optional tactile perception accessory for Wuji Hand. It targets research and engineering scenarios — sensing, data collection, human-machine interaction — and provides a unified hardware foundation for algorithm adaptation, simulation modeling, and multi-modal fusion.
  • High sensing density: Full-palm uniformly distributed sensor array, more than 400 sensors, each independently capturing contact states, with super-resolution further enhancing perception
  • High compliance: Fully flexible Nerve skin (flexible sensing skin) accommodates bending and stretching, forming a dynamic sensing array that conforms closely to objects

System Requirements

CategoryItemRequirement
Hardware setupUSB-C portAt least one free USB-C port on the host (USB 2.0 or higher)
CablesBundled USB-C cable and short interconnect cable (see Connection)
Recommended computerCPUx86_64 or ARM64
Memory≥ 16 GB, to support parallel data streams and visualization
Storage≥ 1 GB free space for SDK and dependencies
Operating systemSDK platformCurrently Linux only
Recommended distributionUbuntu 22.04 / 24.04
Windows supportNot yet supported, planned for a future release
Wuji Hand SDK (wujihandpy)Python version3.8 – 3.14
Dependencynumpy
Installpip install wujihandpy
Wuji Hand SDK (wujihandcpp)PackagesDeb / RPM, install directly
Build instructionsSee wujihandcpp
USB device permissions (Linux)udev ruleAdd the rule so the device can be accessed without sudo:

Glove Specifications

Connection

When attaching or removing the Wuji Hand Tactile Sensing Glove, first run glove_donning.py from the Wuji Hand SDK joint control examples to smoothly drive the hand into the disassembly pose (thumb adducted across the palm, other fingers nearly extended). Do not pull forcefully to avoid damaging finger joints.
Tactile Sensing Glove connection diagram
Tactile Sensing Glove connection diagram
  1. Connect the circle marker end of the bundled short data cable to the Brain Watch bridge port (circle marker). Route the other end around the inner wrist of Wuji Hand and connect it to the Wuji Hand communication port.
  2. Use a USB-C (USB 2.0 or higher) data cable to connect to the PC — connect either USB-C end to the Brain Watch output port (triangle marker), and the other end to the PC.

Communication Interface

The product currently exposes a single communication interface, simplifying host integration.
CategoryItemDescription
Physical interfacePort typeUSB-C (USB 2.0 or higher)
Transport protocolModeUSB CDC (virtual serial port). The host recognizes a standard serial device
Linux node/dev/ttyACM*
USB identifiersVID = 0x0483
PID = 0x5700
Data streamPush rateUp to 120 FPS, 24 × 32 float pressure frames
Frame structureSequence number, timestamp, and CRC. The SDK handles frame sync, drop counting, and reconnect
Data accessRecommendedOfficial SDK (C++ / Python) for structured frame data
DebugGeneric serial tool to read the raw byte stream

Software Support

The official SDK provides full data access and device control, covering everything from algorithm validation to production deployment. See the SDK User Guide — Tactile Sensing Glove for the full API reference. SDK interfaces Two interfaces share a single backend and behave identically: Core API capabilities
  • Connection: connect() / disconnect() / is_connected(), with multi-device addressing by USB serial number
  • Frame reading: blocking read_frame(timeout_ms) or callback-based start_streaming(callback) / stop_streaming()
  • Device info: get_device_info() (serial / hardware / firmware version), get_fw_build(), get_handedness()
  • Diagnostics: get_diagnostics() (uptime, frame count, CRC errors, drops, USB resets), reset_counters()
  • Runtime config: get_sample_rate_hz() / set_sample_rate_hz() (1–120 Hz), set_streaming(enable)
  • Time sync: get_device_time(), sync_host_epoch(host_unix_ns) for multi-device alignment
  • Lifecycle: reset_device() for soft reset
  • Error handling: USB disconnection triggers DisconnectCallback. C++ raises ConnectionLostError, and Python raises the corresponding exception
Joint operation The tactile glove and Wuji Hand use independent USB transports and threads, so they can run in parallel within the same process (see example/joint_with_tactile.py) — enabling closed-loop scenarios such as tactile-driven motion control.

Impact-resistant Adapter

The impact-resistant adapter uses a twist-lock and slot locking structure to maintain a rigid connection under normal conditions. When subjected to external impact forces exceeding the safety threshold (such as robot arm loss of control or severe end-effector collision), Wuji Hand and the robot arm will trigger active separation to protect critical components (joints, motors, reducers, etc.) from damage. This design ensures improved reliability while minimizing maintenance and repair risks.
  • Normal state: Twist-lock and set screws are tightened to ensure structural stability and prevent loosening due to daily vibration or minor impacts.
  • Abnormal state: Automatically releases when exceeding the safety threshold, with Wuji Hand suspended by the safety chain to avoid secondary impact or falling hazards.
This trigger mechanism has been engineered to ensure it will not be falsely triggered during normal minor vibrations or routine operations, and is only effective for severe impacts exceeding the safety threshold. Note that this mechanism mainly covers most common impact and vulnerable scenarios, but cannot completely avoid potential damage in all extreme situations.
Impact-resistant Adapter Component Names
Impact-resistant Adapter Component Names

Installation and Removal

Safety Warning:
  • Installation and removal must be performed with power off. Live operation is prohibited
  • After installation, confirm that the twist-lock is fully tightened and the set screw is locked before starting the robot arm

Installation Steps

Step 1: Remove the impact-resistant adapter from the packaging (left image), pull apart the four-claw latch and grooved flange (right image), remove the set screw and rotate the twist-lock counterclockwise to separate the upper and lower components.
Impact-resistant Adapter
Impact-resistant Adapter
Step 2: Use screws to connect the grooved flange to the user equipment (such as robot arm). The grooved flange provides two hole sizes, with matching screw sizes of M5×10 and M6×10. Use M4×6 screws to connect Wuji Hand to the four-claw latch.
Grooved Flange and Four-claw Latch Connection
Grooved Flange and Four-claw Latch Connection
Step 3: Insert the twist-lock into the four-claw latch and rotate clockwise until tight (gently pull the safety chain to verify the twist-lock will not slip out). Install the set screw. Align the four-claw latch with the positioning slot on the grooved flange, press down to latch, and the impact-resistant adapter installation is complete.
Twist-lock Tightening and Installation Complete
Twist-lock Tightening and Installation Complete

Precautions

Fastening Check

  • Use recommended specification screws. Screws of insufficient length or incorrect specifications are strictly prohibited
  • It is recommended to tighten screws in a diagonal sequence to ensure even flange surface contact
  • If possible, configure a recommended torque wrench according to screw specifications to ensure tightening torque meets standards

Maintenance and Inspection

  • After each installation or removal, check whether the safety chain and twist-lock are flexible, unworn, and whether the attachment points are loose
  • If impact-resistant release is triggered during operation, check whether installation screws are loose and whether the twist-lock locking mechanism is intact before reinstallation

Wuji SDK Data Types

HandJointStates

Real-time 20-joint state (the hand.joint_states().subscribe() frame). Joint order is finger-major: {left,right}_finger{1..5}_joint{1..4}.

HandJointCommand

20-joint command frame. seq is client-incrementing so receivers can detect dropped frames.

TactileGloveFrame

A single pressure frame from the paired tactile glove, on a 24×32 grid.

Wuji Hand SDK Subscription

Wuji Hand Data Subscription

Wuji Hand product docs are archived. The subscription APIs are maintained on this page. The device connects over USB, exposed as wuji_sdk.WujiHand in Python and as the wuji_hand_* functions in C.

Subscribing to joint state

Receive real-time 20-joint position, with optional velocity and effort:
In Python, hand.joint_states().subscribe() returns Subscription[HandJointStates]. In C the same data arrives as WujiHandJointStates, where position, velocity, and effort each carry their own length field.

Publishing joint commands (realtime control)

A realtime control session applies a lowpass filter to suppress high-frequency jitter. Inside the session, get a PUB handle and push exactly 20 joint commands (position / velocity / effort each). The command shape matches Wuji Hand 2, so control code is portable between Wuji Hand 2 and Wuji Hand:
For continuous control, send commands at a fixed rate (typically 100 Hz). The session handle reads back actual state at any time: actual position is 20 joint values in radians and actual effort is 20 joint values in amps, both read from a non-blocking cache, so control frequency is unaffected. You can share the session handle across threads without locking — for example, one thread streaming targets at a fixed rate while another polls actual positions. In C, release both the publisher and the controller explicitly. wuji_hand_joint_command_publisher_close() and wuji_hand_realtime_controller_close() are NULL-safe, but skipping them leaks resources.

Effort limits

Set the torque limit on all 20 joints to the same amperage and read back a length-20 array:
  • Default is 1.5 A, suitable for most applications
  • Valid range is 0.0 to 3.5 A — values above 3.5 are clamped to 3.5
Modifying the effort limit changes the maximum output capability of each joint. The firmware also reduces the effective limit based on joint temperature. For the full reference and risk notes, see Wuji Hand SDK Guide — joint_effort_limit.

Tactile sensing glove companion data

When a tactile sensing glove shares the USB bus and matches the hand’s handedness, the SDK auto-pairs it while connecting. Check the pairing status and subscribe to pressure frames:
C adds three tactile info readers: wuji_hand_get_tactile_device_info (fills WujiTactileGloveDeviceInfo), wuji_hand_get_tactile_diagnostics (fills WujiTactileGloveDiagnostics), and wuji_hand_get_tactile_handedness (fills a uint8_t). On WUJI_STATUS_OK, the first two leave heap-owned fields in out. Release them with wuji_tactile_glove_device_info_free and wuji_tactile_glove_diagnostics_free respectively, and don’t free on a non-OK status. When the glove is missing or faulty, these calls return an error status — read the details with wuji_last_error().
wuji_hand_get_handedness and wuji_hand_get_tactile_handedness both return a raw uint8_t, but their encodings are opposites—don’t mix them. wuji_hand_get_handedness returns 0 for right and 1 for left, the reverse of the WujiHandedness enum, so reading it through the enum swaps left and right. wuji_hand_get_tactile_handedness returns 0 for left and 1 for right, which matches the enum.