diff --git a/.gitignore b/.gitignore index e8e5857..14908ae 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,12 @@ # IDEs .idea/ .vscode/ +*.DS_Store # Python __pycache__/ venv/ +venv_win/ # Logging logs/ @@ -12,3 +14,12 @@ logs/ # Pytorch and Ultralytics *.pt *.pth + +# Model blobs (large binaries, download via scripts/download_model.py) +models/ + +# Cache +.cache/ + +# Context/prompt files +*.txt \ No newline at end of file diff --git a/config.yaml b/config.yaml index 4b0d967..ba6a101 100644 --- a/config.yaml +++ b/config.yaml @@ -86,3 +86,13 @@ communications: auto_landing: enabled: true + +spatial_detection: + # Luxonis model zoo name. Auto-downloaded on first run, cached after. + model_name: "yolov6-nano" + confidence_threshold: 0.5 + depth_lower_mm: 100 # Ignore detections closer than this (mm) + depth_upper_mm: 10000 # Ignore detections farther than this (mm) + +object_tracker: + target_class_id: 0 # COCO class 0 = person diff --git a/documentation/accuracy/accuracy_log_2026-04-30.csv b/documentation/accuracy/accuracy_log_2026-04-30.csv new file mode 100644 index 0000000..c90c71c --- /dev/null +++ b/documentation/accuracy/accuracy_log_2026-04-30.csv @@ -0,0 +1,773 @@ +timestamp,test_distance,target_id,x_mm,y_mm,z_mm +1777584773.933155,0.5m,0,-143,36,686 +1777584773.984818,0.5m,0,-144,36,687 +1777584774.04097,0.5m,0,-143,36,685 +1777584774.093626,0.5m,0,-142,36,686 +1777584774.146431,0.5m,0,-141,36,684 +1777584774.199923,0.5m,0,-143,36,685 +1777584774.255423,0.5m,0,-141,36,684 +1777584774.3112152,0.5m,0,-141,36,685 +1777584774.359117,0.5m,0,-142,36,684 +1777584774.413475,0.5m,0,-142,36,684 +1777584774.468322,0.5m,0,-145,36,683 +1777584774.524756,0.5m,0,-142,36,683 +1777584774.578047,0.5m,0,-141,36,684 +1777584774.6253388,0.5m,0,-142,36,683 +1777584774.684326,0.5m,0,-143,36,684 +1777584774.741537,0.5m,0,-142,36,683 +1777584774.79103,0.5m,0,-139,36,683 +1777584774.846604,0.5m,0,-142,36,682 +1777584774.899203,0.5m,0,-141,36,685 +1777584774.951763,0.5m,0,-142,36,684 +1777584775.006977,0.5m,0,-141,36,682 +1777584775.059201,0.5m,0,-144,36,683 +1777584775.112287,0.5m,0,-146,36,684 +1777584775.166784,0.5m,0,-140,35,680 +1777584775.222338,0.5m,0,-143,36,682 +1777584775.27897,0.5m,0,-141,36,683 +1777584775.32592,0.5m,0,-143,36,683 +1777584775.38127,0.5m,0,-142,36,683 +1777584775.433981,0.5m,0,-142,36,683 +1777584775.490635,0.5m,0,-141,36,683 +1777584775.546562,0.5m,0,-144,36,684 +1777584775.59393,0.5m,0,-139,36,683 +1777584775.6496918,0.5m,0,-143,36,683 +1777584775.701952,0.5m,0,-142,36,682 +1777584775.757418,0.5m,0,-143,36,682 +1777584775.812104,0.5m,0,-141,35,679 +1777584775.8605142,0.5m,0,-140,35,681 +1777584775.919712,0.5m,0,-140,35,683 +1777584775.9708061,0.5m,0,-143,35,682 +1777584776.02426,0.5m,0,-142,35,680 +1777584776.079013,0.5m,0,-143,36,683 +1777584776.129877,0.5m,0,-143,36,683 +1777584776.185218,0.5m,0,-142,35,681 +1777584776.2515929,0.5m,0,-141,34,679 +1777584776.29374,0.5m,0,-142,36,683 +1777584776.346664,0.5m,0,-142,34,680 +1777584776.407134,0.5m,0,-141,35,677 +1777584776.456974,0.5m,0,-140,35,677 +1777584776.513495,0.5m,0,-140,34,680 +1777584776.561706,0.5m,0,-141,34,680 +1777584776.618376,0.5m,0,-142,35,681 +1777584776.677453,0.5m,0,-142,35,682 +1777584776.723658,0.5m,0,-141,34,680 +1777584776.77735,0.5m,0,-142,34,677 +1777584776.8335192,0.5m,0,-139,35,678 +1777584776.887236,0.5m,0,-141,35,678 +1777584776.940537,0.5m,0,-138,34,677 +1777584776.992797,0.5m,0,-139,34,678 +1777584777.045393,0.5m,0,-142,34,678 +1777584777.099277,0.5m,0,-142,34,678 +1777584777.1531038,0.5m,0,-141,35,681 +1777584777.211467,0.5m,0,-140,34,675 +1777584777.260128,0.5m,0,-141,34,677 +1777584777.3143559,0.5m,0,-140,34,681 +1777584777.368305,0.5m,0,-138,34,678 +1777584777.42418,0.5m,0,-140,34,681 +1777584777.479261,0.5m,0,-140,34,679 +1777584777.5271418,0.5m,0,-140,33,676 +1777584777.584167,0.5m,0,-140,33,677 +1777584777.634658,0.5m,0,-140,33,677 +1777584777.689888,0.5m,0,-137,34,678 +1777584777.746012,0.5m,0,-139,33,676 +1777584777.796691,0.5m,0,-138,33,678 +1777584777.85054,0.5m,0,-139,34,679 +1777584777.9076228,0.5m,0,-137,33,674 +1777584777.957373,0.5m,0,-138,34,677 +1777584778.010447,0.5m,0,-139,33,677 +1777584778.066829,0.5m,0,-137,34,677 +1777584778.120429,0.5m,0,-138,34,677 +1777584778.1727319,0.5m,0,-139,33,677 +1777584778.224009,0.5m,0,-139,33,677 +1777584778.278272,0.5m,0,-138,34,677 +1777584778.332188,0.5m,0,-138,34,676 +1777584778.384247,0.5m,0,-138,34,678 +1777584778.439453,0.5m,0,-139,34,678 +1777584778.492364,0.5m,0,-140,35,677 +1777584778.546578,0.5m,0,-138,35,679 +1777584778.5984042,0.5m,0,-138,35,677 +1777584778.652034,0.5m,0,-139,35,677 +1777584778.709323,0.5m,0,-138,35,677 +1777584778.759792,0.5m,0,-139,34,678 +1777584778.8125288,0.5m,0,-140,34,680 +1777584778.8646069,0.5m,0,-140,35,676 +1777584778.92089,0.5m,0,-138,35,678 +1777584778.973851,0.5m,0,-138,35,680 +1777584779.024487,0.5m,0,-139,35,678 +1777584779.080108,0.5m,0,-140,36,682 +1777584779.1333299,0.5m,0,-140,35,681 +1777584779.187129,0.5m,0,-142,35,681 +1777584779.23953,0.5m,0,-139,34,678 +1777584779.292043,0.5m,0,-141,34,677 +1777584779.344332,0.5m,0,-139,34,680 +1777584779.400228,0.5m,0,-142,35,682 +1777584779.4522429,0.5m,0,-140,35,681 +1777584779.5089889,0.5m,0,-139,34,677 +1777584779.559432,0.5m,0,-139,34,677 +1777584779.6173959,0.5m,0,-139,35,677 +1777584779.6675808,0.5m,0,-140,34,677 +1777584779.722684,0.5m,0,-140,35,683 +1777584779.7773561,0.5m,0,-141,35,682 +1777584779.824949,0.5m,0,-138,36,684 +1777584779.879581,0.5m,0,-140,34,680 +1777584779.9365911,0.5m,0,-137,35,681 +1777584779.990707,0.5m,0,-139,34,680 +1777584780.050266,0.5m,0,-140,34,676 +1777584780.095216,0.5m,0,-140,34,677 +1777584780.152396,0.5m,0,-139,33,678 +1777584780.209996,0.5m,0,-139,34,680 +1777584780.258473,0.5m,0,-140,33,677 +1777584780.310036,0.5m,0,-140,34,680 +1777584780.365551,0.5m,0,-139,34,680 +1777584780.4204109,0.5m,0,-139,33,677 +1777584780.476628,0.5m,0,-137,33,677 +1777584780.524916,0.5m,0,-139,34,679 +1777584780.580128,0.5m,0,-139,33,676 +1777584780.633704,0.5m,0,-140,34,679 +1777584780.6897411,0.5m,0,-138,32,676 +1777584780.746529,0.5m,0,-139,32,677 +1777584780.7983942,0.5m,0,-138,32,675 +1777584780.851271,0.5m,0,-137,32,675 +1777584780.9077241,0.5m,0,-138,32,675 +1777584780.9576378,0.5m,0,-138,32,674 +1777584781.0124118,0.5m,0,-139,32,676 +1777584781.065533,0.5m,0,-138,32,674 +1777584781.1191711,0.5m,0,-136,32,674 +1777584781.175822,0.5m,0,-138,32,672 +1777584781.224563,0.5m,0,-137,32,675 +1777584781.278879,0.5m,0,-137,32,675 +1777584781.33247,0.5m,0,-136,32,674 +1777584781.386123,0.5m,0,-138,32,672 +1777584781.4425962,0.5m,0,-135,32,672 +1777584781.491115,0.5m,0,-137,32,672 +1777584781.545863,0.5m,0,-136,32,674 +1777584781.604835,0.5m,0,-136,32,677 +1777584781.655715,0.5m,0,-137,32,673 +1777584781.713494,0.5m,0,-139,32,673 +1777584781.764597,0.5m,0,-137,32,672 +1777584781.818253,0.5m,0,-138,32,675 +1777584781.872355,0.5m,0,-139,32,673 +1777584781.926759,0.5m,0,-138,32,676 +1777584781.978428,0.5m,0,-138,32,673 +1777584782.035033,0.5m,0,-138,32,674 +1777584782.0896692,0.5m,0,-137,32,674 +1777584782.144,0.5m,0,-138,32,675 +1777584782.195932,0.5m,0,-136,33,673 +1777584782.250228,0.5m,0,-138,32,675 +1777584782.30556,0.5m,0,-135,32,676 +1777584782.357902,0.5m,0,-135,33,674 +1777584782.413704,0.5m,0,-138,33,675 +1777584782.464208,0.5m,0,-137,33,677 +1777584782.516848,0.5m,0,-137,33,674 +1777584782.574667,0.5m,0,-136,33,676 +1777584782.6248288,0.5m,0,-137,33,676 +1777584782.6782248,0.5m,0,-138,34,674 +1777584782.732849,0.5m,0,-136,33,673 +1777584782.78512,0.5m,0,-139,33,677 +1777584782.84207,0.5m,0,-136,34,677 +1777584782.890374,0.5m,0,-138,34,675 +1777584782.946177,0.5m,0,-137,33,675 +1777584783.001867,0.5m,0,-138,33,675 +1777584783.057136,0.5m,0,-139,33,676 +1777584783.11158,0.5m,0,-137,34,679 +1777584783.157732,0.5m,0,-138,34,681 +1777584783.217126,0.5m,0,-137,34,683 +1777584783.269973,0.5m,0,-136,34,682 +1777584783.322892,0.5m,0,-135,33,677 +1777584783.376968,0.5m,0,-137,34,682 +1777584783.429974,0.5m,0,-137,34,681 +1777584783.483176,0.5m,0,-136,33,678 +1777584783.536618,0.5m,0,-137,34,679 +1777584783.588802,0.5m,0,-137,33,677 +1777584783.646358,0.5m,0,-136,33,677 +1777584783.698427,0.5m,0,-137,33,675 +1777584783.75029,0.5m,0,-136,32,676 +1777584783.8055491,0.5m,0,-136,33,678 +1777584783.856597,0.5m,0,-137,32,676 +1777584783.9132538,0.5m,0,-136,32,677 +1777584783.964084,0.5m,0,-138,32,677 +1777584784.0196102,0.5m,0,-136,32,674 +1777584784.071839,0.5m,0,-136,32,676 +1777584784.12388,0.5m,0,-136,32,674 +1777584784.177588,0.5m,0,-137,32,674 +1777584784.2322009,0.5m,0,-137,32,676 +1777584784.288994,0.5m,0,-136,32,674 +1777584784.344177,0.5m,0,-136,33,676 +1777584784.3934562,0.5m,0,-135,32,673 +1777584784.451879,0.5m,0,-136,32,674 +1777584784.503586,0.5m,0,-135,32,675 +1777584784.556819,0.5m,0,-137,32,675 +1777584784.609131,0.5m,0,-134,32,673 +1777584784.6658099,0.5m,0,-135,32,674 +1777584784.720178,0.5m,0,-135,32,675 +1777584784.775458,0.5m,0,-135,32,674 +1777584784.8257432,0.5m,0,-133,32,673 +1777584784.878447,0.5m,0,-134,32,673 +1777584784.9333918,0.5m,0,-135,32,674 +1777584784.9864,0.5m,0,-134,31,673 +1777584785.0430238,0.5m,0,-134,32,675 +1777584785.09088,0.5m,0,-134,32,675 +1777584785.149934,0.5m,0,-134,32,672 +1777584785.2031949,0.5m,0,-134,32,673 +1777584785.258479,0.5m,0,-135,32,671 +1777584785.311779,0.5m,0,-134,32,672 +1777584785.364361,0.5m,0,-134,32,672 +1777584785.4190788,0.5m,0,-134,31,672 +1777584785.4742222,0.5m,0,-133,31,672 +1777584785.5235689,0.5m,0,-134,31,673 +1777584785.579542,0.5m,0,-133,31,673 +1777584785.630868,0.5m,0,-135,31,672 +1777584785.6846411,0.5m,0,-134,31,673 +1777584785.741249,0.5m,0,-134,31,673 +1777584785.790445,0.5m,0,-135,31,672 +1777584785.844634,0.5m,0,-136,31,671 +1777584785.8991868,0.5m,0,-135,31,674 +1777584785.95562,0.5m,0,-134,31,674 +1777584786.009505,0.5m,0,-135,31,672 +1777584786.057507,0.5m,0,-136,31,673 +1777584786.1115031,0.5m,0,-133,31,672 +1777584786.165101,0.5m,0,-133,31,671 +1777584786.22083,0.5m,0,-135,31,671 +1777584786.272362,0.5m,0,-135,31,672 +1777584786.322975,0.5m,0,-136,31,672 +1777584786.379523,0.5m,0,-133,31,672 +1777584786.43193,0.5m,0,-135,31,672 +1777584786.4820302,0.5m,0,-135,31,671 +1777584786.539077,0.5m,0,-135,31,673 +1777584786.589986,0.5m,0,-135,31,671 +1777584786.643352,0.5m,0,-135,31,672 +1777584786.698565,0.5m,0,-135,31,671 +1777584786.753993,0.5m,0,-136,31,671 +1777584786.8101382,0.5m,0,-135,31,670 +1777584786.857495,0.5m,0,-133,31,673 +1777584786.916697,0.5m,0,-135,31,672 +1777584786.9710982,0.5m,0,-134,31,671 +1777584787.022645,0.5m,0,-134,31,672 +1777584787.077992,0.5m,0,-134,31,673 +1777584787.130374,0.5m,0,-135,31,673 +1777584787.178565,0.5m,0,-134,31,672 +1777584787.237886,0.5m,0,-135,31,674 +1777584787.289817,0.5m,0,-135,31,673 +1777584787.3431108,0.5m,0,-134,31,672 +1777584787.3950331,0.5m,0,-133,31,672 +1777584787.451406,0.5m,0,-133,31,673 +1777584787.504224,0.5m,0,-134,31,671 +1777584787.558261,0.5m,0,-134,31,673 +1777584787.612345,0.5m,0,-133,31,672 +1777584787.664233,0.5m,0,-133,31,672 +1777584787.717481,0.5m,0,-133,31,673 +1777584787.772305,0.5m,0,-133,31,672 +1777584787.824115,0.5m,0,-135,31,672 +1777584787.876839,0.5m,0,-133,31,672 +1777584787.930592,0.5m,0,-134,31,670 +1777584787.986613,0.5m,0,-133,31,672 +1777584788.041513,0.5m,0,-133,32,671 +1777584788.09169,0.5m,0,-133,32,673 +1777584788.145174,0.5m,0,-133,32,672 +1777584788.198288,0.5m,0,-135,32,672 +1777584788.255679,0.5m,0,-134,32,672 +1777584788.3095171,0.5m,0,-134,31,670 +1777584788.356883,0.5m,0,-133,31,673 +1777584788.412447,0.5m,0,-134,31,672 +1777584788.468817,0.5m,0,-133,31,673 +1777584788.521326,0.5m,0,-133,31,672 +1777584788.577481,0.5m,0,-135,31,673 +1777584788.627222,0.5m,0,-135,31,671 +1777584788.682805,0.5m,0,-133,31,672 +1777584788.740245,0.5m,0,-135,31,671 +1777584788.788786,0.5m,0,-133,31,672 +1777584788.8432589,0.5m,0,-133,31,671 +1777584788.89858,0.5m,0,-133,32,673 +1777584788.950392,0.5m,0,-133,31,672 +1777584789.003659,0.5m,0,-134,32,672 +1777584789.05554,0.5m,0,-135,32,673 +1777584789.114495,0.5m,0,-133,31,671 +1777584789.164675,0.5m,0,-134,32,672 +1777584789.218333,0.5m,0,-133,31,672 +1777584789.271285,0.5m,0,-133,32,673 +1777584789.323593,0.5m,0,-134,32,676 +1777584789.376378,0.5m,0,-134,31,672 +1777584789.431751,0.5m,0,-133,31,673 +1777584789.486576,0.5m,0,-134,31,674 +1777584789.540807,0.5m,0,-134,32,672 +1777584789.5912588,0.5m,0,-136,32,672 +1777584789.6488588,0.5m,0,-135,31,672 +1777584789.701975,0.5m,0,-135,32,672 +1777584789.755071,0.5m,0,-135,31,673 +1777584789.809111,0.5m,0,-134,32,676 +1777584789.8569758,0.5m,0,-133,31,673 +1777584789.916403,0.5m,0,-134,31,671 +1777584789.9706008,0.5m,0,-134,31,672 +1777584790.021185,0.5m,0,-133,31,673 +1777584790.0755782,0.5m,0,-136,31,674 +1777584790.128286,0.5m,0,-139,31,673 +1777584790.1840682,0.5m,0,-141,31,672 +1777584790.235625,0.5m,0,-144,32,673 +1777584790.289154,0.5m,0,-143,31,672 +1777584790.345278,0.5m,0,-141,31,672 +1777584790.397013,0.5m,0,-138,31,672 +1777584790.44825,0.5m,0,-136,36,672 +1777584790.507968,0.5m,0,-134,36,671 +1777584790.556792,0.5m,0,-173,32,672 +1777584790.616708,0.5m,0,-172,32,672 +1777584790.662744,0.5m,0,-116,33,672 +1777584790.718911,0.5m,0,-144,33,672 +1777584790.77498,0.5m,0,-168,32,672 +1777584790.824426,0.5m,0,-173,32,672 +1777584790.882025,0.5m,0,-175,32,672 +1777584790.9375591,0.5m,0,-176,31,671 +1777584790.988567,0.5m,0,-175,31,674 +1777584798.976178,2.0m,0,-162,348,1961 +1777584799.0319018,2.0m,0,-159,348,1961 +1777584799.086516,2.0m,0,-159,348,1961 +1777584799.14208,2.0m,0,-157,345,1961 +1777584799.192898,2.0m,0,-157,343,1961 +1777584799.248054,2.0m,0,-154,345,1961 +1777584799.306137,2.0m,0,-154,345,1958 +1777584799.354464,2.0m,0,-154,346,1965 +1777584799.410398,2.0m,0,-154,344,1954 +1777584799.461392,2.0m,0,-157,346,1965 +1777584799.516317,2.0m,0,-157,346,1968 +1777584799.57147,2.0m,0,-155,346,1968 +1777584799.6213791,2.0m,0,-154,345,1958 +1777584799.674592,2.0m,0,-154,345,1961 +1777584799.7287848,2.0m,0,-155,346,1968 +1777584799.7864609,2.0m,0,-157,346,1965 +1777584799.8413599,2.0m,0,-154,345,1958 +1777584799.889966,2.0m,0,-155,344,1968 +1777584799.948339,2.0m,0,-154,345,1961 +1777584800.000354,2.0m,0,-155,350,1972 +1777584800.055109,2.0m,0,-154,343,1965 +1777584800.110008,2.0m,0,-154,348,1965 +1777584800.156127,2.0m,0,-152,344,1972 +1777584800.21245,2.0m,0,-155,344,1968 +1777584800.2666261,2.0m,0,-155,349,1968 +1777584800.3206122,2.0m,0,-152,348,1961 +1777584800.380276,2.0m,0,-154,348,1961 +1777584800.4281678,2.0m,0,-152,346,1968 +1777584800.480203,2.0m,0,-149,348,1965 +1777584800.5354428,2.0m,0,-149,343,1965 +1777584800.5867362,2.0m,0,-149,349,1968 +1777584800.643758,2.0m,0,-147,348,1965 +1777584800.696814,2.0m,0,-147,349,1968 +1777584800.749491,2.0m,0,-146,348,1961 +1777584800.80175,2.0m,0,-147,349,1968 +1777584800.8558369,2.0m,0,-149,348,1961 +1777584800.908662,2.0m,0,-152,348,1965 +1777584800.961937,2.0m,0,-149,349,1968 +1777584801.017173,2.0m,0,-149,349,1968 +1777584801.0722408,2.0m,0,-152,344,1968 +1777584801.12159,2.0m,0,-149,346,1968 +1777584801.178545,2.0m,0,-152,343,1961 +1777584801.230446,2.0m,0,-152,349,1968 +1777584801.285303,2.0m,0,-152,349,1968 +1777584801.339935,2.0m,0,-152,343,1961 +1777584801.3877382,2.0m,0,-149,348,1965 +1777584801.4467509,2.0m,0,-149,346,1965 +1777584801.496288,2.0m,0,-152,348,1965 +1777584801.552364,2.0m,0,-152,349,1968 +1777584801.6089442,2.0m,0,-152,348,1961 +1777584801.660774,2.0m,0,-154,348,1965 +1777584801.712079,2.0m,0,-152,348,1961 +1777584801.768961,2.0m,0,-154,342,1958 +1777584801.8204002,2.0m,0,-154,348,1965 +1777584801.8755572,2.0m,0,-154,347,1958 +1777584801.926541,2.0m,0,-154,347,1954 +1777584801.979806,2.0m,0,-152,348,1965 +1777584802.034421,2.0m,0,-155,349,1968 +1777584802.087796,2.0m,0,-152,348,1961 +1777584802.143271,2.0m,0,-152,348,1961 +1777584802.195265,2.0m,0,-152,348,1965 +1777584802.250279,2.0m,0,-152,345,1961 +1777584802.305374,2.0m,0,-152,349,1968 +1777584802.355615,2.0m,0,-154,346,1965 +1777584802.408118,2.0m,0,-152,348,1961 +1777584802.4609542,2.0m,0,-152,348,1965 +1777584802.514868,2.0m,0,-149,345,1961 +1777584802.572622,2.0m,0,-149,349,1968 +1777584802.6210618,2.0m,0,-149,347,1958 +1777584802.676082,2.0m,0,-149,345,1961 +1777584802.73168,2.0m,0,-152,349,1968 +1777584802.78412,2.0m,0,-149,348,1961 +1777584802.83886,2.0m,0,-149,350,1958 +1777584802.887667,2.0m,0,-152,351,1965 +1777584802.9465148,2.0m,0,-149,351,1965 +1777584802.999108,2.0m,0,-149,353,1961 +1777584803.0522501,2.0m,0,-149,350,1961 +1777584803.106913,2.0m,0,-147,354,1968 +1777584803.15814,2.0m,0,-150,352,1972 +1777584803.213449,2.0m,0,-147,353,1975 +1777584803.2735,2.0m,0,-148,354,1979 +1777584803.3216472,2.0m,0,-148,354,1979 +1777584803.372993,2.0m,0,-147,352,1968 +1777584803.4289558,2.0m,0,-148,354,1979 +1777584803.4828649,2.0m,0,-148,354,1979 +1777584803.5383182,2.0m,0,-145,354,1979 +1777584803.586684,2.0m,0,-144,355,1972 +1777584803.642241,2.0m,0,-144,355,1972 +1777584803.695818,2.0m,0,-144,352,1972 +1777584803.750209,2.0m,0,-144,352,1972 +1777584803.805256,2.0m,0,-145,354,1979 +1777584803.856931,2.0m,0,-145,355,1986 +1777584803.914279,2.0m,0,-144,352,1968 +1777584803.973118,2.0m,0,-144,355,1972 +1777584804.020166,2.0m,0,-145,356,1975 +1777584804.079415,2.0m,0,-145,353,1975 +1777584804.12829,2.0m,0,-145,356,1979 +1777584804.181772,2.0m,0,-148,354,1983 +1777584804.2358022,2.0m,0,-147,353,1975 +1777584804.287113,2.0m,0,-153,353,1975 +1777584804.340132,2.0m,0,-153,356,1979 +1777584804.39488,2.0m,0,-150,355,1972 +1777584804.449087,2.0m,0,-150,353,1975 +1777584804.505614,2.0m,0,-153,356,1975 +1777584804.554952,2.0m,0,-153,356,1979 +1777584804.6131158,2.0m,0,-151,354,1983 +1777584804.664236,2.0m,0,-150,350,1975 +1777584804.719483,2.0m,0,-156,356,1979 +1777584804.775402,2.0m,0,-156,358,1986 +1777584804.824217,2.0m,0,-156,352,1983 +1777584804.881152,2.0m,0,-156,352,1983 +1777584804.94117,2.0m,0,-155,356,1975 +1777584804.9871008,2.0m,0,-156,356,1979 +1777584805.04054,2.0m,0,-161,351,1979 +1777584805.099494,2.0m,0,-161,352,1983 +1777584805.152417,2.0m,0,-158,352,1972 +1777584805.2058089,2.0m,0,-156,352,1983 +1777584805.2599812,2.0m,0,-155,344,1972 +1777584805.3128572,2.0m,0,-156,351,1979 +1777584805.3689952,2.0m,0,-158,346,1979 +1777584805.4200718,2.0m,0,-161,348,1979 +1777584805.47472,2.0m,0,-161,348,1975 +1777584805.528073,2.0m,0,-160,349,1968 +1777584805.581367,2.0m,0,-160,349,1968 +1777584805.63846,2.0m,0,-160,350,1972 +1777584805.687265,2.0m,0,-160,350,1972 +1777584805.742054,2.0m,0,-159,348,1961 +1777584805.799375,2.0m,0,-160,348,1965 +1777584805.852801,2.0m,0,-160,349,1968 +1777584805.9082508,2.0m,0,-163,346,1968 +1777584805.954462,2.0m,0,-159,348,1961 +1777584806.012699,2.0m,0,-160,346,1965 +1777584806.0654132,2.0m,0,-162,348,1965 +1777584806.119432,2.0m,0,-162,347,1958 +1777584806.1719491,2.0m,0,-162,349,1954 +1777584806.227658,2.0m,0,-162,348,1961 +1777584806.2806358,2.0m,0,-162,346,1965 +1777584806.3391712,2.0m,0,-157,346,1965 +1777584806.387094,2.0m,0,-159,347,1958 +1777584806.442146,2.0m,0,-159,347,1958 +1777584806.495224,2.0m,0,-159,349,1954 +1777584806.550148,2.0m,0,-159,348,1961 +1777584806.605227,2.0m,0,-159,345,1961 +1777584806.653858,2.0m,0,-159,347,1958 +1777584806.712831,2.0m,0,-157,345,1961 +1777584806.762538,2.0m,0,-160,346,1965 +1777584806.8163998,2.0m,0,-162,344,1954 +1777584806.871742,2.0m,0,-159,345,1958 +1777584806.9210198,2.0m,0,-159,347,1958 +1777584806.975132,2.0m,0,-159,345,1958 +1777584807.030993,2.0m,0,-159,345,1958 +1777584807.0848472,2.0m,0,-159,348,1961 +1777584807.141279,2.0m,0,-157,345,1961 +1777584807.190497,2.0m,0,-159,343,1961 +1777584807.246121,2.0m,0,-154,348,1961 +1777584807.305571,2.0m,0,-154,345,1961 +1777584807.3532438,2.0m,0,-159,347,1958 +1777584807.4049878,2.0m,0,-157,345,1961 +1777584807.462444,2.0m,0,-154,345,1958 +1777584807.517497,2.0m,0,-154,347,1958 +1777584807.573781,2.0m,0,-157,345,1958 +1777584807.6239748,2.0m,0,-154,345,1961 +1777584807.677511,2.0m,0,-154,345,1958 +1777584807.734507,2.0m,0,-154,348,1961 +1777584807.785234,2.0m,0,-154,344,1954 +1777584807.841133,2.0m,0,-154,345,1958 +1777584807.894214,2.0m,0,-154,345,1958 +1777584807.9461372,2.0m,0,-151,344,1954 +1777584808.00444,2.0m,0,-154,345,1961 +1777584808.0541701,2.0m,0,-154,345,1961 +1777584808.1076028,2.0m,0,-160,346,1965 +1777584808.161082,2.0m,0,-157,345,1958 +1777584808.21563,2.0m,0,-154,345,1961 +1777584808.271934,2.0m,0,-154,345,1958 +1777584808.321737,2.0m,0,-154,345,1958 +1777584808.374004,2.0m,0,-154,345,1961 +1777584808.432837,2.0m,0,-154,345,1961 +1777584808.485107,2.0m,0,-154,345,1958 +1777584808.540839,2.0m,0,-154,344,1954 +1777584808.593305,2.0m,0,-154,345,1961 +1777584808.646079,2.0m,0,-157,345,1958 +1777584808.701925,2.0m,0,-154,344,1954 +1777584808.753494,2.0m,0,-154,345,1958 +1777584808.806498,2.0m,0,-154,345,1961 +1777584808.8598258,2.0m,0,-154,344,1954 +1777584808.916489,2.0m,0,-157,345,1958 +1777584808.973429,2.0m,0,-154,345,1961 +1777584809.021678,2.0m,0,-154,345,1961 +1777584809.080481,2.0m,0,-154,342,1958 +1777584809.130469,2.0m,0,-159,344,1954 +1777584809.184693,2.0m,0,-154,344,1954 +1777584809.238965,2.0m,0,-156,344,1954 +1777584809.289768,2.0m,0,-157,348,1961 +1777584809.3420742,2.0m,0,-154,345,1958 +1777584809.401519,2.0m,0,-157,345,1958 +1777584809.452118,2.0m,0,-153,343,1951 +1777584809.507127,2.0m,0,-159,345,1958 +1777584809.5588732,2.0m,0,-156,343,1947 +1777584809.611377,2.0m,0,-159,345,1958 +1777584809.666374,2.0m,0,-157,345,1958 +1777584809.718369,2.0m,0,-159,345,1958 +1777584809.7734022,2.0m,0,-159,345,1958 +1777584809.8222048,2.0m,0,-160,346,1965 +1777584809.8786528,2.0m,0,-159,347,1958 +1777584809.938794,2.0m,0,-159,345,1961 +1777584809.986579,2.0m,0,-160,346,1965 +1777584810.037916,2.0m,0,-158,342,1944 +1777584810.093993,2.0m,0,-159,345,1961 +1777584810.147219,2.0m,0,-156,344,1954 +1777584810.204278,2.0m,0,-162,345,1958 +1777584810.253261,2.0m,0,-159,345,1958 +1777584810.3071308,2.0m,0,-161,343,1951 +1777584810.362085,2.0m,0,-159,347,1958 +1777584810.416003,2.0m,0,-162,345,1958 +1777584810.471296,2.0m,0,-159,344,1954 +1777584810.5198112,2.0m,0,-159,345,1958 +1777584810.5742311,2.0m,0,-159,343,1951 +1777584810.627875,2.0m,0,-159,344,1954 +1777584810.6829178,2.0m,0,-159,345,1958 +1777584810.738587,2.0m,0,-159,344,1954 +1777584810.7870789,2.0m,0,-162,345,1958 +1777584810.845255,2.0m,0,-159,344,1954 +1777584810.899117,2.0m,0,-162,344,1954 +1777584810.951572,2.0m,0,-159,345,1958 +1777584811.006026,2.0m,0,-162,345,1958 +1777584811.055495,2.0m,0,-156,341,1951 +1777584811.1121652,2.0m,0,-159,344,1954 +1777584811.171799,2.0m,0,-159,341,1954 +1777584811.219357,2.0m,0,-159,344,1954 +1777584811.272536,2.0m,0,-159,344,1954 +1777584811.326657,2.0m,0,-162,344,1954 +1777584811.378307,2.0m,0,-159,344,1954 +1777584811.437464,2.0m,0,-159,345,1958 +1777584811.489713,2.0m,0,-158,343,1947 +1777584811.541599,2.0m,0,-159,345,1958 +1777584811.594472,2.0m,0,-159,341,1954 +1777584811.649121,2.0m,0,-159,341,1954 +1777584811.703251,2.0m,0,-159,344,1954 +1777584811.753099,2.0m,0,-157,343,1961 +1777584811.811948,2.0m,0,-158,343,1947 +1777584811.8645902,2.0m,0,-156,344,1954 +1777584811.917753,2.0m,0,-159,345,1958 +1777584811.972487,2.0m,0,-159,345,1958 +1777584812.027688,2.0m,0,-159,344,1954 +1777584812.080343,2.0m,0,-159,343,1951 +1777584812.1331809,2.0m,0,-159,344,1954 +1777584812.185931,2.0m,0,-159,341,1954 +1777584812.241438,2.0m,0,-159,344,1954 +1777584812.292862,2.0m,0,-157,345,1958 +1777584812.345064,2.0m,0,-159,345,1958 +1777584812.399986,2.0m,0,-159,344,1954 +1777584812.451911,2.0m,0,-159,344,1954 +1777584812.508588,2.0m,0,-156,344,1954 +1777584812.559409,2.0m,0,-159,343,1951 +1777584812.611845,2.0m,0,-158,343,1947 +1777584812.666657,2.0m,0,-158,343,1947 +1777584812.718102,2.0m,0,-156,343,1947 +1777584812.772222,2.0m,0,-156,343,1951 +1777584812.8271391,2.0m,0,-156,341,1951 +1777584812.879086,2.0m,0,-159,343,1951 +1777584812.933147,2.0m,0,-159,343,1951 +1777584812.986777,2.0m,0,-156,343,1947 +1777584813.039228,2.0m,0,-156,341,1951 +1777584813.092872,2.0m,0,-158,340,1947 +1777584813.148747,2.0m,0,-156,341,1951 +1777584813.204949,2.0m,0,-155,341,1940 +1777584813.253215,2.0m,0,-158,343,1947 +1777584813.306828,2.0m,0,-158,339,1944 +1777584813.3610072,2.0m,0,-158,341,1940 +1777584813.416647,2.0m,0,-158,339,1944 +1777584813.4716291,2.0m,0,-158,339,1944 +1777584813.522793,2.0m,0,-158,341,1940 +1777584813.573992,2.0m,0,-157,341,1937 +1777584813.634451,2.0m,0,-158,342,1944 +1777584813.684489,2.0m,0,-157,341,1937 +1777584813.7395551,2.0m,0,-158,342,1944 +1777584813.792306,2.0m,0,-160,339,1940 +1777584813.844821,2.0m,0,-158,339,1940 +1777584813.9013178,2.0m,0,-163,336,1940 +1777584813.952239,2.0m,0,-163,341,1940 +1777584814.005044,2.0m,0,-163,339,1940 +1777584814.060163,2.0m,0,-162,340,1933 +1777584814.11433,2.0m,0,-162,338,1933 +1777584814.170464,2.0m,0,-163,341,1937 +1777584814.21906,2.0m,0,-163,341,1937 +1777584814.273576,2.0m,0,-163,338,1937 +1777584814.328761,2.0m,0,-162,334,1930 +1777584814.3808699,2.0m,0,-162,340,1933 +1777584814.433471,2.0m,0,-162,340,1933 +1777584814.484661,2.0m,0,-162,338,1933 +1777584814.5387719,2.0m,0,-162,340,1930 +1777584814.5940769,2.0m,0,-162,340,1930 +1777584814.644423,2.0m,0,-162,340,1930 +1777584814.705602,2.0m,0,-162,340,1930 +1777584814.7572448,2.0m,0,-162,340,1930 +1777584814.811834,2.0m,0,-162,336,1926 +1777584814.8666298,2.0m,0,-157,341,1937 +1777584814.918219,2.0m,0,-157,337,1930 +1777584814.978177,2.0m,0,-157,335,1933 +1777584815.0260322,2.0m,0,-157,337,1930 +1777584815.080569,2.0m,0,-157,338,1933 +1777584815.139332,2.0m,0,-157,339,1926 +1777584815.1867032,2.0m,0,-157,338,1933 +1777584815.238792,2.0m,0,-157,337,1930 +1777584815.294369,2.0m,0,-158,341,1940 +1777584815.3481212,2.0m,0,-157,341,1937 +1777584815.40424,2.0m,0,-157,338,1937 +1777584815.452233,2.0m,0,-157,341,1937 +1777584815.5074172,2.0m,0,-157,338,1937 +1777584815.559792,2.0m,0,-157,341,1937 +1777584815.615478,2.0m,0,-155,340,1933 +1777584815.669823,2.0m,0,-158,339,1940 +1777584815.7181592,2.0m,0,-157,341,1937 +1777584815.7731571,2.0m,0,-155,339,1940 +1777584815.826905,2.0m,0,-158,339,1940 +1777584815.882329,2.0m,0,-155,340,1933 +1777584815.9368808,2.0m,0,-157,338,1937 +1777584815.98719,2.0m,0,-158,341,1940 +1777584816.0445771,2.0m,0,-157,338,1937 +1777584816.0981162,2.0m,0,-157,341,1937 +1777584816.15032,2.0m,0,-157,338,1933 +1777584816.206209,2.0m,0,-157,340,1933 +1777584816.257021,2.0m,0,-158,339,1940 +1777584816.3113658,2.0m,0,-157,340,1933 +1777584816.366623,2.0m,0,-158,339,1940 +1777584816.419926,2.0m,0,-160,340,1933 +1777584816.473449,2.0m,0,-158,342,1944 +1777584816.529601,2.0m,0,-158,339,1940 +1777584816.584337,2.0m,0,-157,338,1933 +1777584816.640769,2.0m,0,-158,339,1940 +1777584816.69153,2.0m,0,-160,341,1940 +1777584816.744545,2.0m,0,-161,342,1944 +1777584816.800413,2.0m,0,-163,341,1940 +1777584816.8508182,2.0m,0,-160,341,1940 +1777584816.905309,2.0m,0,-163,341,1940 +1777584816.9614348,2.0m,0,-163,342,1944 +1777584817.014134,2.0m,0,-163,341,1940 +1777584817.0700428,2.0m,0,-163,341,1937 +1777584817.118651,2.0m,0,-163,341,1940 +1777584817.17309,2.0m,0,-163,339,1944 +1777584817.227461,2.0m,0,-163,341,1940 +1777584817.282075,2.0m,0,-163,341,1940 +1777584817.34023,2.0m,0,-163,341,1937 +1777584817.390134,2.0m,0,-166,339,1944 +1777584817.444198,2.0m,0,-163,341,1940 +1777584817.499846,2.0m,0,-164,343,1947 +1777584817.551302,2.0m,0,-166,339,1944 +1777584817.6064918,2.0m,0,-166,341,1951 +1777584817.660535,2.0m,0,-164,340,1947 +1777584817.714143,2.0m,0,-166,339,1944 +1777584817.768146,2.0m,0,-163,342,1944 +1777584817.819456,2.0m,0,-163,339,1944 +1777584817.8773592,2.0m,0,-163,339,1944 +1777584817.928406,2.0m,0,-163,339,1944 +1777584817.98398,2.0m,0,-163,339,1944 +1777584818.0391748,2.0m,0,-166,341,1940 +1777584818.08993,2.0m,0,-166,342,1944 +1777584818.140726,2.0m,0,-166,342,1944 +1777584818.197887,2.0m,0,-160,341,1940 +1777584818.2508092,2.0m,0,-161,342,1944 +1777584818.306493,2.0m,0,-160,341,1940 +1777584818.354074,2.0m,0,-163,341,1940 +1777584818.4085078,2.0m,0,-160,339,1940 +1777584818.4690711,2.0m,0,-161,343,1947 +1777584818.5178041,2.0m,0,-161,339,1944 +1777584818.572711,2.0m,0,-158,343,1947 +1777584818.6251168,2.0m,0,-161,339,1944 +1777584818.679286,2.0m,0,-161,340,1947 +1777584818.7369988,2.0m,0,-161,343,1947 +1777584818.784462,2.0m,0,-161,343,1947 +1777584818.839125,2.0m,0,-158,342,1944 +1777584818.893216,2.0m,0,-161,340,1947 +1777584818.947103,2.0m,0,-161,342,1944 +1777584819.003631,2.0m,0,-157,341,1937 +1777584819.0536351,2.0m,0,-158,339,1944 +1777584819.108886,2.0m,0,-158,342,1944 +1777584819.1603498,2.0m,0,-158,339,1944 +1777584819.21909,2.0m,0,-161,342,1944 +1777584819.2710578,2.0m,0,-158,339,1944 +1777584819.320541,2.0m,0,-160,339,1940 +1777584819.3774002,2.0m,0,-161,343,1947 +1777584819.4380941,2.0m,0,-161,340,1947 +1777584819.4834921,2.0m,0,-161,341,1951 +1777584819.5370262,2.0m,0,-164,340,1947 +1777584819.590053,2.0m,0,-166,339,1944 +1777584819.6439118,2.0m,0,-166,341,1951 +1777584819.699931,2.0m,0,-164,340,1947 +1777584819.7496378,2.0m,0,-166,340,1947 +1777584819.804906,2.0m,0,-166,342,1944 +1777584819.854379,2.0m,0,-169,343,1951 +1777584819.912427,2.0m,0,-168,341,1937 +1777584819.97003,2.0m,0,-168,342,1944 +1777584820.0186439,2.0m,0,-171,343,1947 +1777584820.070424,2.0m,0,-175,344,1954 +1777584820.1279511,2.0m,0,-174,343,1947 +1777584820.183182,2.0m,0,-173,344,1940 +1777584820.2374132,2.0m,0,-174,342,1944 +1777584820.2863848,2.0m,0,-174,343,1947 +1777584820.34202,2.0m,0,-174,345,1944 +1777584820.3959522,2.0m,0,-174,342,1944 +1777584820.449999,2.0m,0,-171,341,1940 +1777584820.505744,2.0m,0,-171,343,1947 +1777584820.55842,2.0m,0,-173,347,1940 +1777584820.6110249,2.0m,0,-168,342,1944 +1777584820.668035,2.0m,0,-173,341,1940 +1777584820.716651,2.0m,0,-174,343,1947 +1777584820.771436,2.0m,0,-174,342,1944 +1777584820.826236,2.0m,0,-171,339,1940 +1777584820.8796952,2.0m,0,-174,343,1947 +1777584820.93693,2.0m,0,-174,343,1951 +1777584820.985976,2.0m,0,-174,340,1947 +1777584821.044956,2.0m,0,-171,341,1940 +1777584821.096736,2.0m,0,-174,342,1944 +1777584821.149945,2.0m,0,-174,342,1944 +1777584821.206183,2.0m,0,-174,342,1944 +1777584821.258454,2.0m,0,-173,341,1940 +1777584821.310765,2.0m,0,-174,339,1944 +1777584821.369879,2.0m,0,-179,339,1940 +1777584821.4187331,2.0m,0,-176,337,1944 +1777584821.472991,2.0m,0,-176,336,1937 +1777584821.527663,2.0m,0,-179,339,1944 +1777584821.5822442,2.0m,0,-196,357,1926 +1777584821.637543,2.0m,0,-231,398,1923 +1777584821.6861079,2.0m,0,-227,421,1909 +1777584821.7402618,2.0m,0,-228,477,1876 +1777584821.796366,2.0m,0,-232,501,1863 +1777584821.849995,2.0m,0,-183,588,1851 +1777584821.905969,2.0m,0,-176,636,1832 +1777584821.9577842,2.0m,0,-152,673,1838 +1777584822.010422,2.0m,0,-128,725,1820 +1777584822.065115,2.0m,0,-97,749,1826 +1777584822.119009,2.0m,0,-194,762,1793 +1777584822.171586,2.0m,0,0,0,0 +1777584822.226274,2.0m,0,0,0,0 +1777584822.280361,2.0m,0,0,0,0 +1777584822.336731,2.0m,0,0,0,0 +1777584822.385938,2.0m,0,-150,616,1390 +1777584822.443136,2.0m,0,0,0,0 +1777584822.496385,2.0m,0,-372,1909,4287 +1777584822.548223,2.0m,0,-101,657,1458 +1777584823.19211,2.0m,0,18,936,2384 +1777584823.247315,2.0m,0,73,884,2415 +1777584823.302185,2.0m,0,100,915,2607 +1777584823.350789,2.0m,0,-86,856,2620 +1777584823.406139,2.0m,0,-172,811,2588 +1777584823.460309,2.0m,0,-245,805,2626 +1777584823.515142,2.0m,0,-449,752,2576 +1777584823.570189,2.0m,0,-505,719,2546 +1777584823.619143,2.0m,0,-524,532,2588 +1777584823.6777751,2.0m,0,-457,670,2505 +1777584823.730809,2.0m,0,-502,582,2564 +1777584823.783803,2.0m,0,-312,460,1851 +1777584823.843458,2.0m,0,-283,449,1749 diff --git a/documentation/accuracy/accuracy_log_2026-05-07.csv b/documentation/accuracy/accuracy_log_2026-05-07.csv new file mode 100644 index 0000000..9c9bfa1 --- /dev/null +++ b/documentation/accuracy/accuracy_log_2026-05-07.csv @@ -0,0 +1,841 @@ +timestamp,test_distance,target_id,x_mm,y_mm,z_mm +1777927757.421504,0.5m,0,-80,5,528 +1777927757.474611,0.5m,0,-80,5,527 +1777927757.5312269,0.5m,0,-80,5,527 +1777927757.587393,0.5m,0,-81,5,530 +1777927757.638231,0.5m,0,-80,5,529 +1777927757.692152,0.5m,0,-81,5,528 +1777927757.747607,0.5m,0,-81,5,528 +1777927757.798514,0.5m,0,-80,5,527 +1777927757.854979,0.5m,0,-80,5,528 +1777927757.907249,0.5m,0,-79,5,525 +1777927757.964525,0.5m,0,-80,5,529 +1777927758.01958,0.5m,0,-81,5,530 +1777927758.066565,0.5m,0,-80,5,530 +1777927758.122171,0.5m,0,-80,5,529 +1777927758.177431,0.5m,0,-80,5,529 +1777927758.23169,0.5m,0,-80,5,527 +1777927758.2870011,0.5m,0,-79,5,525 +1777927758.335659,0.5m,0,-80,5,528 +1777927758.387723,0.5m,0,-80,5,526 +1777927758.44861,0.5m,0,-80,5,528 +1777927758.498871,0.5m,0,-80,5,525 +1777927758.553525,0.5m,0,-79,5,525 +1777927758.6045609,0.5m,0,-80,5,527 +1777927758.6587882,0.5m,0,-80,5,526 +1777927758.714358,0.5m,0,-80,5,530 +1777927758.7659252,0.5m,0,-80,5,527 +1777927758.819177,0.5m,0,-79,5,523 +1777927758.87259,0.5m,0,-81,5,529 +1777927758.925929,0.5m,0,-79,5,521 +1777927758.981504,0.5m,0,-80,5,531 +1777927759.032594,0.5m,0,-80,5,529 +1777927759.08574,0.5m,0,-80,5,531 +1777927759.139617,0.5m,0,-80,5,528 +1777927759.1952698,0.5m,0,-80,5,528 +1777927759.2478662,0.5m,0,-79,5,525 +1777927759.3003578,0.5m,0,-80,5,527 +1777927759.3527849,0.5m,0,-81,5,528 +1777927759.4074361,0.5m,0,-80,5,529 +1777927759.461015,0.5m,0,-81,5,530 +1777927759.517388,0.5m,0,-81,5,532 +1777927759.56572,0.5m,0,-80,5,527 +1777927759.620959,0.5m,0,-79,5,525 +1777927759.672954,0.5m,0,-80,5,529 +1777927759.729044,0.5m,0,-80,5,527 +1777927759.784393,0.5m,0,-80,5,530 +1777927759.8327732,0.5m,0,-80,5,528 +1777927759.887541,0.5m,0,-81,5,529 +1777927759.9406762,0.5m,0,-81,5,528 +1777927759.9952362,0.5m,0,-80,5,526 +1777927760.051321,0.5m,0,-81,5,528 +1777927760.099413,0.5m,0,-81,5,530 +1777927760.156849,0.5m,0,-80,6,528 +1777927760.211572,0.5m,0,-81,5,533 +1777927760.2650418,0.5m,0,-80,5,530 +1777927760.31937,0.5m,0,-80,5,529 +1777927760.3704472,0.5m,0,-81,5,529 +1777927760.425208,0.5m,0,-80,5,530 +1777927760.4804292,0.5m,0,-80,4,528 +1777927760.531465,0.5m,0,-78,4,527 +1777927760.586671,0.5m,0,-80,5,529 +1777927760.639162,0.5m,0,-79,5,531 +1777927760.693821,0.5m,0,-78,5,528 +1777927760.750129,0.5m,0,-79,5,530 +1777927760.799648,0.5m,0,-78,5,528 +1777927760.8517592,0.5m,0,-79,5,529 +1777927760.905617,0.5m,0,-78,5,526 +1777927760.961184,0.5m,0,-78,5,527 +1777927761.018029,0.5m,0,-78,5,528 +1777927761.067363,0.5m,0,-78,4,529 +1777927761.12001,0.5m,0,-78,5,529 +1777927761.174952,0.5m,0,-78,5,527 +1777927761.2317371,0.5m,0,-77,5,526 +1777927761.28615,0.5m,0,-77,5,526 +1777927761.3356102,0.5m,0,-77,4,525 +1777927761.386622,0.5m,0,-77,6,526 +1777927761.449087,0.5m,0,-77,6,528 +1777927761.497398,0.5m,0,-77,6,522 +1777927761.5497768,0.5m,0,-78,6,528 +1777927761.605555,0.5m,0,-78,5,527 +1777927761.6564329,0.5m,0,-77,6,526 +1777927761.712659,0.5m,0,-78,5,528 +1777927761.7644439,0.5m,0,-77,5,525 +1777927761.81887,0.5m,0,-77,6,525 +1777927761.868573,0.5m,0,-77,5,524 +1777927761.921449,0.5m,0,-77,6,526 +1777927761.981853,0.5m,0,-76,5,518 +1777927762.032084,0.5m,0,-77,5,525 +1777927762.083022,0.5m,0,-77,6,526 +1777927762.140597,0.5m,0,-78,5,528 +1777927762.194147,0.5m,0,-77,5,526 +1777927762.250731,0.5m,0,-77,5,526 +1777927762.299414,0.5m,0,-77,5,525 +1777927762.352108,0.5m,0,-78,5,528 +1777927762.406021,0.5m,0,-78,6,529 +1777927762.457713,0.5m,0,-78,6,525 +1777927762.5275662,0.5m,0,-78,5,527 +1777927762.5662348,0.5m,0,-79,5,528 +1777927762.6185899,0.5m,0,-79,5,530 +1777927762.674457,0.5m,0,-80,5,527 +1777927762.728039,0.5m,0,-79,5,528 +1777927762.783166,0.5m,0,-80,5,533 +1777927762.832778,0.5m,0,-80,5,533 +1777927762.886053,0.5m,0,-80,5,532 +1777927762.940767,0.5m,0,-78,5,527 +1777927762.99722,0.5m,0,-78,6,530 +1777927763.0503192,0.5m,0,-77,6,523 +1777927763.09846,0.5m,0,-78,5,527 +1777927763.153041,0.5m,0,-78,7,528 +1777927763.208064,0.5m,0,-78,6,527 +1777927763.262989,0.5m,0,-77,6,530 +1777927763.318937,0.5m,0,-78,6,530 +1777927763.36848,0.5m,0,-77,6,527 +1777927763.426301,0.5m,0,-78,6,529 +1777927763.483829,0.5m,0,-78,6,528 +1777927763.531494,0.5m,0,-78,6,527 +1777927763.584577,0.5m,0,-77,6,525 +1777927763.639822,0.5m,0,-77,5,525 +1777927763.692681,0.5m,0,-77,6,526 +1777927763.750025,0.5m,0,-78,6,529 +1777927763.7984262,0.5m,0,-77,6,526 +1777927763.8523772,0.5m,0,-77,6,525 +1777927763.907027,0.5m,0,-77,6,525 +1777927763.958751,0.5m,0,-78,6,527 +1777927764.0167959,0.5m,0,-77,6,523 +1777927764.0660632,0.5m,0,-77,7,525 +1777927764.1197371,0.5m,0,-77,5,525 +1777927764.173683,0.5m,0,-77,7,525 +1777927764.230345,0.5m,0,-77,7,525 +1777927764.282478,0.5m,0,-77,6,526 +1777927764.331823,0.5m,0,-77,6,526 +1777927764.386772,0.5m,0,-77,5,526 +1777927764.441113,0.5m,0,-77,7,525 +1777927764.496852,0.5m,0,-77,6,525 +1777927764.5518231,0.5m,0,-78,6,526 +1777927764.6030989,0.5m,0,-78,6,528 +1777927764.652591,0.5m,0,-80,6,526 +1777927764.714837,0.5m,0,-78,6,525 +1777927764.763375,0.5m,0,-78,7,523 +1777927764.818756,0.5m,0,-78,7,524 +1777927764.870076,0.5m,0,-78,7,523 +1777927764.924308,0.5m,0,-78,7,522 +1777927764.98316,0.5m,0,-78,7,525 +1777927765.030984,0.5m,0,-80,7,528 +1777927765.0833101,0.5m,0,-78,7,529 +1777927765.1384692,0.5m,0,-78,6,528 +1777927765.1953259,0.5m,0,-78,7,528 +1777927765.2501829,0.5m,0,-77,7,520 +1777927765.299705,0.5m,0,-78,5,526 +1777927765.352465,0.5m,0,-78,7,526 +1777927765.409524,0.5m,0,-77,6,526 +1777927765.463617,0.5m,0,-78,6,527 +1777927765.52021,0.5m,0,-78,6,525 +1777927765.56941,0.5m,0,-78,6,526 +1777927765.623945,0.5m,0,-78,6,528 +1777927765.6790028,0.5m,0,-80,6,526 +1777927765.73051,0.5m,0,-80,6,529 +1777927765.785332,0.5m,0,-79,6,529 +1777927765.8346372,0.5m,0,-78,6,528 +1777927765.889218,0.5m,0,-78,6,528 +1777927765.949504,0.5m,0,-78,6,526 +1777927765.997343,0.5m,0,-78,7,525 +1777927766.0513139,0.5m,0,-77,6,526 +1777927766.103646,0.5m,0,-78,7,528 +1777927766.157832,0.5m,0,-78,6,528 +1777927766.215998,0.5m,0,-78,6,528 +1777927766.264873,0.5m,0,-78,6,527 +1777927766.319812,0.5m,0,-78,5,528 +1777927766.372759,0.5m,0,-78,7,528 +1777927766.429193,0.5m,0,-77,6,524 +1777927766.4852412,0.5m,0,-78,7,528 +1777927766.534789,0.5m,0,-77,7,526 +1777927766.58544,0.5m,0,-78,6,527 +1777927766.645167,0.5m,0,-77,7,524 +1777927766.696712,0.5m,0,-77,6,525 +1777927766.750336,0.5m,0,-78,7,527 +1777927766.806184,0.5m,0,-77,7,525 +1777927766.859122,0.5m,0,-78,6,529 +1777927766.9162922,0.5m,0,-77,7,526 +1777927766.966092,0.5m,0,-77,7,525 +1777927767.0186088,0.5m,0,-78,7,527 +1777927767.072316,0.5m,0,-77,7,525 +1777927767.127717,0.5m,0,-77,7,526 +1777927767.182818,0.5m,0,-78,7,527 +1777927767.230978,0.5m,0,-77,6,526 +1777927767.287242,0.5m,0,-77,6,524 +1777927767.344631,0.5m,0,-77,6,522 +1777927767.396651,0.5m,0,-77,7,525 +1777927767.451818,0.5m,0,-78,7,528 +1777927767.50474,0.5m,0,-77,6,525 +1777927767.556652,0.5m,0,-78,7,529 +1777927767.612375,0.5m,0,-78,6,527 +1777927767.664656,0.5m,0,-78,7,529 +1777927767.72041,0.5m,0,-78,7,529 +1777927767.7708359,0.5m,0,-78,7,529 +1777927767.824825,0.5m,0,-78,8,528 +1777927767.8782852,0.5m,0,-78,8,528 +1777927767.929773,0.5m,0,-77,7,523 +1777927767.985931,0.5m,0,-78,7,529 +1777927768.037482,0.5m,0,-78,7,525 +1777927768.090993,0.5m,0,-78,7,529 +1777927768.149272,0.5m,0,-78,6,527 +1777927768.200146,0.5m,0,-77,8,524 +1777927768.253033,0.5m,0,-78,6,527 +1777927768.313604,0.5m,0,-78,7,528 +1777927768.362947,0.5m,0,-77,6,525 +1777927768.4150798,0.5m,0,-78,7,525 +1777927768.472233,0.5m,0,-77,7,526 +1777927768.5221388,0.5m,0,-78,6,528 +1777927768.578337,0.5m,0,-79,6,529 +1777927768.630501,0.5m,0,-78,7,525 +1777927768.68589,0.5m,0,-78,7,528 +1777927768.737715,0.5m,0,-78,7,529 +1777927768.791392,0.5m,0,-79,6,531 +1777927768.847998,0.5m,0,-79,7,529 +1777927768.897148,0.5m,0,-79,7,529 +1777927768.9579918,0.5m,0,-78,7,528 +1777927769.007259,0.5m,0,-78,6,528 +1777927769.059632,0.5m,0,-78,7,527 +1777927769.1144729,0.5m,0,-78,7,528 +1777927769.164659,0.5m,0,-78,6,528 +1777927769.221056,0.5m,0,-78,7,530 +1777927769.2717571,0.5m,0,-78,7,526 +1777927769.3243399,0.5m,0,-78,7,526 +1777927769.380043,0.5m,0,-79,8,531 +1777927769.4316301,0.5m,0,-78,7,530 +1777927769.486868,0.5m,0,-78,7,526 +1777927769.5378308,0.5m,0,-79,8,530 +1777927769.594387,0.5m,0,-78,7,530 +1777927769.6474729,0.5m,0,-77,8,526 +1777927769.698236,0.5m,0,-78,7,528 +1777927769.758144,0.5m,0,-79,8,530 +1777927769.805975,0.5m,0,-78,8,530 +1777927769.8609438,0.5m,0,-78,8,526 +1777927769.919671,0.5m,0,-78,8,532 +1777927769.9666,0.5m,0,-77,7,525 +1777927770.0254989,0.5m,0,-78,7,528 +1777927770.073964,0.5m,0,-78,8,526 +1777927770.1283379,0.5m,0,-78,7,531 +1777927770.182954,0.5m,0,-78,7,527 +1777927770.231752,0.5m,0,-77,6,526 +1777927770.290922,0.5m,0,-78,8,527 +1777927770.344026,0.5m,0,-78,7,532 +1777927770.397634,0.5m,0,-77,8,525 +1777927770.453449,0.5m,0,-78,8,532 +1777927770.5010529,0.5m,0,-78,8,528 +1777927770.559838,0.5m,0,-78,8,527 +1777927770.615135,0.5m,0,-78,8,528 +1777927770.664553,0.5m,0,-78,8,524 +1777927770.721378,0.5m,0,-78,8,531 +1777927770.774122,0.5m,0,-77,7,525 +1777927770.827042,0.5m,0,-78,7,531 +1777927770.881057,0.5m,0,-78,8,530 +1777927770.932433,0.5m,0,-78,8,528 +1777927770.986614,0.5m,0,-78,8,532 +1777927771.041194,0.5m,0,-79,7,529 +1777927771.0970109,0.5m,0,-78,8,530 +1777927771.151107,0.5m,0,-78,8,530 +1777927771.200872,0.5m,0,-79,8,532 +1777927771.25669,0.5m,0,-78,7,527 +1777927771.3098161,0.5m,0,-78,8,527 +1777927771.364628,0.5m,0,-78,7,528 +1777927771.421223,0.5m,0,-78,8,532 +1777927771.470498,0.5m,0,-78,8,529 +1777927771.524683,0.5m,0,-78,8,527 +1777927771.5801961,0.5m,0,-78,8,528 +1777927771.63248,0.5m,0,-78,8,528 +1777927771.690148,0.5m,0,-78,7,533 +1777927771.73959,0.5m,0,-77,7,525 +1777927771.7960598,0.5m,0,-78,8,528 +1777927771.8477912,0.5m,0,-78,8,532 +1777927771.900352,0.5m,0,-79,7,530 +1777927771.953964,0.5m,0,-79,7,530 +1777927772.006408,0.5m,0,-78,7,531 +1777927772.064163,0.5m,0,-79,8,531 +1777927772.115829,0.5m,0,-78,7,533 +1777927772.168103,0.5m,0,-78,8,532 +1777927772.221502,0.5m,0,-78,8,529 +1777927772.275352,0.5m,0,-77,8,526 +1777927772.3313081,0.5m,0,-79,7,531 +1777927772.384806,0.5m,0,-78,7,529 +1777927885.2976909,1.0m,2,355,308,1069 +1777927885.3516319,1.0m,2,352,309,1073 +1777927885.403924,1.0m,2,347,310,1076 +1777927885.456853,1.0m,2,347,311,1075 +1777927885.515191,1.0m,2,350,310,1076 +1777927885.5653079,1.0m,2,348,312,1080 +1777927885.620126,1.0m,2,340,312,1080 +1777927885.67611,1.0m,2,344,311,1076 +1777927885.724285,1.0m,2,353,311,1080 +1777927885.78301,1.0m,2,351,309,1075 +1777927885.836169,1.0m,2,348,312,1078 +1777927885.8920739,1.0m,2,353,312,1080 +1777927885.947009,1.0m,2,355,312,1078 +1777927885.9957561,1.0m,2,353,311,1076 +1777927886.048408,1.0m,2,351,309,1070 +1777927886.1040761,1.0m,2,350,311,1076 +1777927886.156482,1.0m,2,349,313,1082 +1777927886.21062,1.0m,2,349,313,1081 +1777927886.263653,1.0m,2,347,311,1076 +1777927886.31806,1.0m,2,348,311,1076 +1777927886.3716621,1.0m,2,343,312,1078 +1777927886.423598,1.0m,2,350,311,1075 +1777927886.481438,1.0m,2,343,311,1077 +1777927886.537062,1.0m,2,346,311,1076 +1777927886.588948,1.0m,2,338,312,1079 +1777927886.642408,1.0m,2,344,309,1070 +1777927886.694433,1.0m,2,347,311,1077 +1777927886.748265,1.0m,2,341,312,1079 +1777927886.808824,1.0m,2,348,312,1078 +1777927886.856565,1.0m,2,342,310,1074 +1777927886.908586,1.0m,2,348,310,1074 +1777927886.96316,1.0m,2,344,312,1079 +1777927887.019617,1.0m,2,339,312,1078 +1777927887.082031,1.0m,2,352,312,1079 +1777927887.12448,1.0m,2,341,311,1075 +1777927887.178496,1.0m,2,347,312,1075 +1777927887.237922,1.0m,2,350,312,1079 +1777927887.288414,1.0m,2,347,311,1075 +1777927887.3446,1.0m,2,347,311,1076 +1777927887.398164,1.0m,2,336,310,1073 +1777927887.451165,1.0m,2,349,312,1078 +1777927887.510006,1.0m,2,348,312,1080 +1777927887.5557609,1.0m,2,336,312,1078 +1777927887.614808,1.0m,2,345,312,1078 +1777927887.66528,1.0m,2,341,310,1072 +1777927887.7199109,1.0m,2,341,311,1076 +1777927887.7757702,1.0m,2,340,312,1078 +1777927887.8226938,1.0m,2,338,311,1076 +1777927887.877866,1.0m,2,336,311,1077 +1777927887.9326222,1.0m,2,347,311,1075 +1777927887.9871302,1.0m,2,346,310,1072 +1777927888.043124,1.0m,2,338,310,1074 +1777927888.090549,1.0m,2,334,310,1073 +1777927888.1476429,1.0m,2,343,310,1072 +1777927888.200525,1.0m,2,341,311,1075 +1777927888.2546072,1.0m,2,340,312,1078 +1777927888.308953,1.0m,2,339,310,1078 +1777927888.360117,1.0m,2,343,311,1076 +1777927888.416959,1.0m,2,338,312,1079 +1777927888.471012,1.0m,2,341,313,1081 +1777927888.524512,1.0m,2,338,312,1079 +1777927888.577523,1.0m,2,346,310,1072 +1777927888.6300118,1.0m,2,345,310,1071 +1777927888.682265,1.0m,2,339,311,1077 +1777927888.7384388,1.0m,2,336,309,1070 +1777927888.788678,1.0m,2,334,311,1076 +1777927888.846148,1.0m,2,335,311,1075 +1777927888.902348,1.0m,2,340,310,1072 +1777927888.9564512,1.0m,2,335,312,1080 +1777927889.016587,1.0m,2,333,312,1078 +1777927889.065034,1.0m,2,342,311,1075 +1777927889.116692,1.0m,2,333,311,1077 +1777927889.169423,1.0m,2,340,311,1077 +1777927889.222611,1.0m,2,343,310,1073 +1777927889.2769542,1.0m,2,341,310,1071 +1777927889.334864,1.0m,2,342,310,1073 +1777927889.388588,1.0m,2,338,312,1078 +1777927889.4429739,1.0m,2,336,313,1081 +1777927889.492827,1.0m,2,345,312,1079 +1777927889.548038,1.0m,2,344,311,1076 +1777927889.608223,1.0m,2,338,312,1078 +1777927889.656916,1.0m,2,338,312,1079 +1777927889.7087958,1.0m,2,336,313,1083 +1777927889.765001,1.0m,2,335,311,1076 +1777927889.817877,1.0m,2,340,311,1077 +1777927889.874465,1.0m,2,337,312,1080 +1777927889.9229171,1.0m,2,341,311,1075 +1777927889.981193,1.0m,2,337,311,1075 +1777927890.031929,1.0m,2,344,311,1076 +1777927890.086072,1.0m,2,340,312,1078 +1777927890.141483,1.0m,2,347,313,1083 +1777927890.190718,1.0m,2,343,311,1076 +1777927890.243923,1.0m,2,344,311,1075 +1777927890.297915,1.0m,2,342,312,1079 +1777927890.354442,1.0m,2,345,312,1078 +1777927890.4099898,1.0m,2,339,311,1077 +1777927890.458693,1.0m,2,343,311,1076 +1777927890.515511,1.0m,2,341,312,1080 +1777927890.573644,1.0m,2,343,312,1080 +1777927890.620865,1.0m,2,342,311,1075 +1777927890.6753511,1.0m,2,336,313,1081 +1777927890.7286441,1.0m,2,339,313,1081 +1777927890.7815151,1.0m,2,344,311,1077 +1777927890.838368,1.0m,2,335,313,1082 +1777927890.88914,1.0m,2,339,312,1079 +1777927890.942444,1.0m,2,342,312,1078 +1777927890.997484,1.0m,2,347,311,1075 +1777927891.049767,1.0m,2,344,310,1072 +1777927891.108394,1.0m,2,336,310,1072 +1777927891.1566541,1.0m,2,340,310,1073 +1777927891.2098439,1.0m,2,341,310,1072 +1777927891.263942,1.0m,2,344,312,1080 +1777927891.317861,1.0m,2,345,311,1075 +1777927891.376075,1.0m,2,343,311,1076 +1777927891.423299,1.0m,2,337,311,1075 +1777927891.4811242,1.0m,2,341,310,1074 +1777927891.533608,1.0m,2,342,309,1073 +1777927891.5894341,1.0m,2,340,311,1071 +1777927891.647202,1.0m,2,340,311,1077 +1777927891.695841,1.0m,2,342,311,1075 +1777927891.7586272,1.0m,2,345,314,1087 +1777927891.823036,1.0m,2,338,315,1089 +1777927891.8563251,1.0m,2,341,311,1076 +1777927891.9089642,1.0m,2,343,310,1072 +1777927891.963722,1.0m,2,343,312,1078 +1777927892.0199769,1.0m,2,335,311,1076 +1777927892.0755358,1.0m,2,341,310,1072 +1777927892.1250172,1.0m,2,338,314,1086 +1777927892.182354,1.0m,2,341,312,1079 +1777927892.2331111,1.0m,2,343,312,1078 +1777927892.2878778,1.0m,2,338,313,1083 +1777927892.343693,1.0m,2,340,311,1077 +1777927892.391156,1.0m,2,333,311,1077 +1777927892.448225,1.0m,2,341,311,1076 +1777927892.500749,1.0m,2,337,310,1073 +1777927892.553809,1.0m,2,338,311,1075 +1777927892.612811,1.0m,2,342,311,1075 +1777927892.6623008,1.0m,2,335,311,1076 +1777927892.7155042,1.0m,2,339,313,1082 +1777927892.7704651,1.0m,2,345,315,1088 +1777927892.8220851,1.0m,2,339,315,1089 +1777927892.876719,1.0m,2,340,313,1082 +1777927892.9294772,1.0m,2,344,311,1075 +1777927892.9849741,1.0m,2,338,312,1080 +1777927893.0410721,1.0m,2,336,312,1078 +1777927893.089018,1.0m,2,341,311,1076 +1777927893.14367,1.0m,2,340,310,1072 +1777927893.197271,1.0m,2,334,312,1079 +1777927893.252774,1.0m,2,342,312,1078 +1777927893.3107588,1.0m,2,342,313,1079 +1777927893.360673,1.0m,2,344,311,1077 +1777927893.4139662,1.0m,2,338,311,1076 +1777927893.4746208,1.0m,2,343,311,1077 +1777927893.523232,1.0m,2,344,311,1075 +1777927893.5734751,1.0m,2,341,315,1088 +1777927893.629527,1.0m,2,339,312,1078 +1777927893.685516,1.0m,2,344,311,1077 +1777927893.740031,1.0m,2,345,311,1075 +1777927893.788599,1.0m,2,336,310,1073 +1777927893.847401,1.0m,2,339,311,1075 +1777927893.898417,1.0m,2,345,310,1073 +1777927893.952458,1.0m,2,339,310,1073 +1777927894.008272,1.0m,2,344,311,1070 +1777927894.055382,1.0m,2,347,313,1079 +1777927894.1104069,1.0m,2,334,312,1075 +1777927894.165644,1.0m,2,346,314,1082 +1777927894.218844,1.0m,2,336,313,1083 +1777927894.274256,1.0m,2,346,313,1076 +1777927894.322038,1.0m,2,345,313,1082 +1777927894.377238,1.0m,2,343,312,1078 +1777927894.431241,1.0m,2,345,310,1071 +1777927894.483556,1.0m,2,346,310,1074 +1777927894.5422678,1.0m,2,345,311,1075 +1777927894.591678,1.0m,2,342,310,1074 +1777927894.649059,1.0m,2,344,310,1071 +1777927894.707627,1.0m,2,342,309,1070 +1777927894.755397,1.0m,2,344,309,1070 +1777927894.807692,1.0m,2,342,310,1071 +1777927894.861839,1.0m,2,339,311,1077 +1777927894.917239,1.0m,2,344,311,1076 +1777927894.972231,1.0m,2,342,315,1089 +1777927895.021348,1.0m,2,342,311,1075 +1777927895.075764,1.0m,2,342,312,1078 +1777927895.130691,1.0m,2,342,312,1078 +1777927895.183667,1.0m,2,343,311,1076 +1777927895.239752,1.0m,2,338,311,1076 +1777927895.288752,1.0m,2,340,310,1072 +1777927895.3425999,1.0m,2,341,310,1074 +1777927895.398091,1.0m,2,340,310,1073 +1777927895.4522471,1.0m,2,342,310,1073 +1777927895.507942,1.0m,2,342,310,1071 +1777927895.559642,1.0m,2,341,310,1072 +1777927895.613791,1.0m,2,340,310,1072 +1777927895.67059,1.0m,2,340,310,1071 +1777927895.721023,1.0m,2,342,311,1077 +1777927895.776614,1.0m,2,341,310,1071 +1777927895.828906,1.0m,2,344,311,1075 +1777927895.882113,1.0m,2,339,309,1070 +1777927895.938245,1.0m,2,341,311,1075 +1777927895.98846,1.0m,2,341,310,1072 +1777927896.043206,1.0m,2,338,311,1072 +1777927896.0953228,1.0m,2,340,310,1071 +1777927896.150323,1.0m,2,340,311,1071 +1777927896.208671,1.0m,2,338,313,1076 +1777927896.257088,1.0m,2,340,312,1073 +1777927896.313619,1.0m,2,335,312,1074 +1777927896.368751,1.0m,2,337,313,1076 +1777927896.420071,1.0m,2,338,309,1065 +1777927896.480382,1.0m,2,341,311,1072 +1777927896.524516,1.0m,2,342,310,1074 +1777927896.5803578,1.0m,2,338,311,1071 +1777927896.641027,1.0m,2,344,311,1070 +1777927896.688319,1.0m,2,337,313,1072 +1777927896.74092,1.0m,2,340,313,1073 +1777927896.7952461,1.0m,2,344,311,1070 +1777927896.849024,1.0m,2,337,313,1077 +1777927896.906433,1.0m,2,341,311,1071 +1777927896.9546702,1.0m,2,345,312,1075 +1777927897.0135932,1.0m,2,341,309,1065 +1777927897.0637949,1.0m,2,341,308,1061 +1777927897.120091,1.0m,2,340,310,1069 +1777927897.176276,1.0m,2,342,314,1075 +1777927897.222581,1.0m,2,342,311,1071 +1777927897.280002,1.0m,2,341,312,1071 +1777927897.3326862,1.0m,2,340,310,1071 +1777927897.3871622,1.0m,2,345,309,1069 +1777927897.443991,1.0m,2,343,310,1069 +1777927897.49464,1.0m,2,339,310,1067 +1777927897.5518951,1.0m,2,337,311,1066 +1777927897.6076438,1.0m,2,340,312,1069 +1777927897.655942,1.0m,2,335,312,1071 +1777927897.707076,1.0m,2,340,311,1071 +1777927897.76542,1.0m,2,342,311,1070 +1777927897.817177,1.0m,2,340,310,1066 +1777927897.873155,1.0m,2,344,309,1070 +1777927897.9234712,1.0m,2,343,310,1069 +1777927897.9797308,1.0m,2,338,309,1065 +1777927898.03189,1.0m,2,343,310,1067 +1777927898.084479,1.0m,2,339,310,1073 +1777927898.14158,1.0m,2,346,313,1076 +1777927898.188545,1.0m,2,335,312,1074 +1777927898.2451031,1.0m,2,346,312,1078 +1777927898.297164,1.0m,2,339,310,1069 +1777927898.352501,1.0m,2,340,310,1069 +1777927898.408371,1.0m,2,342,310,1074 +1777927898.457361,1.0m,2,342,309,1065 +1777927898.512127,1.0m,2,341,309,1070 +1777927898.573743,1.0m,2,342,312,1075 +1777927898.621264,1.0m,2,343,310,1067 +1777927898.6741068,1.0m,2,339,309,1065 +1777927898.72948,1.0m,2,342,310,1074 +1777927898.780711,1.0m,2,343,309,1069 +1777927898.834295,1.0m,2,341,310,1072 +1777927898.889055,1.0m,2,342,313,1078 +1777927898.941844,1.0m,2,341,312,1074 +1777927898.995774,1.0m,2,344,312,1075 +1777927899.051245,1.0m,2,342,312,1075 +1777927899.106571,1.0m,2,339,312,1075 +1777927899.1556852,1.0m,2,340,310,1069 +1777927899.2129521,1.0m,2,345,309,1073 +1777927899.267081,1.0m,2,341,310,1067 +1777927899.320503,1.0m,2,343,308,1072 +1777927899.375417,1.0m,2,344,311,1072 +1777927899.4277818,1.0m,2,343,310,1066 +1777927899.479371,1.0m,2,341,310,1067 +1777927899.535681,1.0m,2,341,311,1071 +1777927899.5872908,1.0m,2,343,312,1074 +1777927899.642945,1.0m,2,344,311,1070 +1777927899.696553,1.0m,2,342,312,1073 +1777927899.749303,1.0m,2,340,313,1077 +1777927899.804115,1.0m,2,346,313,1076 +1777927899.853407,1.0m,2,345,312,1075 +1777927899.911155,1.0m,2,344,312,1075 +1777927899.9686248,1.0m,2,345,312,1075 +1777927900.0184572,1.0m,2,346,312,1074 +1777927900.076385,1.0m,2,344,313,1077 +1777927900.126614,1.0m,2,338,312,1074 +1777927900.1795452,1.0m,2,338,313,1076 +1777927900.236009,1.0m,2,346,313,1077 +1777927900.291397,1.0m,2,342,312,1075 +1777927995.876537,1.5m,0,285,455,1574 +1777927995.92975,1.5m,0,287,461,1586 +1777927995.9906209,1.5m,0,289,458,1586 +1777927996.039427,1.5m,0,284,459,1581 +1777927996.097014,1.5m,0,284,456,1576 +1777927996.1494248,1.5m,0,284,456,1579 +1777927996.203072,1.5m,0,284,456,1576 +1777927996.255784,1.5m,0,283,455,1574 +1777927996.3049111,1.5m,0,284,457,1581 +1777927996.359391,1.5m,0,281,453,1565 +1777927996.415833,1.5m,0,284,455,1581 +1777927996.471123,1.5m,0,286,456,1576 +1777927996.526714,1.5m,0,284,454,1570 +1777927996.578957,1.5m,0,285,455,1574 +1777927996.629903,1.5m,0,286,455,1581 +1777927996.687114,1.5m,0,289,453,1574 +1777927996.738105,1.5m,0,287,452,1570 +1777927996.792764,1.5m,0,286,454,1576 +1777927996.847801,1.5m,0,284,454,1570 +1777927996.901435,1.5m,0,284,450,1565 +1777927996.958133,1.5m,0,284,454,1570 +1777927997.005147,1.5m,0,285,454,1572 +1777927997.0593421,1.5m,0,283,455,1574 +1777927997.1180851,1.5m,0,282,454,1570 +1777927997.1704519,1.5m,0,282,454,1570 +1777927997.226419,1.5m,0,282,453,1567 +1777927997.2764878,1.5m,0,281,454,1572 +1777927997.329906,1.5m,0,283,457,1572 +1777927997.387452,1.5m,0,283,455,1574 +1777927997.43859,1.5m,0,283,457,1574 +1777927997.4937532,1.5m,0,283,457,1572 +1777927997.546504,1.5m,0,282,455,1567 +1777927997.5997791,1.5m,0,284,454,1579 +1777927997.6579998,1.5m,0,284,456,1576 +1777927997.7064588,1.5m,0,280,453,1567 +1777927997.759892,1.5m,0,283,453,1574 +1777927997.81264,1.5m,0,283,454,1572 +1777927997.869623,1.5m,0,284,456,1576 +1777927997.9254,1.5m,0,281,453,1565 +1777927997.976137,1.5m,0,283,454,1572 +1777927998.030414,1.5m,0,283,454,1572 +1777927998.08,1.5m,0,286,454,1576 +1777927998.135954,1.5m,0,284,453,1567 +1777927998.191742,1.5m,0,283,454,1572 +1777927998.240618,1.5m,0,283,454,1572 +1777927998.293198,1.5m,0,283,455,1574 +1777927998.348225,1.5m,0,282,454,1570 +1777927998.40316,1.5m,0,283,455,1574 +1777927998.4583008,1.5m,0,281,456,1576 +1777927998.508252,1.5m,0,282,454,1570 +1777927998.562077,1.5m,0,283,454,1572 +1777927998.623737,1.5m,0,281,454,1576 +1777927998.674005,1.5m,0,280,456,1570 +1777927998.7247941,1.5m,0,281,456,1576 +1777927998.780355,1.5m,0,281,454,1572 +1777927998.8334038,1.5m,0,282,456,1579 +1777927998.891186,1.5m,0,281,454,1572 +1777927998.940214,1.5m,0,281,455,1574 +1777927998.997834,1.5m,0,281,452,1572 +1777927999.048754,1.5m,0,280,454,1570 +1777927999.104189,1.5m,0,284,454,1570 +1777927999.159463,1.5m,0,285,458,1583 +1777927999.208834,1.5m,0,286,456,1576 +1777927999.263136,1.5m,0,284,451,1567 +1777927999.318825,1.5m,0,285,453,1574 +1777927999.3713942,1.5m,0,283,452,1572 +1777927999.4300108,1.5m,0,285,454,1572 +1777927999.478302,1.5m,0,285,452,1572 +1777927999.532873,1.5m,0,284,451,1567 +1777927999.590327,1.5m,0,284,454,1576 +1777927999.6381388,1.5m,0,285,453,1574 +1777927999.691935,1.5m,0,284,456,1576 +1777927999.741981,1.5m,0,280,454,1570 +1777927999.79854,1.5m,0,283,454,1572 +1777927999.853329,1.5m,0,284,453,1567 +1777927999.905605,1.5m,0,280,454,1570 +1777927999.958154,1.5m,0,281,454,1572 +1777928000.011062,1.5m,0,283,454,1572 +1777928000.065165,1.5m,0,281,456,1576 +1777928000.124904,1.5m,0,280,454,1570 +1777928000.171551,1.5m,0,283,453,1574 +1777928000.2259352,1.5m,0,281,458,1576 +1777928000.278833,1.5m,0,282,456,1579 +1777928000.33433,1.5m,0,280,453,1567 +1777928000.391016,1.5m,0,281,456,1576 +1777928000.4411259,1.5m,0,280,456,1570 +1777928000.4953542,1.5m,0,281,457,1574 +1777928000.557129,1.5m,0,281,457,1572 +1777928000.603719,1.5m,0,280,456,1570 +1777928000.658849,1.5m,0,281,456,1576 +1777928000.71071,1.5m,0,281,457,1572 +1777928000.763881,1.5m,0,281,455,1574 +1777928000.822657,1.5m,0,284,456,1576 +1777928000.8736231,1.5m,0,283,454,1572 +1777928000.926049,1.5m,0,282,457,1581 +1777928000.978424,1.5m,0,281,454,1572 +1777928001.032736,1.5m,0,283,460,1583 +1777928001.089972,1.5m,0,281,457,1574 +1777928001.1402218,1.5m,0,281,457,1572 +1777928001.1965382,1.5m,0,281,457,1574 +1777928001.249501,1.5m,0,281,454,1572 +1777928001.304252,1.5m,0,281,457,1572 +1777928001.357437,1.5m,0,281,454,1572 +1777928001.407905,1.5m,0,281,457,1574 +1777928001.4633348,1.5m,0,281,454,1572 +1777928001.5229492,1.5m,0,280,453,1567 +1777928001.571231,1.5m,0,280,453,1567 +1777928001.62181,1.5m,0,280,454,1570 +1777928001.678494,1.5m,0,281,454,1572 +1777928001.729941,1.5m,0,281,456,1576 +1777928001.788783,1.5m,0,279,454,1563 +1777928001.839692,1.5m,0,281,457,1574 +1777928001.8945029,1.5m,0,281,457,1574 +1777928001.95046,1.5m,0,279,452,1563 +1777928002.0011818,1.5m,0,281,457,1574 +1777928002.059435,1.5m,0,280,456,1570 +1777928002.1144161,1.5m,0,279,455,1565 +1777928002.1645708,1.5m,0,279,455,1565 +1777928002.223653,1.5m,0,281,457,1572 +1777928002.270993,1.5m,0,280,456,1570 +1777928002.325345,1.5m,0,280,455,1567 +1777928002.379394,1.5m,0,281,454,1572 +1777928002.4328902,1.5m,0,282,457,1581 +1777928002.489014,1.5m,0,281,457,1574 +1777928002.5377731,1.5m,0,281,457,1574 +1777928002.593097,1.5m,0,281,457,1572 +1777928002.653549,1.5m,0,280,455,1567 +1777928002.702488,1.5m,0,280,454,1570 +1777928002.763485,1.5m,0,281,457,1574 +1777928002.807982,1.5m,0,281,457,1574 +1777928002.862494,1.5m,0,281,457,1574 +1777928002.922548,1.5m,0,281,457,1574 +1777928002.97343,1.5m,0,281,458,1576 +1777928003.0247612,1.5m,0,281,454,1572 +1777928003.075158,1.5m,0,281,454,1572 +1777928003.130047,1.5m,0,280,456,1570 +1777928003.1846788,1.5m,0,281,454,1572 +1777928003.237518,1.5m,0,280,452,1570 +1777928003.294858,1.5m,0,282,456,1579 +1777928003.343938,1.5m,0,280,455,1567 +1777928003.399721,1.5m,0,281,453,1565 +1777928003.454998,1.5m,0,279,455,1565 +1777928003.505452,1.5m,0,280,456,1570 +1777928003.558559,1.5m,0,281,457,1572 +1777928003.614174,1.5m,0,281,452,1572 +1777928003.6672971,1.5m,0,281,457,1572 +1777928003.723613,1.5m,0,281,455,1574 +1777928003.772543,1.5m,0,281,456,1576 +1777928003.824393,1.5m,0,281,457,1574 +1777928003.8819609,1.5m,0,281,456,1576 +1777928003.93151,1.5m,0,281,458,1576 +1777928003.989546,1.5m,0,281,455,1574 +1777928004.037777,1.5m,0,282,459,1579 +1777928004.09257,1.5m,0,281,457,1572 +1777928004.148454,1.5m,0,280,456,1570 +1777928004.203361,1.5m,0,281,457,1572 +1777928004.261312,1.5m,0,278,457,1572 +1777928004.30959,1.5m,0,278,457,1572 +1777928004.365132,1.5m,0,282,456,1579 +1777928004.421587,1.5m,0,278,456,1570 +1777928004.4724941,1.5m,0,279,457,1574 +1777928004.5274198,1.5m,0,281,457,1572 +1777928004.578916,1.5m,0,278,456,1570 +1777928004.63404,1.5m,0,281,458,1576 +1777928004.690806,1.5m,0,279,457,1574 +1777928004.7383418,1.5m,0,281,458,1576 +1777928004.7928681,1.5m,0,279,458,1576 +1777928004.848085,1.5m,0,280,459,1579 +1777928004.903336,1.5m,0,278,457,1572 +1777928004.961349,1.5m,0,281,457,1574 +1777928005.012086,1.5m,0,279,458,1576 +1777928005.06481,1.5m,0,282,459,1579 +1777928005.1187499,1.5m,0,280,459,1579 +1777928005.171798,1.5m,0,279,458,1576 +1777928005.222225,1.5m,0,279,457,1574 +1777928005.27817,1.5m,0,278,457,1572 +1777928005.3310468,1.5m,0,278,456,1570 +1777928005.389819,1.5m,0,279,458,1576 +1777928005.4385972,1.5m,0,279,458,1576 +1777928005.491932,1.5m,0,278,455,1567 +1777928005.547214,1.5m,0,278,456,1570 +1777928005.601992,1.5m,0,279,458,1576 +1777928005.656637,1.5m,0,278,457,1572 +1777928005.7071621,1.5m,0,278,455,1567 +1777928005.763347,1.5m,0,278,457,1572 +1777928005.8235562,1.5m,0,279,458,1576 +1777928005.869217,1.5m,0,278,457,1572 +1777928005.924884,1.5m,0,278,456,1570 +1777928005.978215,1.5m,0,279,458,1576 +1777928006.0379388,1.5m,0,280,459,1579 +1777928006.089321,1.5m,0,280,459,1579 +1777928006.1395688,1.5m,0,280,459,1579 +1777928006.195586,1.5m,0,278,457,1572 +1777928006.254793,1.5m,0,280,459,1581 +1777928006.3041558,1.5m,0,278,455,1567 +1777928006.35685,1.5m,0,280,459,1579 +1777928006.4096599,1.5m,0,278,456,1570 +1777928006.464077,1.5m,0,278,457,1572 +1777928006.517269,1.5m,0,278,457,1572 +1777928006.570029,1.5m,0,279,457,1574 +1777928006.624737,1.5m,0,278,457,1572 +1777928006.6775491,1.5m,0,279,457,1574 +1777928006.73429,1.5m,0,279,457,1574 +1777928006.7905128,1.5m,0,278,457,1572 +1777928006.839707,1.5m,0,279,457,1574 +1777928006.894896,1.5m,0,279,458,1576 +1777928006.953644,1.5m,0,278,456,1570 +1777928007.002413,1.5m,0,278,457,1572 +1777928007.0551739,1.5m,0,279,458,1576 +1777928007.111855,1.5m,0,278,455,1567 +1777928007.1638799,1.5m,0,279,457,1574 +1777928007.21837,1.5m,0,280,459,1579 +1777928007.271494,1.5m,0,278,457,1572 +1777928007.323384,1.5m,0,274,457,1572 +1777928007.377716,1.5m,0,277,457,1574 +1777928007.430496,1.5m,0,276,457,1572 +1777928007.487639,1.5m,0,276,457,1572 +1777928007.536161,1.5m,0,275,457,1574 +1777928007.5952482,1.5m,0,274,457,1572 +1777928007.646073,1.5m,0,277,457,1574 +1777928007.701199,1.5m,0,279,458,1576 +1777928007.75765,1.5m,0,274,457,1572 +1777928007.805551,1.5m,0,277,457,1574 +1777928007.863471,1.5m,0,278,460,1583 +1777928007.920373,1.5m,0,276,457,1572 +1777928007.968346,1.5m,0,277,457,1574 +1777928008.023548,1.5m,0,276,457,1572 +1777928008.0765948,1.5m,0,279,458,1576 +1777928008.1287181,1.5m,0,280,459,1581 +1777928008.1855948,1.5m,0,280,459,1581 +1777928008.2368152,1.5m,0,278,457,1572 +1777928008.295357,1.5m,0,280,459,1579 +1777928008.3413088,1.5m,0,279,458,1576 +1777928008.39528,1.5m,0,278,456,1570 +1777928008.4539719,1.5m,0,278,457,1572 +1777928008.503743,1.5m,0,278,457,1572 +1777928008.558037,1.5m,0,278,457,1572 +1777928008.612604,1.5m,0,281,457,1572 +1777928008.668239,1.5m,0,280,456,1570 +1777928008.7234051,1.5m,0,279,458,1576 +1777928008.775559,1.5m,0,281,457,1574 +1777928008.824255,1.5m,0,278,456,1570 +1777928008.8847558,1.5m,0,281,457,1574 +1777928008.935669,1.5m,0,278,456,1570 +1777928008.991035,1.5m,0,278,457,1572 +1777928009.0428421,1.5m,0,279,457,1574 +1777928009.09707,1.5m,0,278,456,1570 +1777928009.151893,1.5m,0,279,458,1576 +1777928009.204052,1.5m,0,278,456,1570 +1777928009.257643,1.5m,0,279,457,1574 +1777928009.3109288,1.5m,0,278,455,1567 +1777928009.3647518,1.5m,0,278,457,1572 +1777928009.421576,1.5m,0,278,455,1567 +1777928009.470224,1.5m,0,278,455,1567 +1777928009.528634,1.5m,0,279,457,1574 +1777928009.5781918,1.5m,0,278,455,1567 +1777928009.6332319,1.5m,0,279,458,1576 +1777928009.690568,1.5m,0,279,459,1574 +1777928009.73921,1.5m,0,278,457,1572 +1777928009.793211,1.5m,0,278,456,1570 +1777928009.853097,1.5m,0,279,457,1574 +1777928009.902436,1.5m,0,278,457,1572 +1777928009.954124,1.5m,0,280,459,1581 +1777928010.0116491,1.5m,0,278,457,1572 +1777928010.068426,1.5m,0,280,459,1581 +1777928010.1299992,1.5m,0,278,455,1567 +1777928010.176041,1.5m,0,279,457,1574 +1777928010.2307909,1.5m,0,279,457,1574 +1777928010.2841358,1.5m,0,279,458,1576 +1777928010.337165,1.5m,0,279,458,1576 +1777928010.389399,1.5m,0,279,458,1576 +1777928010.443349,1.5m,0,279,457,1574 +1777928010.4967759,1.5m,0,279,458,1576 +1777928010.554434,1.5m,0,279,458,1576 +1777928010.6048388,1.5m,0,280,459,1579 +1777928010.6553721,1.5m,0,279,458,1576 +1777928010.710398,1.5m,0,278,455,1567 +1777928010.765104,1.5m,0,280,459,1579 +1777928010.823093,1.5m,0,281,457,1574 +1777928010.8708212,1.5m,0,278,457,1572 diff --git a/documentation/accuracy/calibration.png b/documentation/accuracy/calibration.png new file mode 100644 index 0000000..3219712 Binary files /dev/null and b/documentation/accuracy/calibration.png differ diff --git a/main_2025.py b/main_2025.py index 1b7c348..1038c3e 100644 --- a/main_2025.py +++ b/main_2025.py @@ -1,15 +1,106 @@ """ -for target tracking +Target tracking pipeline for OAK-D. +Runs YOLOv4-tiny spatial detection + object tracking on-device. """ import pathlib +import cv2 +import depthai as dai +import yaml + +from modules.target_tracking.stereo_node import create_stereo_depth +from modules.target_tracking.spatial_detection_node import create_spatial_detection_network +from modules.target_tracking.object_tracker_node import create_object_tracker CONFIG_FILE_PATH = pathlib.Path("config.yaml") +OUTPUT_QUEUE_SIZE = 4 + +# Z-bias calibration anchors: (raw_z_mm, offset_mm_to_subtract). +# Measured at 0.5/1.0/1.5/2.0m; final (2200, 0) tapers smoothly to factory calibration. +# Beyond the last anchor the raw camera value is trusted as-is. +# See documentation/accuracy/calibration.png for the fit visualization. +Z_CALIBRATION_ANCHORS = ( + (527.0, 27.5), # 0.5m + (1075.0, 75.1), # 1.0m + (1573.0, 73.2), # 1.5m + (1951.0, -48.7), # 2.0m + (2200.0, 0.0), # taper end — trust factory beyond this +) + + +def calibrate_z(raw_z: float) -> float: + """Apply piecewise-linear bias correction to a raw stereo-depth z value (mm).""" + if raw_z <= Z_CALIBRATION_ANCHORS[0][0]: + return raw_z - Z_CALIBRATION_ANCHORS[0][1] + if raw_z >= Z_CALIBRATION_ANCHORS[-1][0]: + return raw_z + for (z0, o0), (z1, o1) in zip(Z_CALIBRATION_ANCHORS, Z_CALIBRATION_ANCHORS[1:]): + if z0 <= raw_z <= z1: + t = (raw_z - z0) / (z1 - z0) + return raw_z - (o0 + t * (o1 - o0)) + return raw_z def main() -> int: - """Main Function for target tracking""" + """Run the OAK-D target tracking pipeline.""" + with open(CONFIG_FILE_PATH, "r", encoding="utf-8") as config_file: + config = yaml.safe_load(config_file) + + model_name: str = config["spatial_detection"]["model_name"] + + with dai.Pipeline() as pipeline: + stereo = create_stereo_depth(pipeline) + spatial_detection = create_spatial_detection_network(pipeline, stereo, model_name) + tracker = create_object_tracker(pipeline, spatial_detection) + + tracklet_queue = tracker.out.createOutputQueue(maxSize=OUTPUT_QUEUE_SIZE, blocking=False) + preview_queue = tracker.passthroughTrackerFrame.createOutputQueue( + maxSize=OUTPUT_QUEUE_SIZE, blocking=False + ) + + pipeline.start() + while pipeline.isRunning(): + tracklets_msg = tracklet_queue.get() + frame_msg = preview_queue.get() + frame = frame_msg.getCvFrame() + + for tracklet in tracklets_msg.tracklets: + if tracklet.status != dai.Tracklet.TrackingStatus.TRACKED: + continue + + roi = tracklet.roi.denormalize(frame.shape[1], frame.shape[0]) + x_mm = tracklet.spatialCoordinates.x + y_mm = tracklet.spatialCoordinates.y + z_mm = calibrate_z(tracklet.spatialCoordinates.z) + + print( + f"Target ID {tracklet.id}: " + f"xyz=({x_mm:.0f}mm, {y_mm:.0f}mm, {z_mm:.0f}mm) " + f"bbox=({int(roi.topLeft().x)}, {int(roi.topLeft().y)}, " + f"{int(roi.bottomRight().x)}, {int(roi.bottomRight().y)})" + ) + + cv2.rectangle( + frame, + (int(roi.topLeft().x), int(roi.topLeft().y)), + (int(roi.bottomRight().x), int(roi.bottomRight().y)), + (0, 255, 0), + 2, + ) + cv2.putText( + frame, + f"ID {tracklet.id} | {z_mm:.0f}mm", + (int(roi.topLeft().x), int(roi.topLeft().y) - 8), + cv2.FONT_HERSHEY_SIMPLEX, + 0.5, + (0, 255, 0), + 1, + ) + + cv2.imshow("Target Tracking", frame) + if cv2.waitKey(1) == ord("q"): + break return 0 @@ -18,5 +109,4 @@ def main() -> int: result_main = main() if result_main < 0: print(f"ERROR: Status code: {result_main}") - print("Done!") diff --git a/modules/target_tracking/object_tracker_node.py b/modules/target_tracking/object_tracker_node.py new file mode 100644 index 0000000..d82a6d1 --- /dev/null +++ b/modules/target_tracking/object_tracker_node.py @@ -0,0 +1,45 @@ +""" +Module for initializing the Object Tracker node. +Wraps DepthAI's ObjectTracker to track detections across frames with persistent IDs. +""" + +import depthai as dai + + +# Track only class 0 (person in COCO dataset) +PERSON_CLASS_ID = 0 + +# ZERO_TERM_COLOR_HISTOGRAM: lightweight, works without re-identification network +TRACKER_TYPE = dai.TrackerType.ZERO_TERM_COLOR_HISTOGRAM + +# SMALLEST_ID: reuse lowest available ID, keeps IDs stable across frames +ASSIGNMENT_POLICY = dai.TrackerIdAssignmentPolicy.SMALLEST_ID + + +def create_object_tracker( + pipeline: dai.Pipeline, + spatial_detection: dai.node.SpatialDetectionNetwork, +) -> dai.node.ObjectTracker: + """ + Creates the ObjectTracker node and links it to the spatial detection network. + + Args: + pipeline: The DepthAI pipeline object. + spatial_detection: The configured SpatialDetectionNetwork node. + + Returns: + Configured ObjectTracker node. + """ + tracker = pipeline.create(dai.node.ObjectTracker) + + # Only track humans (COCO class 0) + tracker.setDetectionLabelsToTrack([PERSON_CLASS_ID]) + tracker.setTrackerType(TRACKER_TYPE) + tracker.setTrackerIdAssignmentPolicy(ASSIGNMENT_POLICY) + + # passthrough provides the preview frame used to extract appearance features + spatial_detection.passthrough.link(tracker.inputTrackerFrame) + spatial_detection.passthrough.link(tracker.inputDetectionFrame) + spatial_detection.out.link(tracker.inputDetections) + + return tracker diff --git a/modules/target_tracking/spatial_detection_node.py b/modules/target_tracking/spatial_detection_node.py new file mode 100644 index 0000000..b6d062a --- /dev/null +++ b/modules/target_tracking/spatial_detection_node.py @@ -0,0 +1,48 @@ +""" +Module for initializing the Spatial Detection Network. +Integrates the stereo depth node with YOLO for 3D object localization. +""" + +import depthai as dai + + +# Detection thresholds +CONFIDENCE_THRESHOLD = 0.5 + +# Depth ROI scale (fraction of bounding box used to sample depth) +BOUNDING_BOX_SCALE_FACTOR = 0.5 + +# Valid depth range in mm +DEPTH_LOWER_THRESHOLD_MM = 100 +DEPTH_UPPER_THRESHOLD_MM = 10000 + + +def create_spatial_detection_network( + pipeline: dai.Pipeline, + stereo: dai.node.StereoDepth, + model_name: str, +) -> dai.node.SpatialDetectionNetwork: + """ + Creates the SpatialDetectionNetwork and links it with stereo depth + color camera. + + Args: + pipeline: The DepthAI pipeline object. + stereo: Configured StereoDepth node with depth aligned to CAM_A. + model_name: Luxonis model zoo name (e.g. "yolov6-nano"). + + Returns: + Configured SpatialDetectionNetwork node. + """ + # CAM_A is the RGB sensor — must match stereo's setDepthAlign(CAM_A) + cam = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_A) + + spatial_detection = pipeline.create(dai.node.SpatialDetectionNetwork).build( + cam, stereo, model_name + ) + spatial_detection.setConfidenceThreshold(CONFIDENCE_THRESHOLD) + spatial_detection.setBoundingBoxScaleFactor(BOUNDING_BOX_SCALE_FACTOR) + spatial_detection.setDepthLowerThreshold(DEPTH_LOWER_THRESHOLD_MM) + spatial_detection.setDepthUpperThreshold(DEPTH_UPPER_THRESHOLD_MM) + spatial_detection.input.setBlocking(False) + + return spatial_detection diff --git a/modules/target_tracking/stereo_node.py b/modules/target_tracking/stereo_node.py index 20b1660..f0dfa66 100644 --- a/modules/target_tracking/stereo_node.py +++ b/modules/target_tracking/stereo_node.py @@ -1,6 +1,6 @@ """ Module for initializing and configuring the StereoDepth node. -This setup aligns the depth map to the RGB camera for spatial logic. +Depth aligned to CAM_A (RGB) for spatial detection. """ import depthai as dai @@ -8,42 +8,24 @@ def create_stereo_depth(pipeline: dai.Pipeline) -> dai.node.StereoDepth: """ - Creates the StereoDepth node and links it to the Mono cameras. + Creates the StereoDepth node and links it to the mono cameras. Args: - pipeline (dai.Pipeline): The DepthAI pipeline object. + pipeline: The DepthAI pipeline object. Returns: - dai.node.StereoDepth: The configured stereo node. + Configured StereoDepth node with depth aligned to CAM_A. """ - # --- 1. Define Sources --- - mono_left = pipeline.create(dai.node.MonoCamera) - mono_right = pipeline.create(dai.node.MonoCamera) + mono_left = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_B) + mono_right = pipeline.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_C) - # Configure the hardware sockets (Left vs Right) - mono_left.setBoardSocket(dai.CameraBoardSocket.LEFT) - mono_right.setBoardSocket(dai.CameraBoardSocket.RIGHT) - - # Set Resolution (400p is standard) - # Breaking line to satisfy flake8 line length limit - mono_left.setResolution(dai.MonoCameraProperties.SensorResolution.THE_400_P) - mono_right.setResolution(dai.MonoCameraProperties.SensorResolution.THE_400_P) - - # --- 2. Define the Processor --- stereo = pipeline.create(dai.node.StereoDepth) - - # --- 3. Configuration --- - # CRITICAL: Align depth to RGB (bc mono cams are 20 pixels off) - stereo.setDepthAlign(dai.CameraBoardSocket.RGB) - - # Improve quality + stereo.setDepthAlign(dai.CameraBoardSocket.CAM_A) stereo.setSubpixel(True) - stereo.setLeftRightCheck(True) # Removes ghost pixels at edges - # Change to True if <50cm need tracking needed + stereo.setLeftRightCheck(True) stereo.setExtendedDisparity(False) - # --- 4. Linking --- - mono_left.out.link(stereo.left) - mono_right.out.link(stereo.right) + mono_left.requestOutput((640, 400)).link(stereo.left) + mono_right.requestOutput((640, 400)).link(stereo.right) return stereo diff --git a/requirements-pytorch.txt b/requirements-pytorch.txt index b805223..092d3e1 100644 --- a/requirements-pytorch.txt +++ b/requirements-pytorch.txt @@ -1,4 +1,6 @@ # Runtime dependencies for target tracking pipeline -depthai>=2.24.0 -pymavlink>=2.4.40 \ No newline at end of file +depthai>=3.5.0 +opencv-python>=4.9.0 +pymavlink>=2.4.40 +pyyaml>=6.0 diff --git a/requirements.txt b/requirements.txt index 2309fad..0aa13df 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ - black==24.2.0 flake8-annotations==3.0.1 pylint==3.0.3 +ultralytics +depthai \ No newline at end of file