ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

This is still unfortunately still under some active development (see: https://github.com/ros2/launch/issues/160) and so not everything is clearly defined yet. I've proposed some terminology that should hopefully be clearer in this document (though I don't know if in the end it will change further):

https://github.com/ros2/rclcpp/blob/wjwwood/components_wip/rclcpp_components/doc/source/architecture.rst#terminology

Here's a summary of the terminology:

  • Node: an instance of rclcpp::Node or an instance of a class derived from rclcpp::Node (often user defined)
  • Composable Node: A Node, which has been built in a certain way and registered at build time as a composable node, which enables it to be instantiated at runtime by a standard executable
  • Composable Node Container: a program that can on demand: lookup a node, load (with dlopen) the node's .so, instantiate an instance of the node, and then execute the node

The contents of the composition package and the associated tutorials are useful to see how some of the underlying mechanics work, but it's more of a tech demo and so doesn't have as much infrastructure around it as we'd like.

In the meantime, I'd suggest following the changes happening at https://github.com/ros2/launch/issues/160 and waiting for that to finish, or if you need something sooner, try to adapt the examples in the composition demo to meet your needs.