Skip to content

About

Attritable edge sensor node: detect, track and publish tracks (not video) on a power budget. Scaffold: CoT encoder, bandwidth governor, benchmark harness.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Sentinel Node

CI

An attritable edge sensor: a low-cost node that detects people, vehicles and small drones, tracks them locally, and publishes tracks, not video over a constrained link. Target hardware is a Jetson Orin Nano on a 7-25 W budget.

Status: scaffold plus a first detector result. The measurement harness, Cursor-on-Target encoding and bandwidth governor are implemented and unit-tested on a laptop, and a YOLO11n detector has been fine-tuned on VisDrone and compared across FP32, FP16 and INT8 on a desktop GPU (below). Nothing has run on a Jetson, and there is no camera, GPS or on-node tracker yet, so no device latency or energy numbers exist. See the roadmap.

Part of physical-ai-portfolio. The node tracker is intended to reuse ideas from FuseTrack.

Problem

A forward sensor has little power, a thin link and no operator watching video. It has to decide locally what is there and send only what the link can carry. The interesting question is the trade curve: how much accuracy, latency and battery each optimisation costs. That curve is the deliverable, not the demo.

What exists today

Module What it does Tested
cot Encodes a track as a CoT 2.0 event (point + course/speed) Structure, UTC times, range checks, size under 600 B
governor Chooses what to publish (tracks + thumbnails, tracks, reduced-rate tracks, nothing) from measured link capacity, with hysteresis Exact thresholds, immediate degrade, no flapping
bench Per-stage timers with p50/p95/p99, energy per frame from average power, tegrastats power parsing Percentiles, injected clock, markdown table
pipeline capture → detect → track → publish driver with stage interfaces End to end on synthetic stand-ins

The Synthetic* classes and the nearest-neighbour tracker exist only to exercise the harness. Timings from them say nothing about the real node.

First result: detector precision on a desktop GPU

YOLO11n fine-tuned on VisDrone (aerial people and vehicles), 640 px, evaluated on the VisDrone validation split with INT8 calibrated on 512 held-out training images. RTX A4500 Laptop GPU, TensorRT 10.16.

Precision mAP50-95 Δ vs. FP32 Latency, batch 1 (ms/img) Size (MB)
PyTorch FP32 0.162 baseline 6.59 5.2
TensorRT FP16 0.162 +0.05 pts 1.12 8.1
TensorRT INT8 (MinMax) 0.152 -0.92 pts (-5.7%) 1.07 4.9

FP16 cost nothing in accuracy (+0.11 ± 0.05 points over three trained models). MinMax INT8 lost 0.88 ± 0.07 points of mAP50-95 (stable across three training seeds and three calibration samples) and ran about 8% faster than FP16 at batch 1 and about 27% faster at batch 8 on the seed-0 model; entropy calibration lost about 3 points. An earlier version of this page said INT8 was slower than FP16; that came from a single outlier latency reading and did not reproduce (details and correction in the experiment README). Latency on this throttling laptop GPU drifts, so engines are compared within the same measurement round. Not Jetson numbers. See experiments/detector.

Planned measurements (not yet done)

  1. Latency per stage and joules per frame at 7 W, 15 W and 25 W power modes, on the Jetson (including FP16 vs. INT8).
  2. Detection mAP after INT8 on the device build, and with other calibration methods.
  3. Tracking MOTA/HOTA on recorded sequences, and track continuity under dropped frames.
  4. Tracks delivered per kilobyte at simulated 9.6 kbps, 64 kbps and 1 Mbps.
  5. A 24-hour soak test.

Run the harness

python -m venv .venv && . .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
pytest
python -m sentinel_node.cli --frames 300

Scope

Passive sensing, tracking and reporting only. Public data and unclassified scenarios. No weapons, targeting or engagement functionality.

License

MIT. See LICENSE.

About

Attritable edge sensor node: detect, track and publish tracks (not video) on a power budget. Scaffold: CoT encoder, bandwidth governor, benchmark harness.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages