2.7.x
Orocos Version: | 2.7.x |
ROS Distro: | Hydro |
The Orocos RTT/ROS Integration has been heavily refactored and extended in the
2.7 release. Part of this is due to the new Catkin buildsystem standard in the ROS
community, but also it is due to long-desired enhancements to the integration
packages.
Prior to the 2.7 release, the packages which interfaced core RTT functionality
with core ROS functionality was split across four "stacks":
- rtt_ros_integration: RTT plugins for communicating with ROS
- rtt_ros_comm: RTT Typekits for rosgraph_msgs and std_msgs
- rtt_common_msgs: RTT Typekits for common_msgs
- TODO: rtt_geometry: RTT typekits for KDL datatypes and RTT plugins for TF
In the 2.7.0 release, the packages from these four repositories have been
reorganized. The two repositories which only contained typekits (rtt_ros_comm
and rtt_common_msgs) were moved into rtt_ros_integration under a directory
called "typekits".
The rtt_rosnode package from the old rtt_ros_integration stack has also been
refactored. In previous releases, it contained the following tools:
- Scripts to create RTT/ROS packags
- CMake build and code-generation scripts to create RTT typekits from ROS messages
- An RTT plugin called "ros_integration" which instantiated a ROS node and provides several services
- An RTT global service called "ros" for constructing ROS topic connection policies.
- An RTT activity for publishing messages to ROS topics
- An RTT component service called "rosparam" for loading and saving RTT component properties as ROS parameter server parameters.
In this release, the "rtt_rosnode" has been split into four packages:
- "rtt_ros": Core ROS system integration
- Convenience launchfiles and wrapper scripts for running Orocos programs (typegen, deployer, etc)
- An RTT global service for importing ROS packages and their dependencies
- "rtt_rosnode": Contains a plugin for creating a ROS node in an RTT program
- "rtt_roscomm": Contains ROS communication plugins including:
- ROS msg primitives typekit
- An RTT transport plugin for communicating via ROS topics and RTT ports
- An RTT plugin for serving and calling ROS services via RTT operations
- A tempalte and package generator for integrating new ROS msg and srv types
- "rtt_rosparam": Contains a plugin for synchronizing a component's properties with ROS parameters
There are also several API changes related to importing plugins from ROS
packages, creating ROS topic connections, and synchronizing RTT properties
with ROS parameter server parameters.
See each package's individual CHANGELOG.rst for more details.
2.7.0 (forthcoming)
- Major reorganization (see additional notes in CHANGELOG.rst)
- Moved typekits from rtt_ros_comm and rtt_common_msgs into rtt_ros_integration
- Added Catkin buildsystem support
- Added RTT interfaces for ROS Service Calls (serving and calling)
- Added RTT interfaces for ROS Actionlib (action serving)
- Re-wrote RTT rosparam service to handle parameter arrays more cleanly
- Added ROS service interface to interact with the Orocos deployer (rtt_rosdeployment)
- Added RTT interface to dynamic_reconfigure (rtt_dynamic_reconfigure)
0.4.x
Orocos Version: | 2.4.x |
ROS Distro: | Diamondback |
The stack contains all of the Orocos Toolchain v2.4.x integrated in the ROS
build system. The orocos_toolchain_ros stack contains utilmm, utilrb, typelib
and orogen, to automatically create ros packages for the automatic typekit
generation for C++ classes.
On top of the Orocos Toolchain v2.4.x this stack contains:
- rtt_ros_integration: This package contains the following:
- The ros-plugin: this RTT plugin allows Orocos/RTT components to contact the
ROS master
- CMake macro's to automatically create Orocos/RTT typekits and transport
plugins from .msg files
- rtt_ros_integration_std_msgs: This package shows how the CMake macro's have to
be used, it creates the Orocos/RTT typekits and transport plugins for all
roslib and std_msgs messages
- rtt_ros_integration_example: This package shows how the rtt_ros_integration
should be used from an Orocos/RTT user/developer point of view. It contains a
HelloRobot component which can be contacted using rostopic echo