SDKPython SDK

手套 + 外骨骼融合方案

通过共享串口连接外骨骼与双手套,并统一管理生命周期与设备能力。

当前版本 · 1.0.0

手套 + 外骨骼融合方案

Qnbot PLUS 融合设备通过一个共享串口同时提供 Exo、左手套和右手套。使用 CompositeExoGloveConfig 创建组合设备,并由根 Sdk 统一管理三个成员的生命周期。

配置思路

  • 只在 CompositeExoGloveConfig 上配置一次共享串口,不要再给 Exo、左手套或右手套单独配置连接。
  • 未指定端口时可以自动发现;需要锁定设备时,把共享连接改为 SerialConnection(port="/dev/ttyACM0")。
  • devices 内放入左手套、右手套和 Exo;使用 sdk.exo() 读取外骨骼数据,使用 sdk.glove() 访问手套。
  • 只对根 Sdk 调用 start()、stop() 和 close(),避免成员设备各自管理共享链路。

完整示例

from qnbot_sdk import CompositeExoGloveConfig, Sdk, SerialConnection, Side
from qnbot_sdk.exo import ExoConfig
from qnbot_sdk.glove import GloveConfig, GloveFinger, GloveHaptics

# 连接只配置在组合设备上;默认自动发现共享串口。
# 如需固定端口,改为 SerialConnection(port="/dev/ttyACM0")。
composite = CompositeExoGloveConfig(
    connection=SerialConnection(auto_discover=True),
    devices=(
        # 成员配置不再单独声明串口。
        GloveConfig(side=Side.LEFT),
        GloveConfig(side=Side.RIGHT),
        ExoConfig(),
    ),
)
sdk = Sdk(devices=(composite,))

# 通过两个产品门面取得共享链路上的三个成员。
glove = sdk.glove()
exo = sdk.exo()
left = glove.device(side=Side.LEFT)
right = glove.device(side=Side.RIGHT)
exo_device = exo.device()

# 由根 Sdk 统一管理整个组合设备的生命周期。
sdk.start()

# 融合模式的震动通过手套成员发送,不调用 ExoHaptics。
value = GloveHaptics({GloveFinger.THUMB: 80})
left.haptics().set(value)
right.haptics().set(value)
# telemetry/status/IMU 仍从 exo_device 读取。
left.haptics().clear()
right.haptics().clear()

sdk.stop()
sdk.close()

独立 Exo 的 ExoHaptics 不适用于融合模式;震动必须通过左右手套的 haptics() 发送。 Exo 提供 telemetry、status 和 IMU;手套提供 pose 与 status。当前共享 CDC 链路不提供手套原始 IMU。

请同时安装兼容版本的 qnbot-sdk-exo 和 qnbot-sdk-glove。另见 手套侧融合方案;完整程序见 composite-exo-glove/python。