SDKPython SDK

手套 + 外骨骼融合方案

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

当前版本 · 1.4.0

手套 + 外骨骼融合方案

Qnbot PLUS 融合设备通过一个共享串口同时提供左手套、右手套和 Exo。应用用 CompositeExoGloveConfig 声明三个成员,再通过同一个根 Sdk 管理启动、停止和关闭。

配置思路

  • 只在 CompositeExoGloveConfig 上配置一次共享串口,不要再给左手套、右手套或 Exo 单独配置连接。
  • 未指定端口时可以自动发现;需要锁定设备时,把共享连接改为 SerialConnection(port="/dev/ttyACM0")。
  • devices 内依次放入左手套、右手套和 Exo;使用 sdk.glove() 与 sdk.exo() 访问对应能力。
  • 只对根 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()

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

sdk.stop()
sdk.close()

融合模式下 Exo haptics 不可用,震动控制必须走左右手套的 haptics()。Exo 提供 telemetry、status 和 IMU;手套提供 pose 与 status。当前共享 CDC 链路不提供手套原始 IMU。

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