micro-ROS / micro-ROS/system_modes
[QST] time comsuming and blocking of lifecycle management.
- Linguagem predominante
- C++
- Estrelas
- 45
- Forks
- 13
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
Why is so slow of changing lifecycle state of a node.
there is a test log below, from the data, there will cost at less than 4s, to change the state of lifecycle nodes!
```sh
zs@zs-vm-2204:~/zs_ws/ga_ros$ ros2 service call /actuation/change_state lifecycle_msgs/ChangeState "{transition: {id: 1, label: configure}}"
waiting for service to become available...
requester: making request: lifecycle_msgs.srv.ChangeState_Request(transition=lifecycle_msgs.msg.Transition(id=1, label='configure'))
response:
lifecycle_msgs.srv.ChangeState_Response(success=True)
zs@zs-vm-2204:~/zs_ws/ga_ros$ time ros2 service call /actuation/change_state lifecycle_msgs/ChangeState "{transition: {id: 1, label: configure}}"
waiting for service to become available...
requester: making request: lifecycle_msgs.srv.ChangeState_Request(transition=lifecycle_msgs.msg.Transition(id=1, label='configure'))
response:
lifecycle_msgs.srv.ChangeState_Response(success=True)
real 0m2.185s
user 0m0.459s
sys 0m0.086s
zs@zs-vm-2204:~/zs_ws/ga_ros$ time ros2 service call /actuation/change_state lifecycle_msgs/ChangeState "{transition: {id: 1, label: configure}}"
waiting for service to become available...
requester: making request: lifecycle_msgs.srv.ChangeState_Request(transition=lifecycle_msgs.msg.Transition(id=1, label='configure'))
response:
lifecycle_msgs.srv.ChangeState_Response(success=True)
real 0m1.613s
user 0m0.389s
sys 0m0.075s
zs@zs-vm-2204:~/zs_ws/ga_ros$ time ros2 service call /actuation/change_state lifecycle_msgs/ChangeState "{transition: {id: 3, label: activate}}"
requester: making request: lifecycle_msgs.srv.ChangeState_Request(transition=lifecycle_msgs.msg.Transition(id=3, label='activate'))
response:
lifecycle_msgs.srv.ChangeState_Response(success=True)
real 0m0.572s
user 0m0.349s
sys 0m0.094s
zs@zs-vm-2204:~/zs_ws/ga_ros$ time ros2 service call /actuation/change_mode system_modes_msgs/ChangeMode "{mode_name: 'LEFT'}"
requester: making request: system_modes_msgs.srv.ChangeMode_Request(mode_name='LEFT')
response:
system_modes_msgs.srv.ChangeMode_Response(success=True)
real 0m0.815s
user 0m0.590s
sys 0m0.130s
zs@zs-vm-2204:~/zs_ws/ga_ros$ ros2 service call /actuation/change_mode system_modes_msgs/ChangeMode "{mode_name: 'RIGHT'}"
waiting for service to become available...
requester: making request: system_modes_msgs.srv.ChangeMode_Request(mode_name='RIGHT')
response:
system_modes_msgs.srv.ChangeMode_Response(success=True)
zs@zs-vm-2204:~/zs_ws/ga_ros$ time ros2 service call /actuation/change_state lifecycle_msgs/ChangeState "{transition: {id: 1, label: configure}}"
waiting for service to become available...
requester: making request: lifecycle_msgs.srv.ChangeState_Request(transition=lifecycle_msgs.msg.Transition(id=1, label='configure'))
response:
lifecycle_msgs.srv.ChangeState_Response(success=True)
real 0m3.286s
user 0m0.377s
sys 0m0.086s
zs@zs-vm-2204:~/zs_ws/ga_ros$ time ros2 service call /actuation/change_state lifecycle_msgs/ChangeState "{transition: {id: 3, label: activate}}"
waiting for service to become available...
requester: making request: lifecycle_msgs.srv.ChangeState_Request(transition=lifecycle_msgs.msg.Transition(id=3, label='activate'))
response:
lifecycle_msgs.srv.ChangeState_Response(success=True)
real 0m1.851s
user 0m0.608s
sys 0m0.188s
```
I created a similar issue here too https://github.com/ros2/ros2cli/issues/779
Thanks.
Guia de contribuição
Direção de pesquisa
Reproduza os tempos relatados de /actuation/change_state e /actuation/change_mode na configuração do system_modes ROS 2 e, em seguida, compare o comportamento com o issue 779 relacionado do ros2cli. O relatório não menciona arquivos-fonte nem testes; o trabalho estará concluído quando a causa do atraso de vários segundos do Lifecycle for identificada e forem fornecidas evidências de que o atraso foi resolvido ou explicado.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- cpp
- Domínio
- robotics
- Tipo de issue
- Bug
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Estagnada
- Clareza
- Precisa de esclarecimento
- Facilidade para iniciantes
- 25/100