Skip to content

Capabilities

Capabilities are app-facing robot contracts. They describe what an application may ask a platform to do without exposing the platform's controller, gateway, or device-channel topology.

Capability specs live under spec/capabilities. Each capability.* entry resolves to a backing api.capability.* contract that owns the concrete event, procedure, and operation endpoint definitions.

Use this boundary.

  • applications require capability.*
  • compound subsystems normally provide capability.*
  • capability endpoint validation uses the backing api.capability.* contract
  • component and gateway implementation details stay behind the compound provider

capability.* is not a synonym for a component bundle. Components describe replaceable controller-style providers. Capabilities describe the robot ability surface consumed by applications.

Canonical Capabilities

Capability Domain Stability Backing API
capability.mobility.teleop.v1 mobility primitive api.capability.mobility.teleop.v1
capability.manipulation.reach.v1 manipulation primitive api.capability.manipulation.reach.v1
capability.manipulation.gripper.control.v1 manipulation primitive api.capability.manipulation.gripper.control.v1
capability.perception.trash_detection.v1 perception tutorial api.capability.perception.trash_detection.v1
capability.cleaning.trash_disposal.v1 cleaning tutorial api.capability.cleaning.trash_disposal.v1

Rules

Capability App may App must not assume
capability.mobility.teleop.v1 command bounded base-frame velocity; request a platform stop; inspect reported mobility status wheel layout; gateway topology; controller vendor; actuator channel mapping
capability.manipulation.reach.v1 request reach extension; request reach shrink; request a safe stow posture joint count; link geometry; actuator channel mapping
capability.manipulation.gripper.control.v1 request open; request close; inspect reported gripper state finger geometry; IO channel mapping; gripping force model
capability.perception.trash_detection.v1 request nearest target scan; request bounded field-of-view scan sensor placement; sensor vendor; raw point cloud availability
capability.cleaning.trash_disposal.v1 request nearest trash collection; request disposal of payload already held by the robot burner implementation; IO channel mapping; manipulator kinematic chain

Implementation

In librux.robot.yaml, a capability declaration points at an implementation.

capabilities:
  mobility.teleop:
    capability: capability.mobility.teleop.v1
    implementation:
      kind: compound_subsystem
      subsystem: compound.cleaner
      interface: mobility
      contract: capability.mobility.teleop.v1

Use kind: compound_subsystem when the capability needs state machines, retries, safety checks, or multi-step coordination. Use kind: direct_binding only for a deliberately exposed public api.* or component.* endpoint. Direct bindings are low-level outlets, not portable semantic capabilities.