Skip to main content

Overview

After connecting, print the device’s static information and current diagnostic state in one pass: handedness, IP, online-joint bitmap, labels and effort limits for all 20 joints, plus each joint’s status word, current, bus voltage, temperature, and error code. This is the first step in diagnosing a device. Offline joints, abnormal temperatures, and non-zero fault codes are all visible at a glance. Matching example: examples/c/wuji_hand_2/2_hand_info.c. For the complete list of device parameters and operations, see Device Parameters and Operations. This page covers only how to run it and what the measurements show.
Python has no standalone example, though every capability is available: hand.handedness(), hand.ip(), hand.online_joints_count(), hand.joints, hand.effort_limit(), and a joint_diagnostics subscription for the diagnostic snapshot.
This example only reads. It doesn’t enable the motors, and the fingers don’t move.

Prerequisites

Hardware

Software

Two Joint Numbering Schemes

This is the key to reading both this example’s output and joint_states. Each finger occupies a block of 5 nids but uses only the first 4, so 5, 10, 15, and 20 are skipped. The conversion holds across all 20 joints:
Using an nid from joint_states directly as an array subscript shifts everything.

Data Flow

The online bitmap is a 32-bit integer where bit N corresponds to the joint at index N. With all 20 joints online it reads 0x000FFFFF.

Runtime Handling

Integration Steps

Running It

Measured Output

On a right-hand Wuji Hand 2 with all 20 joints online:
At rest and unenabled, current fluctuates slightly around zero and temperature holds near 50 degrees Celsius. That’s a normal state.

Adapting It

Testing Whether a Joint Is Online

The bitmap beats querying one at a time. (bitmap >> i) & 1 equal to 1 means the joint at index i is online. Note that this uses the array index, not the nid.

Reference Ranges for Temperature and Voltage

At rest, temperature measured 49 to 59 degrees Celsius and bus voltage 12.3 to 12.4 V. Temperature rises after sustained large motions, and a persistently high reading calls for checking cooling and load.

Investigating Fault Codes

When err_code is non-zero, look it up in the fault code table. Clear faults with clear_fault(), and a fault that won’t clear means the condition is still present.

Locating a Specific Joint

To go from a label to an nid, use the formula above. To go from an nid back to a label, compute i = (nid - 1) // 5 * 4 + (nid - 1) % 5, noting that nids 5, 10, 15, and 20 correspond to no joint.