EMF 位姿
emf_tx(手背发射线圈)坐标系下给出,frame_id 为 l_hand_emf_tx / r_hand_emf_tx。这与手部追踪产物所在的手腕坐标系不同,两者的变换关系见坐标系约定。
EmfPose
单指 EMF 位姿。EmfPoseArray
5 指 EMF 位姿数组。手指顺序:拇指、食指、中指、无名指、小指。手部追踪产物
hand_joint_angles、骨架 hand_skeleton、指尖位姿 tip_poses)由 EMF 位姿数据帧解算得出,其时间戳和对应的源 EMF 帧相同,可用于与源数据严格对齐。打戳时刻的完整语义见 SDK 时间同步与时间戳。
骨架与指尖位姿的 frame_id 为手腕坐标系(l_wrist / r_wrist)。
指尖位姿的 seq 为独立流计数,不延续源 EMF 帧的 seq。
FingertipPose
单指指尖位姿。FingertipPoses
5 指指尖位姿。FingerJointAngles
单指关节角度。HandJointAngles
全手 21 DoF 关节角度,其中 21 DoF 指手部追踪算法使用的手部运动学模型自由度。 按 5 指返回:拇指对应CMC3 + MCP1 + IP1,因此 angles 的 5 个槽位均有效,其余四指对应 MCP2 + PIP1 + DIP1,仅前 4 个槽位有效,第 5 个槽位为占位。全手合计 21 DoF。为保持统一数据结构,SDK 对每个手指都返回一个固定长度为 5 的 angles 数组,因此 fingers 中实际是 5 × 5 槽位。
SkeletonJoint
手骨架关键点。HandSkeleton
21 个 MediaPipe 关键点组成的手骨架。输出率调节
emf_poses 默认按 EMF 输入率(120 Hz)发布。需要降低输出率以节省带宽和 IK/FK 算力时,在 emf_poses 的订阅句柄上调用 set_rate(hz) 请求目标输出率。使用前先把设备固件升级到 v0.11.4 及以上、Wuji SDK 升级到 v2026.8.17 及以上。
调用方式
- 请求值会被设备量化为它支持的输出率,
set_rate()返回实际生效值。 - 传入
0恢复默认输出率。 - 输出率属于设备流本身,对该流的所有订阅方生效。多个订阅方先后请求时,后写入的值生效。
- 该流的订阅全部关闭或设备重连后,输出率自动恢复满速,设置不跨连接保留。
- 调用
set_rate()前需持有活跃订阅,无订阅时 SDK 在本地拒绝请求,不向设备发起通信。
影响范围
降低emf_poses 输出率的同时,也降低了手部追踪所用的 EMF 输入率。衍生流 tip_poses、hand_joint_angles、hand_skeleton、tactile_point_cloud 跟随源流输出率同步变化,不能单独调频——在衍生流的订阅句柄上调用 set_rate() 会报错。
可调流共四组:EMF 位姿(emf_poses)、触觉帧(tactile)、触觉分区(tactile_zones)与 6 路原始 IMU(imu_palm、imu_thumb、imu_index、imu_middle、imu_ring、imu_pinky),各流独立调节、互不影响。tf、tf_static 等全局资源不支持调频。
与标定的关系
调用glove.calibrate() 或 calibrate_blocking() 时,SDK 在采集期间自动把 EMF 链路恢复满速,采集结束(成功、失败或取消)后恢复原输出率。预先降低 emf_poses 输出率不会拉长标定时间。详见 标定。
订阅这些数据流的操作与实测输出见 SDK 使用实践 · 数据订阅:回调。
- Python
- C
Python:本页前文已展示 Python 接口。