micro-ROS / micro-ROS/system_modes
Layered handling of node and (sub-)system errors
Personne n'a encore pris cette issue.
- Langage dominant
- C++
- Étoiles
- 45
- Forks
- 13
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
from (#47 )
> This is in the context of our exemplary case of the `laser_driver` error. 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):
> 1. First the `laser_driver` code for handling errors tries to recover from the error in the `ErrorProcessing` transition state.
>
> _(from here it is a related but different issue)_
>
> 2. If it does not succeed (I guess that means node does not transition to `Active`), the `ModeManager` tries to recover from the error using the `feature/rules`. For this, @jginesclavero is adding a rule in the SystemModes file of our system.
> 3. If there is no rule, or there is but after applying it the alternative `MODE(s)` of the `laser_driver` are not reached either, the `ModeManager` reports to the `MROS Metacontroller` that 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 ?
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par lire l’issue #43 et la discussion sur le ModeManager, les diagnostics et le MROS Metacontroller. Aucun fichier source ni test n’est nommé, et un accord sur l’interface de diagnostic et le comportement attendu est encore nécessaire avant de pouvoir considérer l’implémentation comme terminée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cpp
- Domaine
- robotics
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100