Void Sentry
An AI-driven, real-time Sentry Turret platform leveraging asynchronous I/O and computer vision to deliver high-precision autonomous motion tracking on resource-constrained embedded hardware.
Loading...
Searching...
No Matches
tracking_types.h File Reference

Value types shared by the motion detector and the tracker (pure C++20, natively tested). More...

#include <array>
#include <cstdint>

Go to the source code of this file.

Classes

struct  tracking::Box
 Inclusive cell rectangle. A default-constructed box is empty. More...
 
struct  tracking::Blob
 One connected region of foreground cells. More...
 
struct  tracking::DetectorConfig
 Motion detector tunables. Defaults are tuned for an indoor scene 1-3 m away. More...
 
struct  tracking::DetectionResult
 What the detector found in one frame. Blobs are sorted by area, largest first. More...
 
struct  tracking::TrackerConfig
 Tracker tunables (frame counts assume ~17 fps). More...
 
struct  tracking::TrackState
 The tracked target. Positions in cells, velocity in cells per frame. id 0 = no target. More...
 

Typedefs

using tracking::GrayFrame = std::array<uint8_t, kCells>
 One 40x30 luma frame, row-major (index = y * kGridW + x).
 

Enumerations

enum class  TrackPhase : uint8_t { Idle = 0 , Tentative = 1 , Locked = 2 , Coasting = 3 }
 

Functions

const char * tracking::to_string (TrackPhase phase)
 

Variables

constexpr int tracking::kGridW = 40
 
constexpr int tracking::kGridH = 30
 
constexpr int tracking::kCells = kGridW * kGridH
 
constexpr int tracking::kMaxBlobs = 16
 

Detailed Description

Value types shared by the motion detector and the tracker (pure C++20, natively tested).

Everything works on a 40x30 gray grid: the camera's QVGA JPEG decoded at 1/8 scale (one DC value per 8x8 block). Coordinates are in grid cells; multiply by 8 for QVGA pixels.