v2026.09.24.2: field calibration page, patches 15–30
Bench-tested build of our Jetson Orin Nano Super vision coprocessor, as running on 2026-09-24 (evening). Everything here can be rebuilt from this tag with the scripts in the repo. These files are the backup, so the exact running versions don't have to be rebuilt.
New since v2026.09.24 (patches 15–30):
-
Field Calibration page in PhotonVision (
photonvision-30). Push the robot by hand to still spots and the Jetson solves every tag's real position on the field and every camera's mount, using the same GPU detector as in matches. It includes:- camera settings tuning: exposure, gain, brightness, contrast, gamma, sharpness;
- a guided recording with a live field map and a 3D view built from FIRST's field CAD;
- results, with one-click apply and undo of the corrected layout.
Tested on synthetic recordings and on the bench; the shop test with real tags is next. See the README's "Field calibration" section.
-
Health and diagnostics:
- Jetson and camera health on NetworkTables, including GPU use and throttling;
- camera settings logged for the robot log;
- a camera mount estimate from tags.
-
Detection:
- hardware JPEG decode (NVJPG);
- bad tags can be left out of multi-tag;
- better calibration (auto snapshots, our board as the default).
-
UI: copy settings between cameras and pipelines, a tuning guide in the camera UI, and the Thriftiest Cam's hidden controls (contrast, gamma, sharpness, backlight compensation).
-
Recovery: a camera stuck at the wrong resolution, or stuck sending bad frames, now recovers by itself.
Details are in the README.
Files
| File | What it is | How to use it |
|---|---|---|
photonvision-spectrum-v2026.09.24.2-linuxarm64.jar |
PhotonVision, built from FRC-Team-4143's fork (d8c9e8e) + upstream PhotonVision v2026.3.4 + our patches 00–30, with the 3D field model |
Copy it to the Jetson, then run scripts/jetson/06-install-fork-jar.sh <jar> |
libspectrumtrt.so |
Our TensorRT YOLO backend (game pieces), for JetPack 6.2.3 / L4T 36.5.2 / TensorRT 10.3 | sudo install -m 755 libspectrumtrt.so /usr/lib/ |
libspectrumnvjpg.so |
Our NVJPG hardware JPEG decoder, loaded by the detector with SPECTRUM_JPEG_DECODER=nvjpg |
sudo install -m 755 libspectrumnvjpg.so /usr/lib/, then scripts/jetson/08-select-detector.sh bos --mwbd 20 --jpeg nvjpg |
uvcvideo-5.15.199-tegra-payload-cap.ko |
The USB camera driver with our bandwidth cap (4 cameras fit on the USB-A ports), for kernel 5.15.199-tegra only |
Normally built by scripts/jetson/11-uvcvideo-payload-cap.sh --install |
photonvision-settings-2026-09-24b.zip |
PhotonVision's settings database: camera names, pipelines, calibrations (TopLeft, TopRight), field layout, network settings | PhotonVision web UI: Settings → Import Settings |
SHA256SUMS |
Checksums | sha256sum -c SHA256SUMS |
Not included, on purpose
- The CUDA AprilTag detector (
lib971apriltag.so) and the field-calibration replay tool (fieldcal_detect). Their source (frc971/bos) has no license file, so we don't publish binaries of them. Rebuild them on the Jetson withscripts/jetson/07-build-bos-detector.shandscripts/jetson/13-build-fieldcal-detect.sh --install. - The FUEL game-piece models. They aren't ours to redistribute. Sources are in
docs/GAME-PIECE-MODELS.md. - The full SSD image. It contains the Wi-Fi password and SSH keys, so it's kept privately (
scripts/host/04-backup-ssd.sh). - Calibration snapshot images and logs from the settings export (the database already holds the calibrations).
Licenses
- The PhotonVision jar and this repo are GPL-3.0, following PhotonVision; the source is this tag.
- The driver module is GPL-2.0:
kernel/uvcvideo-payload-cap.patchapplied to stock Linux v5.15.199. - The 3D field model in the jar is converted from FIRST's official 2026 field CAD (© FIRST). FIRST publishes the CAD for teams but states no license; AdvantageScope redistributes field models made from the same CAD the same way.
- Credits for everything we built on are in the README's "Credits and licenses" section.