激光雷达测距仪

"这款" Garmin / PulsedLight LIDAR-Lite 测距仪是一种低成本光学距离测量解决方案,在大多数工作条件下的测距范围为 40 米,功耗低,外形小巧。该传感器可从许多在线零售商处购买,包括 Sparkfun.技术信息 这里.

Lidar-Lite v1 & v2 的问题

在 Lidar-Lite v1 & v2 中发现了一些问题,目前尚不清楚 v3 中是否解决了这些问题。 尝试与制造商解决这些问题的努力并不完全成功。这些说明是对潜在用户的警告。

问题是

  • 蓝标 "和 "黑标 "激光雷达的真实距离偏差均为 13 米

  • 使用 "蓝标 "激光雷达时干扰其他 I2C 设备

  • 与旧式 "黑标 "激光雷达一起使用 I2C 时传感器锁定

  • GPS 对老式 "黑标 "激光雷达的干扰

13 米偏移(蓝标和黑标激光雷达)

激光雷达有时(很少)会返回比真实距离大大约 13 米的距离。I2C 和 PWM 都会出现这种情况。该问题已记录在几架不同飞机的飞行日志中,并在大量的台架测试中重现。

当问题发生时,13 米偏移量通常会锁定,因此激光雷达在飞行剩余时间内的所有读数都将是 13 米偏移量。但也有 13 米偏移在几秒或几分钟后消失的情况。

如果激光雷达电源波动过大,就更容易出现这种问题。这个问题很容易在工作台设置中重现,即激光雷达最初的供电电压低于 4V,然后电压升高。

遗憾的是,电源电压低并不是引发该问题的唯一原因,因此确保良好的电源可以降低出现该问题的概率,但并不能消除该问题。对激光雷达电源电压进行监控的多个飞行记录显示,在电源良好的情况下也会出现该问题。

这个问题没有已知的解决方法。我们已向设备制造商提供了该问题的详细跟踪记录,但没有任何解决办法。我们还使用设备制造商自己的软件和推荐的硬件设置重现了该问题。

I2C 干扰(蓝标激光雷达)

较新的蓝标激光雷达与同一总线上的其他 I2C 设备在 I2C 上存在干扰问题。特别是在与数字空速传感器使用同一 I2C 总线时,会出现空速读数不正确的情况。这一问题并非在所有飞机上都会出现,但一旦出现,结果就会非常严重,空速读数会偏差 10 米/秒以上。

尽管工作台测试已经重现了这一结果,但我们仍无法捕捉到发生这种情况的逻辑轨迹。通过 PWM 而不是 I2C 使用激光雷达可以解决这个问题。

I2C 上的传感器锁定(黑标激光雷达)

第一个问题(使用黑标激光雷达时 I2C 上的锁定)可以通过使用新的蓝标激光雷达或使用 PWM 输出方法(最好带有复位引脚)来解决。这个问题并不常见,但在台架测试中,遮住激光雷达镜片就很容易重现。当激光雷达读取短距离时,似乎更容易出现这种情况。该问题有两种表现形式,一种是通过发送 I2C 复位命令来解决锁定问题,另一种则对 I2C 复位没有响应。

GPS 干扰(黑标激光雷达)

老式黑标激光雷达会对 GPS 造成严重干扰。具体表现为开机时 GPS 锁定时间更长,锁定后 GPS 噪音水平更高,导致 GPS 精度降低。测试表明,干扰包括传导干扰和辐射干扰。

将激光雷达放置在离 GPS 越远越好的地方,这样做有帮助,但并不能完全解决这个问题。

通过 I2C 连接

警告

2015 年 2 月之前生产的激光雷达存在 I2C 接口通信问题。对于这些激光雷达,请使用 PWM 连接。

连接器电缆的一端是 6 针 CLIK Mate 连接器,另一端是镀锡引线。引线应焊接到 DF13 或 JST 连接器上,并连接到(飞行)控制器的 I2C 端口,如下图所示

