跳到主要内容

软件更新日志 2021 - 2023

2023.6 (4/18/23)

简易 ChArUco 标定 & 标定可视化工具

  • ChArUco 标定被认为优于棋盘格标定,因为它能处理遮挡、错误的角点检测,并且不需要整个标定板都可见。这使得在图像边缘和角落附近捕获标定板角点变得更加容易。这对于畸变系数估计至关重要。
  • Limelight 的标定过程在每一步都提供反馈,并确保您完成所有必要的步骤以获得良好的标定结果。我们投入了大量精力使这个过程尽可能万无一失。
  • 最重要的是,您可以在默认标定旁边直接可视化您的标定结果。一眼就能了解您的标定结果是否合理。
  • 您还可以将标定仪表板用作学习工具。您可以修改下载的标定结果文件并重新上传,以了解内参矩阵和畸变系数如何影响目标检测结果、视场角等。
  • 请观看此视频:

2023.5.1 & 2023.5.2 (3/22/23)

  • 修复了 2023.5.0 中引入的回归问题 - 虽然 2023.5 修复了所有非平面布局的 megatag,但它降低了单标签位姿估计的性能。此问题已修复。单标签位姿估计使用与 2023.4 中完全相同的求解器。

  • 更流畅的快照界面。快照网格现在加载低分辨率 128p 缩略图。

  • Limelight Yaw 现在在 3D 可视化器中正确显示。在可视化器和内部都是逆时针为正。

  • 在场地空间可视化器中指示当前正在跟踪的目标


2023.5.0 (3/21/23)

重大变更

  • 修复回归问题 - Limelight 机器人空间 "Yaw" 在之前的版本中是反向的。Web UI 中的 Limelight yaw 现在内部为逆时针正向。

区域选择更新

  • 区域选择现在在神经网络检测器管道中按预期工作。
  • 添加 5 个新的区域选项,可选择未旋转目标矩形的中心、顶部、左侧、右侧、顶部或底部。

"hwreport" REST API

  • :5807/hwreport 将返回一个 JSON 响应,详细说明相机内参和畸变信息

MegaTag 修复

  • 某些非共面 AprilTag 布局在 MegaTag 中存在问题。此问题已修复,现在所有场地标签的位姿估计都很稳定。这使得在更远距离上也能实现稳定的位姿估计。

更高的 tx 和 ty 精度

  • TX 和 TY 比以往更加准确。目标完全去畸变,视场角完全由相机内参决定。

2023.4.0 (2/18/23)

神经网络检测器类别过滤

指定您想要跟踪的类别,轻松过滤不需要的检测结果。

神经网络检测器扩展支持

支持任意输入分辨率,支持额外的输出形状以支持其他目标检测架构。现在支持基于 EfficientDet0 的模型。


2023.3.1 (2/14/23)

AprilTag 精度改进

改进了所有型号的内参矩阵,最重要的是改进了畸变系数。单个 AprilTag 定位有明显改进。

检测器上传

检测器上传已修复。


2023.3 (2/13/23)

捕获延迟 (NT Key: "cl", JSON Results: "cl")

新的捕获延迟条目表示从 Limelight 图像传感器中间行曝光结束到处理管道开始之间的时间。

AprilTag 新质量阈值

现在可以使用新的质量阈值滑块更轻松地过滤掉虚假的 AprilTag。2023.3 中设置的默认值应该可以消除大多数虚假检测。

机器人空间中的相机位姿覆盖 (NT Keys: "camerapose_robotspace_set", "camerapose_robotspace")

您的 Limelight 在机器人空间中的位置现在可以即时调整。如果该键设置为全零数组,则使用 Web 界面中设置的位姿。

这是一个安装在升降机上的 Limelight 示例: Limelight on Elevator

增加最大曝光时间

最大曝光时间现在为 33ms(从 12.5 ms 增加)。高帧率捕获模式仍然限制为 (1/fps) 秒。例如,90hz 管道在曝光时间超过 11ms 后图像不会更亮。

Botpose 更新

NetworkTables 中的所有三个 botpose 数组都有第七个条目,表示总延迟(捕获延迟 + 目标检测延迟)。

错误修复

  • 修复 Shuffleboard 中的 LL3 MJPEG 流
  • 修复 camMode - 驾驶员模式现在产生明亮、可用的图像。
  • 曝光标签已更正 - 每个"刻度"代表 0.01ms 而不是 0.1 ms
  • 修复神经网络检测器上传

2023.2 (1/28/23)

让 3D 比以往更简单。

WPILib 兼容的 Botpose

Botpose 现在开箱即用更加简单。

这些与 WPILib 坐标系统匹配。megatag botpose example:

所有 botpose 都直接打印在 Web 界面的场地空间可视化器中,使您可以一目了然地确认一切正常工作。

