Section 20Platform and Delivery
Integration Gateway requirements
Defines isolated, versioned boundaries for ROS 2, FMI, hardware-in-the-loop, and external engineering tools.
Section relationships
| ID | Name | Priority | Requirement | Verification |
|---|---|---|---|---|
| INT-001 | Optional integration boundary | MVP | Disabling every Integration Gateway adapter SHALL leave the complete portable MVP workflow functional. | Demonstration |
| INT-002 | No foreign types in core | MVP | External library types, allocators, exceptions, and ownership rules SHALL not appear in public Model Registry or Simulation Kernel interfaces. | Inspection |
| INT-003 | Protocol version handshake | Beta | Every process adapter SHALL negotiate protocol version, capabilities, limits, and compatibility before a run. | Test |
| INT-004 | Process health | Beta | The gateway SHALL detect adapter exit, timeout, malformed output, version mismatch, and declared resource exhaustion. | Test |
| INT-005 | Adapter failure isolation | Beta | A failed external adapter SHALL not corrupt the portable host process or completed run artifacts. | Test |
| INT-006 | Bulk-data path | Beta | Local image, point-cloud, and tensor transfer SHOULD support bounded-copy shared memory or an equivalent bulk-data mechanism. | Analysis |
| INT-007 | Backpressure | Beta | Streaming adapters SHALL declare and enforce queue, drop, block, or fault policy under backpressure. | Test |
| INT-008 | External time contract | Beta | Every time-participating adapter SHALL declare time ownership, step policy, accepted rates, latency, direct feedthrough, event, checkpoint, and rollback capabilities. | Inspection |
| INT-009 | ROS 2 clock | External | A ROS 2 adapter SHALL publish committed simulation time and SHALL not make ROS wall time authoritative over deterministic simulation time. | Test |
| INT-010 | ROS 2 messages | External | A ROS 2 adapter SHALL map supported state, command, transform, sensor, and diagnostic ports to documented standard or namespaced messages. | Test |
| INT-011 | ROS 2 QoS | External | Every ROS 2 endpoint SHALL provide a documented default QoS profile and permit supported overrides. | Test |
| INT-012 | ROS 2 simulation management | External | A ROS 2 adapter SHOULD implement applicable standard simulation feature discovery, state, reset, step, spawn, delete, and query interfaces. | Test |
| INT-013 | ros2_control bridge | External | BeforeMetal MAY expose supported device ports as a simulated ros2_control hardware system. | Demonstration |
| INT-014 | ROS 2 process isolation | External | The default ROS 2 integration SHALL be replaceable or removable without modifying the Simulation Kernel. | Inspection |
| INT-015 | FMI Co-Simulation | External | An FMI adapter SHALL support a documented FMI 3 Co-Simulation subset and SHALL expose unsupported features before execution. | Test |
| INT-016 | FMI state capability | External | An imported FMU SHALL declare whether get/set state, early return, events, intermediate update, and directional derivatives are supported. | Test |
| INT-017 | FMI Scheduled Execution | Future | BeforeMetal MAY support FMI Scheduled Execution for externally scheduled control and firmware partitions. | Test |
| INT-018 | FMI Model Exchange | Future | BeforeMetal MAY support FMI Model Exchange only after qualifying a compatible ODE/DAE integration layer. | Analysis |
| INT-019 | HIL wall-clock profile | External | HIL SHALL run in a separately selected wall-clock-paced execution profile with deadline and clock-offset metrics. | Test |
| INT-020 | HIL actuator interception | External | Physical-output integrations SHALL default to intercepting or disabling actuator energy commands until explicitly armed. | Test |
| INT-021 | HIL safety interlock | External | A physical-output integration SHALL require configured limits, watchdog, disarm behavior, and emergency-stop path. | Demonstration |
| INT-022 | Firmware emulator adapter | External | BeforeMetal SHALL permit virtual MCU or computer emulators to exchange timestamped bus, peripheral, sensor, and command data. | Demonstration |
| INT-023 | External mechanics adapter | External | An external mechanics adapter SHALL map compiled entities and state without becoming the canonical project store. | Test |
| INT-024 | External result provenance | External | Every external adapter SHALL contribute binary or service identity, configuration, platform, and license metadata to the run manifest. | Inspection |
| INT-025 | Explicit adapter activation | Beta | Every external adapter SHALL remain inactive until explicitly selected by a trusted workspace or run configuration. | Test |
| INT-026 | Supervised FMU host | External | A binary FMU SHALL execute only in a supervised sidecar process and SHALL never load into the core simulator process. | Test |
| INT-027 | Safe FMU extraction | External | The FMI adapter SHALL extract an FMU archive into a private isolated location while enforcing path, link, entry-count, and expanded-size limits. | Test |
| INT-028 | FMU identity and platform | External | Before execution, the FMI adapter SHALL hash the FMU, validate its model description, and select only a binary matching a supported host platform. | Test |
| INT-029 | FMU execution permissions | External | First execution of an untrusted FMU SHALL require approval, use network-off default, and receive explicit filesystem and resource grants. | Test |
| INT-030 | Protocol input bounds | Beta | Every process adapter SHALL negotiate and enforce message, collection, nesting, queue, and shared-memory capacity limits before accepting run data. | Test |
| INT-031 | Shared-memory session binding | Beta | A shared-memory region SHALL be bound to one negotiated adapter session, identity, size, access mode, and lifetime before either peer accesses its payload. | Test |
| INT-032 | ROS 2 graph and QoS inspection | External | A ROS 2 adapter SHALL expose participating nodes, topics, services, actions, publishers, subscribers, types, namespaces, and effective QoS and SHALL diagnose incompatible endpoints before or during a run. | Test |
| INT-033 | ROS 2 launch and lifecycle supervision | External | A ROS 2 integration SHALL be able to supervise declared launch, lifecycle, restart, shutdown, and failure behavior in isolated processes while recording package, executable, content, arguments, environment, process, and lifecycle identities. | Test |
| INT-034 | ROS 2 configuration journal | External | ROS 2 parameters, remappings, namespaces, QoS overrides, and permitted runtime changes that can affect a run SHALL be captured in its manifest or causal journal with source and virtual-time context. | Test |
| INT-035 | ROS bag import | External | A ROS 2 adapter SHALL import a documented rosbag2 or MCAP subset for replay, controller regression, or evidence comparison while preserving type, schema, QoS, source timestamps, receive ordering, provenance, and bounded-input diagnostics. | Test |
| INT-036 | ROS 2 frame diagnostics | External | A ROS 2 adapter SHALL map supported transform data to canonical frame identities and diagnose missing parents, conflicting authorities, cycles, stale transforms, and extrapolation outside available history. | Test |
| INT-037 | ROS 2 trace correlation | External | Supported ROS 2 messages, callbacks, controller activations, and simulation events SHALL carry or permit reconstruction of correlation identities and capture, delivery, decision, and application timing in the run trace. | Test |
| INT-038 | ROS 2 rover conformance fixture | External | The ROS 2 integration SHALL pass a versioned reference rover fixture covering clock, transforms, odometry, commands, range data, diagnostics, simulation management, and supported ros2_control behavior. | Demonstration |
| INT-039 | ROS 2 manipulator conformance fixture | External | The ROS 2 integration SHALL pass a versioned reference manipulator fixture covering joint state, transforms, planning-scene synchronization, trajectory commands, diagnostics, and supported MoveIt-compatible behavior. | Demonstration |
Change rationale (INT-032–INT-039): Message transport alone is not a usable robotics integration. Graph inspection, launch supervision, configuration capture, recorded-data import, frame and trace diagnostics, and named rover and manipulator fixtures make optional ROS 2 support testable. These rows remain External because ROS 2 cannot become a mandatory dependency of the portable General Robotics Beta.
Generated from the canonical specification. Edit section metadata or prose in docs/requirements.md; the website rebuilds this page and its relationships automatically.