跳到主要内容

软件更新日志与反馈

通过电子邮件或在Limelight反馈仓库提交问题和功能请求

Limelight OS 2024.10 (2024年9月4日)

支持FTC的Limelight 3A

  • 完全支持Limelight3A
  • 3A可在FTC和FTC中使用

AprilTag地图更新

  • 地图编辑器现在支持标准和菱形FTC地图生成
  • LLOS网页界面将根据上传的地图自动显示正确的场地类型
  • 所有工具和界面的场地可视化器都显示联盟区和FTC瓷砖网格
  • 3D可视化器性能已得到改善

ControlHub和RoboRio上的USB Limelight支持

  • FTC团队可以在Control Hub上使用单个支持USB的Limelight
  • FRC团队可以在RoboRio上使用最多16个支持USB的Limelight。USB Limelight会像以太网Limelight一样自动填充网络表
    • 要使用多个USB Limelight,请为每个LL分配唯一的USB索引和唯一的主机名

USB连接性升级

  • MacOS不再使用USB以太网Limelight接口进行互联网访问
  • Windows不再尝试使用USB以太网Limelight接口进行互联网访问

REST API更新

  • 修复update-robotorientation POST请求
  • 现在可以在不使用NetworkTables的情况下完全访问MT2
  • 一旦使用update-robotorientation路由,NetworkTables方向更新将被禁用,直到重新启动

Limelight OS 2024.9.1 (2024年7月7日)

  • 地图构建工具现在可以接受/转换WPILib .json AprilTag布局
  • 在Python快照脚本中添加AprilTag3 (from apriltag import apriltag)
  • 请查看GitHub示例仓库中的示例
  • 修复Windows上的USB连接网关问题

马赛克截图:

Limelight OS 2024.9 (2024年5月7日)

MegaTag 升级

  • Limelight OS 已过渡到 NetworkTables 4.0

  • MegaTag2 现在使用 NT4 的 getAtomic() 从 roboRIO 获取带时间戳的 IMU 更新。

  • 我们的带时间戳图像帧在进行插值之前会与两个最相关的 IMU 样本匹配。

  • NT4 flush() 已添加到 LimelightLib。将 Flush() 添加到旧版本的 Limelight OS 将使性能非常接近 2024.9,但 NT4 确保始终保持高精度。

  • MT2 可视化机器人现在有绿色保险杠,MT1 的可视化机器人使用黄色保险杠。

  • 指标现在可以折叠,虚拟机器人可以隐藏。

  • 以下视频演示了 2024.9 的 MegaTag 2(绿色机器人)使用机器人端 flush() 比 2024.5 的 MegaTag2(红色机器人)不使用 Flush() 更加稳健

USB ID 和新的 USB IP 地址

  • 在设置页面中设置"USB ID"以在任何系统上使用多个 USB Limelight。
  • 出现在您系统上的 USB-以太网接口将使用由 USB ID 确定的 IP 地址
  • Linux/Android/Mac 系统现在默认使用 172.29.0.0/24 子网
  • Windows 系统现在默认使用 172.28.0.0/24 子网。
  • 如果设置了 USBID,Linux/Android/Mac 的子网将更改为 172.29.(USBID).0/24,Windows 的子网将更改为 172.28.(USBID).0/24。
  • 现在,您可以通过调整主机名和 USB ID,将四个 Limelight 设备连接到单个 USB 集线器

CPU 神经分类器

  • 上传 CPU .tflite 分类器以启用无需 Google Coral 的神经分类。在 LL3 变体上可以预期 15-18 FPS。
  • 2024.9 附带默认的 CPU 分类器。
  • 将分类器运行时设置为"CPU"以启用此功能

CPU 神经检测器

  • 上传 CPU .tflite 检测器以启用无需 Google Coral 的神经检测。在 LL3 变体上可以预期 10 FPS。
  • 2024.9 附带默认的 CPU 检测器。
  • 将检测器运行时设置为"CPU"以启用此功能

Limelight OS 2024.8 (2024年7月3日)

  • 在JSON结果对象中添加Python输出(PythonOut)、tx、ty、txnc、tync、ta
  • 进一步改进MT2延迟补偿

Limelight OS 2024.7 (2024年5月21日)

  • 升级到 Linux 6.6

错误修复

  • 修复视觉管道转换
  • 修复校准上传、快照上传和神经网络上传

Limelight OS 2024.6 (2024年5月8日)

LimelightLib Python

  • pip install limelightlib-python
  • 我们的Python库允许您在任何平台上与USB和以太网Limelight进行交互。
  • 它允许在不使用Web UI的情况下完成Limelight配置。
  • 上传管道、神经网络、场地地图等
  • 对任何管道参数进行实时更改,并可选择"刷新到磁盘"选项
  • 发布自定义Python输入数据,设置机器人方向等。

MegaTag2 升级

  • MegaTag2陀螺仪延迟补偿已得到改进。敬请期待更多改进!
  • 在UI中添加了"陀螺仪延迟调整"滑块。要手动调整MegaTag 2延迟补偿,您可以旋转机器人并调整滑块,直到旋转时的定位结果完美无误。

标准偏差指标

  • 3D场地可视化器现在包括MegaTag1和Megatag2的x、y和偏航的标准偏差。

新的"对焦"管道类型

  • 在"对焦"模式下,您将可以使用流质量滑块和裁剪框滑块
  • 旋转镜头以最大化"对焦"分数。
  • 如果您的相机位置固定,这个过程不到一分钟。我们建议使用固定/安装的Limelight进行对焦。

新的"条形码"管道类型

  • 在1280x800分辨率下,50-60FPS多QR码检测和解码
  • 在1280x800分辨率下,50-60FPS多DataMatrix检测和解码
  • 在1280x800分辨率下,30FPS多UPC、EAN、Code128和PDF417检测和解码
  • 条形码数据字符串被发布到"rawbarcodes" nt数组。
  • 条形码管道将填充所有2D指标,如tx、ty、ta、tcornxy等。

全新REST API

  • https://docs.limelightvision.io/docs/docs-limelight/apis/rest-http-api
  • 我们的REST / HTTP API已经从头开始重建。
  • REST API允许在不使用Web UI的情况下完成Limelight配置。
  • 上传管道、神经网络、场地地图等
  • 对任何管道参数进行实时更改,并可选择"刷新到磁盘"选项
  • 发布Python输入数据,设置机器人方向等。

