# 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.