Limelight 3A 快速入门
硬件规格
- 尺寸:2.839英寸 x 1.894英寸(72.11毫米 x 48.11毫米)
- 厚度:0.661英寸(16.80毫米)
- 重量:0.20磅
- 安装方式:4个 #10 通孔,4个 M3,6个 M4 螺纹安装孔
- 电源输入:通过USB提供4.1V-5.75V
- 最大功耗:4W
- 传感器:OV5647彩色卷帘快门(640x480 @ 90FPS)
- 无内置LED照明
- 视场角:水平54.5°垂直42°
- 仅支持USB-C连接(无RJ45端口)
- 状态指示灯:绿色(目标检测)
- 针对FTC兼容性优化
软件功能(Limelight OS)
- 即插即用的高性能视觉系统。无需经验。
- 自托管基于浏览器的UI,用于视觉管道配置
- 支持FTC(直接Java集成)和FRC(NetworkTables接口)
- 可配置的曝光、传感器增益、分辨率和帧率
- 配置10个可热切换的视觉管道:
- 使用OpenCV 4.10、numpy等的自定义Python管道
- 2D、3D AprilTag跟踪和机器人定位
- 使用MegaTag1的完整3D定位(机器人GPS)
- 使用MegaTag2与外部IMU融合的更高精度完整3D定位(机器人GPS)
- 1280x960(2倍缩小)下20fps,640x480(2倍缩小)下50fps
- 网页界面中的完整3D可视化工具
- 90FPS彩色斑点管道
- 神经网络对象检测管道(仅CPU推理)
- 神经网络图像分类管道(仅CPU推理)
- 条形码跟踪管道
- 内置Charuco内参校准界面
- 内置低延迟MJPEG流媒体
1. 安装Limelight 3A
螺纹安装(推荐)
- 使用至少2个M3或M4螺丝将LL3A安装到Rev或GoBilda通道上,利用螺纹安装孔
- 您也可以使用VHB胶带或扎带固定您的Limelight
通孔安装
- 使用1 1/4英寸#10-32或#10-24螺栓和尼龙锁紧螺母
- 或者,使用28毫米M4螺栓和尼龙锁紧螺母

