震动反馈
控制手套指尖震动:设置、清除与生命周期约束。
当前版本 · 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() 和订阅取得的状态值:
| 字段 | 类型 | 必填/默认 | 说明与约束 |
|---|---|---|---|
strengths | dict[GloveFinger, int] | 必填,可为空映射 | 手指到震动强度的映射;支持 THUMB、INDEX、MIDDLE、RING、PINKY,强度必须是 0..100 的整数;未列出的手指不包含在当前震动设置中 |
完整字段和类型见 Haptics。
读取当前设置
latest() 返回 SDK 当前保存的震动设置,不是硬件执行回执:
| 事件 | latest() 的结果 | 说明 |
|---|---|---|
set() 成功 | 新的震动设置 | — |
set() 或 clear() 失败 | 不变 | 失败不发布新状态 |
clear() 成功 | None | 不产生额外的 callback 样本 |
stop()、e-stop 或连接中断 | None | SDK 将状态更新为空 |
| 恢复连接后 | 仍为 None | 不会自动重放,需要时重新调用 set() |
空状态只表示 SDK 当前没有震动设置,不保证断连硬件已经收到零输出。
约束与参考
强度必须是 0..100 范围内的整数。完整示例见
haptics.py。