从UI中移除相机方向设置(重大变更)

  • 这已被"流方向"选项取代。校准和目标定位永远不会受到此选项的影响。
  • 新选项只影响流。倒置、顺时针90度、逆时针90度、水平镜像和垂直镜像
  • 团队现在需要在使用旋转相机时手动反转tx和ty。

移除GRIP支持(重大变更)

移除"驾驶员"零处理模式(重大变更)

  • 这已被"取景器"管道类型取代

添加"取景器"管道类型

  • 取景器管道禁用所有处理以实现最小延迟
  • 这允许团队为仅查看模式设计自己的"驾驶员"管道

管道文件现在使用JSON格式(重大变更)

  • 管道仍然使用.vpr文件扩展名
  • (在2024.6中某些情况下存在问题)当您使用"上传"按钮时,UI将自动将管道转换为JSON。
  • (完全功能)您也可以使用https://tools.limelightvision.io/pipeline-upgrade 升级您的管道

校准用户体验改进

  • 校准设置现在被缓存。您不再需要每次校准时都输入校准设置。
  • 默认校准字典已更新,可与Calib.io推荐的800x600mm粗糙板配合使用。

校准马赛克

  • 以前,很难确定校准图像的质量
  • 校准标签页现在有一个"下载校准马赛克"按钮。马赛克将准确显示每张图像对校准的贡献。

马赛克截图:

"质心"目标区域

  • 在"输出"标签页中添加了质心目标模式,以改善颜色管道的物体跟踪

动态3D偏移(NT: fiducial_offset_set)

  • 现在可以在不更改管道的情况下调整3D偏移。这对于"瞄准点"需要根据距离或其他属性变化的情况很有用。

添加Modbus支持

  • Limelight OS现在有一个始终开启的modbus服务器,用于检查、物流和工业应用
  • 在此处查看modbus寄存器规范:https://docs.limelightvision.io/docs/docs-limelight/apis/modbus
  • 默认modbus服务器端口可以在UI的设置标签页中更改
  • 通过modbus和snapscript python管道,现在支持完全自定义的具有双向通信的视觉应用。

自定义NT服务器

  • 设置标签页现在包含一个自定义NT服务器的条目。
  • 这启用了一个新的工作流程,包括在PC上运行的glass NT服务器,以及通过USB通信的Limelight 3G。

Rawfiducial更改

  • 原始基准点的"面积"值现在是一个校准过的、归一化的值,范围约为0-1

所有NetworkTables和JSON更改

  • 添加NT getpipetype - 获取当前管道类型字符串(例如pipe_color, pipe_fiducial)

  • 添加NT tcclass - 分类器管道检测到的类名

  • 添加NT tdclass - 检测器管道检测到的类名

  • 添加NT t2d以保证原子2d目标定位 - [valid,targetcount, targetlatency, capturelatency, tx, ty, txnc, tync, ta, targetid, classifierID, detectorID, tlong, tshort, thor, tvert, ts(skew)]

  • 移除NT tlong, tshort, thor, tvert, 和 ts

  • 添加NT 'crosshairs'数组 [cx0,cy0,cx1,cy1]

  • 移除NT cx0, cy0, cx1, 和 cy1

  • 添加NT rawbarcodes - 条形码数据的NT字符串数组。最多32个条目。

  • 所有"raw"数组现在允许最多32个目标(从8个增加)

  • 添加fiducial_offset_set动态3d偏移设置器

  • 在json顶级结果中添加"pType"

  • 在json顶级结果中添加"stdev_mt1"和"stdev_mt2"(x,y,z,roll,pitch,yaw)(米,度)

其他文件格式和JSON转储的更改

  • 校准文件格式已简化。旧的校准在上传时会自动转换为新格式
  • 从结果和状态JSON转储中移除了一层嵌套

错误修复

  • 以前,如果在神经管道处于活动状态时拔掉Google Coral,管道会永久恢复为"颜色/反射"模式
    • 现在,图像上会打印"CHECK CORAL"或"CHECK MODEL"。管道类型永远不会改变
  • 以前,成功通过基准ID过滤器的标签有时会用红色轮廓绘制,而不是绿色轮廓。这个可视化问题已经修复。
  • Apriltag管道填充tcornxy NT数组
  • Apriltag管道现在完全尊重最小-最大面积滑块。以前,AprilTag管道会基于标签面积过滤2D结果,但不会过滤3D / 定位结果。

Limelight OS 2024.5.0 (2024年4月9日)

  • 升级到 Linux 6.1

相机堆栈更新

  • 整个相机堆栈已更新,以修复 Limelight3G 上的相机外设锁定问题。
    • 症状包括
  • 应用此更新后,请务必重新调整曝光和增益设置。

动态缩放

  • 团队现在可以设置 "fiducial_downscale_set" 来覆盖当前管道的缩放设置
  • 0:UI控制, 1:1倍, 2:1.5倍, 3:2倍, 4:3倍, 5:4倍
  • 使用新的 Helpers 方法,参数为 0.0 (UI控制), 1.0, 1.5, 2.0, 3.0, 4.0
  • 这是一个零开销操作。
  • 通过结合动态缩放和动态裁剪,团队可以在不管理多个管道的情况下最大化 FPS

MegaTag2 改进

  • MT2 现在可以在任何 Limelight 方向下工作,包括 "纵向" 模式(90度和-90度旋转)

"rawdetections" nt 数组

  • [classID, txnc, tync, ta, corner0x, corner0y, corner1x, corner2y, corner3x, corner3y, corner4x, corner4y]
  • 角点坐标在像素空间中,未应用校准

腐蚀/膨胀更新

  • 颜色管道现在支持最多 10 步膨胀和 10 步腐蚀
  • 颜色管道现在有一个 "反向形态" 选项,可以反转膨胀和腐蚀步骤的顺序

LimelightLib 1.6 (2024年4月9日)

  • 添加 void SetFiducialDownscalingOverride(float downscale)

设置为0以使用管道控制,或使用以下值之一来覆盖管道的缩小设置: 1, 1.5, 2, 3, 4

  • 添加 RawFiducial[] GetRawFiducials()
  • 添加 RawDetection[] GetRawDetections()

