Metadata-Version: 2.4
Name: visioncore-frc
Version: 0.1.1
Summary: FRC vision pipeline for object detection and field mapping
License-Expression: GPL-3.0
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.26.0
Requires-Dist: opencv-python>=4.8.0
Requires-Dist: protobuf>=4.25.0
Requires-Dist: tqdm>=4.66.0
Requires-Dist: requests>=2.31.0
Requires-Dist: psutil>=7.2.0
Requires-Dist: ruamel.yaml>=0.19.0
Requires-Dist: Pillow>=12.0.0
Requires-Dist: flask>=3.0
Requires-Dist: scikit-learn>=1.3.0
Requires-Dist: ultralytics>=8.3.0
Provides-Extra: deploy
Requires-Dist: ultralytics>=8.3.0; extra == "deploy"
Requires-Dist: pyntcore>=2024.0.0; extra == "deploy"
Requires-Dist: robotpy>=2024.0.0; extra == "deploy"
Requires-Dist: rknn-toolkit-lite2==2.3.2; extra == "deploy"
Provides-Extra: dev
Requires-Dist: ultralytics>=8.3.0; extra == "dev"
Requires-Dist: pyntcore>=2024.0.0; extra == "dev"
Requires-Dist: robotpy>=2024.0.0; extra == "dev"
Requires-Dist: rknn-toolkit2==2.3.2; extra == "dev"
Requires-Dist: torch>=2.0.0; extra == "dev"
Requires-Dist: torchvision>=0.15.0; extra == "dev"
Requires-Dist: tensorflow>=2.13.0; extra == "dev"
Requires-Dist: onnx>=1.16.0; extra == "dev"
Requires-Dist: onnxruntime>=1.16.0; extra == "dev"
Requires-Dist: onnxslim>=0.1.87; extra == "dev"
Requires-Dist: scipy>=1.10.0; extra == "dev"
Requires-Dist: matplotlib>=3.8.0; extra == "dev"
Requires-Dist: polars>=1.39.0; extra == "dev"
Requires-Dist: fast-histogram>=0.14; extra == "dev"
Requires-Dist: plotly>=5.0; extra == "dev"
Requires-Dist: snakeviz; extra == "dev"
Requires-Dist: jupyter; extra == "dev"
Requires-Dist: tensorboard; extra == "dev"
Provides-Extra: metrics
Requires-Dist: plotly>=5.0; extra == "metrics"
Dynamic: license-file

2026 Vision Testing

This repository contains vision processing code for 2026 FRC competition. The code is organized into simplified and complex implementations.

Simplified folder: detects fuel and sends positions over network tables. Good for competition and low-latency setups.

Complex folder: does path planning and plotting along with fuel detection. More features but slower.

Important Scripts

video_feed_broadcaster.py - Flask app that streams camera feed to a website
yolo_with_cam.py - Runs YOLO vision model on camera (default camera 0)
pt_to_wtv.py - Converts .pt files to other formats (onnx, xml, etc)
map_maker.py - Interactive window to create a fuel map
map_creator.py - Uses the vision model to create a birdseye view from images
camera_calibration.py - Calculates focal length constants for camera calibration
livestream_reader.py - Reads frames from a livestream using Camera class
onnx_to_rknn.py - Converts models to RKNN format

Folder Structure

COMPLEX - path planning and plotting with fuel detection
SIMPLIFIED - fuel detection and network tables sending
PLOTTERS - plotting and utility experiments
YOLO_MODELS - YOLO models and exports

Key Classes

Camera.py - camera configuration and capture
CustomDBScan.py - point cloud filtering with DBSCAN
NetworkTableHandler.py - network tables communication
PathPlanner.py - path planning logic
Fuel.py - fuel tracking object
FuelTracker.py - fuel tracking helper

Orange Pi 5 Device

IP: 10.22.7.200
Username: ubuntu
Password: 2207vision

To access the device, use SSH with the credentials above.
To clone the repo on the device: git clone git@github.com:FRC2207/2026-Vision-Testing.git

Common Commands

sudo systemctl restart vision.service - restart the vision service
tmux attach -t vision - attach to vision tmux session
git pull - update code from repository
git reset --hard HEAD - undo local changes
git clean -fd - remove untracked files

Model Performance

Model         Size    Latency      FPS
Yolov26       nano    99.5ms       10
Yolov11       nano    71.5ms       14
Yolov11       small   98.9ms       10
Yolov11       medium  235.3ms      4
Yolov8        nano    20-30ms      30-50
Yolov8        small   40-60ms      15-25
Yolov5        nano    15-25ms      40-60

Notes

The repository is functional but has rough edges and moved files during testing.
When converting models, double-check export settings to avoid losing work.
The simplified implementation is recommended for competition use.
