Skip to main content
The whole-hand API covers 20 joints. Single-joint reads and actions go through the JointHandle returned by hand.joint(k) / hand.joints() — see Joint Traversal.

joint_states (SUB)

Joint state stream: subscribe to the real-time state frames of the 20 joints, at a native output rate of 1000 Hz. Lower the push rate through the subscription handle: sub.set_rate(hz) returns the rate in effect, and 0 restores the native rate — see Adjusting the Stream Output Rate for full usage. This stream and joint_diagnostics ride the same device stream, so lowering the rate of one lowers both.
Push-rate tuning applies to the joint_states, joint_diagnostics, and imu streams. Upgrade the firmware and the Wuji SDK together to versions that support it — see the release notes for the version requirements.
Callback mode:
position is the joint-side angle (rad) and velocity the joint-side angular velocity (rad/s)—this is the only recommended path for joint angle and speed. Frames are variable-length and contain only online joints — identify each entry by its nid. The joint_diagnostics stream doesn’t carry joint angles.

joint_command (PUB)

Joint command: publish positions / velocities / torque feedforward for the 20 joints. Each send takes exactly 20 JointCommand entries, one position / velocity / effort per joint.
To turn human hand keypoints into these 20-joint commands, use Wuji SDK Hand Retargeting.

online_joints_count (GET)

Get the online joint count (0–20).

Joint Traversal

JointHandle provides label / index (for indexing into 20-element return arrays such as effort_limit() / mit_params()), plus single-joint resources and actions. FingerHandle traverses joints by finger.

JointHandle

Joint handle: provides label / index, single-joint resources, and single-joint actions.

FingerHandle

Finger handle: traverse the 4 joints of this finger.

Joint Numbering

Label format: {finger}_S{1..4} (e.g. thumb_S1, pinky_S4). For the full table with motion ranges and model naming, see the Control Guide.

Data Types

JointStateFrame

Joint state frame: return value of hand.joint_states().subscribe().recv(). Variable-length, online joints only.

JointStateEntry

Single-joint state.

JointCommand

Joint command: element of the joint_command().publish().send() argument.
Python: See the Python API examples earlier on this page.