# 热校准和补偿

PX4 包含校准和补偿加速度计、陀螺仪、磁力计和气压传感器的功能,以消除传感器温度变化对传感器偏置的影响。

本主题详细介绍了 测试环境校准程序.最后还介绍了 执行.

备注

热校准后,热校准参数 (TC_*)用于 一应俱全 校准/补偿各传感器。因此,任何后续标准校准都将更新 TC_* 参数,而不是正常参数; SYS_CAL_* 校准参数(在某些情况下,这些参数可能会被重置)。

备注

PX4 v1.14 及以下版本不支持磁强计热校准。

# 测试设置/最佳实践

校准程序 以下各节中介绍的运行模式,最好是在"...... 环境室 (在温度和湿度受控的环境中),电路板从最低工作/校准温度加热到最高工作/校准温度。在开始校准之前,电路板首先要 浃冷 (冷却至最低温度并使其达到平衡)。

备注

有源电热元件会影响磁力计校准值。确保加热元件处于非活动状态或离传感器足够远,以避免在磁强计校准中产生噪声。

冷浸时,可以使用普通家用冷冻箱达到零下 20 摄氏度,商用冷冻箱可以达到零下 40 摄氏度左右。电路板应放置在装有硅胶包的密封/防静电袋中,电源线从密封孔中伸出。冷浸后,可将袋子移至测试环境中,并在同一袋子中继续进行测试。

备注

袋子/二氧化硅的作用是防止电路板上产生冷凝水。

没有商业级环境箱也可以进行校准。可以使用一个内部装有极少量空气的泡沫塑料箱来创建一个简单的环境箱。这样自动驾驶仪就能相对较快地对空气进行自我加热(确保盒子上有一个小孔,以平衡环境室压,但仍能在内部升温)。

使用这种装置可以将电路板加热到约 70 摄氏度。轶事证据表明,许多普通电路板都可以加热到这个温度,而不会产生不良副作用。如有疑问,请向制造商咨询安全操作范围。

TIP

要检查机载热校准状态,请使用 MAVlink 控制台(或 NuttX 控制台)检查传感器报告的内部温度。

# 校准程序

PX4 支持两种校准程序:

  • 机载 - 校准在电路板上进行。这种方法需要了解测试装置可达到的温升幅度。
  • 机外 - 补偿参数是根据校准过程中收集的日志信息在开发计算机上计算出来的。通过这种方法,用户可以直观地检查数据和曲线拟合的质量。

机外方法更复杂,速度更慢,但对测试设置的要求更低,也更容易验证。

# 机载校准程序

板载校准完全在设备上运行。它需要了解测试装置可达到的温升幅度。

执行机载校准:

  1. 确保在校准前设置了框架类型,否则在设置电路板时将丢失校准参数。
  2. 给电路板供电并设置 SYS_CAL_* 参数为 1,以便在下次启动时校准所需的传感器。[^1]
  3. 设置 SYS_CAL_TDEL 参数为板载校准器完成校准所需的温度上升度数。如果该参数过小,校准将提前完成,并且校准的温度范围不足以在板完全预热时进行补偿。如果该参数设置过大,则板载校准器将永远无法完成校准。 在设置该参数时,应考虑到电路板自加热导致的温度升高。如果传感器的温升量未知,则应使用板外方法。
  4. 设置 SYS_CAL_TMIN 将参数设置为希望校准器使用的最低温度数据。这样就可以使用较低的冷浸环境温度来缩短冷浸时间,同时保持对校准最低温度的控制。如果传感器的数据低于该参数设定的值,校准器将不会使用。
  5. 设置 SYS_CAL_TMAX 参数为校准器应接受的传感器最高起始温度。如果起始温度高于该参数设定的值,校准将以错误结束。请注意,如果不同传感器之间的测量温度差超过了 SYS_CAL_TMAXSYS_CAL_TMIN则无法开始校准。
  6. 断电并冷浸电路板,使其低于电路板指定的起始温度。 SYS_CAL_TMIN 参数。请注意,在校准开始之前,启动时会有 10 秒钟的延迟,以便让传感器稳定下来,在此期间传感器内部会升温。
  7. 保持电路板静止不动[^2],接通电源并升温至足够高的温度,以达到温度升高曲线[^3]指定的温升。 SYS_CAL_TDEL 参数。校准期间,完成百分比将打印到系统控制台。[^3]
  8. 校准完成后,断开电源,让电路板冷却到校准范围内的温度,然后再执行下一步。
  9. 通过系统控制台执行 6 点加速校准,使用 指挥官校准加速度 或通过 QGroundControl.如果是首次设置电路板,还需要执行陀螺仪和磁力计校准。
  10. 在进行任何传感器校准后,都应在飞行前重新为电路板供电,因为校准后偏移量的突然变化可能会扰乱导航估计器,而且某些参数在下次启动前不会被使用这些参数的算法加载。

