Thanks for your interest in the Vision Gimbal Tracker. This project targets low-latency real-time operation, so changes must preserve or improve the existing performance envelope (~59 fps, ~10 ms PC-side latency).
- Python 3.12 exactly (see
.python-version). pip install -r requirements-dev.txtpre-commit installto enable format/lint hooks on every commit.
Optional for GPU-dependent features (TensorRT inference, real-time run):
install torch and tensorrt wheels matching your CUDA version separately.
The test suite itself runs CPU-only.
pytest # full suite
pytest -m unit # fast unit layer
pytest -m integration # cross-process tests
pytest -m "not perf" # what CI runs
pytest --cov=src # with coverageConventional Commits: <type>(<scope>): <subject>
Types: feat, fix, refactor, perf, test, docs, chore, ci, build.
Examples:
fix(tracking): clamp Kalman velocity before predictionperf(inference): hoist protocol imports out of hot loopdocs: add laser-boresight calibration walkthrough
-
pre-commit run --all-filespasses -
pytest -m "not perf"passes locally - New logic has at least one test
- No secrets, weights (
*.pt), engines (*.engine), or large binaries staged -
git statusreviewed beforegit add - Relevant section of
AGENTS.mdupdated if architecture shifts
These invariants must not be broken without explicit discussion:
- Three-process pipeline boundary (Capture / Inference / Output).
- Lock-free
SharedRingBuffer(no extra copies on the hot path). - Fire-and-forget output transport (no blocking acks on the control path).
- Frozen-dataclass config (
src/config.py) as the single source of runtime tuning. - Kalman units:
vx,vyare in pixels/second, not pixels/frame.
See AGENTS.md for the full list.
See SECURITY.md. Please do not open public issues for vulnerabilities.