软件更新日志 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
- 支持两个摄像头
- 完全支持单点校准