跳到主要内容

软件更新日志 2017 - 2020

2020.4 (3/11/20)

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


2020.3(2020年2月25日)

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


2020.2 (1/30/20)

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

功能特性

  • 60 FPS下的3倍硬件变焦

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

    • 在2020赛季中,能够在远距离和近距离都进行射击的机器人如果没有使用主动可调节的Limelight支架,就会发现使用硬件变焦功能比较困难。我们已经加入了硬件平移功能来解决这个问题。

错误修复

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

2020.1 (1/16/20)

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

功能特性

  • 2倍硬件变焦

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

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

    • 我们添加了"Force Convex"选项,仅使用目标的最外层点 - 由于2020年使用的六边形目标采用细胶带,这是必需的
    • 添加了"bind target"选项。此功能将"tx"和"ty"绑定到3D目标。这是使用3D目标引导机器人得分所必需的
    • 最后,添加了"Goal Z-Offset"选项,可以在3D空间中自动偏移Z轴上的目标位置
    • 在 Infinite Recharge 中,"Goal Z-Offset"将用于追踪六边形目标后方的小型圆形目标中心
  • 使用"tc"进行颜色感应

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

错误修复

  • 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.8mbps。
    • 在设置选项卡中更改视频流分辨率。
    • 在连接广角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
    • 在下面的动图中,一个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的垂直视场角报告值,使其与列出的49.7度相匹配。这将改变你的"ty"值

错误修复

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

2019.4 (1/26/19)

我们相信此版本已修复所有关键性错误报告。

功能特性

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

错误修复

  • 修复了当两个目标具有完全相同的面积、x坐标或y坐标时出现的程序卡死和罕见崩溃问题。
  • 修复了双目标和三目标模式下的面积计算问题。
  • 优化轮廓排序以提高性能。

2019.3 (1/19/19)

2019.3 解决了许多bug和功能需求。

功能

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

Bug修复

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

2019.2 (1/7/19)

2019.2 添加了新功能,以更好地帮助团队备战2019赛季。

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

其他更改和修复

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

2019.1 (12/18/18)

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

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

2019.0 (12/10/18)

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

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

2018.5 (3/28/18)

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


2018.4 (3/19/18)

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

功能特性

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

2018.3 (2/28/18)

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 (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 (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)。此功能仅在队伍打算在单个机器人上使用多个Limelight时才应使用
  • 在Web界面显示图像版本

优化

  • 将网络相关延迟从约10ms降低到约0.2ms(感谢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)
  • 默认目标值为零。这意味着当没有目标在视野内时返回零值。
  • 新的并排网页布局。在小型设备上仍会折叠为单列显示。
  • 连续滑块更新不会影响配置面板性能。
  • 面积作为百分比(0-100)发送到NT
  • 镜像大小从2.1GB减少到700MB

2017.6 (11/13/17)

  • 新的图像处理工具。已在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 (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毫秒改为0-128毫秒
  • 支持双摄像头
  • 完全支持单点校准