跳到主要内容

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螺栓和尼龙锁紧螺母
Limelight 3A Drawing

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连接到计算机后:

  1. 等待绿色状态指示灯激活(约15-20秒)
  2. 使用以下方法之一访问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

  1. 使用USB线缆将Limelight连接到笔记本电脑
  2. 按照第3节所述访问Web界面
  3. 进入设置选项卡,设置您的团队号码,然后点击"重启视觉客户端"
  4. 根据需要配置您的管道(AprilTag、神经网络、自定义Python等)
  5. 准备比赛时,将Limelight 3A插入控制中心的USB 3.0端口
  6. 在FTC驾驶站应用程序中,点击"配置机器人"
  7. 如果您没有活动配置,可能需要创建一个新配置
  8. 点击"扫描"按钮
  9. 您应该会看到出现一个"以太网设备"
  10. 您可以将此设备的名称编辑为"limelight"以便于识别
  11. 现在您可以在代码中使用硬件映射初始化Limelight3A对象

对于FRC

  1. 将Limelight 3A连接到笔记本电脑,等待状态指示灯活动
  2. 按照第3节所述访问Web界面
  3. 在设置选项卡中,设置您的团队号码并点击"重启视觉客户端"
  1. 根据需要配置您的管道
  2. 准备就绪后,将Limelight 3A插入roboRIO的USB端口
  3. 打开您首选的仪表板,确保您的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. 故障排除

状态指示灯

  • 绿色指示灯:缓慢闪烁(无目标),快速闪烁(检测到目标)

常见问题

  • 为什么我的Limelight摸起来很热? 为了让Limelight尽可能地保持低温运行,它的外壳必然会摸起来尽可能热/在安全范围内热。它的外壳是一个高导热性的散热器,有助于保持CPU在合理的低温下。

  • 为什么图像看起来有颗粒感? 为了最小化延迟,跳过了商业相机通常具有的几个滤镜。视频流也被压缩以最小化比特率。在2024.10.1版本中,我们更改了默认的色彩平衡值,使图像对人眼看起来更自然、更生动。

  • Limelight相比Control Hub上的OpenCV有什么优势? 开箱即用、零代码、多标签定位算法,具有机器人IMU传感器融合、神经网络等功能。