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
IDNamePriorityRequirementVerification
INT-001Optional integration boundaryMVPDisabling every Integration Gateway adapter SHALL leave the complete portable MVP workflow functional.Demonstration
INT-002No foreign types in coreMVPExternal library types, allocators, exceptions, and ownership rules SHALL not appear in public Model Registry or Simulation Kernel interfaces.Inspection
INT-003Protocol version handshakeBetaEvery process adapter SHALL negotiate protocol version, capabilities, limits, and compatibility before a run.Test
INT-004Process healthBetaThe gateway SHALL detect adapter exit, timeout, malformed output, version mismatch, and declared resource exhaustion.Test
INT-005Adapter failure isolationBetaA failed external adapter SHALL not corrupt the portable host process or completed run artifacts.Test
INT-006Bulk-data pathBetaLocal image, point-cloud, and tensor transfer SHOULD support bounded-copy shared memory or an equivalent bulk-data mechanism.Analysis
INT-007BackpressureBetaStreaming adapters SHALL declare and enforce queue, drop, block, or fault policy under backpressure.Test
INT-008External time contractBetaEvery time-participating adapter SHALL declare time ownership, step policy, accepted rates, latency, direct feedthrough, event, checkpoint, and rollback capabilities.Inspection
INT-009ROS 2 clockExternalA ROS 2 adapter SHALL publish committed simulation time and SHALL not make ROS wall time authoritative over deterministic simulation time.Test
INT-010ROS 2 messagesExternalA ROS 2 adapter SHALL map supported state, command, transform, sensor, and diagnostic ports to documented standard or namespaced messages.Test
INT-011ROS 2 QoSExternalEvery ROS 2 endpoint SHALL provide a documented default QoS profile and permit supported overrides.Test
INT-012ROS 2 simulation managementExternalA ROS 2 adapter SHOULD implement applicable standard simulation feature discovery, state, reset, step, spawn, delete, and query interfaces.Test
INT-013ros2_control bridgeExternalBeforeMetal MAY expose supported device ports as a simulated ros2_control hardware system.Demonstration
INT-014ROS 2 process isolationExternalThe default ROS 2 integration SHALL be replaceable or removable without modifying the Simulation Kernel.Inspection
INT-015FMI Co-SimulationExternalAn FMI adapter SHALL support a documented FMI 3 Co-Simulation subset and SHALL expose unsupported features before execution.Test
INT-016FMI state capabilityExternalAn imported FMU SHALL declare whether get/set state, early return, events, intermediate update, and directional derivatives are supported.Test
INT-017FMI Scheduled ExecutionFutureBeforeMetal MAY support FMI Scheduled Execution for externally scheduled control and firmware partitions.Test
INT-018FMI Model ExchangeFutureBeforeMetal MAY support FMI Model Exchange only after qualifying a compatible ODE/DAE integration layer.Analysis
INT-019HIL wall-clock profileExternalHIL SHALL run in a separately selected wall-clock-paced execution profile with deadline and clock-offset metrics.Test
INT-020HIL actuator interceptionExternalPhysical-output integrations SHALL default to intercepting or disabling actuator energy commands until explicitly armed.Test
INT-021HIL safety interlockExternalA physical-output integration SHALL require configured limits, watchdog, disarm behavior, and emergency-stop path.Demonstration
INT-022Firmware emulator adapterExternalBeforeMetal SHALL permit virtual MCU or computer emulators to exchange timestamped bus, peripheral, sensor, and command data.Demonstration
INT-023External mechanics adapterExternalAn external mechanics adapter SHALL map compiled entities and state without becoming the canonical project store.Test
INT-024External result provenanceExternalEvery external adapter SHALL contribute binary or service identity, configuration, platform, and license metadata to the run manifest.Inspection
INT-025Explicit adapter activationBetaEvery external adapter SHALL remain inactive until explicitly selected by a trusted workspace or run configuration.Test
INT-026Supervised FMU hostExternalA binary FMU SHALL execute only in a supervised sidecar process and SHALL never load into the core simulator process.Test
INT-027Safe FMU extractionExternalThe FMI adapter SHALL extract an FMU archive into a private isolated location while enforcing path, link, entry-count, and expanded-size limits.Test
INT-028FMU identity and platformExternalBefore execution, the FMI adapter SHALL hash the FMU, validate its model description, and select only a binary matching a supported host platform.Test
INT-029FMU execution permissionsExternalFirst execution of an untrusted FMU SHALL require approval, use network-off default, and receive explicit filesystem and resource grants.Test
INT-030Protocol input boundsBetaEvery process adapter SHALL negotiate and enforce message, collection, nesting, queue, and shared-memory capacity limits before accepting run data.Test
INT-031Shared-memory session bindingBetaA 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-032ROS 2 graph and QoS inspectionExternalA 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-033ROS 2 launch and lifecycle supervisionExternalA 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-034ROS 2 configuration journalExternalROS 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-035ROS bag importExternalA 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-036ROS 2 frame diagnosticsExternalA 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-037ROS 2 trace correlationExternalSupported 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-038ROS 2 rover conformance fixtureExternalThe 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-039ROS 2 manipulator conformance fixtureExternalThe 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-032INT-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.