Limelight OS 2024.4.0 (2024年4月3日)

感谢所有为此更新贡献想法的团队。

Megatag 2

Megatag 2是一个无歧义的定位器。它比Megatag1具有更高的准确性和精确度,并且在构建时考虑了以下要求:

  • 消除姿态歧义问题,并提高对图像/角点噪声的鲁棒性。
  • 无论视角如何,只要有一个或多个标签就能提供出色的姿态估计。
  • 提高对物理AprilTag放置不准确的鲁棒性
  • 减少机器人端为获得良好姿态估计结果所需的滤波量

注意在这个高度模糊的单标签情况下,MegaTag2(红色机器人)和Megatag(蓝色机器人)之间的区别:

Megatag2需要你通过一个新的方法调用来设置机器人的朝向。这里是一个完整的示例:

      LimelightHelpers.SetRobotOrientation("limelight", m_poseEstimator.getEstimatedPosition().getRotation().getDegrees(), 0, 0, 0, 0, 0);
LimelightHelpers.PoseEstimate mt2 = LimelightHelpers.getBotPoseEstimate_wpiBlue_MegaTag2("limelight");
if(Math.abs(m_gyro.getRate()) > 720) // 如果我们的角速度大于每秒720度,忽略视觉更新
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}
if(!doRejectUpdate)
{
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.6,.6,9999999));
m_poseEstimator.addVisionMeasurement(
mt2.pose,
mt2.timestampSeconds);
}

Megatag2在任何距离下都能提供出色的、无歧义的单标签结果。 这意味着你可以完全专注于相关的、在你期望的放置误差范围内的标签。 如果一个标签位置不正确或不相关,可以使用新的动态过滤功能将其过滤掉。

动态AprilTag过滤

  • 由于MegaTag2不需要急于累积尽可能多的AprilTag,你可以安全地过滤出放置良好且相关的标签:
int[] validIDs = {3,4};
LimelightHelpers.SetFiducialIDFiltersOverride("limelight", validIDs);

过渡到MegaTag2

Megatag2需要你的机器人朝向才能正常工作。0度、360度、720度等朝向意味着你的机器人面向红色联盟墙。 这与PathPlanner、Chorero、Botpose和Botpose_wpiblue使用的约定相同。

一旦你在代码中添加了SetRobotOrientation(),请检查内置的3D可视化器。在近距离下,Megatag2和Megatag1应该非常接近,如果不是完全一致的话。在远距离下,Megatag 2(红色机器人)应该比Megatag1(蓝色机器人)更准确、更稳定。

一旦内置可视化器显示良好结果,你就可以安全地使用Megatag2在自主期间引导你的机器人。

我们建议添加的唯一过滤器是"最大角速度"过滤器。你可能会发现,在高角速度下,你的姿态估计可能会变得稍微不太可靠。

示例仓库中有一个带有此过滤器的Megatag2示例。

    if(Math.abs(m_gyro.getRate()) > 720) // 如果我们的角速度大于每秒720度,忽略视觉更新
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}

LimelightLib 1.5 (2024年4月3日)

添加

getBotPoseEstimate_wpiRed_MegaTag2()
getBotPoseEstimate_wpiBlue_MegaTag2()
SetRobotOrientation()

Limelight OS 2024.3.4 (2024年3月20日)

感谢所有为此更新贡献想法的团队。

更高精度的单标签求解器

MegaTag的单标签3D求解器已得到改进。它在远距离时比以前更加稳定。

JSON默认禁用(破坏性变更)

  • JSON默认被禁用,以减少带宽使用,并全面适用于使用自动订阅仪表板(如Shuffleboard)的团队。
  • 这也应该减少RoboRIO NT负载和CPU使用率。
  • 在输出选项卡中重新启用每个管道的json。
  • 此更新包括一些变更,应该能让更多团队摆脱使用JSON进行姿态估计。

未失真面积(破坏性变更)

在计算任何目标的面积之前,角点已被校正失真。

在botpose、botpose_wpiblue和botpose_wpired中包含每个基准标记的指标

[tx, ty, tz, roll, pitch, yaw, tagCount, tagSpan (米), averageDistance (米), averageArea (图像百分比), (tags)]

对于megatag定位使用的每个标签,上述数组现在包括(tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity)

模糊度是一个新的指标,范围从0到1,表示当前标签视角的模糊程度。标签模糊度>0.9的单标签更新可能应该被拒绝。

"rawtargets"和"rawfiducials" nt数组(破坏性变更)

  • rawtargets - 每个目标的(txnc,tync,ta)
  • rawfiducials - 每个目标的(tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity)
  • 之前的rawtargets NT条目(tx0,ty0等)已被移除。

错误修复

  • 如果未找到优先ID,则将所有单标签3D信息归零。之前,当未找到优先标签时,只有Tx、Ta、Ty和Tv被归零
  • 如果唯一可见的标签被UI的"ID过滤器"功能过滤,则将botpose归零。之前,如果唯一可见的标签是被过滤的标签,botposes会重置到场地中心而不是(0,0,0)
  • 2024.2版本在某些罕见情况下会向某些网络表条目发布NAN值。这种情况不会再发生。

LimelightLib 1.4 (2024年3月21日)

  • 增加对2024.3.4原始基准标记的支持。姿态估计现在包含一个rawFiducials数组,其中包含id、txnc、tync、ta、distanceToCamera、distanceToRobot和ambiguity

Limelight硬件管理器1.4(2024年3月18日)

错误修复

发现通过USB连接的Limelight现在可以正确显示为单个条目,而不是两个部分条目。


Limelight OS 2024.2.2 (2024年3月17日)

错误修复

TX和TY在NT条目中正确地遵循准星。


Limelight OS 2024.2 (2024年3月8日)

使用Json (tx_nocross, ty_nocross) 和 NT (txnc, tync) 的零十字线瞄准

如果您正在使用tx/ty瞄准与自定义内参校准,您可能仍然会看到摄像机之间的变化,因为Limelight十字线与摄像机的主点像素不对齐。需要更高tx/ty精度的团队可以选择将十字线配置为与主点像素匹配,或使用这些新的指标。

tx/ty可能出现的破坏性变更

本赛季早些时候引入了一个错误,特别破坏了json中tx、ty和tx + ty的自定义校准。在多种情况下,Limelight OS回退到默认校准。