更轻松访问 3D 数据(重大变更)

目标空间中的机器人位姿可以说是 Limelight 在 AprilTag 方面输出的最有用的数据。仅使用此数据,您就可以完美地将底盘与场地上的 AprilTag 对齐。

  • NetworkTables Key "campose" 现在是 "camerapose_targetspace"
  • NetworkTables Key "targetpose" 现在是 "targetpose_cameraspace"
  • 新 NetworkTables Key - "targetpose_robotspace"
  • 新 NetworkTables Key - "botpose_targetspace"

神经网络上传

将 teachable machine 模型上传到 Limelight 分类器管道。确保它们是 Tensorflow Lite EdgeTPU 兼容模型。 分别上传 .tflite 和 .txt 标签文件。


2023.1 (1/19/23)

MegaTag 和性能提升

纠正一个错误

UI 中的默认标记尺寸参数已更正为 152.4mm(从 203.2mm 降低)。这是大多数精度问题的根源。

提高跟踪稳定性

有多种方法可以调整 AprilTag 检测和解码。我们全面提高了稳定性,特别是在低光/低曝光环境中。

超快灰度化

灰度化速度比以前快 3-6 倍。团队在跟踪 AprilTag 时将始终看到灰度视频流。

裁剪以提高性能

AprilTag 管道现在有裁剪滑块。裁剪图像将在任何分辨率下提高帧率。

更简单的过滤

AprilTag 管道中现在只有一个"ID 过滤器"字段,用于过滤 JSON 输出、启用 botpose 的标签和启用 tx/ty 的标签。双过滤器设置存在错误且令人困惑。

重大变更

NT Key "camtran" 现在是 "campose"

JSON 更新

"botpose" 现在是 json 结果转储的一部分

场地空间可视化器更新

场地空间可视化器现在显示 2023 FRC 场地。现在应该更容易一目了然地判断 botpose 精度。

Limelight MegaTag(新 botpose)

我的首要任务是重写 botpose 以获得更高的精度、更低的噪声和抗歧义性。Limelight 的新 botpose 实现称为 MegaTag。MegaTag 不是通过对多个单独的场地空间位姿进行简单平均来计算 botpose,而是本质上将所有标签组合成一个具有多个关键点的巨大 3D 标签。这具有巨大的好处。

以下 GIF 显示了一个旨在诱发标签翻转的情况:绿色圆柱体:单个标签的机器人位姿 蓝色圆柱体:2023.0.1 BotPose 白色圆柱体:新 MegaTag Botpose

注意新的 botpose(白色圆柱体)与旧的 botpose(蓝色圆柱体)相比非常稳定。您也可以观察 tx 和 ty 值。

这是完整屏幕,显示标签歧义:

以下是优点:

如果有多个标签在视野中,Botpose 现在对歧义(标签翻转)具有弹性(除非它们靠近且共面。理想情况下关键点不共面)。如果有多个标签在视野中,Botpose 现在对标签角点噪声更具弹性。标签之间的距离越远越好。这不限于平面标签。它可以扩展到任意数量的完整 3D 标签和任何方向。地板标签和天花板标签将完美工作。

这是一个图表,演示了这在简单平面情况下如何工作的一个方面。实际结果比所描述的更好,因为所描述的 MegaTag 对三个点而不是一个点应用了显著的误差。随着 3D 组合 MegaTag 尺寸和关键点数量的增加,其稳定性也会增加。

神经网络上传将推迟到 2023.2!


2023.0.0 和 2023.0.1 (1/11/23)

引入 AprilTag、机器人定位、深度神经网络、重写的截图界面等。

