Shared ROS 2 messages, services, actions, schemas, and interface contracts for the OpenAMRobot ecosystem.
Current maturity level: Experimental
This repository defines interface contracts shared across the OpenAMRobot ecosystem, including:
- ROS 2 messages
- ROS 2 services
- ROS 2 actions
- communication schemas
- JSON/YAML contracts
- API conventions
- versioning rules
- interoperability definitions
This repository acts as the contract layer between:
- platform software
- firmware
- UI systems
- simulation
- docking
- navigation
- humanoid systems
- external integrations
The ros2/ directory contains shared ROS 2 interface packages used across the OpenAMRobot ecosystem.
Example:
ros2/openamr_ui_msgs
These packages may contain:
- ROS 2 messages (
msg) - ROS 2 services (
srv) - ROS 2 actions (
action)
Shared ROS 2 interface packages should not belong to individual application repositories.
Instead, they are centralized in:
openamrobot-interfaces
to provide:
- a single source of truth
- version consistency
- interoperability
- reusable contracts
- clean repository boundaries
- reduced duplication
- simulation and hardware compatibility
Other repositories should depend on shared interface packages instead of redefining them.
Examples:
openamr-platform-sw
openamrobot-ui
openamrobot-comm
future humanoid repositories
future fleet-management systems
Repositories should include shared interfaces as dependencies in their ROS 2 workspace.
Example workspace structure:
workspace/
├── src/
│ ├── openamr-platform-sw/
│ ├── openamrobot-ui/
│ └── openamrobot-interfaces/
Interface definitions should remain:
- hardware-agnostic
- reusable
- transport-independent where possible
- stable and version-aware
Application-specific logic should remain outside this repository.
openamrobot-interfaces/
├── ros2/
│ ├── msg/
│ ├── srv/
│ └── action/
│
├── schemas/
│ ├── json/
│ └── yaml/
│
├── docs/
├── examples/
├── tools/
└── tests/
Interfaces should be:
- stable
- minimal
- versioned
- backwards-compatible where possible
- hardware-agnostic
- simulation-compatible
- transport-independent when possible
This repository contains interface definitions only.
ROS 2 implementations belong in:
openamr-platform-sw
Firmware implementations belong in:
openamr-platform-fw
Hardware files belong in:
openamr-platform-hw
Planned future interfaces include:
- robot state
- battery state
- docking state
- actuator control
- perception detections
- safety events
- diagnostics
- fleet management
- remote operation
- humanoid interfaces
MIT License.