Skip to content

Commit 72ab07a

Browse files
committed
Minor updates
1 parent 0f12460 commit 72ab07a

1 file changed

Lines changed: 32 additions & 28 deletions

File tree

system_modes/index.md

Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,38 @@
11
# Lifecycle and System Modes
22

33
Table of Contents
4-
* [Introduction and goal](#introduction-and-goal)
5-
* [Requirements](#requirements)
6-
* [Background: ROS 2 Lifecycle](#background-ros-2-lifecycle)
7-
* [Main features](#main-features)
8-
* [Extended lifecycle](#extended-lifecycle)
9-
* [System hierarchy and modes](#system-hierarchy-and-modes)
10-
* [Mode manager](#mode-manager)
11-
* [Roadmap](#roadmap)
12-
* [Related Work](#related-work)
13-
* [Acknowledgments](#acknowledgments)
4+
- [Lifecycle and System Modes](#lifecycle-and-system-modes)
5+
- [Introduction and Goal](#introduction-and-goal)
6+
- [Requirements](#requirements)
7+
- [Background: ROS 2 Lifecycle](#background-ros-2-lifecycle)
8+
- [Main Features](#main-features)
9+
- [Extended Lifecycle](#extended-lifecycle)
10+
- [System Hierarchy and Modes](#system-hierarchy-and-modes)
11+
- [Mode manager](#mode-manager)
12+
- [Roadmap](#roadmap)
13+
- [Related Work](#related-work)
14+
- [AADL](#aadl)
15+
- [Acknowledgments](#acknowledgments)
1416

1517
TODO CHECK FUNCTIONING OF THE LINKS ABOVE (AND THE GENERATED IDS FOR THE SECTION HEADERS).
1618

1719
## Introduction and Goal
1820

19-
Modern robotic software architectures follow a layered approach. The layer with the core algorithms for SLAM, vision-based object recognition, motion planning, etc. is often referred to as *skill layer* or *functional layer*. To perform a complex task, these skills are orchestrated by one or more upper layers named *executive layer and planning layer*. Other common names are *task layer and mission layer* or *deliberation layer(s)*. In the following, we used the last term.
21+
Modern robotic software architectures often follow a layered approach. The layer with the core algorithms for SLAM, vision-based object recognition, motion planning, etc. is often referred to as *skill layer* or *functional layer*. To perform a complex task, these skills are orchestrated by one or more upper layers named *executive layer and planning layer*. Other common names are *task and mission layer* or *deliberation layer(s)*. In the following, we used the latter term.
2022

2123
We observed three different but closely interwoven aspects to be handled on the deliberation layer:
2224

23-
1. **Task Handling**: Orchestration of the actual task, the *straight-forward*, *error-free* flow
25+
1. **Task Handling**: Orchestration of the actual task, the *straight-forward*, *error-free* flow.
2426
2. **Contingency Handling**: Handling of task-specific contingencies, e.g., expectable retries and failure attempts, obstacles, low battery.
2527
3. **System Error Handling**: Handling of exceptions, e.g., sensor/actuator failures.
2628

27-
The mechanisms being used to orchestrate the skills are service and action calls, re-parameterizations, set values, activating/deactivating of components, etc. We distinguish between *function-oriented calls* to a running skill component (e.g., set values, action queries) and *system-oriented calls* to individual or multiple components (e.g., switching between component modes, restart, shutdown).
29+
The mechanisms being used to orchestrate the skills are service and action calls, re-parameterizations, set values, activating/deactivating of components, etc. We distinguish between *function-oriented calls* to a running skill component (set values, action queries, etc.) and *system-oriented calls* to individual or multiple components (switching between component modes, restart, shutdown, etc.).
2830

2931
![Interaction between skill and deliberation layer](interactions_between_skill_and_deliberation_layer.png)
3032

3133
Analogously, we distinguish between *function-oriented notifications* from the skill layer in form a feedback on long-running service calls, messages on relevant events in the environment, etc. and *system-oriented notifications* about component failures, hardware errors, etc.
3234

33-
Our observation is that interweaving of task, contingency and system error handling generally leads to a high complexity of the control flow on the deliberation layer. Yet, we hypothesize that this complexity can be reduced by introducing abstractions for system-oriented calls and notifications.
35+
Our observation is that interweaving of task handling, contingency handling, and system error handling generally leads to a high complexity of the control flow on the deliberation layer. Yet, we hypothesize that this complexity can be reduced by introducing appropriate abstractions for system-oriented calls and notifications.
3436

3537
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.
3638

@@ -40,12 +42,11 @@ This goal is illustrated in the following high-level architecture:
4042

4143
The envisioned key elements to achieve this goal are:
4244

43-
1. Extensible concept to specify the runtime states of components (i.e ROS nodes).
45+
1. Extensible concept to specify the runtime states of components, i.e ROS 2 nodes.
4446
2. Modeling approach for specifying system modes based on these component states.
4547
3. Diagnosis module for deriving relevant information from the operating systems, the hardware and the functional components.
4648
4. Mode manager module for system runtime configuration.
4749

48-
4950
## Requirements
5051

5152
The list of requirements is maintained in the doc folder of the micro-ROS system modes repository at **TODO INSERT LINK**.
@@ -57,43 +58,46 @@ Our approach is based on the ROS 2 Lifecycle. The primary goal of the ROS 2 life
5758

5859
The description of the concept can be found at [http://design.ros2.org/articles/node_lifecycle.html](http://design.ros2.org/articles/node_lifecycle.html). The implementation is described at [https://index.ros.org/doc/ros2/Managed-Nodes/](https://index.ros.org/doc/ros2/Managed-Nodes/).
5960

60-
61-
6261
## Main Features
6362

6463
### Extended Lifecycle
6564

66-
In micro-ROS, we extended the ROS 2 lifecycle by allowing to specify specific modes (i.e. substates) for the ACTIVE state based on the standard parameters mechanism. We implemented this concept in rcl and rclcpp for ROS 2 and micro-ROS.
65+
In micro-ROS, we extended the ROS 2 lifecycle by allowing to specify modes, i.e. substates, specializing the *active* *state based on the standard ROS 2 parameters mechanism. We implemented this concept in rcl and rclcpp for ROS 2 and micro-ROS.
6766

68-
The documentation and code can be found at TODO INSERT LINK.
67+
Documentation and code can be found at:
68+
https://github.com/microROS/system_modes/system_modes/README.md#lifecycle
6969

7070

7171
### System Hierarchy and Modes
7272

73-
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 hierarchy and modes model also includes an application-specific the mapping of the states and modes along the system hierarchy down to nodes.
73+
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.
7474

75-
The description of this model can be found at TODO INSERT LINK.
75+
The description of this model can be found at:
76+
https://github.com/microROS/system_modes/system_modes/README.md#system-modes
7677

7778

7879
### Mode manager
7980

8081
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.
8182

82-
The documentation and code can be found at TODO INSERT LINK. A small demo is provided at TODO INSERT LINK.
83+
The documentation and code can be found at:
84+
com/microROS/system_modes/system_modes/README.md#mode-manager
85+
A simple example is provided at:
86+
https://github.com/microROS/system_modes/system_modes_examples/
8387

8488

8589
## Roadmap
8690

8791
**2018**
88-
* Designed extended lifecycle concept and implemented this concept in rcl and rclcpp for ROS 2 and micro-ROS.
89-
* Designed modeling concept to specify system hierarchy as well as to model states and modes of system and subsystems and their mapping along the system hierarchy down to nodes.
90-
* Implemented mode manager in C++ for ROS 2.
92+
* Extended lifecycle concept and implementation for ROS 2 and micro-ROS.
93+
* Modeling concept to specify system hierarchy as well as system modes of systems, subsystems, and their mapping along the system hierarchy down to nodes.
94+
* Mode inference and mode manager in C++ for ROS 2.
9195

9296
**2019**
9397
* Specific implementation of mode manager for micro-ROS as may be necessary.
9498
* Diagnostics framework for micro-ROS, interoperating with ROS 2 diagnostics.
95-
* MCU-specific diagnostics functions for resource usage on RTOS layer, latencies, statistics from middleware, ...
96-
* Integration of mode manager with real-time executor.
99+
* MCU-specific diagnostics functions for resource usage on RTOS layer, latencies, statistics from middleware, etc.
100+
* Integration of mode manager with real-time executor and/or roslaunch.
97101

98102
**2020**
99103
* Lightweight concept for specifying error propagations between nodes and subsystems.

0 commit comments

Comments
 (0)