Skip to content

Domain Coverage

This page defines the canonical R2Kernel domain structure.

Namespace Structure

Layer Namespace family Meaning
message msg.core.* shared robotics and runtime-neutral concepts
message msg.motion.* articulated and manipulator motion payloads
message msg.locomotion.* locomotion payloads
message msg.actuator.* lower-level actuator payloads
message msg.sensor.* sensor payloads
message msg.localization.* localization payloads
message msg.mapping.* mapping payloads
message msg.navigation.* navigation payloads
message msg.perception.* perception payloads
message msg.capability.* app-facing capability payloads
API contract api.motion.* motion endpoint contracts
API contract api.locomotion.* locomotion endpoint contracts
API contract api.actuator.* actuator endpoint contracts
API contract api.sensor.* sensor endpoint contracts
API contract api.io.* digital and analog I/O endpoint contracts
API contract api.localization.* localization endpoint contracts
API contract api.mapping.* mapping endpoint contracts
API contract api.navigation.* navigation endpoint contracts
API contract api.perception.* perception endpoint contracts
API contract api.capability.* backing endpoint contracts for app-facing capabilities
capability capability.* legacy app-facing robot contracts
component component.* component-role subsystem compatibility bundles

Manipulator

Manipulator support is organized as articulated motion plus manipulator-specific task-space and tooling semantics.

API Contracts

API Contract Meaning Typical endpoints
api.motion.articulated.state.* observed joint-space state joint_state
api.motion.articulated.velocity.* periodic joint-space control joint_velocity
api.motion.articulated.trajectory.* programmed joint-space motion move_j, stop, pause, resume
api.motion.manipulator.state.* observed tool and task-space state tool_pose, motion_state, tool_settings
api.motion.manipulator.velocity.* periodic TCP-space control tcp_velocity
api.motion.manipulator.cartesian.* programmed Cartesian motion move_l, move_c
api.motion.manipulator.tooling.* tool and payload control set_tcp, set_payload
api.motion.execution.* shared execution state and speed scaling execution_state, set_speed_scaling, get_speed_scaling
api.motion.manipulator.cartesian.offset.* periodic Cartesian offset cartesian_offset
api.motion.manipulator.wrench.* Cartesian wrench command and observation wrench_command, wrench_state
api.motion.manipulator.kinematics.* forward and inverse kinematics queries forward_kinematics, inverse_kinematics
api.motion.manipulator.hand_guiding.* hand-guiding authority and state enable_hand_guiding, disable_hand_guiding, hand_guiding_state
api.motion.manipulator.tooling.calibration.* asynchronous tool calibration calibrate_tool

Components

Component Conformance API contracts
component.manipulator.v1 articulated state, articulated velocity, articulated trajectory, manipulator state, manipulator cartesian, manipulator tooling

Mobile Base

For mobile robots, R2Kernel separates locomotion, localization, mapping, and navigation into distinct namespaces and component bundles.

API Contracts

API Contract Meaning Typical endpoints
api.locomotion.velocity.* generic timed body-velocity control velocity_command, set_velocity_limits, get_velocity_limits, stop
api.locomotion.velocity_reference.* Control-free body-velocity reference for applications; the component owns timed actuator dispatch set_velocity_reference, stop
api.locomotion.mobile_base.state.* wheeled-platform state and drive authority mobile_base_state, fault_state, enable_drive, disable_drive, clear_fault
api.locomotion.odometry.* mobile-base odometry publication odometry
api.locomotion.diff_drive.* optional differential-drive wheel surface wheel_command, wheel_state, get_diff_drive_kinematics
api.localization.* self-localization pose_estimate, localization status
api.mapping.* map production and publication occupancy_map, map_state
api.navigation.* autonomous path/goal execution navigate_to_pose, follow_path, navigation_state

Components

Component Conformance API contracts
component.mobile_base.v1 locomotion velocity, mobile-base state
component.mobile_base.localized.v1 locomotion velocity, mobile-base state, localization
component.mobile_base.autonomous.v1 locomotion velocity, mobile-base state, localization, navigation
component.localizer.v1 localization
component.navigation.v1 navigation

Gateway Domains

Gateway subsystems expose hardware aggregation roles behind R2Kernel API contracts.

API Contracts

Gateway contract Meaning
api.actuator.servo.v1 actuator servo
api.io.digital.input.v1 digital input
api.io.digital.output.v1 digital output set/get Procedures
api.io.digital.timed_output.v1 periodic digital output Control with bounded validity
api.io.analog.input.v1 analog input
api.io.analog.output.v1 analog output
api.sensor.camera.v1 camera sensor
api.r2kernel.sensor.radar.source.v1 Control-only integrated rotating-radar sectors for a perception Component
api.perception.stream.v1 perception observations and stream state
api.diagnostics.health.v1 health observations and diagnostic queries

Digital Output Contract Compatibility

api.io.digital.output.v1 retains the set_digital_output and get_digital_output Procedures. Providers implementing that contract do not need to add a Control endpoint.

Periodic output commands use the separate api.io.digital.timed_output.v1 contract. Its digital_output_command Control accepts msg.core.common.primitive.v1/IndexedBoolValue and returns msg.core.common.primitive.v1/BoolValue. Timing support and periodic refresh are required. Validity uses the runtime envelope, scheduling is gateway dispatch, and expired commands are rejected. The contract uses the existing r2kernel_sync clock domain and Control envelope timestamps.

A gateway that supports both surfaces declares separate provided interfaces for the two contracts. Consumers select the contract matching their output semantics; the timed contract does not redefine the existing Procedure API.

Legacy Capability Domains

These contracts are retained for existing manifests. New applications require api.* contracts, which compounds can export from their required component bundles. See Capabilities (Legacy Compatibility).

Capability Backing API
capability.r2kernel.mobility.body_motion.v1 api.capability.mobility.body_motion.v1
capability.r2kernel.manipulation.reach.v1 api.capability.manipulation.reach.v1
capability.r2kernel.manipulation.gripper.control.v1 api.capability.manipulation.gripper.control.v1
capability.r2kernel.perception.object_detection.v1 api.capability.perception.object_detection.v1
capability.r2kernel.navigation.goal.v1 api.capability.navigation.goal.v1

The current cleaner tutorial uses the standard api.r2kernel.actuation.trigger.v1 API under its platform-local trash_disposal export. It does not declare a separate tutorial capability contract.

For the canonical definitions, see.