feat(lab): stabilize autonomous TGS playback

This commit is contained in:
DCCONSTRUCTIONS
2026-08-27 20:34:20 +03:00
parent c8593207d3
commit 95a1ef5057
26 changed files with 3326 additions and 253 deletions
@@ -0,0 +1,107 @@
{
"schema_version": "missioncore.m49-physical-safety-shadow-profile/v1",
"profile_id": "m49-mission-core-rover-physical-safety-shadow/v0",
"status": "planning-only-unqualified",
"vehicle": {
"source": "operator-supplied-2026-08-27-unverified",
"body_length_m": 1.0,
"body_width_m": 0.8,
"body_height_m": 0.4,
"ground_clearance_m": 0.15,
"nominal_mass_kg": 100.0,
"mass_qualification": "estimate-not-weighed",
"provisional_centered_footprint_body_xy_m": [
[0.5, 0.4],
[0.5, -0.4],
[-0.5, -0.4],
[-0.5, 0.4]
],
"nominal_speed_mps": 0.2777777778,
"maximum_operating_speed_mps": 0.5555555556,
"drive": {
"motor_count": 2,
"rated_power_per_motor_w": 500.0,
"motor_per_side": true,
"steering_model": "unqualified-likely-differential"
}
},
"unresolved_physical_inputs": [
"measured-mass-and-center-of-gravity",
"wheel-diameter-and-width",
"wheelbase-track-and-overhangs",
"qualified-base-link-origin",
"controller-braking-and-loss-of-power-behavior",
"measured-stopping-envelope",
"maximum-step-slope-and-side-slope",
"lidar-camera-to-body-extrinsics",
"negative-obstacle-sensor-coverage"
],
"terrain_evidence": {
"accepted_baseline_profile": "m49-tgs-full-shadow-v1.json",
"accepted_baseline_cell_size_m": 0.45,
"baseline_mutation_allowed": false,
"challenger_cell_sizes_m": [0.15, 0.1],
"challenger_radius_m": 12.0,
"missing_support_policy": "stop-never-free",
"required_states": [
"SUPPORTED",
"RIGID_OR_UNKNOWN_OBSTACLE",
"NEGATIVE_OR_UNSUPPORTED",
"VEGETATION_UNKNOWN",
"VEGETATION_POTENTIALLY_TRAVERSABLE",
"VEGETATION_WITH_RIGID_GEOMETRY"
]
},
"operator_visual": {
"host_profile": "14-inch-2023-macbook-pro-18-gib",
"worker_role": "realtime-only",
"lab_artifact_generation": "local-sequential-offline-or-imported-sealed",
"lab_build_may_take_longer_than_source_duration": true,
"source_pace_hz": 10.0,
"render_policy": "on-demand-with-interaction-damping",
"transport": "sealed-local-binary-chunks-no-per-cell-json",
"worker_runtime_dependency": false,
"sealed_artifact_required": true,
"offline_worker_open_required": true,
"full_session_high_resolution_preload_allowed": false,
"playback_buffer": {
"chunk_frame_count": 32,
"startup_prebuffer_chunk_count": 2,
"startup_prebuffer_seconds": 6.4,
"resident_chunk_count_max": 3,
"resident_window_seconds_max": 9.6,
"forward_prefetch_chunk_count": 1,
"backward_seek_policy": "load-target-and-next-from-sealed-local-artifact"
},
"lod": {
"safety_computation_reduced_by_visual_lod": false,
"near_field_radius_m": 4.0,
"near_field_cell_size_m": 0.15,
"mid_field_radius_m": 8.0,
"mid_field_cell_size_m": 0.3,
"far_field_radius_m": 12.0,
"far_field_cell_size_m": 0.45,
"paused_active_frame_full_resolution_available": true
},
"acceptance_budget": {
"main_thread_frame_prepare_p95_ms_max": 10.0,
"webgl_render_submit_p95_ms_target": 16.7,
"webgl_render_submit_p95_ms_max": 33.3,
"evidence_to_visible_p95_ms_max": 100.0,
"incremental_resident_memory_mib_max": 256.0,
"post_warmup_memory_growth_mib_max": 32.0,
"long_task_over_50ms_count_max": 0,
"webgl_context_loss_count_max": 0,
"worker_unavailable_open_failure_count_max": 0,
"worker_request_count_during_lab_open_max": 0,
"worker_request_count_during_lab_build_max": 0
}
},
"authority": {
"commands_enabled": false,
"navigation_accepted": false,
"safety_accepted": false,
"actuation_accepted": false,
"physical_test_accepted": false
}
}