|
Capabilities2 0.3.0
|
Capabilities2 server allows interaction with the capabilities2 API. It is a reimplementation of the capabilities package using C++ (original capabilities package was written in Python 2.7). In addition to C++ reimplementation being more resource efficient, this package extends the capabilities package features in following ways,
The capabilities2 server is implemented as a ROS2 Component. The server can be specialised by composing it with another Component that adds domain logic.
Refer capabilities2_server/config/capabilities.yaml for the default node parameters loaded by the launch file.
The capabilities2 server depends on the following bondcpp ROS2 package. See the package.xml for the full list of dependencies. Notably, the capabilities2 server depends on the following system dependencies:
sqlite3yaml-cpptinyxml2The capabilities2 server provides the following ROS2 API:
The capabilities2 server exposes the following Service API (see capabilities2_msgs for data types):
| Topic | Service Message | Description |
|---|---|---|
~/get_interfaces | GetInterfaces.srv | Get the interfaces provided by the capabilities server |
~/get_semantic_interfaces | GetSemanticInterfaces.srv | Get the semantic interfaces provided by the capabilities server |
~/get_providers | GetProviders.srv | Get the providers available on the capabilities server |
~/get_remappings | GetRemappings.srv | Get the remappings for a capability |
~/get_capability_spec | GetCapabilitySpec.srv | Get a raw specifications for a capability |
~/get_capability_specs | GetCapabilitySpecs.srv | Get all raw specifications in the capabilities server |
~/get_running_capabilities | GetRunningCapabilities.srv | Get the currently running capabilities |
~/establish_bond | EstablishBond.srv | Establish a bond with the capabilities server to use capabilities |
~/use_capability | UseCapability.srv | Use a capability - must be bonded |
~/free_capability | FreeCapability.srv | Free a capability (when done using it, when all users are done the capability is freed) - must be bonded |
~/start_capability | StartCapability.srv | Start a capability (this is a forceful start, and ignores use and free logic) |
~/stop_capability | StopCapability.srv | Stop a capability (this is a forceful stop, and ignores use and free logic) |
~/register_capability | RegisterCapability.srv | Register a capability with the capabilities server |
~/trigger_capability | TriggerCapability.srv | Trigger a capability - must be bonded |
~/connect_capability | ConnectCapability.srv | Connect two running capabilities through the event system using a CapabilityConnection message - must be bonded |
The capabilities2 server exposes the following Topics API:
| Topic | Message | Description |
|---|---|---|
~/events | CapabilityEventStamped.msg | Publish capability events |
~/bonds | bond/Status.msg | Maintain bonds with capability users - Bond API |