功能、变更和错误修复

  • 新的传感器捕获管道和增益控制
    • 我们的新捕获管道允许曝光时间比 2022 年短 100 倍。新管道还启用了增益控制。这对于 AprilTag 跟踪非常重要,并将使回射目标跟踪比以往更加可靠。在 Limelight OS 2023 之前,Limelight 的传感器增益是不确定的(我们实施了一些技巧使其仍然可以工作)。
    • 使用新的"传感器增益"滑块,团队现在可以在不触及曝光滑块的情况下使图像比以往更暗或更亮。增加增益会增加图像中的噪声。
    • 结合较低的增益和新的较低曝光时间,现在可以在全亮度 LED 和回射目标的情况下产生几乎完全黑暗的图像。这将有助于在跟踪回射目标时减轻 LED 和阳光反射的影响。
    • 通过增加传感器增益和减少曝光,团队将能够在跟踪 AprilTag 时最大限度地减少由于高曝光时间导致的运动模糊影响。
    • 我们在开发这个新管道的同时保留了所有功能 - 90fps、硬件变焦等。
  • 更多分辨率选项
    • LL1、LL2 和 LL2+ 有两个新的捕获分辨率:640x480x90fps 和 1280x960x22fps
  • 优化的 Web 界面
    • Web GUI 现在在机器人网络上的加载和初始化速度最高可提高 3 倍。
  • 重写的快照界面
    • 快照功能已完全重写,允许图像上传、图像下载和图像删除。文档中还详细介绍了用于捕获快照的新 API。
  • SolvePnP 改进
    • 我们基于 solvePnP 的相机定位功能存在一个严重的错误,每四帧就会严重限制其精度。此问题已解决,并为回射/颜色 SolvePNP 可视化构建了全新的完整 3D 画布。
  • Web 界面错误修复
    • 2022 年有一个极其罕见的问题,导致 Web 界面在刷机后首次启动时永久损坏,迫使用户重新刷机。根本原因已找到并永久修复。
  • 新 API
    • Limelight 现在包括 REST 和 Websocket API。REST、Websocket 和 NetworkTables API 都支持新的 JSON 转储功能,该功能以人类可读、易于解析的格式列出所有目标的所有数据,适用于 FRC 和所有其他应用程序。

零代码基于学习的视觉 & Google Coral 支持

  • 所有 Limelight 型号现在都支持 Google Coral。Google Coral 是一个 4TOPs(每秒万亿次运算)USB 硬件加速器,专为 8 位神经网络推理而构建。
  • 就像几年前的回射目标跟踪一样,FRC 机器人上基于学习的视觉的入门门槛对于普通团队来说太高了,甚至无法尝试。我们已经开发了所有必要的基础设施,使基于学习的视觉像使用 Limelight 的回射目标一样简单。
  • 我们有一个云 GPU 集群、训练脚本、数据集聚合工具和一个人工标注团队随时待命。我们很高兴首次将深度神经网络带给 FRC 社区。
  • 我们目前支持两种类型的模型:目标检测模型和图像分类模型。
    • 目标检测模型将为所有检测到的对象提供"类别 ID"和边界框(就像我们的回射目标一样)。这非常适合实时游戏道具跟踪。
    • 图像分类模型将摄取图像并产生单个类别标签。
      • 要了解更多信息并开始为 Limelight 训练您自己的模型,请查看 Google 的 Teachable Machine。
      • https://www.youtube.com/watch?v=T2qQGqZxkD0
      • Teachable machine 模型与 Limelight 直接兼容。
      • 图像分类器可用于分类内部机器人状态、场地特征状态等等。
      • 使用 tclass NetworkTables 键来使用这些模型。
  • Limelight OS 2023.0 不提供上传自定义模型的功能。这将在 2023.1 中很快启用

零代码 AprilTag 支持

  • 使用 Limelight,AprilTag 和回射目标一样简单。因为它们以 ID 的形式具有天然的硬过滤器,所以让您的 roboRIO 进行任何与视觉相关的过滤的理由更少了。
  • 首先,像往常一样使用 tx、ty 和 ta。不需要更改任何代码。按任何目标特征排序,利用目标分组等。
  • 因为 AprilTag 始终是正方形的且始终可唯一识别,所以它们为完整的 3D 位姿计算提供了完美的平台。
  • 我们在支持渠道中收到的关于此功能的反馈非常积极。我们使 AprilTag 尽可能简单,从 2D 跟踪到场地上的完整 3D 机器人定位
  • 查看场地地图规范和坐标系统文档以获取更详细的信息。
  • 使用 Limelight 的 AprilTag 有四种方式:
  • 2D AprilTag
    • 使用 tx、ty 和 ta。配置您的管道以寻找特定的标签 ID。
    • <gif>
  • 兴趣点 3D AprilTag
    • 使用 tx 和 ty、ta 和 tid NetworkTables 键。兴趣点偏移是大多数团队跟踪没有直接附加 AprilTag 的目标所需的全部内容。
    • <gif>
  • 完整 3D
    • 在完整 3D 中跟踪您的 LL、您的机器人或标签。使用 campose 或 json 将相关数据拉入您的 roboRio。
    • <gif>
  • 场地空间机器人定位
    • 告诉您的 Limelight 它是如何安装的,上传场地地图,您的 LL 将提供机器人的场地位姿,以便与 WPILib Pose Estimator 一起使用。
    • 我们的场地坐标系统将 (0,0) 放在场地中心而不是角落。
    • 使用 botpose NetworkTables 键来使用此功能。
    • <gif>

2022.3.0 (4/13/22)

错误修复和心跳。

错误修复

  • 修复与 USB 摄像头流和多个流实例相关的性能、流稳定性和流延迟问题。

功能和变更

  • "hb" 心跳 NetworkTable 键
    • "hb" 值每处理帧递增一次,并在 2000000000 时重置为零。

