跳到主要内容

软件更新日志与反馈

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

Limelight OS 2025.1 (正式版 - 2/24/25 测试版 - 2/18/25)

2/24/25 - 修复 2025.1 测试版中引入的连接问题。

LL4 IMU 更新

  • 改进 IMU 传感器融合
    • 在振动和 FRC 级别冲击下性能显著提升。融合方法进行了重大改进。
IMU 更新 2025.1

上图显示了 FRC 机器人约 5 分钟相当剧烈的练习赛结果。在此次测试中,我们测量了以下设备的航向:

  1. 运行 2025.0 的 Limelight 4 (llyawOLD)
  2. 运行 2025.1 的 Limelight 4 (llyaw)
  3. Pigeon 2.0

两个 LL4 以相同方向安装。注意运行 2025.1 的 LL4 在整体精度上的巨大改进

  • IMU 模式 3 - IMU_ASSIST_MT1 - 内部 IMU 将利用过滤后的 MT1 偏航估计进行持续航向校正

  • IMU 模式 4 - IMU_ASSIST_EXTERNALIMU - 内部 IMU 将利用外部 IMU 进行持续航向校正

  • 添加 imuassistalpha_set NT 键(默认 0.001)- 互补滤波器 alpha / 强度。较高的值将使内部 IMU 更快地收敛到辅助源

  • 默认值设置为较低的 0.001,因为我们现在比以前更信任内部 IMU。辅助模式旨在非常轻柔地将内部 IMU "拉向" 所选辅助源,而不会影响内部 IMU 在快速运动期间的响应性。

LL4 热性能更新

  • 添加 'throttle_set'。每跳过 N 帧后处理一帧。示例模式:

    • throttle_set=1: [跳过, 处理, 跳过, 处理]
    • throttle_set=2: [跳过, 跳过, 处理, 跳过, 跳过, 处理]
  • 在跳过的帧期间,输出不会被清零/重置。

  • 在禁用时将此值设置为较高数字(50-200)以管理 LL4 的温度。

  • 或者,您可以将一个流水线配置为取景器,并在禁用时切换到此流水线。

LL4 和 LL3G 的新 FPS 选项

  • 添加 1280x800 分辨率下的 60FPS、55FPS、45FPS 和 30FPS。
  • 使用较低的捕获率将允许您增加曝光时间,以避免因交流照明导致的图像泛光/呼吸效应。

REST API 更新

  • 添加 IMU 模式 REST API - 'update-imumode'
  • 添加节流 REST API - 'update-throttle'
  • 添加 IMU ASSIST ALPHA REST API - 'update-imuassistalpha'

FMap 更新

  • FMap Json 文件现在可以选择性地嵌入 base64 编码的 SVG
  • FMap Json 文件现在可以选择性地嵌入 base64 编码的 PNG

ReefScape 神经网络已上传

  • B2 Hailo 模型是我们 FRC2025 性能最佳的模型。它在单色图像上训练,以更好地适应 LL4。
Coral 模型

LL3A 更新

  • 3A 完全支持 2025 更新

错误修复

  • 没有内部 IMU 的 Limelight 会忽略 imumode_set
  • 已升级为 Limelight 3G 的 Limelight 3 将正确使用内置风扇
  • 修复基于 Hailo 的神经检测器流水线中的裁剪问题
  • 修复基于 Hailo 的 AprilTag 流水线中的裁剪问题

Limelight OS 2025.0 (1/15/24)

LL4 支持

  • 添加对 Hailo 目标检测和 Hailo 加速 AprilTag 的支持
  • 添加对 LL4 内部 IMU 的支持
  • 添加 "imumode_set" NT 键
    • 0 - 使用外部 IMU,不初始化内部 IMU
    • 1 - 使用外部 IMU,初始化内部 IMU
    • 2 - 使用内部 IMU

2025 场地更新

  • 场地宽度和场地高度现在是 .fmap 文件的一部分
  • 更新默认 .fmap 以匹配 2025 场地
  • 更新默认场地图像
  • 在线地图构建器现在允许您配置场地宽度和场地高度
  • 下载页面上的 2025 fmap 链接已更新。

错误修复

  • 修复"删除所有快照"按钮

Limelight OS 2024.10.2 (10/28/24)

Python Snapscript 修复(致谢 - FTC 队伍 23251 TRIPLE FAULT)

  • 在 Control Hub 上使用 Limelight3A 时,Python 输出将不再冻结
  • 在 Python 流水线之间切换时,Python 输出将不再冻结

MT2 边缘情况

https://github.com/LimelightVision/limelight-feedback/issues/23

  • 在没有机器人的情况下测试 MT2 时,很容易产生几何上的不可能情况。
  • 这种边缘情况不会将 mt2 botpose 清零 - 它会将相机位姿清零。
  • 现在每当检测到这种边缘情况时,机器人将被放置在 (0,0,0)

静态 IP 地址

https://github.com/LimelightVision/limelight-feedback/issues/25

  • 如果地址以 .1-.10 或 .20-.255 结尾,IP 地址设置器会添加警告,因为这些地址可能会干扰 FMS 或其他设备
  • 在 2024.10.1 中,当地址方案设置为"自动"时,UI 有时会错误地提示已配置静态 IP

STDDevs NetworkTables

https://github.com/LimelightVision/limelight-feedback/issues/24

  • NetworkTables 中的 "stddevs" 包含 mt1 和 mt2 的所有标准差(双精度数组,12 个元素)

