API Contract Reference
This page is generated from spec/apis. An API contract owns endpoint shape and semantics. Message families own payload layout, while the runtime envelope owns transport timing and execution metadata.
| API contract |
Events |
Controls |
Procedures |
Operations |
api.actuator.drive.v1 |
0 |
1 |
0 |
0 |
api.actuator.servo.v1 |
0 |
2 |
0 |
0 |
api.capability.manipulation.gripper.control.v1 |
1 |
0 |
2 |
0 |
api.capability.manipulation.reach.v1 |
1 |
0 |
3 |
0 |
api.capability.mobility.body_motion.v1 |
1 |
1 |
1 |
0 |
api.capability.navigation.goal.v1 |
1 |
0 |
1 |
2 |
api.capability.perception.object_detection.v1 |
0 |
0 |
1 |
0 |
api.diagnostics.health.v1 |
1 |
0 |
2 |
0 |
api.end_effector.gripper.v1 |
0 |
0 |
3 |
0 |
api.io.analog.input.v1 |
0 |
0 |
1 |
0 |
api.io.analog.output.v1 |
0 |
0 |
2 |
0 |
api.io.digital.input.v1 |
0 |
0 |
1 |
0 |
api.io.digital.output.v1 |
0 |
0 |
2 |
0 |
api.io.digital.timed_output.v1 |
0 |
1 |
0 |
0 |
api.localization.v1 |
2 |
0 |
0 |
0 |
api.locomotion.diff_drive.v1 |
2 |
0 |
2 |
0 |
api.locomotion.legged.state.v1 |
4 |
0 |
0 |
0 |
api.locomotion.mobile_base.state.v1 |
2 |
0 |
4 |
0 |
api.locomotion.odometry.v1 |
1 |
0 |
0 |
0 |
api.locomotion.velocity.v1 |
0 |
1 |
3 |
0 |
api.locomotion.velocity_reference.v1 |
0 |
0 |
2 |
0 |
api.mapping.v1 |
2 |
0 |
0 |
0 |
api.motion.articulated.state.v1 |
1 |
0 |
0 |
0 |
api.motion.articulated.trajectory.offset.v1 |
0 |
1 |
0 |
0 |
api.motion.articulated.trajectory.v1 |
0 |
0 |
3 |
1 |
api.motion.articulated.velocity.v1 |
0 |
1 |
0 |
0 |
api.motion.execution.v1 |
1 |
0 |
2 |
0 |
api.motion.manipulator.cartesian.offset.v1 |
0 |
1 |
0 |
0 |
api.motion.manipulator.cartesian.v1 |
0 |
0 |
0 |
2 |
api.motion.manipulator.hand_guiding.v1 |
1 |
0 |
2 |
0 |
api.motion.manipulator.kinematics.v1 |
0 |
0 |
2 |
0 |
api.motion.manipulator.state.v1 |
3 |
0 |
0 |
0 |
api.motion.manipulator.tooling.calibration.v1 |
0 |
0 |
0 |
1 |
api.motion.manipulator.tooling.v1 |
0 |
0 |
2 |
0 |
api.motion.manipulator.velocity.v1 |
0 |
1 |
0 |
0 |
api.motion.manipulator.wrench.v1 |
1 |
1 |
0 |
0 |
api.navigation.v1 |
1 |
0 |
1 |
2 |
api.perception.query.v1 |
0 |
0 |
3 |
0 |
api.perception.stream.v1 |
3 |
0 |
0 |
0 |
api.positioning.absolute_pose.v1 |
1 |
0 |
0 |
0 |
api.r2kernel.actuation.trigger.v1 |
0 |
0 |
1 |
0 |
api.r2kernel.actuator.servo.v1 |
0 |
1 |
0 |
0 |
api.r2kernel.io.digital.timed_output.v1 |
0 |
1 |
0 |
0 |
api.r2kernel.media.display.v1 |
0 |
1 |
0 |
0 |
api.r2kernel.sensor.camera.source.v1 |
0 |
1 |
0 |
0 |
api.r2kernel.sensor.depth.source.v1 |
0 |
1 |
0 |
0 |
api.r2kernel.sensor.gnss.source.v1 |
0 |
1 |
0 |
0 |
api.r2kernel.sensor.lidar.source.v1 |
0 |
1 |
0 |
0 |
api.r2kernel.sensor.pointcloud.source.v1 |
0 |
1 |
0 |
0 |
api.r2kernel.sensor.radar.source.v1 |
0 |
1 |
0 |
0 |
api.r2kernel.sensor.rgbd.source.v1 |
0 |
1 |
0 |
0 |
api.sensor.camera.v1 |
3 |
0 |
0 |
0 |
api.actuator.drive.v1
Deterministic low-level drive command and state exchange.
Controls
| Endpoint |
Payloads and timing |
Semantics |
drive_command |
request=msg.actuator.drive.v1/DriveCommand, response=msg.actuator.drive.v1/DriveState, timing_support=required |
periodic=contract_defined; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.actuator.servo.v1
Canonical low-level servo gateway API for joint commands and deterministic drive-link exchange.
Controls
| Endpoint |
Payloads and timing |
Semantics |
servo_joint |
request=msg.actuator.servo.v1/JointServoCommand, response=msg.core.common.primitive.v1/BoolValue, timing_support=required |
periodic=contract_defined; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired |
servo_link |
request=msg.actuator.servo.v1/ActuatorCommand, response=msg.actuator.servo.v1/ActuatorState, timing_support=required |
periodic=required; validity=runtime_envelope; scheduling=gateway_dispatch; late_behavior=reject_expired |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.capability.manipulation.gripper.control.v1
App-facing gripper API for platform-defined open and close actions.
Events
| Endpoint |
Payloads and timing |
Semantics |
gripper_status |
type=msg.capability.manipulation.v1/GripperState, direction=publish |
observation=provider_state; delivery=latest_available; fanout=allowed |
Procedures
| Endpoint |
Payloads and timing |
Semantics |
open |
request=msg.core.common.primitive.v1/Empty, response=msg.capability.common.v1/Result, timing_support=none |
idempotency=idempotent; side_effects=releases_held_object |
close |
request=msg.core.common.primitive.v1/Empty, response=msg.capability.common.v1/Result, timing_support=none |
idempotency=idempotent; side_effects=may_grasp_object |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.capability.manipulation.reach.v1
App-facing reach API for platform-defined manipulator extension and stow commands.
Events
| Endpoint |
Payloads and timing |
Semantics |
manipulation_status |
type=msg.capability.manipulation.v1/ReachState, direction=publish |
observation=provider_state; delivery=latest_available; fanout=allowed |
Procedures
| Endpoint |
Payloads and timing |
Semantics |
extend |
request=msg.capability.manipulation.v1/ReachRequest, response=msg.capability.common.v1/Result, timing_support=none |
idempotency=target_idempotent; side_effects=moves_manipulator |
shrink |
request=msg.capability.manipulation.v1/ReachRequest, response=msg.capability.common.v1/Result, timing_support=none |
idempotency=target_idempotent; side_effects=moves_manipulator |
stow |
request=msg.core.common.primitive.v1/Empty, response=msg.capability.common.v1/Result, timing_support=none |
idempotency=idempotent; side_effects=moves_manipulator_to_stow |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.capability.mobility.body_motion.v1
App-facing periodic body-motion command and stop contract independent of locomotion implementation.
Events
| Endpoint |
Payloads and timing |
Semantics |
body_motion_state |
type=msg.capability.mobility.v1/BodyMotionState, direction=publish |
observation=provider_state; delivery=latest_available; fanout=allowed |
Controls
| Endpoint |
Payloads and timing |
Semantics |
body_motion |
request=msg.capability.mobility.v1/BodyMotionCommand, response=msg.capability.common.v1/Result, timing_support=required |
periodic=required; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired |
Procedures
| Endpoint |
Payloads and timing |
Semantics |
stop_body_motion |
request=msg.capability.mobility.v1/StopRequest, response=msg.capability.common.v1/Result, timing_support=none |
idempotency=idempotent; side_effects=stops_platform_motion |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.capability.navigation.goal.v1
App-facing goal navigation API independent of localization, planning, and locomotion implementation.
Events
| Endpoint |
Payloads and timing |
Semantics |
navigation_state |
type=msg.navigation.v1/NavigationState, direction=publish |
observation=provider_state; delivery=latest_available; fanout=allowed |
Procedures
| Endpoint |
Payloads and timing |
Semantics |
cancel_navigation |
request=msg.core.common.primitive.v1/Empty, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=idempotent; side_effects=stops_active_navigation |
Operations
| Endpoint |
Payloads and timing |
Semantics |
navigate_to_pose |
request=msg.navigation.v1/NavigateToPoseRequest, feedback=msg.navigation.v1/NavigationFeedback, result=msg.navigation.v1/NavigationResult, state=msg.navigation.v1/NavigationState, timing_support=none |
progress=feedback_stream; cancellation=required; terminal_states=['succeeded', 'failed', 'canceled', 'rejected'] |
follow_path |
request=msg.navigation.v1/FollowPathRequest, feedback=msg.navigation.v1/NavigationFeedback, result=msg.navigation.v1/NavigationResult, state=msg.navigation.v1/NavigationState, timing_support=none |
progress=feedback_stream; cancellation=required; terminal_states=['succeeded', 'failed', 'canceled', 'rejected'] |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.capability.perception.object_detection.v1
App-facing semantic object query independent of sensor and perception implementation.
Procedures
| Endpoint |
Payloads and timing |
Semantics |
query_objects |
request=msg.capability.perception.v1/ObjectQuery, response=msg.capability.perception.v1/DetectionSummary, timing_support=none |
idempotency=read_only; side_effects=none |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.diagnostics.health.v1
Shared provider health publication, query, and fault reset contract.
Events
| Endpoint |
Payloads and timing |
Semantics |
health_status |
type=msg.diagnostics.health.v1/HealthStatus, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Procedures
| Endpoint |
Payloads and timing |
Semantics |
get_health |
request=msg.core.common.primitive.v1/Empty, response=msg.diagnostics.health.v1/HealthStatus, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
clear_fault |
request=msg.diagnostics.health.v1/ClearFaultRequest, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.end_effector.gripper.v1
Canonical binary gripper API contract for open, close, and state query.
Procedures
| Endpoint |
Payloads and timing |
Semantics |
open |
request=msg.core.common.primitive.v1/Empty, response=msg.capability.common.v1/Result, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
close |
request=msg.core.common.primitive.v1/Empty, response=msg.capability.common.v1/Result, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
get_gripper_state |
request=msg.core.common.primitive.v1/Empty, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
Canonical index-addressed analog input read API contract.
Procedures
| Endpoint |
Payloads and timing |
Semantics |
get_analog_input |
request=msg.core.common.primitive.v1/UInt32Value, response=msg.core.common.primitive.v1/Float32Value, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.io.analog.output.v1
Canonical index-addressed analog output command and state API contract.
Procedures
| Endpoint |
Payloads and timing |
Semantics |
set_analog_output |
request=msg.core.common.primitive.v1/IndexedFloat32Value, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=target_idempotent; side_effects=changes_physical_output |
get_analog_output |
request=msg.core.common.primitive.v1/UInt32Value, response=msg.core.common.primitive.v1/Float32Value, timing_support=none |
idempotency=read_only; side_effects=none |
Contract Semantics
| Area |
Declaration |
frames |
policy=not_applicable; dynamic_frames=prohibited |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
Canonical index-addressed digital input read API contract.
Procedures
| Endpoint |
Payloads and timing |
Semantics |
get_digital_input |
request=msg.core.common.primitive.v1/UInt32Value, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.io.digital.output.v1
Canonical index-addressed digital output procedure and state API contract.
Procedures
| Endpoint |
Payloads and timing |
Semantics |
set_digital_output |
request=msg.core.common.primitive.v1/IndexedBoolValue, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
get_digital_output |
request=msg.core.common.primitive.v1/UInt32Value, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.io.digital.timed_output.v1
Canonical index-addressed digital output control with periodic refresh and bounded validity.
Controls
| Endpoint |
Payloads and timing |
Semantics |
digital_output_command |
request=msg.core.common.primitive.v1/IndexedBoolValue, response=msg.core.common.primitive.v1/BoolValue, timing_support=required |
periodic=required; validity=runtime_envelope; scheduling=gateway_dispatch; late_behavior=reject_expired |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.localization.v1
Canonical localization API contract.
Events
| Endpoint |
Payloads and timing |
Semantics |
pose_estimate |
type=msg.localization.v1/PoseEstimate, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
localization_status |
type=msg.localization.v1/LocalizationStatus, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.locomotion.diff_drive.v1
Optional mobile-base API contract for differential-drive kinematics and wheel-level state.
Events
| Endpoint |
Payloads and timing |
Semantics |
wheel_command |
type=msg.locomotion.mobile_base.v1/WheelCommand, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
wheel_state |
type=msg.locomotion.mobile_base.v1/WheelState, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Procedures
| Endpoint |
Payloads and timing |
Semantics |
get_diff_drive_kinematics |
request=msg.core.common.primitive.v1/Empty, response=msg.locomotion.mobile_base.v1/DiffDriveKinematics, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
set_diff_drive_kinematics |
request=msg.locomotion.mobile_base.v1/DiffDriveKinematics, response=msg.locomotion.velocity.v1/CommandAck, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.locomotion.legged.state.v1
Canonical legged locomotion state API contract.
Events
| Endpoint |
Payloads and timing |
Semantics |
contact_state |
type=msg.locomotion.legged.v1/ContactArray, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
foot_state |
type=msg.locomotion.legged.v1/FootState, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
balance_state |
type=msg.locomotion.legged.v1/BalanceState, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
gait_phase |
type=msg.locomotion.legged.v1/GaitPhase, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.locomotion.mobile_base.state.v1
Canonical wheeled mobile-base state, fault, and drive-enable API contract.
Events
| Endpoint |
Payloads and timing |
Semantics |
mobile_base_state |
type=msg.locomotion.mobile_base.v1/MobileBaseState, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
fault_state |
type=msg.locomotion.mobile_base.v1/FaultState, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Procedures
| Endpoint |
Payloads and timing |
Semantics |
get_status |
request=msg.core.common.primitive.v1/Empty, response=msg.locomotion.mobile_base.v1/MobileBaseState, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
enable_drive |
request=msg.locomotion.mobile_base.v1/EnableDriveRequest, response=msg.locomotion.velocity.v1/CommandAck, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
disable_drive |
request=msg.locomotion.mobile_base.v1/DisableDriveRequest, response=msg.locomotion.velocity.v1/CommandAck, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
clear_fault |
request=msg.locomotion.mobile_base.v1/ClearFaultRequest, response=msg.locomotion.velocity.v1/CommandAck, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.locomotion.odometry.v1
Canonical mobile-base odometry publication API contract.
Events
| Endpoint |
Payloads and timing |
Semantics |
odometry |
type=msg.locomotion.mobile_base.v1/Odometry, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.locomotion.velocity.v1
Canonical shared locomotion body-velocity API contract with timed command validity and limit management.
Controls
| Endpoint |
Payloads and timing |
Semantics |
velocity_command |
request=msg.locomotion.velocity.v1/VelocityCommand, response=msg.locomotion.velocity.v1/CommandAck, timing_support=required |
periodic=contract_defined; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired |
Procedures
| Endpoint |
Payloads and timing |
Semantics |
set_velocity_limits |
request=msg.locomotion.velocity.v1/VelocityLimits, response=msg.locomotion.velocity.v1/CommandAck, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
get_velocity_limits |
request=msg.core.common.primitive.v1/Empty, response=msg.locomotion.velocity.v1/VelocityLimits, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
stop |
request=msg.locomotion.velocity.v1/StopRequest, response=msg.locomotion.velocity.v1/CommandAck, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.locomotion.velocity_reference.v1
App-facing locomotion reference API that accepts discrete procedure calls while the provider owns timed Control dispatch to its actuator.
Procedures
| Endpoint |
Payloads and timing |
Semantics |
set_velocity_reference |
request=msg.locomotion.velocity.v1/VelocityCommand, response=msg.locomotion.velocity.v1/CommandAck, timing_support=none |
idempotency=endpoint_defined; side_effects=applies_bounded_velocity_reference |
stop |
request=msg.locomotion.velocity.v1/StopRequest, response=msg.locomotion.velocity.v1/CommandAck, timing_support=none |
idempotency=idempotent; side_effects=stops_platform_motion |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.mapping.v1
Canonical mapping API contract.
Events
| Endpoint |
Payloads and timing |
Semantics |
occupancy_map |
type=msg.mapping.v1/OccupancyGridMap, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
map_state |
type=msg.mapping.v1/MapStatus, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.motion.articulated.state.v1
Canonical articulated joint-state API contract.
Events
| Endpoint |
Payloads and timing |
Semantics |
joint_state |
type=msg.core.kinematics.v1/JointState, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.motion.articulated.trajectory.offset.v1
Periodic joint offset control for an active programmed trajectory.
Controls
| Endpoint |
Payloads and timing |
Semantics |
trajectory_offset |
request=msg.motion.articulated.v1/TrajectoryOffset, response=msg.core.common.primitive.v1/BoolValue, timing_support=required |
periodic=contract_defined; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.motion.articulated.trajectory.v1
Canonical articulated programmed-motion API contract.
Procedures
| Endpoint |
Payloads and timing |
Semantics |
stop |
request=msg.motion.articulated.v1/RampRequest, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=idempotent; side_effects=stops_motion |
pause |
request=msg.motion.articulated.v1/RampRequest, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=idempotent; side_effects=pauses_motion |
resume |
request=msg.core.common.primitive.v1/Empty, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=idempotent; side_effects=resumes_motion |
Operations
| Endpoint |
Payloads and timing |
Semantics |
move_j |
request=msg.motion.articulated.v1/MoveJRequest, feedback=msg.motion.manipulator.v1/MotionFeedback, result=msg.motion.manipulator.v1/MotionResult, state=msg.motion.manipulator.v1/MotionState, timing_support=none |
progress=feedback_stream; cancellation=required; terminal_states=['succeeded', 'failed', 'canceled', 'rejected'] |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.motion.articulated.velocity.v1
Canonical articulated periodic joint-velocity API contract.
Controls
| Endpoint |
Payloads and timing |
Semantics |
joint_velocity |
request=msg.core.kinematics.v1/JointVelocity, response=msg.core.common.primitive.v1/BoolValue, timing_support=required |
periodic=contract_defined; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.motion.execution.v1
Shared programmed-motion state and runtime speed scaling.
Events
| Endpoint |
Payloads and timing |
Semantics |
execution_state |
type=msg.motion.execution.v1/ExecutionState, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Procedures
| Endpoint |
Payloads and timing |
Semantics |
set_speed_scaling |
request=msg.motion.execution.v1/SpeedScaling, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
get_speed_scaling |
request=msg.core.common.primitive.v1/Empty, response=msg.motion.execution.v1/SpeedScaling, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.motion.manipulator.cartesian.offset.v1
Periodic Cartesian offset control for active manipulator motion.
Controls
| Endpoint |
Payloads and timing |
Semantics |
cartesian_offset |
request=msg.motion.manipulator.v1/CartesianOffset, response=msg.core.common.primitive.v1/BoolValue, timing_support=required |
periodic=contract_defined; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.motion.manipulator.cartesian.v1
Canonical manipulator Cartesian programmed-motion API contract.
Operations
| Endpoint |
Payloads and timing |
Semantics |
move_l |
request=msg.motion.manipulator.v1/MoveLRequest, feedback=msg.motion.manipulator.v1/MotionFeedback, result=msg.motion.manipulator.v1/MotionResult, state=msg.motion.manipulator.v1/MotionState, timing_support=none |
progress=feedback_stream; cancellation=required; terminal_states=['succeeded', 'failed', 'canceled', 'rejected'] |
move_c |
request=msg.motion.manipulator.v1/MoveCRequest, feedback=msg.motion.manipulator.v1/MotionFeedback, result=msg.motion.manipulator.v1/MotionResult, state=msg.motion.manipulator.v1/MotionState, timing_support=none |
progress=feedback_stream; cancellation=required; terminal_states=['succeeded', 'failed', 'canceled', 'rejected'] |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.motion.manipulator.hand_guiding.v1
Provider-owned hand-guiding mode control and state.
Events
| Endpoint |
Payloads and timing |
Semantics |
hand_guiding_state |
type=msg.motion.manipulator.v1/HandGuidingState, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Procedures
| Endpoint |
Payloads and timing |
Semantics |
enable_hand_guiding |
request=msg.core.common.primitive.v1/StringValue, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
disable_hand_guiding |
request=msg.core.common.primitive.v1/Empty, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.motion.manipulator.kinematics.v1
Stateless forward and inverse kinematics queries.
Procedures
| Endpoint |
Payloads and timing |
Semantics |
forward_kinematics |
request=msg.motion.manipulator.v1/ForwardKinematicsRequest, response=msg.motion.manipulator.v1/ForwardKinematicsResult, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
inverse_kinematics |
request=msg.motion.manipulator.v1/InverseKinematicsRequest, response=msg.motion.manipulator.v1/InverseKinematicsResult, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.motion.manipulator.state.v1
Canonical manipulator tool/task-space state API contract.
Events
| Endpoint |
Payloads and timing |
Semantics |
tool_pose |
type=msg.core.spatial.v1/Pose, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
motion_state |
type=msg.motion.manipulator.v1/MotionState, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
tool_settings |
type=msg.motion.manipulator.v1/ToolSettings, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
Long-running provider-owned TCP and payload calibration.
Operations
| Endpoint |
Payloads and timing |
Semantics |
calibrate_tool |
request=msg.motion.manipulator.v1/ToolCalibrationRequest, feedback=msg.motion.manipulator.v1/MotionFeedback, result=msg.motion.manipulator.v1/ToolCalibrationResult, state=msg.motion.manipulator.v1/MotionState, timing_support=none |
progress=feedback_stream; cancellation=required; terminal_states=['succeeded', 'failed', 'canceled', 'rejected'] |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
Canonical manipulator tooling and payload API contract.
Procedures
| Endpoint |
Payloads and timing |
Semantics |
set_tcp |
request=msg.motion.manipulator.v1/SetTcpRequest, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=target_idempotent; side_effects=changes_tool_transform |
set_payload |
request=msg.motion.manipulator.v1/SetPayloadRequest, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=target_idempotent; side_effects=changes_dynamic_model |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.motion.manipulator.velocity.v1
Canonical manipulator periodic TCP-twist control API contract.
Controls
| Endpoint |
Payloads and timing |
Semantics |
tcp_velocity |
request=msg.core.spatial.v1/Twist, response=msg.core.common.primitive.v1/BoolValue, timing_support=required |
periodic=contract_defined; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.motion.manipulator.wrench.v1
Periodic task-space wrench control and observation.
Events
| Endpoint |
Payloads and timing |
Semantics |
measured_wrench |
type=msg.motion.manipulator.v1/WrenchCommand, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Controls
| Endpoint |
Payloads and timing |
Semantics |
wrench_command |
request=msg.motion.manipulator.v1/WrenchCommand, response=msg.core.common.primitive.v1/BoolValue, timing_support=required |
periodic=contract_defined; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.navigation.v1
Canonical navigation API contract.
Events
| Endpoint |
Payloads and timing |
Semantics |
navigation_state |
type=msg.navigation.v1/NavigationState, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Procedures
| Endpoint |
Payloads and timing |
Semantics |
cancel_navigation |
request=msg.core.common.primitive.v1/Empty, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
Operations
| Endpoint |
Payloads and timing |
Semantics |
navigate_to_pose |
request=msg.navigation.v1/NavigateToPoseRequest, feedback=msg.navigation.v1/NavigationFeedback, result=msg.navigation.v1/NavigationResult, state=msg.navigation.v1/NavigationState, timing_support=none |
progress=feedback_stream; cancellation=required; terminal_states=['succeeded', 'failed', 'canceled', 'rejected'] |
follow_path |
request=msg.navigation.v1/FollowPathRequest, feedback=msg.navigation.v1/NavigationFeedback, result=msg.navigation.v1/NavigationResult, state=msg.navigation.v1/NavigationState, timing_support=none |
progress=feedback_stream; cancellation=required; terminal_states=['succeeded', 'failed', 'canceled', 'rejected'] |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.perception.query.v1
Canonical request/response perception query API contract for bounded object scans.
Procedures
| Endpoint |
Payloads and timing |
Semantics |
scan |
request=msg.core.common.primitive.v1/StringValue, response=msg.core.common.primitive.v1/StringValue, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
front |
request=msg.core.common.primitive.v1/StringValue, response=msg.core.common.primitive.v1/StringValue, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
nearest |
request=msg.core.common.primitive.v1/StringValue, response=msg.core.common.primitive.v1/StringValue, timing_support=none |
idempotency=endpoint_defined; side_effects=endpoint_defined |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.perception.stream.v1
Canonical perception observation stream API contract.
Events
| Endpoint |
Payloads and timing |
Semantics |
detections_2d |
type=msg.perception.v1/Detection2DArray, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
object_pose |
type=msg.perception.v1/ObjectPoseArray, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
grasp_candidates |
type=msg.perception.v1/GraspCandidateArray, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.positioning.absolute_pose.v1
Canonical absolute body-pose measurement API for positioning gateways.
Events
| Endpoint |
Payloads and timing |
Semantics |
position_fix |
type=msg.positioning.v1/AbsolutePoseFix, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.r2kernel.actuation.trigger.v1
Canonical bounded one-shot actuation with provider-owned channel mapping, timing, and safe-state handling.
Procedures
| Endpoint |
Payloads and timing |
Semantics |
trigger |
request=msg.core.common.primitive.v1/Empty, response=msg.core.common.primitive.v1/BoolValue, timing_support=none |
idempotency=non_idempotent; side_effects=provider_configured_bounded_actuation |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
api.r2kernel.actuator.servo.v1
Authority-qualified periodic servo command and sampled link-state contract.
Controls
| Endpoint |
Payloads and timing |
Semantics |
servo_control |
request=msg.r2kernel.actuator.servo.v1/ServoControlRequest, response=msg.r2kernel.actuator.servo.v1/ServoControlResponse, timing_support=required |
periodic=required; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired; common_control={'version': 1, 'request_effect': 'apply_servo_command', 'response_scope': 'endpoint_effect_completed', 'period_policy': 'binding_required', 'execution_policy': 'finite_expiry_commit_check', 'refresh_mode': 'command_refresh', 'ownership_policy': 'explicit_binding_generation', 'ordering': 'strictly_increasing_cycle', 'repeat_policy': 'no_automatic_replay', 'failure': 'report_domain_status', 'limits': {'source': 'binding', 'required_fields': ['max_update_gap_ns', 'max_command_age_ns', 'max_request_bytes', 'max_response_bytes'], 'provider_bounds': 'constrain_selected_values'}} |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=binding; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope_and_domain_sample |
api.r2kernel.io.digital.timed_output.v1
Authority-qualified digital output control with explicit command and retained-state cycles.
Controls
| Endpoint |
Payloads and timing |
Semantics |
digital_output_control |
request=msg.r2kernel.io.digital.timed_output.v1/TimedOutputControlRequest, response=msg.r2kernel.io.digital.timed_output.v1/TimedOutputControlResponse, timing_support=required |
periodic=required; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired; common_control={'version': 1, 'request_effect': 'set_or_maintain_digital_output', 'response_scope': 'endpoint_effect_completed', 'period_policy': 'binding_required', 'execution_policy': 'finite_expiry_commit_check', 'refresh_mode': 'maintain_state', 'ownership_policy': 'explicit_binding_generation', 'ordering': 'strictly_increasing_cycle', 'repeat_policy': 'no_automatic_replay', 'failure': 'report_domain_status', 'limits': {'source': 'binding', 'required_fields': ['max_update_gap_ns', 'max_command_age_ns', 'max_request_bytes', 'max_response_bytes'], 'provider_bounds': 'constrain_selected_values'}} |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=binding; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |
Control-only visual transfer admission, retention, and output status contract.
Controls
| Endpoint |
Payloads and timing |
Semantics |
display_cycle |
request=msg.r2kernel.visual.v1/DisplayControlRequest, response=msg.r2kernel.visual.v1/DisplayControlResponse, timing_support=required |
periodic=required; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired; common_control={'version': 1, 'request_effect': 'submit_or_maintain_visual_output', 'response_scope': 'endpoint_effect_completed', 'period_policy': 'binding_required', 'execution_policy': 'finite_expiry_commit_check', 'refresh_mode': 'maintain_state', 'ownership_policy': 'explicit_binding_generation', 'ordering': 'strictly_increasing_cycle', 'repeat_policy': 'no_automatic_replay', 'failure': 'report_domain_status', 'limits': {'source': 'binding', 'required_fields': ['max_update_gap_ns', 'max_command_age_ns', 'max_request_bytes', 'max_response_bytes', 'max_pending_units'], 'provider_bounds': 'constrain_selected_values'}} |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=binding; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope_and_transfer_part_header |
api.r2kernel.sensor.camera.source.v1
Control-only polling contract for prepared camera samples and typed visual transfer parts.
Controls
| Endpoint |
Payloads and timing |
Semantics |
camera_cycle |
request=msg.r2kernel.sensor.camera.v1/CameraCycleRequest, response=msg.r2kernel.sensor.camera.v1/CameraCycleResponse, timing_support=required |
periodic=required; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired; common_control={'version': 1, 'request_effect': 'read_prepared_camera_sample', 'response_scope': 'sample_observed', 'period_policy': 'binding_required', 'execution_policy': 'finite_expiry_commit_check', 'refresh_mode': 'sample_exchange', 'ownership_policy': 'explicit_binding_generation', 'ordering': 'strictly_increasing_cycle', 'repeat_policy': 'no_automatic_replay', 'failure': 'report_domain_status', 'limits': {'source': 'binding', 'required_fields': ['max_update_gap_ns', 'max_command_age_ns', 'max_request_bytes', 'max_response_bytes', 'max_pending_units'], 'provider_bounds': 'constrain_selected_values'}} |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=binding; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope_and_transfer_part_header |
api.r2kernel.sensor.depth.source.v1
Control-only polling contract for prepared depth measurements and typed transfer parts.
Controls
| Endpoint |
Payloads and timing |
Semantics |
depth_cycle |
request=msg.r2kernel.depth.v1/DepthCycleRequest, response=msg.r2kernel.depth.v1/DepthCycleResponse, timing_support=required |
periodic=required; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired; common_control={'version': 1, 'request_effect': 'read_prepared_depth_sample', 'response_scope': 'sample_observed', 'period_policy': 'binding_required', 'execution_policy': 'finite_expiry_commit_check', 'refresh_mode': 'sample_exchange', 'ownership_policy': 'explicit_binding_generation', 'ordering': 'strictly_increasing_cycle', 'repeat_policy': 'no_automatic_replay', 'failure': 'report_domain_status', 'limits': {'source': 'binding', 'required_fields': ['max_update_gap_ns', 'max_command_age_ns', 'max_request_bytes', 'max_response_bytes', 'max_pending_units'], 'provider_bounds': 'constrain_selected_values'}} |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=binding; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope_and_transfer_part_header |
api.r2kernel.sensor.gnss.source.v1
Control-only polling contract for the latest receiver-reported GNSS fix.
Controls
| Endpoint |
Payloads and timing |
Semantics |
gnss_cycle |
request=msg.r2kernel.sensor.gnss.v1/GnssCycleRequest, response=msg.r2kernel.sensor.gnss.v1/GnssCycleResponse, timing_support=required |
periodic=required; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired; common_control={'version': 1, 'request_effect': 'read_latest_gnss_fix', 'response_scope': 'sample_observed', 'period_policy': 'binding_required', 'execution_policy': 'finite_expiry_commit_check', 'refresh_mode': 'sample_exchange', 'ownership_policy': 'explicit_binding_generation', 'ordering': 'strictly_increasing_cycle', 'repeat_policy': 'no_automatic_replay', 'failure': 'report_domain_status', 'limits': {'source': 'binding', 'required_fields': ['max_update_gap_ns', 'max_command_age_ns', 'max_request_bytes', 'max_response_bytes', 'max_pending_units'], 'provider_bounds': 'constrain_selected_values'}} |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=binding; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope_and_optional_mapped_gnss_acquisition_time |
api.r2kernel.sensor.lidar.source.v1
Control-only polling contract for native LiDAR scans and typed transfer parts.
Controls
| Endpoint |
Payloads and timing |
Semantics |
lidar_cycle |
request=msg.r2kernel.sensor.lidar.v1/LidarCycleRequest, response=msg.r2kernel.sensor.lidar.v1/LidarCycleResponse, timing_support=required |
periodic=required; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired; common_control={'version': 1, 'request_effect': 'read_prepared_lidar_scan', 'response_scope': 'sample_observed', 'period_policy': 'binding_required', 'execution_policy': 'finite_expiry_commit_check', 'refresh_mode': 'sample_exchange', 'ownership_policy': 'explicit_binding_generation', 'ordering': 'strictly_increasing_cycle', 'repeat_policy': 'no_automatic_replay', 'failure': 'report_domain_status', 'limits': {'source': 'binding', 'required_fields': ['max_update_gap_ns', 'max_command_age_ns', 'max_request_bytes', 'max_response_bytes', 'max_pending_units'], 'provider_bounds': 'constrain_selected_values'}} |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=binding; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope_and_transfer_part_header |
api.r2kernel.sensor.pointcloud.source.v1
Control-only polling contract for prepared point-cloud samples and typed transfer parts.
Controls
| Endpoint |
Payloads and timing |
Semantics |
pointcloud_cycle |
request=msg.r2kernel.sensor.pointcloud.v1/PointCloudCycleRequest, response=msg.r2kernel.sensor.pointcloud.v1/PointCloudCycleResponse, timing_support=required |
periodic=required; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired; common_control={'version': 1, 'request_effect': 'read_prepared_pointcloud_sample', 'response_scope': 'sample_observed', 'period_policy': 'binding_required', 'execution_policy': 'finite_expiry_commit_check', 'refresh_mode': 'sample_exchange', 'ownership_policy': 'explicit_binding_generation', 'ordering': 'strictly_increasing_cycle', 'repeat_policy': 'no_automatic_replay', 'failure': 'report_domain_status', 'limits': {'source': 'binding', 'required_fields': ['max_update_gap_ns', 'max_command_age_ns', 'max_request_bytes', 'max_response_bytes', 'max_pending_units'], 'provider_bounds': 'constrain_selected_values'}} |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=binding; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope_and_transfer_part_header |
api.r2kernel.sensor.radar.source.v1
Control-only polling contract for prepared sectors from an integrated 360-degree rotating radar; no external motor is required.
Controls
| Endpoint |
Payloads and timing |
Semantics |
radar_cycle |
request=msg.r2kernel.sensor.radar.v1/RadarCycleRequest, response=msg.r2kernel.sensor.radar.v1/RadarCycleResponse, timing_support=required |
periodic=required; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired; common_control={'version': 1, 'request_effect': 'read_prepared_radar_sector', 'response_scope': 'sample_observed', 'period_policy': 'binding_required', 'execution_policy': 'finite_expiry_commit_check', 'refresh_mode': 'sample_exchange', 'ownership_policy': 'explicit_binding_generation', 'ordering': 'strictly_increasing_cycle', 'repeat_policy': 'no_automatic_replay', 'failure': 'report_domain_status', 'limits': {'source': 'binding', 'required_fields': ['max_update_gap_ns', 'max_command_age_ns', 'max_request_bytes', 'max_response_bytes', 'max_pending_units'], 'provider_bounds': 'constrain_selected_values'}} |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=binding; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope_and_radar_sector_interval |
api.r2kernel.sensor.rgbd.source.v1
Control-only polling contract for paired color/depth samples with explicit capture-set identity.
Controls
| Endpoint |
Payloads and timing |
Semantics |
rgbd_cycle |
request=msg.r2kernel.sensor.rgbd.v1/RgbdCycleRequest, response=msg.r2kernel.sensor.rgbd.v1/RgbdCycleResponse, timing_support=required |
periodic=required; validity=runtime_envelope; scheduling=provider_dispatch; late_behavior=reject_expired; common_control={'version': 1, 'request_effect': 'read_prepared_rgbd_sample_set', 'response_scope': 'sample_observed', 'period_policy': 'binding_required', 'execution_policy': 'finite_expiry_commit_check', 'refresh_mode': 'sample_exchange', 'ownership_policy': 'explicit_binding_generation', 'ordering': 'strictly_increasing_cycle', 'repeat_policy': 'no_automatic_replay', 'failure': 'report_domain_status', 'limits': {'source': 'binding', 'required_fields': ['max_update_gap_ns', 'max_command_age_ns', 'max_request_bytes', 'max_response_bytes', 'max_pending_units'], 'provider_bounds': 'constrain_selected_values'}} |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=binding; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope_and_transfer_part_header |
api.sensor.camera.v1
Canonical camera stream API contract.
Events
| Endpoint |
Payloads and timing |
Semantics |
camera_info |
type=msg.sensor.camera.v1/CameraInfo, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
image_frame |
type=msg.sensor.camera.v1/ImageFrame, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
depth_frame |
type=msg.sensor.camera.v1/DepthFrame, direction=publish |
observation=provider_sample; delivery=best_effort_latest; fanout=allowed |
Contract Semantics
| Area |
Declaration |
frames |
policy=endpoint_declared; dynamic_frames=owning_message_only |
timing |
clock_domain=r2kernel_sync; event_envelope={'observed': 'observed_at_sync_ns', 'published': 'published_at_sync_ns', 'received': 'received_at_sync_ns'}; control_envelope={'generated': 'generated_at_sync_ns', 'sent': 'sent_at_sync_ns', 'execute': 'execute_at_sync_ns', 'valid_until': 'valid_until_sync_ns'} |
state_model |
owner=provider; lifecycle=runtime_managed |
failure_semantics |
transport=runtime_status; domain=endpoint_response |
authority |
owner=provider; command_arbitration=exclusive_required_binding |
limits |
source=provider; enforcement=provider |
conformance |
level=public; payload_time=runtime_envelope |