micro-ROS / micro-ROS/system_modes
[QST] time comsuming and blocking of lifecycle management.
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- C++
- Star
- 45
- Fork
- 13
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
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!
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.
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Tái hiện thời gian được báo cáo của /actuation/change_state và /actuation/change_mode trong thiết lập system_modes ROS 2, sau đó so sánh hành vi với issue 779 liên quan của ros2cli. Báo cáo không nêu tên tệp mã nguồn hoặc bài kiểm thử nào; công việc được xem là hoàn tất khi xác định được nguyên nhân của độ trễ Lifecycle kéo dài nhiều giây và cung cấp bằng chứng cho thấy độ trễ đã được khắc phục hoặc giải thích.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- cpp
- Lĩnh vực
- robotics
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 25/100