2. 连接Limelight 3A
当您准备在机器人上使用Limelight时:
对于FTC
- 使用USBC到USBA线缆将Limelight 3A连接到控制中心(Control Hub)的USB 3.0端口
- 通过插入USB 3.0端口(蓝色端口)连接到控制中心
对于FRC
- 将Limelight 3A连接到roboRIO USB端口
- 使用USB-C到USB-A线缆
Limelight 3A不支持Google Coral。您仍然可以通过将神经网络运行时引擎设置为"CPU"来使用神经检测和分类管道。
3. 访问Web界面
通过USB将Limelight 3A连接到计算机后:
- 等待绿色状态指示灯激活(约15-20秒)
- 使用以下方法之一访问Web界面:
- 方法1:打开Limelight硬件管理器应用程序,扫描Limelights,当您的Limelight 3A出现时双击它
- 方法2:打开Web浏览器并导航到
http://limelight.local:5801
连接后,您将可以访问:
- 设置选项卡 - 配置团队号码、主机名和其他系统设置
- 视觉管道选项卡 - 设置和调整视觉处理管道
- 相机和十字线选项卡 - 调整相机设置和十字线参数
- 3D可视化选项卡 - 查看实时AprilTag检测和定位
所有配置都通过此Web界面完成。更改会自动保存到您的Limelight。
4. 更新LimelightOS
信息
Limelight出厂时已预装镜像。您现在可能可以跳过此步骤。
更新说明(Windows)
注意
更新LimelightOS前保存您的管道。它们将在更新过程中被删除。
- 从下载页面下载最新的USB驱动程序、Limelight OS镜像和Balena Flash工具
- 安装驱动程序后重启计算机
- 按住Limelight上的蓝色配置按钮
- 按住按钮的同时,将USB->USB-C线缆从笔记本电脑连接到Limelight(您的Limelight将自动开机)
- 将LL插入笔记本电脑后,您可以松开蓝色配置按钮
- 您的Limelight现在处于刷写模式,其LED不会闪烁
- 以管理员身份运行"Balena Etcher"
- 您的计算机可能需要最多20秒才能识别相机
- 在下载文件夹中选择最新的.zip镜像
- 在"驱动器"菜单中选择"Compute Module"设备
- 点击"Flash"
- 刷写完成后,从Limelight上拔下USB线缆
更新说明(高级)(macOS和Linux)
注意
更新LimelightOS前保存您的管道。它们将在更新过程中被删除。
备注
我们正在努力大幅简化macOS和Linux上的更新过程
- 从下载页面下载Limelight OS镜像和Balena Flash工具
- 自行构建USB Boot驱动程序:
brew install libusb
brew install pkg-config
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
make
cd mass-storage-gadget64
sudo ../rpiboot -d .
# 只要rpiboot运行,您的相机就能在macOS和Linux上正确枚举
# 每次想要刷写时都需要运行rpiboot。
- 按住Limelight上的蓝色配置按钮
- 按住按钮的同时,将USB->USB-C线缆从笔记本电脑连接到Limelight(您的Limelight将自动开机)
- 将LL插入笔记本电脑后,您可以松开蓝色配置按钮
- 您的Limelight现在处于刷写模式,其LED不会闪烁
- 运行"Balena Etcher"
- 您的计算机可能需要最多20秒才能识别相机
- 在下载文件夹中选择最新的.zip镜像
- 在"驱动器"菜单中选择"Compute Module"设备
- 点击"Flash"
- 刷写完成后,从Limelight上拔下USB线缆
5. 设置过程
对于FTC
- 使用USB线缆将Limelight连接到笔记本电脑
- 按照第3节所述访问Web界面
- 进入设置选项卡,设置您的团队号码,然后点击"重启视觉客户端"
- 根据需要配置您的管道(AprilTag、神经网络、自定义Python等)
- 准备比赛时,将Limelight 3A插入控制中心的USB 3.0端口
- 在FTC驾驶站应用程序中,点击"配置机器人"
- 如果您没有活动配置,可能需要创建一个新配置
- 点击"扫描"按钮
- 您应该会看到出现一个"以太网设备"
- 您可以将此设备的名称编辑为"limelight"以便于识别
- 现在您可以在代码中使用硬件映射初始化Limelight3A对象
对于FRC
- 将Limelight 3A连接到笔记本电脑,等待状态指示灯活动
- 按照第3节所述访问Web界面
- 在设置选项卡中,设置您的团队号码并点击"重启视觉客户端"
- 根据需要配置您的管道
- 准备就绪后,将Limelight 3A插入roboRIO的USB端口
- 打开您首选的仪表板,确保您的3A正在向roboRIO的NetworkTables提交数据
6. 可用的管道类型
Limelight 3A提供与其他Limelight型号相同的视觉处理功能:
- AprilTag跟踪和机器人定位
- 彩色斑点跟踪
- 神经网络对象检测(仅CPU)
- 神经网络分类
- 条形码跟踪
- 自定义Python管道
每个3A出厂时都内置了FTC的Into The Deep场地地图。
7. FTC编程
基本FTC示例:FTC示例
大多数应用只需不到10行代码:
public class Teleop extends LinearOpMode {
private Limelight3A limelight;
@Override
public void runOpMode() throws InterruptedException
{
limelight = hardwareMap.get(Limelight3A.class, "limelight");
telemetry.setMsTransmissionInterval(11);
limelight.pipelineSwitch(0);
/*
* 开始轮询数据
*/
limelight.start();
while (opModeIsActive()) {
LLResult result = limelight.getLatestResult();
if (result != null) {
if (result.isValid()) {
Pose3D botpose = result.getBotpose();
telemetry.addData("tx", result.getTx());
telemetry.addData("ty", result.getTy());
telemetry.addData("Botpose", botpose.toString());
}
}
}
}
}
为了获得最大的3D定位精度,调用updateRobotOrientation()
并使用getBotPose_MT2()
:
while (opModeIsActive()) {
YawPitchRollAngles orientation = imu.getRobotYawPitchRollAngles();
limelight.updateRobotOrientation(orientation.getYaw(AngleUnit.DEGREES));
LLResult result = limelight.getLatestResult();
if (result != null) {
if (result.isValid()) {
Pose3D botpose = result.getBotpose_MT2();
// 使用botpose数据
}
}
}
更多信息,请参阅FTC编程页面
8. 故障排除
状态指示灯
- 绿色指示灯:缓慢闪烁(无目标),快速闪烁(检测到目标)