校准升级

现在校准几乎是即时的,无论捕获了多少图像。我们还修复了在某些情况下由超过30张图像引起的崩溃问题。

使用15-20张纸质目标图像,我们一致获得了约1像素的重投影误差,而使用我们高质量的calib.io目标,误差为0.3像素。

Fiducial过滤器UI修复

Fiducial过滤器文本框现在接受任意数量的过滤器。

其他

AprilTag生成器默认为"无边框",以防止165.1 mm标签的缩放。

Limelight OS 2024.1.1 (2024年2月24日)

  • 修复了priorityID

Limelight OS 2024.1 (2024年2月24日)

硬件指标(networktables中的hw键,/status GET请求)

校准改进

  • 修复了在校准图像恰好包含一个有效检测时可能发生的崩溃。改进了Web UI反馈。

机器人定位改进(标签数量等)

  • 所有networktables botpose数组(botpose、botpose_wpiblue和botpose_wpired)现在包括标签数量、标签跨度(米)、平均距离(米)和平均面积(图像百分比)

  • 这些指标是根据上传的场地地图中包含的标签计算的。自定义和/或移动AprilTags不会影响这些指标。

  • 有了设备校准和这个botpose数组升级,我们认为今年绝大多数用例不需要JSON。

  • JSON转储现在包括botpose_avgarea、botpose_avgdist、botpose_span和botpose_tagcount,方便使用。

[tx,ty,tz,rx,ry,rz,latency,tagcount,tagspan,avgdist,avgarea]

新功能:优先ID(NT键 priorityid)

  • 如果你的机器人同时使用基于里程计的功能和基于tx/ty的功能,你可能遇到过以下用户体验问题:

  • 在此更新之前,没有简单的方法来切换tx/ty目标的首选标签ID。

  • 虽然UI中有ID过滤器,但它

    • 不是动态的
    • 从megaTag定位中移除标签。
  • 这意味着团队需要创建几个管道:一个用于3D定位,每个tx/ty标签一个(蓝方射击用标签7的一个,蓝方增幅用标签6的一个,等等)。

  • 新的优先ID功能(NT键 priorityid)允许你告诉你的Limelight"在所有标签检测、过滤和排序完成后,专注于与优先ID匹配的标签。"

  • 这不会以任何方式影响定位,只会稍微改变JSON结果中标签的顺序。

  • 如果你的优先id不是-1,除非选中的标签可见,否则tx/ty/ta将返回0。

其他

  • 修复了在3D apriltag管道中使用双目标模式时屏幕上的"x"
  • REST API扩展了神经网络标签上传功能(/uploadlabels)
  • 在/status json中包含设备昵称

LimelightLib 1.3

  • LimelightLib(Java和CPP)已更新,使定位比以往更加容易。
  LimelightHelpers.PoseEstimate limelightMeasurement = LimelightHelpers.getBotPoseEstimate_wpiBlue("limelight");
if(limelightMeasurement.tagCount >= 2)
{
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.7,.7,9999999));
m_poseEstimator.addVisionMeasurement(
limelightMeasurement.pose,
limelightMeasurement.timestampSeconds);
}

Teams 的新资源

Limelight 反馈和问题追踪器:https://github.com/LimelightVision/limelight-feedback/issues

示例代码库:https://github.com/LimelightVision/limelight-examples

使用 Swerve 进行瞄准和测距的示例:https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-aiming-and-ranging

MegaTag 定位示例:https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-pose-estimation

感谢最近的贡献者 jasondaming、Gold876、JosephTLockwood、Andrew Gasser 和 virtuald


Limelight 2024 更新 (2024年2月6日)

Limelight文档升级

  • 文档已经重写,以简化设置过程

Limelight AprilTag 生成器

  • https://tools.limelightvision.io/ 现在推出了首个在线 AprilTag 生成器。
  • 选择您的纸张尺寸、标记尺寸和标签 ID 以生成可打印的 PDF。
  • Safari 浏览器目前可能无法正确显示标签。

Limelight 地图构建器

新硬件管理器

  • Finder Tool 现已更名为 Limelight 硬件管理器
  • 它已经从头重写。现在可以可靠地检测 Limelights,提供更有用的诊断信息,并且无需重启即可正常工作。
  • 现在就从下载页面获取 笔记本电脑截图:

训练您自己的神经网络

笔记本截图:

2024 AprilTag 地图和笔记检测器

  • 地图和检测器模型已添加到下载页面和最新的 Limelight 操作系统镜像中。

Limelight OS 2024.0 (2024年2月6日)

ChArUco 校准修复

  • 我们的 ChArUco 检测器的亚像素精度已经提高。使用剪贴板目标和20张图像,现在可以实现1-2像素的重投影误差。
  • 使用相同的相机和相同的目标,2023.6版本实现了20像素的重投影误差,而2024.0版本实现了1.14像素的重投影误差。
  • 输入字段不再接受字母和特殊字符。这消除了潜在的崩溃可能性。

开箱即用的Megatag精度改进

  • 在此更新之前,Limelight的内部Megatag地图生成器参考的是UI的标签大小滑块,而不是.fmap文件提供的标签大小。
  • Megatag现在尊重fmap文件中配置的标签大小,并忽略大小滑块。
  • 如果您的大小滑块未设置为165.1毫米,您将立即注意到定位精度的改进。

性能升级和错误修复

  • 更高帧率的AprilTag管道
  • 场地空间可视化器的性能已显著提高。

错误修复

  • 3D可视化器中的Apriltags有时会显示不正确或损坏的标签图像。现在标签始终正确显示。
  • "v" / tv / "valid" 现在只有在有有效检测时才会返回"1"。之前,tv 总是"1"。

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版本完全相同的求解器。

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

  • 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 在机器人空间中的位置。如果键被设置为一个零数组,则使用 Web 界面中设置的姿态。

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

增加最大曝光时间

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

Botpose 更新

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

错误修复

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

2023.2 (2023年1月28日)

让3D使用比以往更加简单。

兼容WPILib的机器人姿态

机器人姿态现在可以更轻松地开箱即用。

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

所有机器人姿态都直接显示在网页界面的场地空间可视化器中,使得一眼就能确认一切是否正常工作。

更轻松地访问3D数据(破坏性变更)

