(25)(25.1) 光学流量传感器的测试和设置

文章目录

25.1.1 测试传感器

25.1.2 校准传感器

25.1.3 测距传感器检查

25.1.4 预解锁检查

25.1.5 首次飞行

25.1.6 第二次飞行

25.1.7 正常操作设置

25.1.8 视频示例(Copter-3.4)

25.1.9 空中校准


25.1.1 测试传感器

将传感器连接至自动驾驶仪后,使用 Mission Planner 连接至自动驾驶仪并打开"飞行数据"屏幕的"状态"选项卡。如果传感器正在运行,你将看到 opt_m_xopt_m_yopt_qua 值均不为零。

(25)(25.1) 光学流量传感器的测试和设置_第1张图片

25.1.2 校准传感器

1. 连接自动驾驶仪,并将 LOG_DISARMED 设置为 1,确保启用加锁时的日志记录功能。

2. 找一个表面有纹理、光线充足(自然光或强烈的白炽灯)的地方。

3. 拆除螺旋桨(安全第一)。

4. 接通飞行器电源,将水平仪放在远离身体和眼睛的位置。

5. 在大约一秒钟的时间内,围绕横滚轴的飞行器旋转 -15+15 度,然后再返回。重复 510 次。在旋转过程中,闭上一只眼睛,就能使传感器中心与背景保持静止。

6. 围绕飞行器俯仰轴重复。

7. 下载数据闪存日志,绘制 OF.flowXOF.bodyXIMU.GyrX 数据。它应该是这样的。

(25)(25.1) 光学流量传感器的测试和设置_第2张图片

8. 如果 OF.flowX 大于或小于 OF.bodyX,则可以通过更改 FLOW_FXSCALER 参数来进行调整。

9. 如果 OF.bodyXIMU.GyrX 不相关或符号相反,则可能是 FLOW_ORIENT_YAW 参数设置错误或流量传感器未朝向下方。

10. 绘制 OF.flowYOF.bodyYbandIMU.GyrY 数据。它应该是这样的。

(25)(25.1) 光学流量传感器的测试和设置_第3张图片

11. 如果 OF.flowY 大于或小于 OF.bodyY,则可以通过更改 FLOW_FYSCALER 参数进行调整。

12. 如果 OF.bodyYIMU.GyrY 不相关或符号相反,则 FLOW_ORIENT_YAW 参数可能设置错误,或者流量传感器没有朝下。

25.1.3 测距传感器检查

检查流量传感器校准测试闪存日志中的 EKF5.meaRng 信息。检查以下内容:

1. 可进行连续量程测量。

2. 它在地面上输出的距离是预期值的 10cm(请记住,在车辆横滚或俯仰时,测得的距离会增加,因为激光是在斜面上测量的)。

25.1.4 预解锁检查

要允许在没有 GPS 的情况下在 Loiter 解锁和起飞,应关闭 GPS 解锁检查,如下图所示。取消选中"全部"和"GPS",并选中所有其他选项。

(25)(25.1) 光学流量传感器的测试和设置_第4张图片

由于启用光流时需要声纳/测距仪数据良好,因此需要执行额外的解锁前检查。

在飞行器加锁时,应将飞行器直升至至少 50cm 但不超过 2m 的高度(如果测距仪显示距离超过 2m,则需要重新启动自动驾驶仪)。

当解锁检查失败时,错误信息为"PreArm: check range finder(预解锁:检查测距仪)"。

可以通过取消选中"参数/声纳"解锁检查来禁用该检查。

25.1.5 首次飞行

1. 对于 EKF2,设置 EK2_GPS_TYPE = 0;对于 EKF3,设置 EK3_SRC1_VELXY = 0(我们不希望 EKF 在此阶段使用光流)。

2.50cm3m 的高度范围内,以小倾角在 STABILIZEAltHold 条件下悬停(旋翼),或在 QSTABILIZEQHOVER 条件下悬停(四旋固定翼)。

3. 下载闪存日志,并在 Mission Planner 中绘制以下内容。

4. EKF5.meaRng 应与飞行器高度变化相关联。

5. OF.flowXOF.flowY 应该是变化的。

6. OF.bodyXOF.bodyY 应与 IMU.GyrXIMU.GyrY 一致。

25.1.6 第二次飞行

Warning

要安全地完成这次飞行,飞行器周围至少需要 15m 的净空。如果光流速度估计不准确,你将几乎没有预警,飞行器可能会很快倾斜到最大倾斜角。

1. 对于 EKF2,设置 EK2_GPS_TYPE = 3;对于 EKF3,设置 EK3_SRC1_VELXY = 5EK3_SRC1_POSXY  = 0,以使 EKF 忽略 GPS 并使用流量传感器。

2. 确保发射机上有可用的 Loiter 和悬停模式。

3. 在地面控制站地图上设置"EKF 原点"。在 Mission Planner 中单击右键,选择"在此设置Home点",并选择设置"在此设置 EKF 原点"。

4.Loiter 状态下起飞,将旋翼飞机/四翼飞机升至约 1m 的高度。

5. 如果飞行器开始加速离开或出现不稳定的俯仰或横滚运动,则切换到悬停和着陆。你需要下载日志文件并在论坛(the forums)上分享,以了解原因。

6. 如果它能保持位置不变,那么恭喜你,你成功了,现在可以开始尝试改变高度,并在 Loiter 模式下移动它了。

25.1.7 正常操作设置

For EKF2

1. 验证 EK2_ENABLE = 1,启用 EKF2

