Layered handling of node and (sub-)system errors
まだ誰も着手していません。
評価
調査の方向性
まず issue #43 と、ModeManager、diagnostics、MROS Metacontroller に関する議論を読んでください。ソースファイルもテストも指定されておらず、実装を完了と見なすには、diagnostic interface と期待される動作についてまだ合意が必要です。
索引モデルが issue の本文から書いたものです。
説明
from (#47 )
This is in the context of our exemplary case of the
laser_drivererror. We want to elaborate on the layered approach we discussed in the last MROS meeting. This is how I interpret our desired design (please comment if something is not correct or clear):
- First the
laser_drivercode for handling errors tries to recover from the error in theErrorProcessingtransition state.(from here it is a related but different issue)
- If it does not succeed (I guess that means node does not transition to
Active), theModeManagertries to recover from the error using thefeature/rules. For this, @jginesclavero is adding a rule in the SystemModes file of our system.- If there is no rule, or there is but after applying it the alternative
MODE(s)of thelaser_driverare not reached either, theModeManagerreports to theMROS Metacontrollerthat the corresponding (sub)system(s) MODE(s) are not reachable.
(see issue for the continuation of the handling of errors at the higher layers)
continuation
Currently this will be implemented in a passive way, by offering that information (see https://github.com/micro-ROS/system_modes/issues/43)
But, since the current target MODE cannot be reached... we were thinking (in a discussion with TUD and URJC) if the ModeManager should report this actively system wide, for the operator or any supervisory system (e.g. MROS Metacontroller) to handle it.
Proposal: Since not being able to reach the target MODE is a deviation of expected and desired behaviour, we propose that the ModeManager uses diagnostics to report this. The MROS Metacontroller will subscribe such diagnostic messages.
(@fmrico @jginesclavero @marioney please comment if I missed something or did not convey it correctly)
What do you think @norro ?
- 主要言語
- C++
- スター
- 45
- フォーク
- 13
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
micro-ROS/system_modes のほかの issue
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
micro-ROS/system_modes#101 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
micro-ROS/system_modes#99 · コメント 3 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
micro-ROS/system_modes#98 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
micro-ROS/system_modes#97 · コメント 2 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
micro-ROS/system_modes#96 · コメント 2 件 ·
micro-ROS/system_modes の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
duckdb/duckdb-wasm#2258 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
objectionary/eo-graphs#75 ·
-
Coarray integration tests carry no LABELS, so run_tests.py silently skips them under every backend オープンcoarray
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
FISCO-BCOS/FISCO-BCOS#5642 ·