目标空间中的机器人姿态可以说是Limelight关于AprilTags输出的最有用的数据。仅使用这个,你就可以让底盘与场地上的AprilTag完美对齐。

  • NetworkTables键"campose"现在改为"camerapose_targetspace"
  • NetworkTables键"targetpose"现在改为"targetpose_cameraspace"
  • 新的NetworkTables键 - "targetpose_robotspace"
  • 新的NetworkTables键 - "botpose_targetspace"

神经网络上传

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


2023.1 (2023年1月19日)

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 (2023年1月11日)

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

功能、变更和错误修复

  • 新的传感器捕获管道和增益控制
    • 我们的新捕获管道允许曝光时间比2022年短100倍。新管道还启用了增益控制。这对AprilTags跟踪极其重要,并将使反光目标跟踪比以往更加可靠。在Limelight OS 2023之前,Limelight的传感器增益是不确定的(我们实施了一些技巧来使其工作)。
    • 通过新的"传感器增益"滑块,团队可以在不触碰曝光滑块的情况下使图像比以往更暗或更亮。增加增益会增加图像中的噪点。
    • 结合较低的增益和新的较低曝光时间,现在可以在全亮度LED和反光目标的情况下产生几乎完全黑色的图像。这将有助于在跟踪反光目标时减少LED和阳光反射的影响。
    • 通过增加传感器增益和减少曝光,团队将能够在跟踪AprilTags时最大限度地减少由于高曝光时间导致的运动模糊效果。
    • 我们成功开发了这个新管道,同时保留了所有功能 - 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网络表键来使用这些模型。
  • 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 (2022年4月13日)

错误修复和心跳功能。

错误修复

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

功能和变更

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

2022.2.3 (2022年3月16日)

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

错误修复

  • 修复"stream"网络表键和画中画模式
  • 修复"snapshot"网络表键。用户必须先将"snapshot"键设置为"0",然后再设置为"1"以拍摄截图。
  • 从Web界面中移除多余的Python相关警告

功能和变更

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

2022.2.2 (2023年2月23日)

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

错误修复

  • 修复了与开放网络接口、FMS、类FMS设置、多个查看器设备等相关的挂起/连接丢失/目标丢失问题。

功能和变更

  • 裁剪过滤

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

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

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


2022.1 (2022年1月25日)

错误修复

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

新功能

  • 色调彩虹

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

    • 新的色调反转功能是一个关键特性,如果你想跟踪红色物体,这个功能非常重要,因为红色同时出现在色调范围的开始和结束:
  • 新的Python库

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

2022.0 和 2022.0.3 (2022年1月15日)

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

功能

  • 智能目标分组

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

    • 虽然这个目标比其他目标更具挑战性,但它为我们提供了更多的过滤机会。从概念上讲,这个目标不仅仅是一个"绿色斑块"。由于我们知道目标是由多个彼此靠近的目标组成的,我们实际上可以剔除那些独立存在的异常目标。
    • 对于今年的目标,你应该几乎完全依赖于良好的目标过滤,只有在你看到或预期相机流中出现虚假的异常值时才使用异常值剔除。如果你的标准目标过滤效果不佳,异常值检测可能会开始对你不利!
  • 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秒。

2020.4 (3/11/20)

2020.4 是另一个关键更新,它消除了在 mjpeg 流突然断开连接时可能发生的间歇性 2-4 秒崩溃。这种情况通常发生在比赛的最后时刻,在某些情况下也可能在比赛期间发生。


2020.3 (2020年2月25日)

2020.3是一个关键更新,解决了间歇性网络相关的软件重启问题,并修复了在USB摄像头断开连接时发生的崩溃问题。


2020.2 (2020年1月30日)

2020.2版本进一步提升了Limelight硬件的性能,增加了对任意点进行平移和缩放的功能。它还添加了全新的视频模式和重要的错误修复。请告诉我们您希望在未来的更新中看到哪些功能!

新功能

  • 60 FPS下的3倍硬件缩放

    • 我们上一次更新为所有Limelight型号免费添加了2倍硬件缩放功能。这次我们成功将硬件缩放推进到了3倍。现在所有Limelight型号都能够在60fps下实现3倍硬件缩放。这使得全场跟踪对每个团队来说变得更加容易。
  • 硬件平移

    • 在2020赛季中,能够从远距离和近距离射击的机器人会发现,如果没有使用可调节的Limelight安装架,很难在Limelight上使用硬件缩放功能。我们已经加入了硬件平移功能来解决这个问题。

错误修复

  • 解决了导致颜色平衡滑块失效的驱动程序问题
  • 将所有与网络相关的驱动程序恢复到2019赛季的版本,以解决少数团队报告的网络性能问题

2020.1 (2020年1月16日)

2020.1版本增加了Limelight迄今为止最酷的功能之一:2倍硬件变焦。这不是数字变焦,现在所有Limelight版本都可以使用此功能。

新功能

  • 2倍硬件变焦

    • 不是数字变焦
    • 启用2倍硬件变焦可以在远距离实现大幅改善的跟踪效果,并在全场距离实现稳定跟踪。
    • 此功能完全不会增加延迟或降低帧率 - 跟踪继续以90fps的速度执行,没有任何额外开销。
  • 手动十字准线

    • 在网页界面中使用滑块手动调整单个和双十字准线位置
  • 新的SolvePNP / 3D功能(仍处于实验阶段)

    • 我们添加了"强制凸面"选项,只使用目标的最外层点 - 由于2020年使用了薄胶带制作六边形目标,这是必要的。
    • 添加了"绑定目标"选项。此功能将"tx"和"ty"绑定到3D目标。这对于使用3D目标引导机器人得分是必需的。
    • 最后,添加了"目标Z轴偏移"选项,可以在3D空间中自动偏移所需目标位置的Z轴。
    • 在Infinite Recharge比赛中,"目标Z轴偏移"将用于跟踪六边形目标后面的小型圆形目标的中心。
  • 使用"tc"进行颜色感应

    • 在Network Tables中读取新的"tc"数组,以获取十字准线位置的红、绿、蓝值。调整输入选项卡上的"蓝色平衡"和"红色平衡"以实现完美的颜色感应。

错误修复

  • 2020.0版本中损坏的USB摄像头功能现已在2020.1中修复
  • 2020.0版本中损坏的SolvePnP功能现已在2020.1中修复
  • SolvePnP现在正确使用模型中心作为轴可视化中心

