设备参数与标定
参数读取
通过语义化 API 读取设备属性:
sn = glove.sn().get() # 序列号
version = glove.version().get() # 固件版本
hand_side = glove.hand_side().get() # 手别("left" 或 "right")
ip = glove.ip().get() # IP 地址
port = glove.port().get() # 数据端口参数写入
部分参数支持写入:
glove.ip().set("192.168.1.100") # 修改 IP 地址
glove.port().set(50001) # 修改数据端口修改网络参数(IP 地址、端口)后可能需要重新连接设备。
设备操作
参数持久化、重启等设备操作因产品而异。Wuji Glove 的具体操作见 Wuji Glove 设备操作。
SDK 用户管理
不同操作者共用同一台设备时,各自的标定参数和本地参数会互相覆盖。SDK 支持本机用户隔离,按 ~/.wuji/sdk/users/<user_id>/ 分目录存放每位用户的参数与标定文件。
不创建用户时,参数与标定文件直接落到 ~/.wuji/sdk/params/、~/.wuji/sdk/models/。按操作者隔离时再创建具名用户:
from wuji_sdk import SdkManager
manager = SdkManager.instance()
# 创建用户
alice = manager.create_user("Alice", description="右手操作员")
# 切换到指定用户
manager.switch_user(alice["user_id"])
# 查看当前用户
print(manager.current_user())
# 列出所有用户
for user in manager.list_users():
marker = "*" if user["is_default"] else " "
print(f"{marker} {user['display_name']} ({user['user_id']})")
# 切回默认用户
manager.switch_to_default_user()切换用户后,已连接的设备立即重新加载该用户的标定参数,无需重连。删除当前用户会自动切回默认用户。
仅 Python SDK 提供用户管理 API,C SDK 无对应接口。
标定
标定是把 SDK 算法适配到具体物理设备的过程,结果落盘到 SDK 本地参数与模型文件,设备订阅时自动加载。
标定文件按当前 SDK 用户和设备序列号双重隔离:
| SDK 用户 | 参数表 | 模型目录 |
|---|---|---|
| 默认用户 | ~/.wuji/sdk/params/<sn>.toml | ~/.wuji/sdk/models/ |
| 具名用户 | ~/.wuji/sdk/users/<user_id>/params/<sn>.toml | ~/.wuji/sdk/users/<user_id>/models/ |
切换 SDK 用户时已连接设备自动重载对应文件,无需重连。
- 何时需要标定:首次使用一台设备、更换穿戴者(针对可穿戴设备)、上层模型或算法代际切换、标定精度明显退化。具体触发条件因产品而异
- 失败行为:标定失败时 SDK 保留上一次成功的结果,本轮新文件自动回滚,可直接重试。常见失败场景:超时、算法不收敛、文件持久化失败、中途切换 SDK 用户。具体异常类型见各产品文档
- 迁移注意:标定结果是普通文件,可整目录拷贝备份或在主机间迁移。参数表里可能存有指向
~/.wuji/sdk/下其他文件的绝对路径(如模型文件),跨机器迁移到不同 home 路径时需同步更新或重新标定
Wuji Glove 的标定流程和 API 见 Wuji Glove 标定。
可用参数
Wuji Glove 的可用参数表见 Wuji Glove 可用参数。
查看所有资源
列出设备上所有可用的资源、参数和 Topic:
# 所有资源
for res in glove.resources():
print(f"{res.path} - {res.serde_format}")
# 可读写参数
for param in glove.params():
print(f"{param.path}")
# 可订阅 Topic
for topic in glove.topics():
print(f"{topic.path} - {topic.serde_format}")