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.