# 机外校准程序

机外校准是利用校准测试期间收集的数据在开发计算机上运行。这种方法提供了一种直观检查数据质量和曲线拟合的方法。

执行机外校准:

  1. 确保在校准前设置了框架类型,否则在设置电路板时将丢失校准参数。

  2. 打开电路板电源,设置 TC_A_ENABLE, TC_B_ENABLE, TC_G_ENABLETC_M_ENABLE 参数 1.

  3. 设置所有 CAL_ACC*, CAL_GYRO*, CAL_MAG*CAL_BARO* 参数设置为默认值。

  4. 设置 SDLOG_MODE 参数设置为 2 以启用启动数据记录。

  5. 设置 SDLOG_PROFILE 的复选框 热校准 (位)记录校准所需的原始传感器数据。

  6. 将电路板冷浸到需要运行的最低温度。

  7. 接通电源,保持电路板不动 [^2],慢慢加热至所需的最高工作温度。[^3]

  8. 移除电源并提取 .ulog 文件。

  9. 固件/工具 目录,并运行 python 校准脚本:

    python process_sensor_caldata.py <;.ulog 文件的完整路径名>;
    

    这将生成一个 .pdf 文件,显示每个传感器的测量数据和曲线拟合结果,以及一个 .参数 文件,其中包含校准参数。

  10. 为电路板供电,连接 QGroundControl 并从生成的 .参数 使用 QGroundControl.由于参数较多,加载可能需要一些时间。

  11. 参数加载完成后,设置 SDLOG_MODE 调至 1 以重新启用正常记录并断电。

  12. 接通电路板电源,使用以下命令执行正常的加速度传感器校准 QGroundControl.重要的是,必须在电路板处于校准温度范围内时执行此步骤。由于偏移量的突然变化可能会扰乱导航估计器,而且某些参数在下次启动前不会被使用这些参数的算法加载,因此在完成此步骤后,必须在飞行前重新为电路板供电。

# 实施细节

校准是指测量传感器值在一定内部温度范围内的变化,并对数据进行多项式拟合,计算出一组系数(作为参数存储),用于校正传感器数据的过程。补偿是指使用内部温度计算偏移量,从传感器读数中减去该偏移量,以校正随温度变化的偏移量。

加速度计、陀螺仪和磁力计传感器偏移量使用三阶多项式计算,而气压传感器偏移量则使用五阶多项式计算。拟合示例如下:

热校准加速

热校准陀螺仪

热校准磁场

热校准气压计

# 校准参数存储

在现有的参数系统实施中,我们只能将结构中的每个值存储为单独的条目。为了解决这一限制,我们对结构体使用了以下逻辑命名约定 热补偿参数:

TC_[类型][实例]_[cal_name]_[轴线]

