手套 + 外骨骼融合方案
通过共享串口连接双手套与外骨骼,并统一管理生命周期与设备能力。
当前版本 · 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。