Overview#
RP Hand is a separate component with 6 active axes and 11 mechanical degrees of freedom. Whole-robot integration uses per-axis actuation and mechanical linkage mappings.
Use the current SDK names#
| Name | Meaning |
|---|---|
roboparty_dexhand |
Maintained SDK source project |
roboparty-dexhand |
Debian package |
dexhand_py |
Current Python extension |
HandDriver |
Public driver interface |
roboparty-dexhand-config |
Feedback configuration tool |
Use the current dexhand_py API. The old hand_py is a separate interface; the dexterous hand SDK is provided by the independent roboparty_dexhand project.
Environment and ABI#
The standalone SDK documentation baseline is Ubuntu 24.04 and Python 3.12; the ROS integration documentation lists Ubuntu 22.04, Python 3.10, and Humble. Installation packages must match the CPU architecture, Python ABI, and underlying dependencies.
Only one active hand instance is allowed per process; use two processes for two hands. get_now_*() returns cached data, and check_health() does not replace checking feedback freshness. The current public API has no tactile readout.
Axes, units, and model mapping#
Axis IDs for reading are 1..6. Some control methods that permit broadcasts use 0 to mean all axes; 0 is not the first finger. Position is measured in encoder counts, speed in counts/second, angle in degrees, and current in mA. Before integrating with a radian-based URDF/MJCF, define the device-specific per-axis conversions, zero offsets, directions, travel ranges, and passive linkages.
Use the corresponding models for DH116/DH116S and for left and right hands. Complete the linkage mapping from 6 axes to 11 mechanical degrees of freedom before whole-robot integration.
ROS integration limits#
The CAN-FD ROS integration provides /dexhand_left/cmd (Int32MultiArray), plus init and reset (Trigger); replace left with right for the right hand. This version does not yet publish position, state, current, alarms, or /joint_states. The command path allows homing to be bypassed; correct this behavior and verify cold startup and recovery before motion integration.
See Minimal integration examples for an explanation of the initialization example, and Connection and feedback troubleshooting for diagnostics.