在哪里?

  • 类型是一个字符,表示传感器的类型,其中 A = 加速计、 G = 速率陀螺仪、 M = 磁强计,以及 B = 晴雨表。

  • 实例:是一个整数 0、1 或 2,最多可校准三个相同的传感器。 类型.

  • cal_name是一个字符串,用于标识校准值。它有以下可能的值:

    • Xn:多项式系数,其中 n 是系数的阶数,例如 X3 *(温度-参考温度)**3.
    • SCL:比例系数。
    • TREF参考温度(摄氏度)。
    • TMIN:最低有效温度(摄氏度)。
    • TMAX:最高有效温度(摄氏度)。
  • 轴线:是一个整数 0、1 或 2,表示校准数据用于电路板参考框架中的 X、Y 或 Z 轴。对于气压传感器, 轴线 后缀被省略。

例如

  • TC_A1_TREF 是第二个加速度计的参考温度。
  • TC_G0_X3_0^3 第一个陀螺仪 X 轴的系数。

# 校准参数的使用

热偏移校正(使用校准参数)在 传感器模块.从测量温度中减去参考温度,得到三角温度:

delta = 测量温度 - 参考温度

然后利用三角温度计算偏移量,其中

偏移 = X0 + X1*delta + X2*delta**2 + ...+ Xn*delta**n

然后使用偏移量和温度比例因子来校正传感器的测量值:

校正测量值 = (原始测量值 - 偏移) * 比例因子

如果温度超过了由 *_TMIN*_TMAX 参数,则测量温度将被削去,以保持在限值范围内。

加速度计、陀螺仪、磁力计或气压计数据的修正可通过设置 TC_A_ENABLE, TC_G_ENABLE, TC_M_ENABLETC_B_ENABLE 参数分别为 1。

# 与传统系统兼容 CAL_* 参数和指挥官控制的校准

传统的与温度无关的 PX4 速比陀螺仪和加速度计传感器校准由指令模块执行,包括调整偏移量和加速度计校准情况下的比例因子校准参数。偏移和比例因子参数应用于每个传感器的驱动程序中。这些参数可在 CAL 参数组.

板载温度校准由事件模块控制,校正在传感器模块内应用,然后再发布传感器组合 uORB 主题。这意味着,如果使用热补偿,则在执行热校准之前,必须将所有相应的传统偏移和比例因子参数设置为默认的零和一。如果执行的是板载温度校准,则会自动完成,但如果执行的是板外校准,则必须将传统的 校准*关闭CAL*SCALE 在记录校准数据前重置参数。

如果通过设置 TC_A_ENABLE 如果将参数设置为 1,则仍可执行由指挥器控制的 6 点加速度校准。不过,调整 *关闭*比例 中的参数 CAL 参数组,这些参数设置为默认值,而热补偿 X0SCL 参数进行调整。

如果陀螺仪热补偿已通过设置 TC_G_ENABLE 如果将该参数设置为 1,则仍可执行指令器控制的陀螺仪校准,但会按角速度偏移归零所需的量上移或下移补偿曲线。它通过调整 X0 系数来实现这一目的。

如果通过设置 TC_M_ENABLE 如果将参数设置为 1,则仍可执行由指挥器控制的 6 点加速度校准。不过,调整 *关闭*比例 中的参数 CAL 参数组,这些参数设置为默认值,而热补偿 X0SCL 参数进行调整。

# 局限性

由于很难在不同温度下测量刻度因数,因此假定刻度因数是温度不变的。这就限制了加速度计校准对具有稳定比例因子的传感器模型的作用。理论上,如果有一个能够将 IMU 内部温度控制在一度以内的热室或 IMU 加热器,就可以执行一系列 6 面加速度计校准,并对加速度计的偏移和比例因子进行修正。由于将所需的电路板移动与校准算法整合在一起的复杂性,这一功能并未包括在内。


[^1]:"[^1]: SYS_CAL_ACCEL, SYS_CAL_BAROSYS_CAL_GYRO 参数在校准开始时重置为 0。[^2]:校准气压传感器偏移需要一个稳定的气压环境。气压会因天气变化而缓慢变化,建筑物内的气压会因外部风力波动和暖通空调系统运行而快速变化。[^3]:在加热冷浸的电路板时必须小心谨慎,以免在电路板上形成冷凝水,从而在某些情况下造成电路板损坏。