Initial commit

Made-with: Cursor
This commit is contained in:
Oleksandr Bezdieniezhnykh
2026-03-26 00:20:30 +02:00
commit 8e2ecf50fd
144 changed files with 19781 additions and 0 deletions
@@ -0,0 +1,40 @@
# Environment Strategy
## Environments
| Environment | Purpose | Hardware | Inference | Gimbal |
|-------------|---------|----------|-----------|--------|
| Development | Local dev + tests | x86 workstation with NVIDIA GPU | ONNX Runtime or TRT on dev GPU | Mock (TCP socket) |
| Production | Field deployment on UAV | Jetson Orin Nano Super (ruggedized) | TensorRT FP16 | Real ViewPro A40 |
CI testing uses the Development environment with Docker (mock everything).
HIL testing uses the Production environment on a bench Jetson.
## Configuration
Single YAML config file per environment:
- `config.dev.yaml` — mock gimbal, console logging, ONNX Runtime
- `config.prod.yaml` — real gimbal, NVMe logging, thermal monitoring
Config is a file on disk, not environment variables. Updated via USB in production.
## Environment-Specific Overrides
| Config Key | Development | Production |
|-----------|-------------|------------|
| inference_engine | onnxruntime | tensorrt_fp16 |
| gimbal_mode | mock_tcp | real_uart |
| vlm_enabled | false (or stub) | true |
| recording_enabled | false | true |
| thermal_monitor | false | true |
| log_output | console | file (NVMe) |
## Field Update Procedure
1. Prepare USB drive: Docker image tar, TRT engines (if changed), config.yaml, update.sh
2. Connect USB to Jetson
3. Run `update.sh`: stops services → loads new images → copies files → restarts
4. Verify: health endpoint returns 200, test frame produces detection
5. Remove USB
If update fails: re-run with previous package from USB, or re-flash Jetson from known-good image.