Overview ROS integration¶
Orocos framework is well integrated with ROS, a popular software bundle with the largest community among roboticists to design new applications. Most of the concepts from both frameworks map well and are largely supported.
Map between Orocos and ROS concepts¶
There are some similarities on the function of concepts between the two framework. However, their mapping is not exactly one to one. The next table establishes the equivalence between the two frameworks.
|Concept||Orocos feature||ROS feature|
|Data flow communication||Data ports||Topics|
|Outbound data terminal||OutputPort||Publisher|
|Inbound data terminal||InputPort||Subscriber|
|Data collection||Property, Attribute, Constant||Parameter|
|Computation unit||Orocos process, Component||Node|
Orocos ROS integration is a collection of packages that provides a translational layer between the two frameworks to make easy for the user to transit data and calls from one to the other framework.
The notion of ROS service and RTT service are conceptually different. An RTT Service is a collection of Operations and Properties that provide additional functionality and it can be loaded in a component. The ROS service is best understood as an Operation in the Orocos framework.
Components of the integration layer¶
The main components provided by the integration layer are as follows.
ros: ROS package import plugin as well as wrapper scripts and launch files for using Orocos with ROS.
rosclock: Realtime-Safe NTP clock measurement and ROS
Timestructure construction as well as a simulation-clock-based periodic RTT activity.
rosnode: Plugin for ROS node instantiation inside an Orocos program.
rosparam: Plugin for synchronizing ROS parameters with Orocos component properties.
roscomm: ROS message typekit generation and Orocos plugin for publishing and subscribing to ROS topics as well as calling and responding to ROS services.
rosdeployment: An RTT service which advertises common DeploymentComponent operations as ROS services.
rospack: Plugin for locating ROS resources.
tf: RTT-Plugin which uses
tfto allow RTT components to lookup and publish transforms.
actionlibaction server for providing actions from ROS-integrated RTT components.
dynamic_reconfigure: A service plugin that implements a
dynamic_reconfigureserver to update properties dynamically during runtime.
.srvtypes for use with these plugins.