2. 根据光学流量传感器设置 EK2_FLOW_DELAY

3. 要只使用光流量传感器而不使用 GPS,请将 EK2_GPS_TYPE 设置为 3;要与光流量传感器一起使用 GPS,请将其设置为 0

For EKF3

Note

ArduPilot 固件 4.1 及更高版本默认启用并使用 EKF3

1. 验证 EK3_ENABLE = 1,启用 EKF3

2. 设置 AHRS_EKF_TYPE = 3 以使用 EKF3

3. 设置 EK3_SRC_OPTIONS = 0 可禁用 FuseAllVelocities

4. 根据光学流量传感器设置 EK3_FLOW_DELAY

5. 设置 EK3_SRC1_POSXY = 3(来自 GPS 的主水平位置,设置为 0 时只使用光流量传感器)。

6. 设置 EK3_SRC1_VELXY = 5(来自 OpticalFlow 的主要水平速度)。

7. 设置 EK3_SRC1_POSZ = 1(来自气压计的主垂直位置)。

8. 设置 EK3_SRC1_VELZ = 0(无主垂直速度传感器)。

9. 设置 EK3_SRC1_YAW = 1(来自罗盘的主偏航/航向)。

  • 此外,GPS 还可以使用 EKF 光源切换功能与 OpticalFlow 协同工作。
  • 有关 EKF 信号源切换的信息,请参阅 GPS / Non-GPS Transitions。

Note

当旋翼飞机启用了光流传感器(以及测距仪)并将其指定为唯一的水平位置源(例如,`EK3_SRCx_VELXY``=OpticalFlow`EK3_SRCx_POSXY``=None),且飞行器以需要位置估计的飞行员控制模式飞行(即 LoiterPosHold)时,飞行器将不会爬升到测距仪在 `RNGFNDx_MAX_CM 中指定的最大高度之上。这是一种安全机制,否则当飞行器飞出测距仪范围时就会触发 EKF 故障安全。

25.1.8 视频示例(Copter-3.4)

25.1.9 空中校准

Copter-4.2.0 包含飞行校准程序:

1. 设置 RCx_OPTION = 158(光流校准)以允许从辅助开关(auxiliary switch)启动校准。

2.EKF3 设置为使用 GPS(默认值)。

  • EK3_SRC1_POSXY = 3 (GPS)
  • EK3_SRC1_POSZ = 1 (Baro)
  • EK3_SRC1_VELXY = 3 (GPS)
  • EK3_SRC1_VELZ = 3 (GPS)
  • EK3_SRC1_YAW = 1 (Compass)
  • EK3_SRC_OPTIONS = 0 (Disable FuseAllVelocities)

3.Loiter 模式下将飞行器飞行至少 10m(越高越好,但要在测距仪的限制范围内)。

4. 将辅助开关拉高以启动校准。

5. 使用横滚杆和俯仰杆来回摇摆飞行器的横滚和俯仰方向。

6. 检查 GCS "信息"选项卡是否有如下确认校准完成的输出结果。

FlowCal: Started

FlowCal: x:0% y:0%

FlowCal: x:66% y:6%

FlowCal: x:100% y:74%

FlowCal: samples collected

FlowCal: scalarx:0.976 fit: 0.10   <-- lower "fit" values are better

FlowCal: scalary:0.858 fit: 0.04

FlowCal: FLOW_FXSCALER=30.00000, FLOW_FYSCALER=171.0000

7. 降落飞行器并设置 EKF3 以使用 OpticalFlow

  • EK3_SRC1_POSXY = 0 (None)
  • EK3_SRC1_VELXY = 5 (Optical Flow)
  • EK3_SRC1_POSZ = 1 (Baro)
  • EK3_SRC1_VELZ = 0 (None)
  • EK3_SRC1_YAW = 1 (Compass)
  • EK3_SRC_OPTIONS = 0 (Disable FuseAllVelocities)

8. 再次试飞飞行器以检查性能。

另一种方法可以避免在校准和测试之间降落和更改 EKF3 参数,即设置 GPS/Non-GPS 转换(GPS/Non-GPS transitions),以便飞行员在飞行中手动在 GPS 和光流之间切换。假设飞行员使用遥控输入 82 位开关)启动校准,并使用遥控输入 93 位开关)在 GPS 和光流之间切换,则完整的参数列表如下:

  • RC8_OPTION = 158 (Optflow Calibration)
  • RC9_OPTION = 90 (EKF Pos Source) low is GPS, middle is OpticalFlow, high is unused
  • EK3_SRC1_POSXY = 3 (GPS)
  • EK3_SRC1_POSZ = 1 (Baro)
  • EK3_SRC1_VELXY = 3 (GPS)
  • EK3_SRC1_VELZ = 3 (GPS)
  • EK3_SRC1_YAW = 1 (Compass)
  • EK3_SRC2_POSXY = 0 (None)
  • EK3_SRC2_VELXY = 5 (Optical Flow)
  • EK3_SRC2_POSZ = 1 (Baro)
  • EK3_SRC2_VELZ = 0 (None)
  • EK3_SRC2_YAW = 1 (Compass)
  • EK3_SRC_OPTIONS = 0 (Disable FuseAllVelocities)

Note

要使用飞行校准,必须启用 EKF3。这是 ArduPilot 4.1 及更高版本的默认设置。

你可能感兴趣的:(#,《Copter—外设硬件》,开源,无人机,外设硬件,Copter,ArduPilot)