Skip to content

Commit d201c6b

Browse files
authored
Merge pull request #68 from micro-ROS/system-modes-update
System modes update
2 parents e2a2df2 + c5504fa commit d201c6b

4 files changed

Lines changed: 29 additions & 13 deletions

File tree

_data/authors.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ anordman:
99
name: Arne Nordmann
1010
twitter: arnenordmann
1111
web: http://arne-nordmann.de
12-
link: twitter
12+
github: norro
13+
link: web
1314
borjaouterelo:
1415
name: Borja Outerelo
1516
twitter: boouga
-56.4 KB
Binary file not shown.

_docs/concepts/client_library/system_modes/index.md

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ Table of contents
1212
- [Main Features](#main-features)
1313
- [Extended Lifecycle](#extended-lifecycle)
1414
- [System Hierarchy and Modes](#system-hierarchy-and-modes)
15-
- [Mode manager](#mode-manager)
15+
- [Mode Inference](#mode-inference)
16+
- [Mode Manager](#mode-manager)
1617
- [Roadmap](#roadmap)
1718
- [Acknowledgments](#acknowledgments)
1819

@@ -37,16 +38,18 @@ Our observation is that interweaving of task handling, contingency handling, and
3738

3839
Therefore, our **goal** within this work is to provide suitable abstractions and framework functions for (1.) system runtime configuration and (2.) system error and contingency diagnosis, to reduce the effort for the application developer of designing and implementing the task, contingency and error handling.
3940

40-
This goal is illustrated in the following high-level architecture:
41+
This goal is illustrated in the following example architecture, which is described and managed based on a model file:
4142

42-
![High-level Architecture](goal.png)
43+
![High-level Architecture](mode-management.png)
4344

44-
The envisioned key elements to achieve this goal are:
45+
The main features of the approach are (detailed in the remainder):
46+
47+
1. _Extended Lifecycle_: Extensible concept to specify the runtime states of components, i.e ROS 2 lifecycle nodes.
48+
2. _System Hierarchy and Modes_: Modeling approach for specifying a ROS system in terms of its system hierarchy and _system modes_, i.e. different (sub-)system configurations.
49+
3. _Mode Manager_: A module to manage and change the system runtime configuration.
50+
4. _Mode Inference_: A module for deriving the entire system state and mode from observable system information, i.e. states, modes, and parameters of its components.
51+
5. _Diagnostics_: Diagnosis module for deriving relevant information from the operating systems, the hardware and the functional components.
4552

46-
1. Extensible concept to specify the runtime states of components, i.e ROS 2 nodes.
47-
2. Modeling approach for specifying system modes based on these component states.
48-
3. Diagnosis module for deriving relevant information from the operating systems, the hardware and the functional components.
49-
4. Mode manager module for system runtime configuration.
5053

5154
## Requirements
5255

@@ -61,6 +64,7 @@ The description of the concept can be found at: [http://design.ros2.org/articl
6164
The implementation of the Lifecycle Node is described at:
6265
[https://index.ros.org/doc/ros2/Managed-Nodes/](https://index.ros.org/doc/ros2/Managed-Nodes/).
6366

67+
6468
## Main Features
6569

6670
### Extended Lifecycle
@@ -70,20 +74,31 @@ In micro-ROS, we extend the ROS 2 lifecycle by allowing to specify modes, i.e. s
7074
Documentation and code can be found at:
7175
[github.com:system_modes/README.md#lifecycle](https://github.com/micro-ROS/system_modes/blob/master/system_modes/README.md#lifecycle)
7276

73-
7477
### System Hierarchy and Modes
7578

76-
We provide a modeling concept for specifying the hierarchical composition of systems recursively from nodes and for specifying the states and modes of systems and subsystems with the extended lifecycle, analogously to nodes. This system modes and hierarchy (SMH) model also includes an application-specific the mapping of the states and modes along the system hierarchy down to nodes.
79+
We provide a modeling concept for specifying the hierarchical composition of systems recursively from nodes and for specifying the states and modes of systems and (sub-)systems with the extended lifecycle, analogously to nodes. This system modes and hierarchy (SMH) model also includes an application-specific the mapping of the states and modes along the system hierarchy down to nodes.
7780

7881
The description of this model can be found at:
7982
[github.com:system_modes/README.md#system-modes](https://github.com/micro-ROS/system_modes/blob/master/system_modes/README.md#system-modes)
8083
A simple example is provided at:
8184
[github.com:system_modes_examples/README.md#example-mode-file](https://github.com/micro-ROS/system_modes/blob/master/system_modes_examples/README.md#example-mode-file)
8285

86+
### Mode Inference
87+
88+
The mode inference infers the entire system states (and modes) based on the lifecycle states, modes, and parameter configuration of its components, i.e. the ROS 2 lifecyle nodes. It parses the SMH model and subscribes to lifecycle/mode change requests, lifecycle/mode changes, and parameter events.
89+
90+
Based on the lifecycle change events it knows the _actual_ lifecycle state of all nodes. Based on parameter change events it knows the _actual_ parameter values of all nodes, which allows inference of the _modes_ of all nodes based on the SMH model.
91+
Based on the SMH model and the inferred states and modes of all nodes, states and modes of all (sub-)systems can be _inferred_ bottom-up along the system hierarchy.
92+
This can be compared to the latest _requested_ states and modes to detect a deviation.
93+
94+
The documentation and code can be found at:
95+
[github.com:system_modes/README.md#mode-inference](https://github.com/micro-ROS/system_modes/blob/master/system_modes/README.md#mode-inference)
96+
The mode inference can be best observed in the mode monitor, a console-based debugging tool, see:
97+
[github.com:system_modes/README.md#mode-monitor](https://github.com/micro-ROS/system_modes/blob/master/system_modes/README.md#mode-monitor)
8398

84-
### Mode manager
99+
### Mode Manager
85100

86-
The mode manager allows for runtime system adaptation based on such a system hierarchy and modes model. It parses the model and provides all services and topics to request state and mode changes and to monitor these changes.
101+
Building upon the _Mode Inference_ mechanism, the mode manager provides additional services and topics to _manage and adapt_ system states and modes according to the specification in the SMH model.
87102

88103
The documentation and code can be found at:
89104
[github.com:system_modes/README.md#mode-manager](https://github.com/micro-ROS/system_modes/blob/master/system_modes/README.md#mode-manager)
62.8 KB
Loading

0 commit comments

Comments
 (0)