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

# 校准传感器

对工作环境变化敏感的传感器会由于温度变化、机械磨损或工作范围偏移等因素而产生不合适的输出值。传感器校准过程包括以下内容：

* 调整或微调传感器硬件，以确保准确性并将误差降至最低。
* 将基于理论模型或标准的预期输出与传感器实际测量的输出进行比较。
* 提升性能、准确性和可靠性，确保传感器提供可靠的数据。

在成功完成校准并进行相应的注册表更新（如以下各节所述）后，`ver` 注册表项的值会递增。例如，如果注册表项中的偏置偏移量的 `ver` 值为 0，那么在成功校准并更新注册表后，注册表项会更新为新的偏置偏移量，且 `ver` 值递增为 1。

<Note>
  以下各节中提到的 <code>\<registry\_path></code> 应视为设备上已存在的路径之一：`/etc/sensors/registry/registry/` 或 `/var/cache/sensors/registry/registry/`。
</Note>

## 执行出厂传感器校准

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

### 加速度计出厂校准

要校准加速度计传感器：

* 在将设备静止放置于平坦表面上的同时运行该命令。

**命令**

```
ssc_drva_test -sensor=accel -factory_test=2 -duration=10
```

<Note>
  测试结果（`PASS` 或 `FAIL`）仅表示测试的执行状态，即测试是否完成。
</Note>

**偏置值**

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

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

### 磁力计出厂校准

要校准磁力计：

1. 从传感器供应商处获取适用于你设备的校正矩阵（`corr_matrix`）和偏置比例值（如适用）。

2. 在传感器平台特定的磁力计 JSON 文件的 `corr_matrix` 部分中设置这些值。

**命令**

磁力计出厂校准不使用命令行工具。校正矩阵值从传感器供应商处获取，并手动设置到注册表中。

**偏置值**

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

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

### 接近传感器出厂校准

要校准接近传感器：

1. 将障碍物/物体放置在距离接近传感器所需的距离处（例如 5 厘米或按照供应商提供的规格），然后运行该命令。

2. 确保测试返回 `PASS` 结果。

3. 此过程以 5 厘米作为阈值，阈值以内的距离视为近（near），超过阈值的距离视为远（far）。

**命令**

```
ssc_drva_test -sensor=prox -factory_test=2 -duration=10
```

**偏置值**

以下是 TMD3702 传感器的示例：

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

### 环境光出厂校准

要校准环境光传感器：

* 确认传感器供应商指定的测试流程，然后运行该命令。

**命令**

```
ssc_drva_test -sensor=als -factory_test=2 -duration=10
```

**偏置值**

以下是 TMD3702 传感器的示例：

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

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

运行时传感器校准是在传感器的运行阶段（而非制造阶段）对其进行调整或微调。它在传感器于真实场景中主动采集数据时动态进行。

### 陀螺仪运行时校准

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

要校准陀螺仪传感器：

1. 在保持设备静止的同时，请求陀螺仪校准传感器 `gyro_cal` 的数据超过 120 秒，然后停止。

2. 执行该命令后，检查所接收事件中的状态字段以了解校准精度状态。

**命令**

使用 `see_workhorse` 启用陀螺仪校准传感器（`gyro_cal`）。

```
see_workhorse -sensor=gyro_cal -on_change=1 -duration=120 -display_events=1
```

**偏置值**

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

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

陀螺仪传感器始终生成未校准的值。因此，对于需要校准后陀螺仪值的客户端/算法，请运行 `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);
```

### 磁力计运行时校准

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

要校准磁力计传感器：

1. 将设备带到没有磁场干扰的开阔区域。

2. 流式传输磁力计数据，并以 **8 字形**运动移动设备超过 60 秒。以 **8 字形**运动移动设备是必需的。

3. 检查所接收事件中的状态字段以了解校准精度状态。

**命令**

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

```
see_workhorse -sensor=mag_cal -on_change=1 -duration=500 -display_events=1
```

**偏置值**

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