> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wuji.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# 数据流总览

本页列出 Wuji Glove 输出的全部数据流，既有手套硬件直采的**原始数据**，也有 SDK 算法解算的**后处理产物**。

## 通用 SDK 能力

安装、连接、订阅这类跨产品能力由 Wuji SDK（`wuji_sdk`，`pip install wuji-sdk`）统一提供，本目录不复制，改为按需跳转：

| 能力 | Wuji SDK 文档 |
| - | - |
| 安装与环境要求 | [快速开始](/docs/wuji-sdk/quick-start/) |
| 设备发现与连接 | [设备连接](/docs/wuji-sdk/device-connection/) |
| 数据订阅与输出率 | [数据订阅](/docs/wuji-sdk/data-subscription/) |
| 通用数据类型 | [通用数据类型](/docs/wuji-sdk/data-reference/) |
| SDK 用户管理与数据导入导出 | [设备参数](/docs/wuji-sdk/device-params/#sdk-用户管理) |
| 时间同步 | [时间同步](/docs/wuji-sdk/time-sync/) |
| 数据录制 | [数据录制](/docs/wuji-sdk/data-recording/) |
| C 接口 | [C 接口参考](/docs/wuji-sdk/data-reference/) |
| SDK 侧日志与排查 | [故障排查](/docs/wuji-sdk/troubleshooting/) |

源码与发布见 [wuji-sdk 仓库](https://github.com/wuji-technology/wuji-sdk)。

<Info>
  所有数据帧共享相同的 [FrameHeader](/docs/wuji-sdk/data-reference#frameheader)，包含序列号和设备时间戳。`timestamp_us` 同步前后的语义、同步机制与精度见 SDK [时间同步与时间戳](/docs/wuji-sdk/time-sync)。
</Info>

## 可用数据流

数据流按生成方式分三类：

* [原始数据](#raw-data)：由手套硬件直接采集，是所有产物的输入。可只保存、事后用[原始数据转换](/docs/wuji-glove/offline-pipeline)复算出全部产物，与实时计算结果一致，且显著降低采集时的 CPU 占用。
* [后处理产物](#post-processed-products)：由 SDK 算法在原始数据上解算生成。
* [全局资源](#global-resources)：设备级坐标变换，独立于各数据流发布。

<span id="raw-data" />**原始数据**

<table>
  <thead>
    <tr><th className="nowrap">数据流</th><th className="nowrap">SDK 方法</th><th className="nowrap">类型</th><th className="nowrap">默认输出率</th><th>描述</th></tr>
  </thead>

  <tbody>
    <tr><td className="nowrap">触觉</td><td className="nowrap"><code>glove.tactile()</code></td><td className="nowrap"><a href="/docs/wuji-glove/sdk-data-reference/tactile#tactileframe">TactileFrame</a></td><td className="nowrap">120 FPS</td><td>压阻阵列的 24×31 标定压力矩阵</td></tr>
    <tr><td className="nowrap">EMF 位姿</td><td className="nowrap"><code>glove.emf\_poses()</code></td><td className="nowrap"><a href="/docs/wuji-glove/sdk-data-reference/hand-tracking#emfposearray">EmfPoseArray</a></td><td className="nowrap">120 Hz</td><td>EMF 模块输出的 5 指定位位姿</td></tr>
    <tr><td className="nowrap">IMU</td><td className="nowrap"><code>glove.imu\_palm()</code></td><td className="nowrap"><a href="/docs/wuji-glove/sdk-data-reference/imu#imudata">ImuData</a></td><td className="nowrap">800 Hz</td><td>手背 IMU 的角速度和线加速度（原始数据，不含朝向）</td></tr>
  </tbody>
</table>

<span id="post-processed-products" />**后处理产物**

<table>
  <thead>
    <tr><th className="nowrap">数据流</th><th className="nowrap">SDK 方法</th><th className="nowrap">类型</th><th className="nowrap">默认输出率</th><th>描述</th></tr>
  </thead>

  <tbody>
    <tr><td className="nowrap">触觉分区</td><td className="nowrap"><code>glove.tactile\_zones()</code></td><td className="nowrap"><a href="/docs/wuji-glove/sdk-data-reference/tactile#tactilezones">TactileZones</a></td><td className="nowrap">120 FPS</td><td>由 <code>tactile</code> 按手部区域聚合的压力数据</td></tr>
    <tr><td className="nowrap">触觉点云</td><td className="nowrap"><code>glove.tactile\_point\_cloud()</code></td><td className="nowrap"><a href="/docs/wuji-glove/sdk-data-reference/tactile#pointcloud">PointCloud</a></td><td className="nowrap">120 Hz</td><td>由 <code>tactile</code> 生成的触觉 3D 点云</td></tr>
    <tr><td className="nowrap">接触检测</td><td className="nowrap"><code>glove.tactile\_binary()</code></td><td className="nowrap"><a href="/docs/wuji-glove/sdk-data-reference/tactile#tactilebinary">TactileBinary</a></td><td className="nowrap">120 FPS</td><td>由 <code>tactile</code> 推断的 24×31 二值接触图（1.0 接触 / 0.0 未接触 / -1.0 无效触点）</td></tr>
    <tr><td className="nowrap">接触残差</td><td className="nowrap"><code>glove.tactile\_residual()</code></td><td className="nowrap"><a href="/docs/wuji-glove/sdk-data-reference/tactile#tactileresidual">TactileResidual</a></td><td className="nowrap">120 FPS</td><td>由 <code>tactile</code> 推断的 24×31 有符号接触残差（每像素 <code>实测 − 预测基线</code>，用户自行二值化）</td></tr>
    <tr><td className="nowrap">指尖位姿</td><td className="nowrap"><code>glove.tip\_poses()</code></td><td className="nowrap"><a href="/docs/wuji-glove/sdk-data-reference/hand-tracking#fingertipposes">FingertipPoses</a></td><td className="nowrap">120 Hz</td><td>由 <code>emf\_poses</code> 解算的 5 指指尖位姿</td></tr>
    <tr><td className="nowrap">关节角度</td><td className="nowrap"><code>glove.hand\_joint\_angles()</code></td><td className="nowrap"><a href="/docs/wuji-glove/sdk-data-reference/hand-tracking#handjointangles">HandJointAngles</a></td><td className="nowrap">120 Hz</td><td>由 <code>emf\_poses</code> 解算的 21 DoF 手部关节角度（拇指 5 + 其余四指各 4）</td></tr>
    <tr><td className="nowrap">手骨架</td><td className="nowrap"><code>glove.hand\_skeleton()</code></td><td className="nowrap"><a href="/docs/wuji-glove/sdk-data-reference/hand-tracking#handskeleton">HandSkeleton</a></td><td className="nowrap">120 Hz</td><td>由 <code>emf\_poses</code> 解算的 21 个 MediaPipe 关键点骨架</td></tr>
    <tr><td className="nowrap">IMU 融合</td><td className="nowrap"><code>glove.imu\_data\_palm()</code></td><td className="nowrap"><a href="/docs/wuji-glove/sdk-data-reference/imu#imudata">ImuData</a></td><td className="nowrap">800 Hz</td><td>由 <code>imu\_palm</code> 原始数据经互补滤波融合，额外提供朝向</td></tr>
  </tbody>
</table>

<Info>
  触觉帧（`tactile`）、触觉分区（`tactile_zones`）、EMF 位姿（`emf_poses`）与 IMU 原始流支持运行时调节输出率：在订阅句柄上调用 `sub.set_rate(hz)` 请求更低输出率，设备量化后返回实际生效值，传 `0` 恢复默认。`tactile_zones` 虽在上表列为按区域聚合的产物，但由设备直接产出，因此可独立调频。衍生流（`tip_poses`、`hand_joint_angles`、`hand_skeleton`、`tactile_point_cloud`、`imu_data_palm` 等）跟随源流输出率，不能单独调频。详见 [输出率调节](/docs/wuji-glove/sdk-data-reference/hand-tracking#输出率调节)。
</Info>

<span id="global-resources" />**全局资源**

<table>
  <thead>
    <tr><th className="nowrap">数据流</th><th className="nowrap">SDK 方法</th><th className="nowrap">类型</th><th className="nowrap">输出率</th><th>描述</th></tr>
  </thead>

  <tbody>
    <tr><td className="nowrap">静态坐标变换</td><td className="nowrap"><code>manager.tf\_static()</code></td><td className="nowrap"><a href="/docs/wuji-sdk/data-reference#frametransforms">FrameTransforms</a></td><td className="nowrap">1 Hz</td><td>固定坐标系关系</td></tr>
    <tr><td className="nowrap">动态坐标变换</td><td className="nowrap"><code>manager.tf()</code></td><td className="nowrap"><a href="/docs/wuji-sdk/data-reference#frametransforms">FrameTransforms</a></td><td className="nowrap">800 Hz</td><td>IMU 驱动的动态变换</td></tr>
  </tbody>
</table>

C SDK 等价：`wuji_subscribe_tf(...)` / `wuji_subscribe_tf_static(...)`，回调签名 `WujiFrameTransforms`，设备无关。完整 C 接口用法见 [Wuji SDK · C 接口参考](/docs/wuji-sdk/data-reference/)。

## 示例代码

可运行的完整示例随 Wuji SDK 一起发布。

| 资源 | 位置 |
| - | - |
| Python 示例 | [`examples/python/wuji_glove/`](https://github.com/wuji-technology/wuji-sdk/tree/main/examples/python/wuji_glove) |
| C 示例 | [`examples/c/wuji_glove/`](https://github.com/wuji-technology/wuji-sdk/tree/main/examples/c/wuji_glove) |
| 遥操作示例 | [`examples/python/retargeting/`](https://github.com/wuji-technology/wuji-sdk/tree/main/examples/python/retargeting) |
| 原始数据转换示例 | SDK 安装包中的 `examples/3.offline_pipeline.py` |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.