跳到主要内容

FRC 编程快速入门

Limelight 支持 REST/HTTP、Websocket、Modbus 和 NetworkTables 协议来获取目标数据、状态数据和实时配置。 可以使用 JSON 和原始输出格式。有关更多信息,请参阅文档的 API 部分。

对于 FRC 团队,推荐使用的协议是 NetworkTables。Limelight 以 100Hz 的频率将所有目标数据(包括完整的 JSON 数据)发布到 NetworkTables。 团队还可以通过 NetworkTables 设置控制参数,如 ledMode、裁剪窗口等。 FRC 团队可以使用 Limelight Lib Java 和 C++ 库在几秒钟内开始使用 Limelight。Limelight Lib 是最简单的入门方式。

LimelightLib:

Java, CPP

double tx = LimelightHelpers.getTX("");

如果你想跳过 LimelightLib 直接使用 NetworkTables 进行编程:

import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
import edu.wpi.first.networktables.NetworkTable;
import edu.wpi.first.networktables.NetworkTableEntry;
import edu.wpi.first.networktables.NetworkTableInstance;
NetworkTable table = NetworkTableInstance.getDefault().getTable("limelight");
NetworkTableEntry tx = table.getEntry("tx");
NetworkTableEntry ty = table.getEntry("ty");
NetworkTableEntry ta = table.getEntry("ta");

//定期读取值
double x = tx.getDouble(0.0);
double y = ty.getDouble(0.0);
double area = ta.getDouble(0.0);

//定期发布到 smart dashboard
SmartDashboard.putNumber("LimelightX", x);
SmartDashboard.putNumber("LimelightY", y);
SmartDashboard.putNumber("LimelightArea", area);