Skip to content

Spec

Concept Meaning Repository path
message typed payload schema spec/messages
API contract one endpoint-level API contract for one semantic namespace spec/apis
capability one app-facing robot capability contract backed by a capability API spec/capabilities
component compatibility bundle for component-role subsystems, composed from APIs plus explicit spatial conformance spec/components
robot manifest reusable platform declaration: parts, slots, and robot-level capabilities tutorials/robot/r2kernel.robot.yaml
application app-role subsystem requirements for robot capabilities tutorials/subsystems/app.cleaner.teleop/subsystem.yaml
  • message is the data layer
  • the primitive spec families are message, API contract, and capability
  • API contract means one namespace-aligned endpoint contract
  • one API contract may declare multiple Event, Control, Procedure, and Operation surfaces
  • component means a recognizable component-role subsystem contract composed from one or more API contracts
  • gateway subsystems provide api.* contracts directly because they own device boundaries for physical hardware or simulator-backed devices
  • compound subsystems provide capability.* contracts to applications
  • robot manifest composes gateway, component, and compound slots into one reusable platform target
  • subsystem spatial ports and compound mounts form the runtime frame graph; the robot manifest does not duplicate that topology
  • application maps a top-level app subsystem onto a robot whose capabilities satisfy the app requirements
  • message and API contract should follow the same semantic namespace axis
  • defaults.yaml stores the default namespace-version map

Terminology note. subsystem is the R2Kernel runtime unit. component.* is not a synonym for subsystem; it is the public compatibility namespace for component-role subsystems only. Message and API namespaces use direct semantic domains such as msg.motion.*, api.locomotion.*, and api.sensor.*. Capabilities use capability.* for the app-facing robot layer.

Transport timing is runtime metadata. Event delivery exposes observation, publication, and reception times. Control delivery exposes command generation, sending, scheduling, validity, dispatch, sampling, completion, response, and lateness. These fields are not duplicated across ordinary payload messages.