micro-ROS / micro-ROS/system_modes
[QST] time comsuming and blocking of lifecycle management.
还没有人认领这个 Issue。
- 主要语言
- C++
- 星标
- 45
- 派生
- 13
- PR 合并指标
- 30 天内没有已合并 PR
描述
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.
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
在 system_modes ROS 2 设置中重现报告的 /actuation/change_state 和 /actuation/change_mode 时序,然后将其行为与相关的 ros2cli issue 779 进行比较。报告没有列出源文件或测试;完成要求是确定多秒级 Lifecycle 延迟的原因,并提供证据证明该延迟已解决或得到解释。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- cpp
- 领域
- robotics
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 25/100