# 校准

对工作环境变化敏感的传感器会因温度变化、机械磨损或工作范围偏移等因素而产生不适当的输出值。传感器校准是调整或微调传感器硬件以确保准确性并最大限度地减少误差的过程。校准涉及将基于理论模型或标准的预期输出与传感器的实际测量输出进行比较。通过精确调整，传感器校准可提高性能、准确性和可靠性，从而确保传感器提供可靠的数据。

每次成功完成校准和关联的注册表更新（如以下各节所述）之后，ver 注册表项的值将递增。例如，如果注册表项中的偏差偏移量的 ver 值为 0，则在成功完成一次校准和注册表更新后，注册表项将使用新的偏置偏移量进行更新，并且 ver 值将递增为 1。

Note

以下各节中引用的 &lt;registry\_path&gt; 应视为设备上的一个现有路径：/etc/sensors/registry/registry/ 或 /var/cache/sensors/registry/registry/。

## 工厂传感器校准

工厂传感器校准是在制造阶段调整或微调传感器的过程。

### 加速度计

下表列出了加速度计校准过程：

表：加速度计校准

| 命令 | 步骤 | 偏差值 |
| --- | --- | --- |
| ssc_drva_test -sensor=accel -factory_test=2 -duration=10<br>    Copy to clipboard<br><br><br>Note<br><br><br>无论测试是否完成，测试结果（PASS 或 FAIL）仅指示测试执行状态。 | 运行命令，同时使设备在平坦的表面上保持静止。 | 以下是 QCS6490 设备（ICM42688 传感器）的示例：<br><br><br>会自动创建/更新 `<registry_path>/qcs6490_rbx_icm4x6xx_0.json.icm4x6xx_0_platform.accel.fac_cal.bias` 文件，并在校准后存储偏置偏移。 |

### 地磁传感器

下表列出了地磁传感器校准过程：

表：地磁传感器校准

| 命令 | 步骤 | 偏差值 |
| --- | --- | --- |
| 不适用 | <ol class="arabic simple"><br><li><p>在传感器供应商的帮助下获取 <cite>/计算设备的 corr_matrix</cite> 和 <cite>bias scale</cite> 值（如适用）。</p></li><br><li><p>将值设置到传感器的平台特定地磁传感器 JSON 文件中的 corr_matrix 部分。</p></li><br></ol> | 以下是 QCS6490 设备（AK09915 传感器）的示例：<br><br><br>会自动创建/更新 `<registry_path>/qcs6490_rbx_navmez_ak991x_0.json.ak0991x_0_platform.mag.fac_cal.corr_mat` 文件，并在校准后存储偏置偏移。 |

### 接近

下表列出了接近校准过程：

表：接近校准

| 命令 | 步骤 | 偏差值 |
| --- | --- | --- |
| ssc_drva_test -sensor=prox -factory_test=2 -duration=10<br>    Copy to clipboard | <ol class="arabic simple"><br><li><p>将障碍物/物体与接近传感器保持所需距离（例如，5 cm 或规范中提到的距离），然后运行命令。</p></li><br><li><p>验证测试是否返回 PASS 结果。</p></li><br><li><p>此过程使用 5 cm 作为阈值，阈值内的距离被视为近，超过阈值的距离被视为远。</p></li><br></ol> | 以下是 TMD3702 传感器的示例：<br><br><br>会自动创建/更新 `<registry_path>/tmd3702_platform.prox.fac_cal` 文件，并在校准后存储偏置偏移。 |

### 环境光

下表列出了环境光校准过程：

表：环境光校准

| 命令 | 步骤 | 偏差值 |
| --- | --- | --- |
| ssc_drva_test -sensor=als -factory_test=2 -duration=10<br>    Copy to clipboard | 确认传感器供应商指定的测试过程并运行该命令。 | 以下是 TMD3702 传感器的示例：<br><br><br>会自动创建/更新 `<registry_path>/tmd3702_platform.als.fac_cal` 文件，并在校准后存储偏置偏移。 |

## Runtime 传感器校准

Runtime 传感器校准是在传感器运行阶段（而不是在制造阶段）调整或细调传感器的过程。它是动态发生的，而传感器在实际场景中主动收集数据。

### 陀螺仪

陀螺仪校准传感器 `gyro_cal` 用于陀螺仪 runtime 校准。下表列出了陀螺仪校准过程：

表：陀螺仪校准

| 命令 | 步骤 | 偏差值 |
| --- | --- | --- |
| 使用 `see_workhorse` 启用陀螺仪校准传感器 (`gyro_cal`)。<br><br><br>see_workhorse -sensor=gyro_cal -on_change=1 -duration=120 -display_events=1<br>    Copy to clipboard | <ul class="simple"><br><li><p>在保持设备静止的同时，请求陀螺仪校准传感器 <code class="docutils literal notranslate"><span class="pre">gyro_cal</span></code> 数据超过 120 秒，然后停止。</p></li><br><li><p>命令执行后，检查接收事件中的 status 字段，了解校准精度状态。</p></li><br></ul><br><br>Note<br><br><br>陀螺仪传感器产生的值始终是未经校准的。因此，对于需要校准陀螺仪值的客户端/算法，运行 `gyro_cal` 传感器以生成并提供校准偏移/偏置。然后可以减去从 `gyro_cal` 传感器接收到的偏置，如以下伪代码所示：<br><br><br>calibrated_gyro_x_val = (gyro_data.x_val - gyro_cal.x_bias);<br>    Copy to clipboard<br><br><br>calibrated_gyro_y_val = (gyro_data.y_val - gyro_cal.y_bias);<br>    Copy to clipboard<br><br><br>calibrated_gyro_z_val = (gyro_data.z_val - gyro_cal.z_bias);<br>    Copy to clipboard | `<registry_path>/sns_gyro_cal_persist_sX.bias` 文件（其中，X = 传感器索引）会自动创建/更新，并在校准后存储偏置偏移：<br><br><br>Note<br><br><br>陀螺仪校准大约每 60 秒运行一次。只有在禁用陀螺仪的现有数据流客户端后，陀螺仪偏置才会存储到注册表中。 |

### 地磁传感器

地磁传感器校准传感器 `mag_cal` 用于地磁传感器 runtime 校准。下表列出了地磁传感器校准过程：

表：地磁传感器校准

| 命令 | 步骤 | 偏差值 |
| --- | --- | --- |
| 使用 `see_workhorse` 启用地磁传感器校准传感器 `mag_cal`。<br><br><br>see_workhorse -sensor=mag_cal -on_change=1 -duration=500 -display_events=1``<br>    Copy to clipboard | <ul class="simple"><br><li><p>将设备带到没有磁场干扰的开放区域。</p></li><br><li><p>进行地磁传感器数据流并按运动 <strong>8</strong> 移动设备超过 60 秒。按运动 <strong>8</strong> 中移动设备是必须的。</p></li><br><li><p>命令执行后，检查接收事件中的 status 字段，了解校准精度状态。</p></li><br></ul> | `<registry_path>/sns_mag_cal_persist_sXmY.bias` 文件（其中，X = 传感器索引，Y = 设备模式索引）会自动创建/更新，并在校准后存储偏置偏移。 |

Last Published: Jan 23, 2025

[Previous Topic
工具](https://docs.qualcomm.com/bundle/publicresource/80-70017-7SC/topics/test_tools.md) [Next Topic
验证](https://docs.qualcomm.com/bundle/publicresource/80-70017-7SC/topics/verify.md)