测距仪的电源应由单独的外部 BEC 提供,如下图所示。

../_images/lidar-lite-pixhawk-i2c.jpg

设置以下参数:

  • RNGFND1_TYPE = 3 "LidarLite-I2c"

  • RNGFND1_MAX_CM = 3500(激光雷达能准确报告的最大范围,以厘米为单位)

  • RNGFND1_MIN_CM = 20(激光雷达能准确报告的最小范围,以厘米为单位)

通过 PWM 连接

建议使用 PWM 接口,因为它可以避免 I2C 接口的一些问题。

如下图所示,将激光雷达连接到(飞行)控制器的后伺服轨道和 BEC 或 ESC(提供电源):

./_images/lidar-lite-pixhawk-pwm.png

电阻可在 200 欧姆和 1k 欧姆之间。在模式控制引脚(编号 "5")和地(编号 "3")之间连接一个电阻,可使激光雷达进入连续采集模式。

设置以下参数:

  • RNGFND1_TYPE = 5 "PWM"

  • RNGFND1_PIN = 54 "AUX5"(如果使用 4.0.0 或更高版本,则可使用任何辅助输出)。

  • RNGFND1_MAX_CM = 3500(激光雷达能准确报告的最大范围,以厘米为单位)

  • RNGFND1_MIN_CM = 20(激光雷达能准确报告的最小范围,以厘米为单位)

  • rngfnd1_scaling = 1(对于某些单位,"0.8 "可能会产生更准确的读数)

  • RNGFND1_OFFSET = 0

  • BRD_PWM_COUNT = 4(确保 AUX5 不作为伺服输出使用)

备注

在固件 4.2 及更高版本中,将 PWM/SERVO/MOTOR 输出设置为 GPIO 功能的方法有所改变。而不是 BRD_PWM_COUNT 个人 SERVOx_FUNCTION 参数仅设置为"-1"。如果设置为 "0",则仍为 PWM 输出,未指定功能,并在电路板安全未激活时输出该输出的微调值。如果舵机功能被 "镜像 "到远程设备(如 DroneCAN 或 KDECAN ESC),那么要将自动驾驶板的相应输出引脚改为 GPIO,但允许 SERVOx_FUNCTION 仍分配给远程设备,则 servo_gpio_mask 参数可用于将电路板引脚指定为 GPIO,而不影响 SERVOx_FUNCTION 远程设备的分配。

可选省电功能

使用 PWM 驱动器时,您可以选择配置激光雷达,使其在载具距离地形超过指定高度(使用 SRTM 高度)时禁用,这样可以节省约 100mA 的电流。

../_images/lidar-lite-pixhawk-pwm-with-trigger.png

设置以下参数:

  • rngfnd1_stop_pin 至 55 "AUX6"(也可使用其他辅助引脚)

  • RNGFND1_PWRRNG 以米为单位的地形高度,超过该高度将禁用激光雷达以节省电能

当地形数据显示载具位于 RNGFND1_PWRRNG 高度 rngfnd1_stop_pin 将用于禁用激光雷达

测试传感器

传感器读取的距离可在Mission Planner地面站飞行数据屏幕的状态选项卡中查看。仔细查看 "sonarrange"(声纳范围)。最好将激光雷达放置在距大面积平墙几个已知距离(1 米、3 米、5 米)处进行测试。如果激光雷达的读数经常出现固定偏移量的错误,例如在每个距离上总是偏差 50 厘米,则调整 "声纳范围 "选项卡。 RNGFNDx_OFFSET 参数的正确数量。但是,如果它每次都以不同的数量误差了距离,那么 RNGFNDx_SCALING 参数需要更改。更新它(也许是 1.1 或 0.9),然后再次测试,重复直到正确为止。

../_images/mp_rangefinder_lidarlite_testing.jpg

视频指南

下面的视频指南显示了使用 PWM 进行的设置,但基于的是过时的说明,而且跳过了以下设置步骤 RNGFND1_PIN 规范