SDKPython SDK

震动反馈

控制手套指尖震动:设置、清除与生命周期约束。

当前版本 · 1.4.0

震动反馈

设置与清除震动

调用 device.haptics() 取得指尖震动控制入口;调用 start() 后即可设置指尖震动。每个 GloveFinger 对应一个指尖震动马达:

from qnbot_sdk import Sdk
from qnbot_sdk.glove import GloveFinger, Haptics
from qnbot_sdk.glove import GloveConfig

sdk = Sdk(devices=(GloveConfig(),))
glove = sdk.glove()
try:
    haptics = glove.device().haptics()
    glove.start()
    haptics.set(
        Haptics(
            {
                GloveFinger.THUMB: 80,
                GloveFinger.INDEX: 40,
            }
        )
    )

    latest = haptics.latest()
    if latest is not None:
        print(latest.value.strengths)

    haptics.clear()
finally:
    glove.close()

device.haptics() 用于控制各指尖的震动马达并读取震动输出状态。Haptics 同时用于 set() 的输入,以及 latest() 和订阅取得的状态值:

字段类型必填/默认说明与约束
strengthsdict[GloveFinger, int]必填,可为空映射手指到震动强度的映射;支持 THUMB、INDEX、MIDDLE、RING、PINKY,强度必须是 0..100 的整数;未列出的手指不包含在当前震动设置中

完整字段和类型见 Haptics。

读取当前设置

latest() 返回 SDK 当前保存的震动设置,不是硬件执行回执:

事件latest() 的结果说明
set() 成功新的震动设置—
set() 或 clear() 失败不变失败不发布新状态
clear() 成功None不产生额外的 callback 样本
stop()、e-stop 或连接中断NoneSDK 将状态更新为空
恢复连接后仍为 None不会自动重放,需要时重新调用 set()

空状态只表示 SDK 当前没有震动设置,不保证断连硬件已经收到零输出。

约束与参考

强度必须是 0..100 范围内的整数。完整示例见 haptics.py。