2019.7 (4/5/19)

2019.7 增加了两个新功能。

功能

  • 160x120 30fps 流媒体
    • 为使用广角 USB 摄像头的团队提供更流畅、低带宽的流媒体。我们的 180 度摄像头流带宽从约 3.7mbps 降至约 1.8 mbps。
    • 在设置选项卡中更改流分辨率。
    • 在连接了广角 USB 摄像头的 Limelight 上更改流分辨率。无画中画,正常流速率。
  • 智能斑点剔除
    • 今年将摄像头与目标对齐安装的团队不得不处理不需要的 LED 反射问题。
    • 面积滑块并不总能解决这个问题,因为团队希望在远距离追踪小型视觉目标。
    • 这个新功能将自动剔除通过所有其他过滤器的相对小轮廓。
    • 当机器人远离视觉目标(目标尺寸减小)时,SSR 将自动调整,只剔除相对小的轮廓。

变更

  • 工具提示
    • 部分 Limelight 控件现在提供工具提示

2019.6.1 热修复 (2019年3月14日)

2019.6.1 修复了 Grip 上传问题。


2019.6 (3/12/19)

2019.6版本主要关注可靠性。

错误修复

  • USB摄像头
    • 解决了可能导致某些USB摄像头在启动时失败的问题。
  • FMS
    • 使Limelight对FMS重启和场地/笔记本电脑网络变化更加(如果不是完全)具有抗性。
    • Limelight在突然的客户端网络变化后不再挂起。
  • 原始轮廓排序(破坏性变更)
    • 交叉过滤器不再影响原始轮廓排序。
  • Smartdashboard自动发布
    • LL自动向SmartDashboard发布某些信息(IP地址、接口URL等)。这些值的名称现在包含主机名。

功能和变更

  • 显著提高compute3d功能的精度和稳定性。在更远距离下,平移和旋转测量更加稳定。
  • 最大黑电平偏移增加到40(原为25),可获得更暗的图像。
  • 在启用"双十字准线"模式时,"输出"选项卡中新增"最近"排序选项。
    • 标准 - 当前"双十字准线"模式下的"最近"排序实现。
    • 标准V2 - 实验性的、智能的"双十字准线"模式下的"最近"排序实现。
    • 十字准线平均值 - "双十字准线"模式下"最近"排序原点为两个十字准线的平均值。
    • 十字准线A - "双十字准线"模式下"最近"排序原点为十字准线A。
    • 十字准线B - "双十字准线"模式下"最近"排序原点为十字准线B。
  • 新增"LED模式"管道选项:"左半"、"右半"
  • 启用compute3D时,原始角点值为浮点数。
  • 使用魔术棒时隐藏图像装饰
  • 网页界面中的流更大

2019.5 (2/9/19)

随着2019.5版本的发布,我们推出了全新的compute3D相机定位功能。只有少数几个团队曾尝试将这一功能添加到他们的视觉系统中,现在它可供所有Limelight 1和Limelight 2用户使用。

这并不是今年比赛的万能解决方案。除非绝对必要,否则我们强烈建议考虑创造性地使用标准的90 fps高速跟踪。

功能

  • 高精度模式和PnP
    • 在下面的gif中,一个Limelight 2被放置在目标后方37英寸和右侧14.5英寸处。
    • 随后Limelight被手动转动。注意距离如何基本保持不变。
    • 在2019.4版本中,我们引入了角点发送功能。这允许高级团队使用OpenCV的solvePNP()编写自己的算法。在2019.5版本中,这一切都在板载完成。
    • 上传一个包含目标模型的纯文本csv文件。我们在网站上预先构建了2019年目标的模型。所有模型必须有一个居中的原点,并使用逆时针点顺序和英寸缩放。
    • 启用新的960x720高分辨率模式,然后启用"Solve 3D"以获取Limelight相对于目标的位置和旋转。
    • 现在图像上显示角点编号,便于模型创建和阈值调整。
    • 通过读取"camtran"网络表数字数组,可以读取相机变换的全部6个维度(x,y,z,pitch,yaw,roll)。
  • 黑电平
    • 有了新的黑电平滑块,阈值设置变得更加容易。增加黑电平偏移以进一步使图像变暗。

重大变更

  • 修正了LL2报告的垂直FOV,使其与列出的49.7度值相匹配。这将改变你的"ty"值

错误修复

  • 修复了在连接鱼眼USB摄像头时可能发生的仅流模式崩溃。
  • 修复了由网络相关驱动程序导致的罕见挂起。
  • 角点近似现在始终处于活动状态。

2019.4 (2019年1月26日)

我们相信这个版本已经解决了所有关键的错误报告。

新功能

  • 角点
    • 通过在"输出"选项卡中启用"发送角点",将目标的角点作为两个数组(tcornx, tcorny)*现在是tcornxy发送。这将进一步使对高级管道感兴趣的团队能够使用诸如solvePNP()等方法。
    • 在"输出"选项卡中使用"角点近似"滑块调整角点近似。

错误修复

  • 修复了当两个目标具有完全相同的面积、X坐标或Y坐标时可能发生的挂起和罕见崩溃问题。
  • 修复了双目标和三目标模式下的面积计算问题。
  • 优化了轮廓排序以提高性能。

2019.3 (2019年1月19日)

2019.3版本解决了许多bug并添加了一些新功能。

新功能

  • 流速率(带宽减少)
    • 在设置页面将流速率设置为"低",可以获得低带宽的15fps视频流。
  • 在NetworkTables中禁用原始轮廓(带宽减少)
    • 原始轮廓现在默认被禁用。这将进一步减少Limelight的总体带宽使用。
    • 默认情况下,每秒提交的NetworkTables条目减少了约180个。
    • 查看"输出"选项卡中的新"原始轮廓"管道选项以重新启用原始轮廓。
  • 活动管道索引
    • 读取NetworkTable键"getpipe"以获取摄像头的真实活动管道索引。这以90Hz的频率更新。
    • 活动管道索引现在显示在视频流的FPS显示下方。
  • 左侧和右侧交叉过滤器
    • 团队现在可以在"左侧"和"右侧"双轮廓交叉过滤器之间进行选择。"上方"和"下方"交叉过滤器在2019.2版本中添加。

