Operation

The ros2_canopen stack can be used in three different ways:

  • standard nodes container

  • managed nodes container

  • ros2_control system interface with standard nodes

Simple nodes container

The standard node container mode bundles the master and all slave driver nodes in one specialised container called device container. All nodes are simple ROS 2 nodes and expose a publish and subscribe as well as a service interfaces. Once the device container is started, all nodes are brought up and ready to be used.

Purpose: The simple nodes container is thought for applications where the user needs a simple and easy to launch interface and does not need any realtime control capabilities as provided by ros2_control.

Managed nodes container

The managed nodes container has the same properties as the standard nodes container. The exception is, that all nodes are lifecycle nodes and there is a special node called lifecycle manager. The user can use the lifecycle manager to control the lifecycle of all nodes in the container.

Purpose: The managed nodes container is thought for applications where the user wants to have more runtime recovery options than killing and restarting the container.

ROS 2 control system interface

The ros2_control interface is currently build on top of the simple nodes container. In addition to the standard nodes container the ros2_control system interface provides a hardware interface that can be used to control the devices on the bus. Currently, three different system interfaces are provided:

  • canopen_ros2_control/CANopenSystem

  • canopen_ros2_control/CIA402System

  • canopen_ros2_control/RobotSystem

Purpose: The ROS 2 control system interfaces are thought for control applications that require low latencies.