2022.2.3 (3/16/22)

错误修复和机器人代码裁剪过滤。

错误修复

  • 修复 "stream" NetworkTables 键和画中画模式
  • 修复 "snapshot" NetworkTables 键。用户必须先将 "snapshot" 键设置为 "0",然后再设置为 "1" 才能截图。
  • 从 Web 界面中删除多余的 Python 相关警报

功能和变更

  • 手动裁剪过滤
    • 使用 "crop" NetworkTables 数组,团队现在可以从机器人代码控制裁剪矩形。
    • 要使 "crop" 键工作,当前管道必须使用默认的全开裁剪矩形(minX 和 minY 为 -1,maxX 和 maxY 为 +1)。
    • 此外,"crop" NetworkTable 数组必须恰好有 4 个值,并且这些值中至少有一个必须非零。

2022.2.2 (2/23/22)

基于第 0 周和 FMS 可靠性测试,所有团队必须升级。

错误修复

  • 修复与打开的 Web 界面、FMS、类似 FMS 的设置、多个查看器设备等相关的挂起/连接丢失/目标检测丢失问题。

功能和变更

  • 裁剪过滤

    • 忽略指定裁剪矩形外的所有像素
    • 如果您的飞轮在场地上有任何最佳位置,您可以利用裁剪过滤器在特定管道中忽略绝大多数像素。此功能应有助于团队降低跟踪非目标的概率。
    • 如果您正在跟踪货物,请使用此功能仅在图像的特定部分内寻找货物。考虑忽略您团队的保险杠、远处的目标等。
  • 角点功能现在与智能目标分组兼容

    • 这是为那些想在 RIO 上进行更高级自定义视觉的团队准备的
    • "tcornxy" 角点限制增加到 64 个角点
    • 轮廓简化和强制凸包功能现在可以与智能目标分组和角点发送正常工作
  • IQR 过滤器最大值增加到 3.0

  • Web 界面打开时,实时目标更新率从 30fps 降低到 15fps,以减少带宽和 CPU 负载


2022.1 (1/25/22)

错误修复

  • 我们从一家供应商处获得了关于一个问题(以及修复方案!)的信息,该问题影响大约 1/75 的 Limelight 2 专用 CPU(可能与特定批次有关)。这很合理,这也是 2022 镜像和 2020 镜像之间仅存的启动差异之一。
  • 修复了 GRIP 输入和 SolvePNP 模型的上传按钮

功能

  • 色相彩虹

    • 新的色相彩虹使配置色相阈值更加容易。
  • 色相反转

    • 新的色相反转功能是追踪红色物体时的关键功能,因为红色同时位于色相范围的开头和结尾:
  • 新 Python 库

    • 在我们的 python 沙盒中添加了 scipy、scikit-image、pywavelets、pillow 和 pyserial。

2022.0 和 2022.0.3 (1/15/22)

这是一个重大更新。以下是四个主要变化:

功能

  • 智能目标分组

    • 自动对通过所有单独目标过滤器的目标进行分组。
    • 将动态分组介于 -分组大小滑块最小值- 和 -分组大小滑块最大值- 之间的任意数量目标
  • 异常值剔除

    • 虽然这个目标比其他目标更具挑战性,但它为我们提供了更多过滤机会。从概念上讲,这个目标不仅仅是一个"绿色斑点"。由于我们知道目标由多个彼此靠近的目标组成,我们实际上可以剔除独立存在的异常目标。
    • 对于今年的目标,您应该几乎完全依赖良好的目标过滤,只有在您看到或预期相机流中存在虚假异常值时才使用异常值剔除。如果您的标准目标过滤效果不佳,异常值检测可能会对您产生反作用!
  • Limelight 2022 镜像升级 我们从软件中移除了数百个活动部件。以下是结果:

    • 压缩镜像大小:2020 年为 1.3 GB → 2022 年为 76MB(减少了 17 倍!)
    • 下载时间:2020 年需要数十分钟 → 2022 年只需几秒
    • 烧录时间:2020 年需要 5 分钟以上 → 2022 年只需几秒
    • 启动时间:2020 年需要 35 秒以上 → 2022 年为 14 秒(LED 亮起只需 10 秒)
  • 完整 Python 脚本支持

    • Limelight 已成功让大量学生接触到机器人技术中计算机视觉的一些功能。通过 python 脚本,团队现在可以更进一步,编写自己的图像处理流水线。
  • 此更新兼容所有 Limelight 硬件,包括 Limelight 1。

  • 已知问题:在 python 中使用硬件变焦会产生意外结果。

  • 2022.0.3 恢复了 5802 GRIP 流,并通过回退部分启动时间优化来解决某些 LL2 设备的启动问题。启动时间增加到 16 秒。