micro-ROS / micro-ROS/system_modes
Layered handling of node and (sub-)system errors
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- C++
- Estrelas
- 45
- Forks
- 13
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
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 ?
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece lendo a issue #43 e a discussão sobre o ModeManager, os diagnósticos e o MROS Metacontroller. Nenhum arquivo-fonte ou teste é mencionado, e ainda é necessário chegar a um acordo sobre a interface de diagnóstico e o comportamento esperado antes que a implementação possa ser considerada concluída.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- cpp
- Domínio
- robotics
- Tipo de issue
- Funcionalidade
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Status de atividade
- Estagnada
- Clareza
- Precisa de esclarecimento
- Facilidade para iniciantes
- 25/100