Skip to content

状态、订阅与实时控制

快照、订阅和 Servo 解决不同问题:快照读取一次数据,订阅按周期拉取数据,Servo 向设备连续发送控制目标。

读取方式对比

方式数据方向适用场景
state.snapshot()设备到应用,一次预检、命令后确认
state.subscribe()设备到应用,连续监控、记录、闭环算法输入
touch.subscribe()设备到应用,连续触觉监控和算法输入
health.subscribe()设备到应用,连续运行状态和故障监控
open_servo()应用到设备,连续实时位置或阻抗目标

订阅生命周期

python
subscription = hand.state.subscribe(period=0.02)
try:
    while True:
        state = await subscription.next()
        process_state(state)
finally:
    subscription.close()

SDK 不保存订阅历史。处理速度低于读取速度时,应用应使用有界队列并定义丢弃或降采样策略,不能无限堆积数据。

Servo 会话

ServoSession 具有独立控制权和生命周期。应用必须:

  1. 在打开会话前完成布局和健康预检。
  2. 使用明确的发送周期和命令超时。
  3. 监控 State 与 Health,但不要假设订阅频率等于控制频率。
  4. 在异常和正常退出路径关闭会话。
  5. 断线后丢弃旧会话并重新连接。

任何固定频率都依赖主机、适配器、总线负载和固件;文档不承诺无条件固定控制频率。接口见Motion API遥测 API

帮助