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.
OpenAMRobot is a project initiated, operated, and controlled by Botshare LTD (Cyprus Company ID HE479056). Botshare LTD owns the transferable economic rights in original OpenAMRobot material created by or validly assigned to it. Third-party material remains subject to its respective ownership, licences, and notices.
Original OpenAMRobot software and firmware are licensed under MIT, documentation under CC BY 4.0, and hardware design source under CERN-OHL-P-2.0, as mapped in LICENSING.md. Public distribution grants the permissions stated in the applicable licence; it does not transfer ownership of underlying copyright, trademarks, patents, or other intellectual property.
Accepted external contributions require DCO sign-off and an applicable Individual or Corporate Contributor Agreement. See the organization IP Policy, Contribution Guide, and Contributor Agreement Process.