micro-ROS / micro-ROS/system_modes

[QST] time comsuming and blocking of lifecycle management.

Đang mở
#98 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

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

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. 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

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.