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