跳到主要内容

软件更新日志 2017 - 2020

2020.4 (3/11/20)

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


2020.3 (2/25/20)

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


2020.2 (1/30/20)

2020.2 进一步发挥了 Limelight 硬件的潜力,增加了平移和缩放到任意点的功能。它还添加了全新的视频模式和重要的错误修复。欢迎告诉我们您希望在未来更新中看到哪些功能!

功能

  • 60 FPS 下的 3 倍硬件缩放

    • 我们上次更新为所有 Limelight 型号免费添加了 2 倍硬件缩放。我们设法进一步提升了硬件缩放能力,实现了 3 倍硬件缩放。所有 Limelight 型号现在都能够在 60fps 下实现 3 倍硬件缩放。这使得每个团队都能更轻松地进行全场追踪。
  • 硬件平移

    • 在 2020 年,能够从远距离和近距离射击的机器人如果不使用主动可调节的 Limelight 支架,将很难在其 Limelight 上使用硬件缩放。我们加入了硬件平移功能来解决这个问题。

错误修复

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

2020.1 (1/16/20)

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 热修复 (3/14/19)

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 模式,然后启用"求解 3D"以获取 Limelight 相对于目标的位置和旋转。
    • 角点编号现在显示在图像上,以便更轻松地创建模型和调整阈值。
    • 通过读取"camtran"networktables 数字数组来读取摄像头变换的所有 6 个维度(x、y、z、俯仰、偏航、翻滚)。
  • 黑电平
    • 使用新的黑电平滑块,阈值设置变得更加容易。增加黑电平偏移以进一步使图像变暗。

破坏性更改

  • LL2 报告的垂直视场角已修复以匹配列出的 49.7 度值。这将更改您的"ty"值

错误修复

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

2019.4 (1/26/19)

我们相信此版本涵盖了所有主要的错误报告。

功能

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

错误修复

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

2019.3 (1/19/19)

2019.3 解决了许多错误和功能请求。

功能

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

错误修复

  • 修复了 2019.2 中引入的 LabView Dashboard 流媒体错误
  • 网页不再从互联网请求图标字体。所有字体都存储在本地。这应该会加快界面加载速度。
  • 降低"驱动模式"曝光。
  • 修复"距离变换"GRIP 实现
  • 修复了更改主机名导致的 20 秒通信延迟。

2019.2 (1/7/19)

2019.2 添加了新功能,以更好地为团队准备 2019 赛季。

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

其他更改和修复

  • IP 地址自动发布到 SmartDashboard/Shuffleboard,以便更轻松地进行赛事故障排除。据我们所知,几乎没有报告这是一个问题,但这作为另一个应急功能。
  • 管道名称自动发布到 SmartDashboard/Shuffleboard
  • 使用新的 networktables 键访问粗略边界框的宽度和高度(以像素为单位)。
  • 使用新的 networktables 键访问完美边界框的最长边和最短边(以像素为单位)。
  • "排序模式"现在适用于双轮廓
  • "排序模式"现已修复
  • 5802 流对摄像头的负担更小

2019.1 (12/18/18)

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

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

2019.0 (12/10/18)

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

  • Grip 支持

    • 使用 GRIP For Limelight 构建管道,并导出"LL Script"文件上传到您的摄像头。
    • 遮罩和 NetworkTables 支持将在未来更新中添加
    • http://limelighturl:5802 暴露裸视频流以在 grip 中测试
  • 全新网页界面

    • 更小的控件
    • 更多工具提示
    • 添加从界面关闭 LED 的功能
    • 将显示组合框移至流下方以便更轻松地切换显示
    • 与 Limelight 的通信更快。新的网页技术使我们能够简化代码的其他部分。
  • 刷写

    • 我们已迁移到"Balena Etcher"
    • Etcher 速度快两倍,适用于所有平台
    • 迁移后修复了刷写弹出窗口问题。
  • 其他

    • LED 模式已修改以允许特定于管道的 LED 模式
    • 自动 IP 分配模式下启动时间更快。
      • 优化和小错误修复

2018.5 (3/28/18)

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


2018.4 (3/19/18)

2018.4 添加了新的轮廓排序选项。这些对于今年的方块追踪相当重要,因为团队不一定想要追踪视野中最大的方块。在许多情况下,团队希望追踪最接近其进料口的方块。许多用户不得不使用原始轮廓功能来实现自己的排序,因此我们希望使这尽可能简单。

功能

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

2018.3 (2/28/18)

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

ledMode、pipeline 和 camMode 等设置更改应始终应用于 Limelight。在调试、重启机器人代码以及重启 roborio 后,您不再需要变通方法来更改 Limelight 设置。

更改

  • 修复了在 LabView 调试期间以及 roborio 重置/重启后破坏设置更改(ledMode、pipeline 和 camMode)的主要 NT 同步问题。
  • 取色器魔术棒:
    • 取色器魔术棒对色相使用相同的 10 单位窗口,但现在对饱和度和明度使用 30 单位窗口。这意味着阈值设置更常是一键操作,而不是多步骤过程。
  • 快照
    • 将快照值设置为"1"将只拍摄一张快照并将值重置为 0。快照被限制为每秒 2 张。
    • 快照限制增加到 100 张图像。
    • 快照选择器区域现在可滚动以支持 100 张图像。

2018.2 (2/10/18)

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

功能

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

优化

  • 将稳态管道执行时间降至 3.5-4ms。

错误修复

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

2018.1 (1/8/18)

  • 红色平衡滑块
  • 蓝色平衡滑块
  • 更好的默认色彩平衡设置
  • 增加最大曝光设置

2018.0 (1/3/18)

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

功能

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

优化

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

错误修复

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

2017.7 (11/21/17)

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

2017.6 (11/13/17)

  • 新的烧录工具。已在 Win7、Win8 和 Win10 上测试。
  • 将摄像头流发布到 cameraserver 流。与 smart dashboard 摄像头流兼容,但 shuffleboard 存在已知问题
  • 面积滑块采用四次方缩放,宽高比滑块采用二次方缩放。这使调整更加容易
  • 将控件组织到"输入"、"阈值"、"过滤"和"输出"选项卡中
  • 拖动滑块时连续更新
  • 面积以百分比形式发送到 NT(0-100)
  • 显示镜像大小从 2.1GB 降至 700MB

2017.5 (11/9/17)

  • 镜像大小从 3.9GB 降至 2.1GB
  • 添加驾驶员模式和 LED 模式 API
  • 在 limelight 表中将 ledMode 设置为 0、1 或 2。
  • 在 limelight 表中将 camMode 设置为 0 或 1。
  • 添加通过网页界面在阈值图像和原始图像之间切换的功能(将在后续版本中清理)
  • 将摄像头流发布到 network tables 的 CameraPublishing/limelight/streams 下(需要热修复)
  • 在瞄准信息中添加倾斜度(limelight 表中的"ts")
  • 添加基础"CommInterface"以准备支持更多协议

2017.4 (10/30/17)

  • 大量启动和关机稳定性增强

2017.3 (10/25/17)

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

2017.2 (10/23/17)

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

2017.1 (10/21/17)

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