跳到主要内容

软件更新日志 2017 - 2020

2020.4 (2020年3月11日)

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功能(仍处于实验阶段)

    • 我们添加了"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 (2019年4月5日)

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 (2019年3月12日)

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 (2019年2月9日)

在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日)

我们相信所有关键错误报告都在此版本中得到解决。

功能

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

错误修复

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

2019.3 (1/19/19)

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

功能

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

错误修复

  • 修复在2019.2中引入的LabView仪表板流媒体错误
  • 网页不再从互联网请求图标字体。所有字体都存储在本地。这应该加快界面加载速度。
  • 减少"驾驶模式"曝光。
  • 修复"距离变换"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软件的顺序
  • 我们现在通过Web界面支持Grip输入,如掩码
  • 修复NetworkTables冻结问题

2019.0 (12/10/18)

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

  • Grip支持

  • 全新Web界面

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

    • 我们已迁移到"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设置。

更改

  • 修复主要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所看到的内容,并在远离场地时调整管道。
    • 使用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-4ms。

错误修复

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

2018.1 (1/8/18)

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

2018.0 (1/3/18)

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

功能特性

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