## page was copied from fmi_adapter <> <> = system_modes = `system_modes` is a small ROS 2 C++ package that assumes that the ROS 2 system is built from components with a lifecycle ([[http://design.ros2.org/articles/node_lifecycle.html|managed nodes]]). It adds a notion of (sub-)systems, hierarchically grouping these nodes, as well as a notion of modes that determine the configuration of these nodes and (sub-)systems in terms of their parameter values. == System Modes Library and Nodes == The [[https://github.com/microROS/system_modes/tree/master/system_modes|system modes package]] consists of a library that parses a ''system modes and hierarchy model'' file (SHM file, yaml format). The modes specified in the SMH file extend the [[http://design.ros2.org/articles/node_lifecycle.html|default ROS 2 lifecycle]]: {{attachment:lifecycle-extended.png||width=760}} The library is able to infer the modes of a system based in the known states and modes of its nodes, which we call ''mode inference''. Relying on this library are a mode manager node that is able to manage lifecycle states and modes of all nodes as well as a command-line mode monitor for introspection. For more information on the model, the library, the mode manager and the mode monitor, see https://github.com/microROS/system_modes/tree/master/system_modes == Example == The [[https://github.com/microROS/system_modes/tree/master/system_modes_examples|system modes examples package]] contains a small example ''actuation'' sub-system containing two example nodes, a ''drive_base'' node and a ''manipulator'' node. The example system allow state and mode changes of the system as well as the nodes and allows introspection of modes with the mode monitor: {{attachment:screenshot-monitor-performance.png||width=760}} For an example system and a step-by-step example, see https://github.com/microROS/system_modes/tree/master/system_modes_examples ## AUTOGENERATED DON'T DELETE ## CategoryPackage