Bug修复

  • 修复2019.2版本中引入的LabView仪表盘流媒体bug
  • 网页不再从互联网请求图标字体。所有字体都本地存储。这应该加快界面加载速度。
  • 减少"驾驶模式"曝光。
  • 修复"距离变换"GRIP实现
  • 修复更改主机名导致的20秒通信延迟。

2019.2 (2019年1月7日)

2019.2版本增加了新功能,以更好地为2019赛季的团队提供支持。

  • 交叉过滤器
  • 方向过滤器

其他变更和修复

  • IP地址现在会自动发布到SmartDashboard/Shuffleboard,以便于在赛事中进行故障排除。虽然我们几乎没有收到关于这方面的问题报告,但这作为另一个应急功能。
  • 管道名称现在会自动发布到SmartDashboard/Shuffleboard
  • 通过新的网络表键可以访问粗略边界框的像素宽度和高度。
  • 通过新的网络表键可以访问完美边界框的最长边和最短边的像素值。
  • "排序模式"现在适用于双轮廓
  • "排序模式"现已修复
  • 5802流对摄像头的负担更小

2019.1 (18/12/18)

2019.1修复了测试版期间报告的所有主要错误

  • 性能恢复到稳定的90fps。测试版期间的性能问题根源是驱动程序问题
  • IP和主机名设置现在可以正确应用并"保持"
  • 魔法棒已重新排序,以匹配Limelight 2018软件的排序
  • 我们现在通过网页界面支持Grip输入,如遮罩
  • 修复了NetworkTables冻结问题

2019.0 (2018年12月10日)

在2019版本中,我们引入了GRIP支持、全新的界面和更简洁的刷机程序。

  • GRIP支持
    • 使用GRIP For Limelight构建管道,并导出"LL脚本"文件上传到您的相机。
    • 掩码和NetworkTables支持将在未来更新中添加
    • http://limelighturl:5802 暴露原始视频流,用于在GRIP中测试
  • 全新的网页界面
    • 更小的控件
    • 更多工具提示
    • 添加从界面关闭LED的功能
    • 将显示组合框移到流下方,便于切换显示
    • 与Limelight通信更快。新的网页技术使我们能够简化代码的其他部分。
  • 刷机
    • 我们已迁移到"Balena Etcher"
    • Etcher速度提高一倍,适用于所有平台
    • 迁移后修复了刷机弹窗问题
  • 其他
    • 修改了LED模式,允许特定管道的LED模式
    • 自动IP分配模式下启动时间更快
    • 优化和小bug修复

2018.5 (2018年3月28日)

2018.5修复了一个严重问题,该问题会阻止用户在快照上调整管道。


2018.4 (3/19/18)

2018.4 添加了新的轮廓排序选项。这些对于今年的立方体跟踪非常重要,因为团队不一定想要跟踪视野中最大的立方体。在许多情况下,团队希望跟踪最接近他们进气口的立方体。许多用户不得不使用原始轮廓功能来实现自己的排序,所以我们希望使这个过程尽可能简单。

功能

  • 轮廓排序模式
    • 可以在"最大"、"最小"、"最高"、"最低"、"最左"、"最右"和"最近"排序选项之间进行选择。
    • 我们认为许多团队将使用"最近"选项进行立方体跟踪。

2018.3 (2018年2月28日)

2018.3修复了一个主要的网络表重连bug,该bug会导致NetworkTables设置更改无法传播到Limelight。感谢Peter Johnson和WPILib团队定位并修复了底层NT bug。据我们所知,这是Limelight面临的最后一个高优先级bug。

诸如ledMode、pipeline和camMode等设置更改现在应该始终能应用到Limelight。在调试过程中、重启机器人代码后以及重启roborio后,您不再需要使用变通方法来更改Limelight设置。

变更

  • 修复了主要的NT同步问题,该问题在LabView调试期间以及roborio重置/重启后会导致设置更改(ledMode、pipeline和camMode)失效。
  • 吸管工具:
    • 吸管工具对色调仍使用10单位的窗口,但现在对饱和度和亮度使用30单位的窗口。这意味着阈值设置通常可以一次完成,而不是多步骤过程。
  • 快照
    • 将快照值设置为"1"只会拍摄一张快照,然后将值重置为0。快照拍摄频率限制为每秒2张。
    • 快照限制增加到100张图像。
    • 快照选择器区域现在可滚动,以支持100张图像。

2018.2 (2018年2月10日)

2018.2修复了与各种FRC仪表板相关的所有已知流媒体错误。它还使Limelight在比赛期间更易于调整和更加通用。

功能

  • 阈值魔棒
    • 只需点击几下即可设置HSV阈值参数
    • "设置"魔棒将HSV参数集中在所选像素周围
    • "添加"魔棒调整HSV参数以包含所选像素
    • "减去"魔棒调整HSV参数以忽略所选像素
  • 快照
    • 快照允许用户在比赛或活动校准期间保存Limelight所看到的内容,并在离开场地后调整管道。
    • 使用Web界面保存快照,或通过向"snapshot" NetworkTables键发送"1"来保存
    • 要查看快照,请更改输入选项卡上的"图像源"组合框。这将允许您在快照上测试管道,而不是使用Limelight的摄像头反馈
    • Limelight最多可存储32个快照。如果超过此限制,它将自动删除旧快照。
  • 新的流媒体选项
    • 我们引入了"stream" NetworkTables键来控制Limelight的流媒体模式。我们收到了对PiP(画中画)模式的请求,以更好地适应某些仪表板。
    • 0 - 标准 - 如果网络摄像头连接到Limelight,则并排显示流
    • 1 - PiP主要 - 次要摄像头流放置在主要摄像头流的右下角。
    • 2 - PiP次要 - 主要摄像头流放置在次要摄像头流的右下角。
  • 将流媒体帧率提高到22fps
  • 腐蚀和膨胀
    • 启用最多一次腐蚀和膨胀迭代。
    • 腐蚀将略微侵蚀HSV阈值的结果。当许多对象通过调整后的HSV阈值时,这很有用。
    • 膨胀将略微扩大HSV阈值的结果。使用此功能修复阈值结果中的孔洞。
  • 重启按钮
    • 从Web界面重启Limelight的视觉跟踪。这仅对在调试LabView代码时遇到间歇性问题的团队有用。

