feat(perception): add occupied-only low-step shadow

This commit is contained in:
DCCONSTRUCTIONS
2026-08-26 12:39:54 +03:00
parent 5983883ffe
commit 343ddeac2d
8 changed files with 1124 additions and 7 deletions
@@ -20,6 +20,7 @@ param(
[double]$MinimumEffectiveWorldStateFps = 9.5,
[ValidateRange(1.0, 10000.0)]
[double]$MaximumWorldStateCompletionP95Ms = 125.0,
[switch]$AdditiveLowStep,
[string]$OutputRoot = (
"D:\NDC_MISSIONCORE\runtime\results\m48n-native-reference-graph-shadow"
)
@@ -109,6 +110,15 @@ $expectedConfigs = [ordered]@{
"8c3a5aa837da1f028f5998fb504a1381f9b2b68de6420a32160410b6dc0887c7"
)
}
if ($AdditiveLowStep) {
$expectedConfigs.Remove("m48n-rf-detr-native-reference-graph-shadow-v0.json")
$expectedConfigs["m48r3-native-low-step-reference-graph-shadow-v1.json"] = (
"d5434825c3a73a9a070aea37927755771e07d38a017111d2014a8e8c88969227"
)
$expectedConfigs["m48r3-additive-low-step-occupancy-v1.json"] = (
"62dd41400169080e1a38f713b283b67cdf201078c4c7fd807783fe6c1838082c"
)
}
foreach ($entry in $expectedConfigs.GetEnumerator()) {
$null = Assert-File (Join-Path $release $entry.Key) $entry.Value (
"M48N config {0}" -f $entry.Key
@@ -203,8 +213,16 @@ if (-not $canonicalTriton.State.Running -or $canonicalTriton.State.Health.Status
throw "Canonical Triton must remain healthy during M48N shadow"
}
$canonicalTritonId = [string]$canonicalTriton.Id
$tritonName = "ndc-mission-core-m48n-native-reference-graph-triton"
$graphName = "ndc-mission-core-m48n-native-reference-graph"
$tritonName = if ($AdditiveLowStep) {
"ndc-mission-core-m48r3-low-step-triton"
} else {
"ndc-mission-core-m48n-native-reference-graph-triton"
}
$graphName = if ($AdditiveLowStep) {
"ndc-mission-core-m48r3-low-step-reference-graph"
} else {
"ndc-mission-core-m48n-native-reference-graph"
}
foreach ($name in @($tritonName, $graphName)) {
if (& docker ps -a --format "{{.Names}}" --filter "name=^/$name$") {
throw "M48N candidate container $name already exists"
@@ -263,6 +281,19 @@ try {
throw "M48N Triton published a host port"
}
$graphConfigName = if ($AdditiveLowStep) {
"m48r3-native-low-step-reference-graph-shadow-v1.json"
} else {
"m48n-rf-detr-native-reference-graph-shadow-v0.json"
}
$additiveArguments = if ($AdditiveLowStep) {
@(
"--additive-low-step-profile",
"/release/m48r3-additive-low-step-occupancy-v1.json"
)
} else {
@()
}
$arguments = @(
"run", "--name", $graphName,
"--label", "com.nodedc.product=mission-core",
@@ -294,7 +325,7 @@ try {
"--entrypoint", "python3",
$image,
"/release/run_m48s_reference_graph_shadow_worker.py",
"--graph-config", "/release/m48n-rf-detr-native-reference-graph-shadow-v0.json",
"--graph-config", ("/release/{0}" -f $graphConfigName),
"--baseline-profile", "/release/m4-recorded-realtime-baseline-v1.json",
"--detector-profile", "/release/rf-detr-large-native-kb4-risk-shadow-v0.json",
"--geometry-profile", "/release/m4-geometry-association-v1.json",
@@ -331,7 +362,7 @@ try {
"--output", "/output/result.json",
"--progress", "/output/progress.jsonl",
"--frame-ledger", "/output/frames.jsonl"
)
) + $additiveArguments
& docker @arguments
Assert-LastExitCode "M48N native complete reference graph shadow"
foreach ($name in @("result.json", "frames.jsonl", "progress.jsonl")) {