Limelight Offseason Updates
The New Control System
Communications about the new control system will primarily come from FIRST. What we can say is that the first iteration of the ecosystem was working early January, so it has already seen a huge amount of iteration.
From the perspectives of everyone involved, the only ‘feature’ that actually matters is reliability. If you have it, little else matters. If you don’t have it, nothing else matters.
This is a violently binary characteristic of any control system, and it has driven a focus on hardware simulation, design reviews including the 60+ incredible engineers at Raspberry Pi, rapid iteration, and destructive testing.
The overwhelming majority of our our development time over the past 12+ months has been spent on electrical protection implementation and testing.
We have a comprehensive specifications document that serves as our “North Star”, but we have also been writing “Scenario Explorations” that translate technically complex protection implementations into easy-to-understand “what-if” scenarios.
You will see a few more of these over time, but here’s an early set of three scenario explorations that have already been validated on real, working hardware:
All exposed interfaces, even USB 3.0 and Gigabit Ethernet, are designed beyond the RFP’s specifications with ±30KV air and contact ESD protection. This is critical for reliability, especially on FTC fields.
Hardware
Limelight 3A
Limelight 3A is a $189 USB smart camera for FTC and FRC. With CPU neural network inference and MegaTag2 AprilTag localization, FTC teams and FRC teams now have access to a low-cost, fully-integrated vision solution. Limelight 3A features ±30KV ESD protection on exposed interfaces to survive FTC and FRC environments.
The FTC community’s rapid adoption of Python SnapScripts, neural networks, and MegaTag2 has blown us away. The next batch of 3A units is coming soon.
Limelight 3 and 3G Refresh
Limelight 3 and 3G have been redesigned with a brand new power supply, and they’re already in the wild. With 4.5V - 30V input and external short protection, Limelights are more robust than ever. The new units have red configuration buttons.
If you’ve purchased a camera during the offseason, you likely have refreshed hardware. Additional LL3s will come online in early December.
Team
Our growing team now includes a senior aerospace EE, and a 17-year automotive power EE. We have a growing, AAA team working on new products for FIRST teams.
Software Updates (Misc)
Ask-A-Question
Our LLM-based ask-a-question feature is simultaneously reducing our support load and providing better answers to teams. In several instances, it has provided such amazing answers that we have changed our documentation to match its output. Our cloud infrastructure scrapes our documentation and depersonalized support interaction database periodically to stay up-to-date with the latest information.
Text-A-Question (Beta)
You can now text +1 (833) 705 1817 to receive instant Limelight assistance.
Internationalization
The limelight docs now include Spanish, Portuguese, French, Hebrew, Arabic, Hindi, Turkish, Japanese, and Simplified Chinese translations.
Note - some changes to the docs were made today, so you will see a few pages with incomplete translations. Our translated changes tend to take < 6 hours to fully propagate.
AprilTag Field Maps
The map generator and on-camera visualizer now support FTC field maps. The online generator will accept and auto-convert WPILib apriltag configurations including those generated by cowlibration-field.
New Website
While primarly an visual update for now, the new website gives us a few new capabilities that will be useful in the future.
Software (Limelight OS)
After the 2024 world championship, we launched Limelight OS versions 2024.6 (May 8th) through 2024.10.2 (October 27th). We recommend reading the linked change log, but the updates are summarized below:
Breaking Changes:
- Remove “Camera Orientation” UI option, and replace it with “Stream Orientation”
- This only affects the mjpeg stream. Teams will need to manually handle tx and ty changes while using rotated cameras.
- We felt that “camera orientation” introduced too much confusion when combined with camera calibration and camera roll angle configuration.
- Remove GRIP support
- Remove “Driver” mode and add a “Viewfinder” pipeline type
- The “Viewfinder” pipeline type does not perform any image processing. It allows teams to configure their ideal view-only mode.
- .vpr pipeline files are now JSON based. Old pipelines will be converted automatically when they are uploaded to a camera, and you can pre-convert using the pipeline upgrade tool here: Limelight Tools
- Results, status, and calibration JSON formats have been simplified.
Bugfixes
- If a Google Coral is unplugged, neural pipelines no longer revert back to color pipelines. Instead, they display “check coral” on the image stream.
- If a detector model is uploaded to a classifier pipeline, “check model” is displayed.
- If a classifier model is uploaded to a detector pipeline, “check model” is displayed
- Thanks to the FTC community, the Python SnapScript and Neural Network pipelines have been further ruggedized.
New Features:
- USB Capabilities
- Multiple USB Limelight support on RoboRIO and PCs with USB INDEX (settings tab).
- The subnet changes to 172.29.(USBID).0/24 for Linux/Android/Mac and 172.28.(USBID).0/24 for Windows.
- Improved connectivity on Windows/MacOS
- USB implementation is now fully compatible with school-locked chromebooks.
- USB Limelights are plug-and-play on the RoboRIO. They auto-populate networktables just like ethernet-connected cameras.
- Multiple USB Limelight support on RoboRIO and PCs with USB INDEX (settings tab).
- UI Warnings
- Add warnings for common mistakes such as a static IP address that interferes with the FMS, incorrect AprilTag sizing, etc.
- Python SnapScript pipelines now include the UMichigan AprilTag3 Library.
- New Pipeline Types
- “Focus” pipeline with stream quality and crop box sliders
- “Barcodes” pipeline
- Multi QR Code Detection (50-60 FPS)
- Multi DataMatrix Detection (50-60 FPS)
- (Beta) UPC, EAN, Code128, and PDF417 support (30 FPS)
- CPU Neural Network Inference (Change runtime to “CPU” in neural pipeline)
- Support for CPU classifiers (15-18 FPS)
- Support for CPU detectors (8-10 FPS)
- The online training pipeline generates CPU and Coral neural networks
- Complete REST API rebuild
- New Python library (limelightlib-python)
- New Rust library (limelightlib-rust)
- Added Modbus support for non-FIRST applications
- Custom NT server support for usage with Glass and other NT4 clients outside of FRC.
- Dynamic AprilTag 3D Offset support (NT fiducial_offset_set)
- It is now possible to adjust the 3D Offset without changing pipelines. This is useful for situations in which your “aim point” needs to change based on distance or other properties.
- Display warning if a static IP address falls outside of the .11-.19 range. Addresses outside of this range may interfere with the fms or other common devices.
AprilTag Pipeline Changes:
- Display warning if configured AprilTag size does not match with field map tag sizes. This was the root of most of the accuracy issues we have debugged with teams.
- MegaTag2 Improvements
- Upgrade to NetworkTables 4.0 and add robot-side flush() for significant accuracy improvements while turning.
- Add “Gyro latency adjustment” slider
- Post STDDevs to networktables, the UI, and JSON. Don’t plug these numbers directly into your robot code - use them to characterize the min/max STDDevs while still to help you select STDDev values for your localizers.
- MT2 now returns (0,0,0) when untenable geometric impossibilities are detected (previously, the camera was placed at (0,0,0) which would place the robot away from (0,0,0)
- Several visualizer upgrades
- Hide/Show individual target data, MT2 data, MT1 data, stddevs
- Maps show red/blue alliance stations
Other Pipeline Changes:
- Add “centroid” targeting region for more stable color object tracking. Centroid will target the center of mass of a contour rather than the center of a contour.
Calibration Changes:
- Calibration settings are now cached. You no longer need to enter grid and mark sizes every time you want to calibrate.
- Add “Download Calibration Mosaic” button.
- Calibration mosaics show calibration coverage and per-image corner detection results.
- Calibration accuracy has been improved. You can expect ~1 pixel or less reprojection error with as few as 15 images of paper targets.
- Calibration is over 20x as fast as before - you can expect a calibration result within seconds even with a large number of images.
NetworkTables Changes
- Add getpipetype
- tcclass, tdclass strings for neural pipeline class output
- Add t2d atomic 2d targeting array
- [valid, targetcount, targetlatency, capturelatency, tx, ty, txnc, tync, ta, targetid, classifierID, detectorID, tlong, tshort, thor, tvert, ts(skew)]
- Add crosshairs array [cx0, cy0, cx1, cy1] and remove individual cx0, cy0, cx1, cy1 entries
- Add fiducal_offset_set
- Remove tlong, tshort, thor, tvert, ts entries
- Add rawbarcodes string array
- Raw target arrays include up to 32 targets
JSON Changes
- Add pType, stdev_mt1, stdev_mt2, PythonOut, tx, ty, txnc, tync, ta
- Area value in target arrays returns calibrated/undistorted, normalized value
Thanks!