Programming // The Brain

The code thatdrives it.

Hardware wins matches. Software wins championships. Our codebase fuses computer vision, real-time SLAM, sensor fusion, and a custom architecture built for consistency, redundancy, and ease-of-use.

Core Tenets

How we write code.

01

Consistency

Failing 5% of the time is failing all the time. Robust autonomous, adaptive control systems, sensor-based actions.

02

Optimal

Spend the least amount of effort for the most amount of points. Reliable subsystems, minimal wasted resources.

03

Redundancy

Better to have it twice than to need it once. Back-up sensors paired with mechanical and software solutions.

04

Ease-of-use

If your driver needs a manual, your code needs a redesign. Auto-advancing states, teleop sensor assistance.

System Architecture

Three layers. One unified system.

PHYSICAL LAYER

Hardware abstraction

Custom controls for every actuator — applicable to every season's robot. PIDs tunable in seconds.

LOGICAL LAYER

Subsystem brains

Deposit · Turret · Intake · Transfer · Vector. Each subsystem is independently testable and swappable.

COORDINATOR

The conductor

Sequences subsystems together for complex autonomous routines and assisted teleop actions.

Software Innovations

The stack that wins matches.

Nine systems working together. Each one solving a specific problem we hit on the field, each one built from scratch by team members.

01 / 09

Real-Time SLAM

Simultaneous Localization & Mapping

Combined vision, depth sensing, and odometry to continuously map the field and localize the robot in real time. Allows us to adapt to alliance partners, update paths on the fly, and make informed autonomous decisions based on an accurate understanding of our surroundings.

Vision + depth + odometryDynamic path generationField-wide localization
02 / 09

Computer Vision

Limelight + HuskyLens AI

Limelight handles AprilTag detection for auto-aligning to the backboard and reading IDs to dynamically choose patterns. Ball detection identifies game pieces and feeds into the multi-zone sensor pipeline to compute SLAM updates.

AprilTag detectionAuto-alignBall tracking
03 / 09

Multi-Zone Depth Sensing

VL53L1X distance arrays

Multi-zone depth sensors detect approaching objects and measure their distance with sub-centimeter precision. Critical for collision avoidance during autonomous and for understanding the robot's micro-environment.

VL53L1X sensorsObject distanceCollision avoidance
04 / 09

Pinpoint Localization

IMU + dead-wheel odometry

The Pinpoint computer fuses IMU and dead-wheel odometry into a single, precise localization system using global field coordinates rather than relative-to-robot. This is what powers our SLAM module.

Global coordinatesSensor fusionSLAM-ready
05 / 09

Layered Architecture

Custom Physical Layer

Built our own layered architecture: a Physical Layer with custom controls applicable to every season, a Logical Layer on top, and a Coordinator that ties subsystems together. Enables fast prototyping and clean transfer between seasons.

Reusable per seasonCentralized actuatorsTunable PIDs
06 / 09

SQLite Persistence

State across disconnects

Custom SQLite database persists transfer state and sensor data through robot disconnects between Auton and TeleOp. Static variables get reset on disconnect — the database doesn't.

Cross-phase stateDisconnect-proofSensor history
07 / 09

Physics-Based Shooting

Adaptive auto-shoot

Physics-based shooting calculation with hood adjustments for lost velocity. We can shoot while moving — driver no longer needs to stop, eliminating opportunities for defenders to push us off line.

Moving shotsVelocity compHood adjustment
08 / 09

Agile Dev Pipeline

Branch-per-subsystem

Structured agile pipeline. Each coder works on their own branch per subsystem (Drivetrain, Intake, Deposit, Slides). The captain delegates, tests are written for each subsystem, and branches merge into main only after validation.

Git branchesSubsystem testsCaptain-led merges
09 / 09

Bulk Reading + SRS Hub

Sub-10ms loop times

Switched from reading each sensor individually (slow loop times) to using SRS Hubs with bulk reading — reading every sensor in a single transaction. Dramatic improvement in loop frequency.

Bulk readsSub-10ms loopsCustom drivers
Development Pipeline

Five coders. One main branch.

With five people on our software team, multiple coders can't edit the robot at once. We follow an agile pipeline where the captain delegates subtasks to individual coders or pairs. Each one works on their own branch of the repository, builds the feature in isolation, writes tests for the subsystem, and merges into mainonly once it's validated.

captainbranch/drivetrainbranch/intakebranch/depositbranch/slidesmain
Future Improvements

What's next on the line.

RESEARCH / NEXT SEASON

Predictive trajectory optimization

Use SLAM history + game-state prediction to anticipate robot and alliance movements rather than reacting in real time.

RESEARCH / NEXT SEASON

Reinforcement learning agent

Train an RL model on past match data to improve endgame decisions and scoring strategies automatically — the robot gets smarter every match.