ApexHand Python SDK Overview

Learn the capabilities and basic usage flow of the DexcelBot ApexHand Python SDK.

The dexcelbot_apexhand_sdk package is the official Python interface for controlling the DexcelBot ApexHand.
It wraps a C++/pybind11 backend and exposes a high‑level, Pythonic API for research, teaching, and production use.

What you can do with the SDK

  • Connection management: connect to ApexHand over Ethernet or RS485.
  • State access:
    • Joint states via JointStates
    • Motor states via MotorStates
    • Tactile images via HandSensorImage
  • Motion control:
    • Blocking joint position control with move_joint
    • Non‑blocking follow control with move_j_position_follow
    • Advanced servo‑loop control via register_servo_joint_control_callback
  • Safety limits:
    • Joint max speed MaxJointSpeed
    • Joint max acceleration MaxJointAccel
    • Finger max torque MaxFingerTorque
  • Events & callbacks:
    • Hardware error events register_hardware_error_event_callback
    • Joint, motor and tactile callbacks

All enums and data structures (such as LogLevel, ConnectionType, ErrorCode, JointId, …) are exported from the native _dexcelbot_sdk module and can be inspected directly from Python.

Typical control workflow

An ApexHand session usually follows this flow:

  1. Create the SDK instance.
  2. Connect to the hand (Ethernet / RS485).
  3. Configure logging and safety limits (optional but recommended).
  4. Enable fingers.
  5. Send joint or follow control commands.
  6. Optionally register callbacks for states, tactile images, and errors.
  7. Disable fingers and disconnect.
basic_usage_en.py
from dexcelbot_apexhand_sdk import (
    DexcelBot,
    ConnectionType,
    ErrorCode,
    JointId,
    create_joint_control_param,
)

bot = DexcelBot()

# 1. Connect to the robot
result = bot.connect("192.168.0.102", ConnectionType.CONNECTION_TYPE_ETHERNET)
if result != ErrorCode.ERROR_CODE_OK:
    raise RuntimeError(f"Connect failed: {result}")

# 2. Enable all fingers
bot.set_all_fingers_enabled()

# 3. Move one joint
cmd = create_joint_control_param(
    joint_id=JointId.JOINT_ID_THUMB_MCP,
    position=0.5,
    velocity=0.1,
    acceleration=0.0,
)
bot.move_joint([cmd])

# 4. Disconnect
bot.disconnect()

In the following sections you will find:

  • Installation & environment: how to set up Python and native libraries.
  • Basic usage: connection, enabling/disabling fingers, joint commands and state reading.
  • Advanced topics: safety limits, callbacks, tactile images and servo control.

源升智能机器人(深圳)有限公司 • © 2026 粤ICP备2025470595号-1