模型上传边缘情况

  • 如果将分类器模型上传到检测器流水线,图像上将显示 "check model"
  • 如果将检测器模型上传到分类器流水线,图像上将显示 "check model"

Limelight OS 2024.10.1 (9/15/24)

Limelight 3A 更新

  • 更新默认白平衡值
  • 更新默认 AprilTag 尺寸配置为 101.6 mm
  • 将默认视频流帧率降低到 30FPS
  • 略微增加视频流压缩以降低流比特率

AprilTag 尺寸警告

  • 如果配置的 AprilTag 尺寸与上传的场地地图中的尺寸不匹配,场地空间可视化器会添加警告。
示例横幅

CameraPose_RobotSpace 错误修复

  • 从 NetworkTables/LimelightLib/REST 覆盖 UI 配置的相机位姿现在可以正常工作。

Limelight OS 2024.10 (9/4/24)

Limelight 3A FTC 支持

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

AprilTag 地图更新

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

Control Hub 和 RoboRio 上的 USB Limelight 支持

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

USB 连接升级

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

REST API 更新

  • 修复 update-robotorientation POST 请求
  • MT2 现在无需 NetworkTables 即可完全访问
  • 一旦使用 update-robotorientation 路由,NetworkTables 方向更新将在重启前被禁用

Limelight OS 2024.9.1 (7/7/24)

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

马赛克截图:

Limelight OS 2024.9 (7/5/24)

MegaTag 升级

  • Limelight OS 已过渡到 NetworkTables 4.0

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

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

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

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

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

  • 以下视频演示了带有机器人端 flush() 的 2024.9 MegaTag 2(绿色机器人)如何比没有 Flush() 的 2024.5 MegaTag2(红色机器人)更稳健

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 (7/3/24)

  • 将 python 输出(PythonOut)、tx、ty、txnc、tync、ta 添加到 json 结果对象
  • 进一步改进 MT2 延迟补偿

Limelight OS 2024.7 (5/21/24)

  • 升级到 Linux 6.6

错误修复

  • 修复视觉流水线转换
  • 修复校准上传、快照上传和神经网络上传

Limelight OS 2024.6 (5/8/24)

LimelightLib Python

  • pip install limelightlib-python
  • 我们的 Python 库允许您在任何平台上与 USB 和以太网 Limelight 交互
  • 它允许在不与网页 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 允许在不与网页 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 (4/9/24)

  • 升级至 Linux 6.1

相机堆栈更新

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

动态降采样

  • 团队现在可以设置 "fiducial_downscale_set" 来覆盖当前管道的降采样设置
  • 0:UI控制, 1:1x, 2:1.5x, 3:2x, 4:3x, 5:4x
  • 使用新的 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 (4/9/24)

  • 添加 void SetFiducialDownscalingOverride(float downscale)

设置为 0 表示管道控制,或使用以下值之一来覆盖管道的降采样设置: 1, 1.5, 2, 3, 4

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

Limelight OS 2024.4.0 (4/3/24)

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

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 (4/3/24)

添加

getBotPoseEstimate_wpiRed_MegaTag2()
getBotPoseEstimate_wpiBlue_MegaTag2()
SetRobotOrientation()

Limelight OS 2024.3.4 (3/20/24)

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

更高精度的单标签求解器

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)

Ambiguity 是一个新的指标,范围从 0-1,表示标签当前视角的歧义性。标签歧义性 > .9 的单标签更新可能应该被拒绝。

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

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

错误修复

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

LimelightLib 1.4 (3/21/24)

  • 添加对 2024.3.4 Raw Fiducials 的支持。PoseEstimates 现在包含一个 rawFiducials 数组,其中包含 id、txnc、tync、ta、distanceToCamera、distanceToRobot 和 ambiguity

Limelight Hardware Manager 1.4 (3/18/24)

错误修复

发现的 USB Limelight 现在正确显示为单个条目,而不是两个部分条目。


Limelight OS 2024.2.2 (3/17/24)

错误修复

TX 和 TY 在 NT 条目中正确遵循十字准线。


Limelight OS 2024.2 (3/8/24)

使用 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 像素。

基准标记过滤器 UI 修复

基准标记过滤器文本框现在接受任意数量的过滤器。

杂项

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


Limelight OS 2024.1.1 (2/24/24)

  • 修复 priorityID

Limelight OS 2024.1 (2/24/24)

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

校准改进

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

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

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

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

  • 通过设备校准和此 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 管道,一个用于蓝方 amp 的标签 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);
}


团队新资源

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 更新 (2/6/24)

Limelight 文档升级

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

Limelight AprilTag 生成器

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

Limelight 地图构建器

新硬件管理器

  • Finder Tool 现在是 Limelight Hardware Manager
  • 它已从头重写。它现在可以可靠地检测 Limelight,提供更有用的诊断信息,并且不需要重启即可正常工作。
  • 立即从下载页面获取 notebook screenshot:

训练您自己的神经网络

notebook screenshot:

2024 AprilTag 地图和 Note 检测器

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

Limelight OS 2024.0 (2/6/24)

ChArUco 校准修复

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

开箱即用的 Megatag 精度改进

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

性能升级和错误修复

  • 更高 FPS 的 AprilTag 管道
  • 场地空间可视化器的性能已显著改进。

错误修复

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