# 校准传感器

对工作环境变化敏感的传感器会因温度变化、机械磨损或工作范围偏移等因素而产生不适当的输出值。传感器校准过程涉及以下方面：

- 调整或微调传感器硬件，以确保准确性并并最大限度地减少误差。
- 将基于理论模型或标准的预期输出与传感器的实际测量输出进行比较。
- 提高性能、准确性和可靠性，这能确保传感器提供可靠的数据。

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

Note

以下各节中引用的 `<registry_path>` 应被视为设备上现有的路径之一：`/etc/sensors/registry/registry/` 或 `/var/cache/sensors/registry/registry/`。

## 执行出厂传感器校准

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

### 加速度计出厂校准

要校准加速度计传感器：

- 运行命令，同时使设备在平坦的表面上保持静止。

**命令**

ssc_drva_test -sensor=accel -factory_test=2 -duration=10
    Copy to clipboard

Note

无论测试是否完成，测试结果（PASS 或 FAIL）仅指示测试执行状态。

**偏差值**

以下是 QCS6490 设备（ICM42688 传感器）的示例：

- 会自动创建/更新 `<registry_path>/qcs6490_rbx_icm4x6xx_0.json.icm4x6xx_0_platform.accel.fac_cal.bias` 文件，并在校准后存储偏置偏移。

### 磁力计出厂校准

要校准磁力计：

1. 从传感器供应商处获取 <cite>/calculate corr_matrix</cite> 和 <cite>bias scale</cite> 值（如适用）。
2. 在传感器平台特定的磁力计 JSON 文件的 `corr_matrix` 部分中设置这些值。

**命令**

不适用

**偏差值**

以下是 QCS6490 设备（AK09915 传感器）的示例：

- 将自动创建或更新 `<registry_path>/qcs6490_rbx_navmez_ak991x_0.json.ak0991x_0_platform.mag.fac_cal.corr_mat` 文件，并在校准后存储偏置偏移。

### 接近出厂校准

要校准接近传感器：

1. 将障碍物/物体与接近传感器保持所需距离（例如，5cm 或根据供应商分享的规范），然后运行命令。
2. 确保测试返回 PASS 结果。
3. 此过程使用 5cm 作为阈值，阈值内的距离被视为近，超过阈值的距离被视为远。

**命令**

ssc_drva_test -sensor=prox -factory_test=2 -duration=10
    Copy to clipboard

**偏差值**

以下是 TMD3702 传感器的示例：

- 会自动创建/更新 `<registry_path>/tmd3702_platform.prox.fac_cal` 文件，并在校准后存储偏置偏移。

### 环境光出厂校准

要校准环境光传感器：

- 确认传感器供应商指定的测试过程并运行该命令。

**命令**

ssc_drva_test -sensor=als -factory_test=2 -duration=10
    Copy to clipboard

**偏差值**

以下是 TMD3702 传感器的示例：

- 会自动创建/更新 `<registry_path>/tmd3702_platform.als.fac_cal` 文件，并在校准后存储偏置偏移。

## 执行运行时传感器校准

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

### 陀螺仪运行时校准

陀螺仪校准传感器 `gyro_cal` 在运行时校准陀螺仪。

要校准陀螺仪传感器：

1. 在保持设备静止的同时，请求陀螺仪校准传感器 `gyro_cal` 数据超过 120 秒，然后停止。
2. 执行命令后，检查接收事件中的 status 字段，了解校准精度状态。

**命令**

使用 `see_workhorse` 启用陀螺仪校准传感器 (`gyro_cal`)。

see_workhorse -sensor=gyro_cal -on_change=1 -duration=120 -display_events=1
    Copy to clipboard

**偏差值**

`<registry_path>/sns_gyro_cal_persist_sX.bias` 文件（其中，X = 传感器索引）会自动创建/更新，并在校准后存储偏置偏移：

Note

陀螺仪校准大约每 60 秒运行一次。只有在禁用陀螺仪的现有流传输客户端后，陀螺仪偏置才会存储到注册表中。

陀螺仪传感器产生的值始终是未经校准的。因此，对于需要校准陀螺仪值的客户端/算法，运行 `gyro_cal` 传感器以生成并提供校准偏移/偏置。然后可以减去从 `gyro_cal` 传感器接收到的偏置，如以下伪代码所示：

calibrated_gyro_x_val = (gyro_data.x_val - gyro_cal.x_bias);
    calibrated_gyro_y_val = (gyro_data.y_val - gyro_cal.y_bias);
    calibrated_gyro_z_val = (gyro_data.z_val - gyro_cal.z_bias);
    Copy to clipboard

### 磁力计运行时校准

磁力计校准传感器 `mag_cal` 在运行时校准磁力计。

要校准磁力计传感器：

1. 将设备带到没有磁场干扰的开放区域。
2. 流传输磁力计数据，并按运动 **8** 移动设备超过 60 秒。必须按运动 **8** 移动设备。
3. 命令执行后，检查接收事件中的 status 字段，了解校准精度状态。

**命令**

使用 `see_workhorse` 启用地磁传感器校准传感器 `mag_cal`。

see_workhorse -sensor=mag_cal -on_change=1 -duration=500 -display_events=1
    Copy to clipboard

**偏差值**

`<registry_path>/sns_mag_cal_persist_sXmY.bias` 文件（其中，X = 传感器索引，Y = 设备模式索引）会自动创建/更新，并在校准后存储偏置偏移。

Last Published: Nov 03, 2025

[Previous Topic
开发并集成自定义传感器算法](https://docs.qualcomm.com/bundle/publicresource/80-70022-7SC/topics/sample1.md) [Next Topic
测试与故障排除](https://docs.qualcomm.com/bundle/publicresource/80-70022-7SC/topics/test_troubleshoot.md)