A reimplementation of the capabilities package. This package is implemented using C++ and extends the capabilities package features.
- capabilities2_server package contains the core of the system.
- capabilities2_runner package contains base and template classes for capability implementations.
The main usage of capabilities2 will typically involve creating or customizing capabilities through providers, interfaces and semantic interfaces. These are stored as YAML, and for more information about definitions and examples, click the links:
| Entity | Description |
|---|---|
| Interfaces | The main capability specification file |
| Providers | The capability provider specification file provides a mechanism to operate the capability |
| Semantic Interfaces | The semantic interface specification file provides a mechanism to redefine a capability with semantic information |
Runners can be created using the runner API parent classes here. The capabilities service can be started using the capabilities2_server package.
source install/setup.bash
ros2 launch capabilities2_server capabilities2_server.launch.py- Motivation and Example Use Cases
- Design Information
- Registering a capability
- Terminal based capability usage
- Running test scripts
For detailed information about the code, build the code documentation using Doxygen. see capabilities2_documentation.
# in the devcontainer
cd capabilities2_documentation
doxygen DoxyfileOpen capabilities2_documentation/html/index.html in a browser for Documentation.
This work is based on the capabilities package developed by the Open Source Robotics Foundation. github.com/osrf/capabilities.
If you use this work in an academic context, please cite the following publication(s):
Capabilities2 for ROS2: Advanced Skill-Based Control for Human-Robot Interaction
@inproceedings{10.5555/3721488.3721623,
author = {Pritchard, Michael and Ratnayake, Kalana and Gamage, Buddhi and Jayasuriya, Maleen and Herath, Damith},
title = {Capabilities2 for ROS2: Advanced Skill-Based Control for Human-Robot Interaction},
year = {2025},
publisher = {IEEE Press},
booktitle = {Proceedings of the 2025 ACM/IEEE International Conference on Human-Robot Interaction},
pages = {1067–1071},
location = {Melbourne, Australia},
series = {HRI '25}
}