NetworkTables API
Limelight OS 具有 NetworkTables 4 客户端。它根据设置 UI 中配置的团队编号/ID,自动连接到 FRC 机器人上运行的 NetworkTables 4 服务器。
所有数据都发布到与设备名称匹配的表中(例如:"limelight")。如果为您的相机分配了主机名/昵称,表名将与完整的 limelight 名称匹配(例如:"limelight-top")。
LimelightLib WPIJava 和 LimelightLib WPICPP 通过 NetworkTables 与 Limelight 设备交互。
基本目标数据
使用以下代码:
- Java
- LabView
- C++
- Python
NetworkTableInstance.getDefault().getTable("limelight").getEntry("<variablename>").getDouble(0);
nt::NetworkTableInstance::GetDefault().GetTable("limelight")->GetNumber("<variablename>",0.0);
NetworkTables.getTable("limelight").getNumber('<variablename>');
获取以下数据:
键 | 类型 | 描述 |
---|---|---|
tv | int | 如果存在有效目标则为 1。如果不存在有效目标则为 0 |
tx | double | 从准星到目标的水平偏移(LL1:-27 度到 27 度 / LL2:-29.8 到 29.8 度) |
ty | double | 从准星到目标的垂直偏移(LL1:-20.5 度到 20.5 度 / LL2:-24.85 到 24.85 度) |
txnc | double | 从主像素到目标的水平偏移(度) |
tync | double | 从主像素到目标的垂直偏移(度) |
ta | double | 目标区域(图像的 0% 到 100%) |
tl | double | 管道的延迟贡献(毫秒)。添加到 "cl" 以获得总延迟。 |
cl | double | 捕获管道延迟(毫秒)。从传感器中间行曝光结束到跟踪管道开始的时间。 |
t2d | double | 包含匹配时间戳统计信息的数组:[targetValid, targetCount, targetLatency, captureLatency, tx, ty, txnc, tync, ta, tid, targetClassIndexDetector, targetClassIndexClassifier, targetLongSidePixels, targetShortSidePixels, targetHorizontalExtentPixels, targetVerticalExtentPixels, targetSkewDegrees] |
getpipe | int | 相机的真实活动管道索引(0 .. 9) |
getpipetype | string | 管道类型,例如 "pipe_color" |
json | string | 目标结果的完整 JSON 转储。必须在 'output' 选项卡中按管道启用 |
tclass | string | 主要神经检测器结果或神经分类器结果的类名 |
tc | doubleArray | 获取准星区域下方的平均 HSV 颜色(3x3 像素区域)作为数字数组 |
hb | double | 心跳值。每帧增加一次,在 20 亿时重置 |
hw | doubleArray | 硬件指标 [fps, cpu 温度, 内存使用率, 温度] |
crosshairs | doubleArray | 2D 准星 [cx0, cy0, cx1, cy1] |
tcclass | string | 分类器管道计算的类名 |
tdclass | string | 检测器管道的主要检测类名 |
AprilTag和3D数据
使用以下代码:
- Java
- C++
NetworkTableInstance.getDefault().getTable("limelight").getEntry("<variablename>").getDoubleArray(new double[6]);
nt::NetworkTableInstance::GetDefault().GetTable("limelight")->GetNumberArray("<variablename>",std::vector<double>(6));