feat(observatory): ship modular AI inference labs
This commit is contained in:
@@ -0,0 +1,161 @@
|
||||
{
|
||||
"schema_version": "missioncore.observatory-ai-module-registry/v1",
|
||||
"modules": [
|
||||
{
|
||||
"module_id": "camera-source",
|
||||
"label": "Подготовка камеры K1",
|
||||
"group": "preparation",
|
||||
"image_sha256": "da926459aee0a841bbdfaf80a0eb5fbead354c56794d1f3384eeba66d0a49e00",
|
||||
"implementation_sha256": "a0b1a74887e5f1cf78e867f81f246bae08e872fed320a2939986c17913418524",
|
||||
"model_sha256": null,
|
||||
"contract_sha256": "87c9e8864f9469719e69bfd750c418e077944a6260ffc6fd3ce12daf4a1da7d5",
|
||||
"requires": [
|
||||
"source.camera"
|
||||
],
|
||||
"provides": [
|
||||
"camera.frames"
|
||||
],
|
||||
"optional_inputs": [],
|
||||
"parameter_choices": {
|
||||
"cadence": [
|
||||
1
|
||||
]
|
||||
},
|
||||
"defaults": {
|
||||
"cadence": 1
|
||||
},
|
||||
"state_policy": "stateless"
|
||||
},
|
||||
{
|
||||
"module_id": "ddrnet",
|
||||
"label": "DDRNet-39 · GOOSE",
|
||||
"group": "segmentation",
|
||||
"image_sha256": "489fc7d1157fd0f1cd1d82e06a15737b7b2aaaf72b2ddb2aca2992b91a97488e",
|
||||
"implementation_sha256": "9a3fceb65374ccc3dccdbe02691c2b62376ff3a3a6d16439cb9f6266e73c78b0",
|
||||
"model_sha256": "b99c2838051bcd7b092fd3970aa62a77d5c0bbb809c9b9afb2ff4b0ebdaa4ee6",
|
||||
"contract_sha256": "197c9d7dd0f55f79992215a57e450c5442f3d1510d74083bcf123577f85da199",
|
||||
"requires": [
|
||||
"camera.frames"
|
||||
],
|
||||
"provides": [
|
||||
"segmentation.mask"
|
||||
],
|
||||
"optional_inputs": [],
|
||||
"parameter_choices": {
|
||||
"cadence": [
|
||||
1
|
||||
]
|
||||
},
|
||||
"defaults": {
|
||||
"cadence": 1
|
||||
},
|
||||
"state_policy": "stateless"
|
||||
},
|
||||
{
|
||||
"module_id": "eomt",
|
||||
"label": "EoMT Large · Cityscapes",
|
||||
"group": "segmentation",
|
||||
"image_sha256": "5b770178e4a5c8fbe8f8ddab3b83a598973dbe103b669851110b11a0918ab846",
|
||||
"implementation_sha256": "17ac471d5c51f70b3af6fb6046e1880c731691253c338b1626702ce4ca375d2b",
|
||||
"model_sha256": "c265da9a74f58f5c3f4826d23ca4ca78beac0b106cca5842beca61580de5b782",
|
||||
"contract_sha256": "09ca841400b08af0607d19d346f78ab768567256c8c58789a6ade4ede8f425a0",
|
||||
"requires": [
|
||||
"camera.frames"
|
||||
],
|
||||
"provides": [
|
||||
"segmentation.mask"
|
||||
],
|
||||
"optional_inputs": [],
|
||||
"parameter_choices": {
|
||||
"cadence": [
|
||||
1
|
||||
]
|
||||
},
|
||||
"defaults": {
|
||||
"cadence": 1
|
||||
},
|
||||
"state_policy": "stateless"
|
||||
},
|
||||
{
|
||||
"module_id": "tgs",
|
||||
"label": "TRAVEL TGS · облако и карта проходимости",
|
||||
"group": "geometry",
|
||||
"image_sha256": "f9278ab21aa65045be993dd19bffc25f49955e19598893ac78cc4761ca63ecf3",
|
||||
"implementation_sha256": "52813392aabd02efc5c2b8f7c22ed88e3ef4cc8ad3aafeba2792efe503e29fe9",
|
||||
"model_sha256": null,
|
||||
"contract_sha256": "9dd80c8e2504559d2156fca933de6eb27901e35305e6853aeb84707e1cb13892",
|
||||
"requires": [
|
||||
"source.calibration",
|
||||
"source.lidar",
|
||||
"source.pose"
|
||||
],
|
||||
"provides": [
|
||||
"geometry.costmap",
|
||||
"geometry.ground"
|
||||
],
|
||||
"optional_inputs": [],
|
||||
"parameter_choices": {
|
||||
"history-seconds": [
|
||||
1
|
||||
]
|
||||
},
|
||||
"defaults": {
|
||||
"history-seconds": 1
|
||||
},
|
||||
"state_policy": "causal-reset-at-source-start"
|
||||
},
|
||||
{
|
||||
"module_id": "rf-detr",
|
||||
"label": "RF-DETR Large · рамки объектов",
|
||||
"group": "detection",
|
||||
"image_sha256": "2b8b44be8e9ee4060aa6997fc4c025ad7120f37ecd720a9e59b5e02ac6c90f66",
|
||||
"implementation_sha256": "4eb580eb938164bf0624e94fdc3b046aacf32fb8022c93c67fa26bab7c3d19d0",
|
||||
"model_sha256": "b8a40b3580edff001ec9680de68707242294ff590ab296000fae371f1083f695",
|
||||
"contract_sha256": "815d0afd24355da3a462e0423dab8284165c89cebd136d7c8584a32602178b96",
|
||||
"requires": [
|
||||
"camera.frames"
|
||||
],
|
||||
"provides": [
|
||||
"detections.2d"
|
||||
],
|
||||
"optional_inputs": [],
|
||||
"parameter_choices": {
|
||||
"cadence": [
|
||||
1
|
||||
]
|
||||
},
|
||||
"defaults": {
|
||||
"cadence": 1
|
||||
},
|
||||
"state_policy": "stateless"
|
||||
},
|
||||
{
|
||||
"module_id": "object-distance",
|
||||
"label": "Дистанция до объектов · K1 LiDAR",
|
||||
"group": "range",
|
||||
"image_sha256": "69d68f64981b41e5bcce1e642433e3d466b88c51942a5ba3aec9180d8ed04263",
|
||||
"implementation_sha256": "0e3e426e2f768bc019a3715a50fc77a88626869abd9fa919e1aef5763d0c53da",
|
||||
"model_sha256": null,
|
||||
"contract_sha256": "5a6e446f009420352587f83388331b368d00950ab2fb896c6350aaa9b31c2e2e",
|
||||
"requires": [
|
||||
"detections.2d",
|
||||
"source.calibration",
|
||||
"source.lidar",
|
||||
"source.pose"
|
||||
],
|
||||
"provides": [
|
||||
"objects.ranged"
|
||||
],
|
||||
"optional_inputs": [],
|
||||
"parameter_choices": {
|
||||
"cadence": [
|
||||
1
|
||||
]
|
||||
},
|
||||
"defaults": {
|
||||
"cadence": 1
|
||||
},
|
||||
"state_policy": "stateless"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,336 @@
|
||||
{
|
||||
"schema_version": "missioncore.observatory-domain-ontology/v1",
|
||||
"ontology_id": "mission-core.observatory",
|
||||
"version": "1.3.0",
|
||||
"owner": "NODE.DC Mission Core",
|
||||
"lifecycle": "local-runtime-canonical",
|
||||
"entities": [
|
||||
{
|
||||
"id": "mission.transport-unit",
|
||||
"identity": "transport_id",
|
||||
"owner": "transport registry",
|
||||
"lifecycle": "registered-to-retired"
|
||||
},
|
||||
{
|
||||
"id": "mission.equipment-unit",
|
||||
"identity": "equipment_id",
|
||||
"owner": "equipment registry",
|
||||
"lifecycle": "registered-to-retired"
|
||||
},
|
||||
{
|
||||
"id": "observatory.equipment-mount",
|
||||
"identity": "mount_id",
|
||||
"owner": "equipment capture registry",
|
||||
"lifecycle": "time-bounded"
|
||||
},
|
||||
{
|
||||
"id": "observatory.capture-profile",
|
||||
"identity": "capture_profile_id",
|
||||
"owner": "equipment capture registry",
|
||||
"lifecycle": "versioned"
|
||||
},
|
||||
{
|
||||
"id": "observatory.recorded-session",
|
||||
"identity": "source_session_id",
|
||||
"owner": "session archive",
|
||||
"lifecycle": "recording-to-immutable"
|
||||
},
|
||||
{
|
||||
"id": "observatory.module-version",
|
||||
"identity": "module_sha256",
|
||||
"owner": "module registry",
|
||||
"lifecycle": "installed-or-retired"
|
||||
},
|
||||
{
|
||||
"id": "observatory.container-image",
|
||||
"identity": "image_sha256",
|
||||
"owner": "module registry",
|
||||
"lifecycle": "built-to-retired"
|
||||
},
|
||||
{
|
||||
"id": "observatory.worker-node",
|
||||
"identity": "worker_node_id",
|
||||
"owner": "worker registry",
|
||||
"lifecycle": "registered-to-retired"
|
||||
},
|
||||
{
|
||||
"id": "observatory.composition",
|
||||
"identity": "composition_sha256",
|
||||
"owner": "composition store",
|
||||
"lifecycle": "immutable"
|
||||
},
|
||||
{
|
||||
"id": "observatory.composition-run",
|
||||
"identity": "run_id",
|
||||
"owner": "composition run store",
|
||||
"lifecycle": "append-only"
|
||||
},
|
||||
{
|
||||
"id": "observatory.recorded-job",
|
||||
"identity": "job_id",
|
||||
"owner": "recorded job queue",
|
||||
"lifecycle": "queued-to-terminal"
|
||||
},
|
||||
{
|
||||
"id": "observatory.portable-result",
|
||||
"identity": "result_id",
|
||||
"owner": "portable result publisher",
|
||||
"lifecycle": "immutable"
|
||||
},
|
||||
{
|
||||
"id": "observatory.lab-projection",
|
||||
"identity": "result_id",
|
||||
"owner": "session catalog",
|
||||
"lifecycle": "published"
|
||||
},
|
||||
{
|
||||
"id": "observatory.lab-view-profile",
|
||||
"identity": "result_id",
|
||||
"owner": "replay presentation",
|
||||
"lifecycle": "mutable-per-result"
|
||||
},
|
||||
{
|
||||
"id": "observatory.viewer-pane",
|
||||
"identity": "pane_id",
|
||||
"owner": "replay presentation",
|
||||
"lifecycle": "versioned-contract"
|
||||
},
|
||||
{
|
||||
"id": "observatory.viewer-layer",
|
||||
"identity": "layer_id",
|
||||
"owner": "replay presentation",
|
||||
"lifecycle": "versioned-contract"
|
||||
}
|
||||
],
|
||||
"relations": [
|
||||
{
|
||||
"id": "observatory.equipment-mount.mounts_equipment",
|
||||
"from": "observatory.equipment-mount",
|
||||
"to": "mission.equipment-unit",
|
||||
"cardinality": "many-to-one"
|
||||
},
|
||||
{
|
||||
"id": "observatory.equipment-mount.attaches_to_transport",
|
||||
"from": "observatory.equipment-mount",
|
||||
"to": "mission.transport-unit",
|
||||
"cardinality": "many-to-one"
|
||||
},
|
||||
{
|
||||
"id": "observatory.recorded-session.captured_on_transport",
|
||||
"from": "observatory.recorded-session",
|
||||
"to": "mission.transport-unit",
|
||||
"cardinality": "many-to-zero-or-one"
|
||||
},
|
||||
{
|
||||
"id": "observatory.recorded-session.captured_with_equipment",
|
||||
"from": "observatory.recorded-session",
|
||||
"to": "mission.equipment-unit",
|
||||
"cardinality": "many-to-many"
|
||||
},
|
||||
{
|
||||
"id": "observatory.recorded-session.uses_equipment_mount",
|
||||
"from": "observatory.recorded-session",
|
||||
"to": "observatory.equipment-mount",
|
||||
"cardinality": "many-to-many"
|
||||
},
|
||||
{
|
||||
"id": "observatory.recorded-session.uses_capture_profile",
|
||||
"from": "observatory.recorded-session",
|
||||
"to": "observatory.capture-profile",
|
||||
"cardinality": "many-to-one"
|
||||
},
|
||||
{
|
||||
"id": "observatory.composition-run.uses_recorded_session",
|
||||
"from": "observatory.composition-run",
|
||||
"to": "observatory.recorded-session",
|
||||
"cardinality": "many-to-one"
|
||||
},
|
||||
{
|
||||
"id": "observatory.composition.contains_module",
|
||||
"from": "observatory.composition",
|
||||
"to": "observatory.module-version",
|
||||
"cardinality": "one-to-many"
|
||||
},
|
||||
{
|
||||
"id": "observatory.module-version.implemented_by_image",
|
||||
"from": "observatory.module-version",
|
||||
"to": "observatory.container-image",
|
||||
"cardinality": "many-to-one"
|
||||
},
|
||||
{
|
||||
"id": "observatory.container-image.installed_on_worker",
|
||||
"from": "observatory.container-image",
|
||||
"to": "observatory.worker-node",
|
||||
"cardinality": "many-to-many"
|
||||
},
|
||||
{
|
||||
"id": "observatory.composition-run.applies_composition",
|
||||
"from": "observatory.composition-run",
|
||||
"to": "observatory.composition",
|
||||
"cardinality": "many-to-one"
|
||||
},
|
||||
{
|
||||
"id": "observatory.composition-run.uses_job",
|
||||
"from": "observatory.composition-run",
|
||||
"to": "observatory.recorded-job",
|
||||
"cardinality": "one-to-many"
|
||||
},
|
||||
{
|
||||
"id": "observatory.recorded-job.executes_on_worker",
|
||||
"from": "observatory.recorded-job",
|
||||
"to": "observatory.worker-node",
|
||||
"cardinality": "many-to-one"
|
||||
},
|
||||
{
|
||||
"id": "observatory.recorded-job.publishes_result",
|
||||
"from": "observatory.recorded-job",
|
||||
"to": "observatory.portable-result",
|
||||
"cardinality": "one-to-zero-or-one"
|
||||
},
|
||||
{
|
||||
"id": "observatory.composition-run.projects_lab",
|
||||
"from": "observatory.composition-run",
|
||||
"to": "observatory.lab-projection",
|
||||
"cardinality": "one-to-zero-or-one"
|
||||
},
|
||||
{
|
||||
"id": "observatory.lab-projection.has_view_profile",
|
||||
"from": "observatory.lab-projection",
|
||||
"to": "observatory.lab-view-profile",
|
||||
"cardinality": "one-to-zero-or-one"
|
||||
},
|
||||
{
|
||||
"id": "observatory.module-version.exposes_layer",
|
||||
"from": "observatory.module-version",
|
||||
"to": "observatory.viewer-layer",
|
||||
"cardinality": "many-to-many"
|
||||
},
|
||||
{
|
||||
"id": "observatory.viewer-layer.belongs_to_pane",
|
||||
"from": "observatory.viewer-layer",
|
||||
"to": "observatory.viewer-pane",
|
||||
"cardinality": "many-to-one"
|
||||
}
|
||||
],
|
||||
"panes": [
|
||||
{
|
||||
"pane_id": "camera",
|
||||
"label": "Камера",
|
||||
"order": 10
|
||||
},
|
||||
{
|
||||
"pane_id": "spatial",
|
||||
"label": "Облако точек",
|
||||
"order": 20
|
||||
}
|
||||
],
|
||||
"layers": [
|
||||
{
|
||||
"layer_id": "camera.source",
|
||||
"pane_id": "camera",
|
||||
"label": "КАМЕРА",
|
||||
"control": "toggle",
|
||||
"order": 10
|
||||
},
|
||||
{
|
||||
"layer_id": "camera.ddrnet",
|
||||
"pane_id": "camera",
|
||||
"label": "DDRNET",
|
||||
"control": "toggle",
|
||||
"order": 20
|
||||
},
|
||||
{
|
||||
"layer_id": "camera.eomt",
|
||||
"pane_id": "camera",
|
||||
"label": "EOMT",
|
||||
"control": "toggle",
|
||||
"order": 30
|
||||
},
|
||||
{
|
||||
"layer_id": "camera.detections",
|
||||
"pane_id": "camera",
|
||||
"label": "РАМКИ",
|
||||
"control": "toggle",
|
||||
"order": 40
|
||||
},
|
||||
{
|
||||
"layer_id": "spatial.source-points",
|
||||
"pane_id": "spatial",
|
||||
"label": "ИСХ. ТОЧКИ",
|
||||
"control": "toggle",
|
||||
"order": 10
|
||||
},
|
||||
{
|
||||
"layer_id": "spatial.local-slam",
|
||||
"pane_id": "spatial",
|
||||
"label": "ЛОК. SLAM",
|
||||
"control": "toggle-with-settings",
|
||||
"order": 20
|
||||
},
|
||||
{
|
||||
"layer_id": "spatial.tgs",
|
||||
"pane_id": "spatial",
|
||||
"label": "TGS",
|
||||
"control": "toggle",
|
||||
"order": 30
|
||||
}
|
||||
],
|
||||
"module_projections": [
|
||||
{
|
||||
"module_id": "ddrnet",
|
||||
"configuration_label": "DDRNet-39 · GOOSE",
|
||||
"layers": [
|
||||
"camera.source",
|
||||
"camera.ddrnet"
|
||||
]
|
||||
},
|
||||
{
|
||||
"module_id": "eomt",
|
||||
"configuration_label": "EoMT Large · Cityscapes",
|
||||
"layers": [
|
||||
"camera.source",
|
||||
"camera.eomt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"module_id": "rf-detr",
|
||||
"configuration_label": "RF-DETR Large",
|
||||
"layers": [
|
||||
"camera.source",
|
||||
"camera.detections"
|
||||
]
|
||||
},
|
||||
{
|
||||
"module_id": "tgs",
|
||||
"configuration_label": "TRAVEL TGS",
|
||||
"layers": [
|
||||
"spatial.source-points",
|
||||
"spatial.local-slam",
|
||||
"spatial.tgs"
|
||||
]
|
||||
},
|
||||
{
|
||||
"module_id": "object-distance",
|
||||
"configuration_label": "Дистанция до объектов · K1 LiDAR",
|
||||
"layers": [
|
||||
"camera.source",
|
||||
"camera.detections",
|
||||
"spatial.source-points",
|
||||
"spatial.local-slam"
|
||||
]
|
||||
}
|
||||
],
|
||||
"named_queries": [
|
||||
"recording.capture-context",
|
||||
"composition.configuration-label",
|
||||
"composition.member-results",
|
||||
"composition.viewer-layers",
|
||||
"composition.ready-state",
|
||||
"lab.view-profile"
|
||||
],
|
||||
"platform_sync": {
|
||||
"mode": "none",
|
||||
"promotion_gate": "stable cross-product meaning with an agreed Platform Ontology migration",
|
||||
"platform_repository_is_runtime_dependency": false
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user