优化

  • 将稳态管道执行时间降低到3.5-4毫秒。

错误修复

  • 修复Shuffleboard流媒体问题
  • 修复LabView仪表板流媒体问题

2018.1 (2018年1月8日)

  • 红色平衡滑块
  • 蓝色平衡滑块
  • 改进的默认色彩平衡设置
  • 提高了最大曝光设置

2018.0 (2018年1月3日)

除了大量新的案例研究、更详细的文档和一个完整的STEAMWORKS自动射手示例程序外,软件还进行了重大升级。

功能

  • 新的视觉管道界面
    • 添加最多10个独特的视觉管道,每个都有自定义十字准线、阈值选项、曝光、过滤选项等。
    • 为每个视觉管道命名。
    • 将任何管道标记为"默认"管道。
    • 通过新的"pipeline" NetworkTables值,在比赛中即时切换管道。这对于有多个视觉目标的比赛很有用(例如2017年的齿轮钉和锅炉)。对于需要为每个机器人、场地、联盟等使用略微不同的十字准线选项的队伍也很有用。
    • 从Limelight下载视觉管道以备份或与其他队伍分享。
    • 将视觉管道上传到任何"槽位"以使用下载的管道。
  • 目标"分组"选项
    • 使用"双重"分组模式即时优先选择由两个形状组成的目标。也提供"单一"和"三重"选项
  • 新的十字准线校准界面
    • "单一"和"双重"十字准线模式。
    • "单一"模式是Limelight在此更新之前使用的模式。队伍手动对准他们的机器人,并"校准"以重新归零十字准线的目标值。
    • "双重"模式是一个高级功能,适用于需要随目标面积/距离变化自动调整的动态十字准线的机器人。我们在一些射击机器人上使用了这个功能,因为其中一些射击时有轻微的曲线。这个功能对于Limelight安装不居中和/或未对齐的机器人也很有用。
    • 分离的X和Y校准。
  • 在Network Tables中添加有效目标"tv"键。
  • 在Network Tables中添加目标延迟"tl"键。"tl"测量视觉管道执行时间。捕获时间至少需要额外11毫秒。
  • 绘制额外的矩形以帮助解释纵横比计算。
  • 移除节流功能,并将Limelight锁定在90fps。
  • 禁用大多数Web界面按钮的聚焦。解决了队伍报告的工作流程问题,即他们校准十字准线后按"回车"启用机器人。
  • 将三个"原始"轮廓和两个十字准线发布到Network Tables。
    • 使用tx0、tx1、ta0、ta1等访问原始轮廓。
    • 使用cx0、cy0、cx1、cy1访问两个原始十字准线。
    • 所有x/y值都在归一化屏幕空间中(-1.0到1.0)
  • 在Web界面中添加"后缀"选项。允许用户为其Limelights的主机名和NetworkTables添加后缀(例如limelight-boiler)。只有当队伍打算在单个机器人上使用多个Limelights时才应使用此功能。
  • 在Web界面上显示图像版本

优化

  • 将网络相关延迟从约10毫秒减少到约0.2毫秒(感谢Thad House)
  • 将流编码和jpg压缩移至第三核心,消除了每六帧出现一次的10毫秒卡顿(两个摄像头时为25-30毫秒卡顿)。
  • 通过SIMD优化,将稳态管道执行时间降至5毫秒。

错误修复

  • 修复了轻微的面积值不准确问题,该问题导致值无法达到100%(最大约99%)。
  • 修复了所有目标计算中的半像素偏移。
  • 修复了在Limelight启动序列后启动的NT服务器无法填充摄像头流信息的问题。定期刷新摄像头流信息。
  • 修复了导致纵横比偶尔"翻转"的错误。
  • 在驾驶员模式下强制使用标准流输出(而不是阈值化输出)。
  • 修复了重置网络信息后LED无法闪烁的错误。

2017.7 (11/21/17)

  • 改进了轮廓排序。之前偏向于小轮廓而非大轮廓。
  • 新的坐标系统:中心为(0,0)。当目标沿y轴向"上"移动时ty增加,当目标沿x轴向"右"移动时tx增加。
  • 更精确的角度计算(针孔相机模型)。
  • 在网页上显示目标信息(tx、ty、ta和ts)
  • 默认目标值为零。这意味着如果视野中没有目标,将返回零值。
  • 新的并排网页布局。在小型设备上仍会折叠为单列。
  • 连续滑块更新不会影响配置面板性能。
  • 面积作为百分比(0-100)发送到NT
  • 镜像大小从2.1GB减少到700MB

2017.6 (2017年11月13日)

  • 新的成像工具。在Win7、Win8和Win10上测试通过。
  • 将摄像头流发送到cameraserver流。可与智能仪表板摄像头流配合使用,但shuffleboard在这方面存在已知问题
  • 面积滑块采用四次方缩放,宽高比滑块采用二次方缩放。这使得调整变得更加容易
  • 将控件组织到"输入"、"阈值"、"过滤"和"输出"标签页中
  • 拖动滑块时持续更新
  • 面积以百分比(0-100)形式发送到NT
  • 显示图像大小从2.1GB减少到700MB

2017.5 (11/9/17)

  • 镜像大小从3.9GB减小到2.1GB
  • 添加驱动模式和LED模式API
  • 在limelight表中将ledMode设置为0、1或2
  • 在limelight表中将camMode设置为0或1
  • 通过网页界面添加在阈值图像和原始图像之间切换的功能(将在后续版本中优化)
  • 将摄像头流发布到网络表中的CameraPublishing/limelight/streams下(需要热修复)
  • 在目标信息中添加倾斜度(limelight表中的"ts")
  • 添加基础"CommInterface"以预期更多协议

2017.4 (2017年10月30日)

  • 大量改进启动和关机的稳定性

2017.3 (2017年10月25日)

  • 色调范围从0-255变为0-179
  • 减小最大日志大小,清除日志,清除apt缓存

2017.2 (2017年10月23日)

  • 手动ISO感光度
  • 最小曝光时间增加到2秒

2017.1 (2017年10月21日)

  • 优化
  • "凸度"更改为"饱满度"
  • 曝光范围从0-255毫秒调整为0-128毫秒
  • 支持两个摄像头
  • 完全支持单点校准