跳到主要内容

软件更新日志 2021 - 2023

2023.6 (2023/4/18)

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

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

2023.5.1 & 2023.5.2 (2023/3/22)

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

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

  • Limelight偏航角现在在3D可视化工具中正确显示。在可视化工具和内部中,它是逆时针为正。

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


2023.5.0 (2023/3/21)

重大变更

  • 修复回归问题 - 在之前的版本中,Limelight机器人空间的"偏航角"被反转。网页界面中的Limelight偏航角现在在内部是逆时针为正。

区域选择更新

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

"hwreport" REST API

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

MegaTag修复

  • 某些非共面AprilTag布局在MegaTag中出现问题。这已经修复,现在所有场地标签的姿态估计都很稳定。这使得即使在更远的距离也能进行稳定的姿态估计。

更高的tx和ty精度

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

2023.4.0 (2023/2/18)

神经检测器类别过滤器

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

神经检测器扩展支持

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


2023.3.1 (2023/2/14)

AprilTag精度改进

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

检测器上传

修复了检测器上传功能。


2023.3 (2023/2/13)

捕获延迟 (NT键:"cl",JSON结果:"cl")

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

AprilTags的新质量阈值

使用新的质量阈值滑块可以更容易地过滤掉虚假的AprilTags。2023.3中设置的默认值应该能去除大多数虚假检测。

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

现在可以动态调整Limelight在机器人空间中的位置。如果键设置为零数组,则使用网页界面中设置的姿态。

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

增加最大曝光时间

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

Botpose更新

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

错误修复

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

2023.2 (2023/1/28)

让3D比以往更简单。

兼容WPILib的Botposes

Botpose现在更容易开箱即用。

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

所有botposes都直接显示在网页界面的场地空间可视化工具中,使您可以一目了然地确认一切正常工作。

更容易访问3D数据(重大变更)

目标空间中的机器人姿态可能是Limelight关于AprilTags输出的最有用的数据。仅使用这个,您就可以使驱动系统与场地上的AprilTag完美对齐。

  • 网络表键"campose"现在是"camerapose_targetspace"
  • 网络表键"targetpose"现在是"targetpose_cameraspace"
  • 新网络表键 - "targetpose_robotspace"
  • 新网络表键 - "botpose_targetspace"

神经网络上传

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


2023.1 (1/19/23)

MegaTag和性能提升

纠正一个错误

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

提高跟踪稳定性

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

超快速灰度处理

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

裁剪以提高性能

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

更简单的过滤

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

重大变更

NT键"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)

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

功能、变更和错误修复

  • 新的传感器捕获管道和增益控制
    • 我们的新捕获管道允许曝光时间比2022年短100倍。新管道还启用了增益控制。这对AprilTags跟踪极其重要,并将使反光目标跟踪比以往更加可靠。在Limelight OS 2023之前,Limelight的传感器增益是不确定的(我们实现了一些技巧使其仍然工作)。
    • 通过新的"传感器增益"滑块,团队可以在不触碰曝光滑块的情况下使图像比以往更暗或更亮。增加增益会增加图像中的噪点。
    • 结合较低的增益和新的较低曝光时间,现在可以在全亮度LED和反光目标的情况下生成几乎完全黑色的图像。这将有助于在跟踪反光目标时减轻LED和阳光反射的影响。
    • 通过增加传感器增益并减少曝光,团队将能够在跟踪AprilTags时最小化由于高曝光时间导致的运动模糊效果。
    • 我们已经成功开发了这个新管道,同时保留了所有功能 - 90fps、硬件变焦等。
  • 更多分辨率选项
    • LL1、LL2和LL2+有两个新的捕获分辨率:640x480x90fps和1280x960x22fps
  • 优化的Web界面
    • Web界面现在在机器人网络上的加载和初始化速度最多提高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训练自己的模型,请查看谷歌的Teachable Machine。
      • https://www.youtube.com/watch?v=T2qQGqZxkD0
      • Teachable machine模型与Limelight直接兼容。
      • 图像分类器可用于分类内部机器人状态、场地特征状态等等。
      • 使用tclass网络表键来使用这些模型。
  • Limelight OS 2023.0不提供上传自定义模型的功能。这将在2023.1中很快启用

零代码AprilTag支持

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

2022.3.0 (4/13/22)

错误修复和心跳。

错误修复

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

功能和变更

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

2022.2.3 (3/16/22)

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

错误修复

  • 修复"stream"网络表键和画中画模式
  • 修复"snapshot"网络表键。用户必须在将其设置为"1"以拍摄截图之前将"snapshot"键设置为"0"。
  • 从Web界面中删除多余的Python相关警报

功能和变更

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

2022.2.2 (2/23/22)

基于第0周和FMS可靠性测试的所有团队强制升级。

错误修复

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

功能和变更

  • 裁剪过滤

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

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

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


2022.1 (1/25/22)

Bugfixes

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

Features

  • 色调彩虹

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

    • 新的色调反转功能对于跟踪红色物体来说是一个关键功能,因为红色同时位于色调范围的开始和结束位置:
  • 新的Python库

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

2022.0和2022.0.3 (1/15/22)

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

Features

  • 智能目标分组

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

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

    • 压缩镜像大小:2020年的1.3 GB → 2022年的76MB(减少了17倍!)
    • 下载时间:2020年的数十分钟 → 2022年的几秒钟
    • 刷写时间:2020年的5+分钟 → 2022年的几秒钟
    • 启动时间:2020年的35+秒 → 2022年的14秒(10秒到LED亮起)
  • 完整的Python脚本支持

    • Limelight已成功地向大量学生展示了机器人视觉处理的一些能力。通过Python脚本,团队现在可以通过编写自己的图像处理管道更进一步。
  • 此更新与所有Limelight硬件兼容,包括Limelight 1。

  • 已知问题:将硬件变焦与Python一起使用会产生意外结果。

  • 2022.0.3恢复了5802 GRIP流,并通过恢复一些启动时间优化来解决一些LL2单元的启动问题。启动时间增加到16秒。