Vision
👀 Powerful vision code for FRC
Install / Use
/learn @SouthEugeneRoboticsTeam/VisionREADME
Usage
Before starting the program, you must install OpenCV >= v3.1.x along with the pip dependencies:
$ pip install -r requirements.txt
Then, you can run the program using:
$ python run.py
Full usage:
usage: run.py [-h] [-i IMAGE] [-s SOURCE] [-t TEAM] [-d] [-na MIN_AREA]
[-xa MAX_AREA] [-nf MIN_FULL] [-xf MAX_FULL]
[-l LOWER_COLOR [LOWER_COLOR ...]]
[-u UPPER_COLOR [UPPER_COLOR ...]] [-tn] [-v]
Usage with Docker
If you are using Docker, the installation process is much easier.
Note: due to the sizes of the images that are installed as part of the build process, it is recommended to have a few GB of hard disk space available when building.
First, cd to this repository and then run docker build . -t vision. All existing config files will be used in the build process to make the image.
This will produce a docker image which can be run using:
$ docker run --device /dev/video0 vision
Make sure that you have a camera connected before running this!
Connection Status GUI
SERT's vision software comes with a connection status GUI to help debug connection issues. This GUI can be displayed on a monitor connected to the co-processor. We use an Adafruit 5" screen.
RADIOchecks connection to the robot's radio (at10.XX.XX.1)ROBOTchecks connection to the roboRIO (at10.XX.XX.2)NTABLchecks connection to the NetworkTables server on the roboRIO
| Good | Warning | Bad |
|---------|---------|---------|
| Connection is good and system is ready. | Some connections are down. | No connection. Ensure ethernet is plugged in. |
|
|
|
|

Configuration
Command-Line Options
All command-line arguments may be configured in the config.ini file
(located at config/config.ini). For example, the --lower-rgb
argument may be edited using the lower-rgb line in the config.ini.
optional arguments:
-h, --help show this help message and exit
-i IMAGE, --image IMAGE
path to image
-s SOURCE, --source SOURCE
video source (default=0)
-t TEAM, --team TEAM the team of the target roboRIO
-d, --display display results of processing in a new window
-na MIN_AREA, --min-area MIN_AREA
minimum area for blobs
-xa MAX_AREA, --max-area MAX_AREA
maximum area for blobs
-nf MIN_FULL, --min-full MIN_FULL
minimum fullness of blobs
-xf MAX_FULL, --max-full MAX_FULL
maximum fullness of blobs
-l LOWER_COLOR [LOWER_COLOR ...], --lower-color LOWER_COLOR [LOWER_COLOR ...]
lower color threshold in HSV
-u UPPER_COLOR [UPPER_COLOR ...], --upper-color UPPER_COLOR [UPPER_COLOR ...]
upper color threshold in HSV
-tn, --tuning open in tuning mode
-v, --verbose for debugging, prints useful values
Camera
For use with the Microsoft Lifecam 3000, the camera's exposure should be set manually because the Lifecam will auto-adjust otherwise, making thresholding difficult. This can be done with V4L:
$ sudo apt-get install v4l-utils
$ v4l-ctl -d /dev/video0 -c exposure_auto=1 # 1=DISABLED, 3=ENABLED
$ v4l-ctl -d /dev/video0 -c exposure_absolute=50
Related Skills
node-connect
337.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
83.2kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
83.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
337.3kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
